Corso di Git

Ripresento il corso di Git che abbiamo già tenuto in passato presso la vecchia sede (oltre che a milano, udine, …)
(ripresento un po’ alla cieca su indicazione di Antonio, tutti i dettagli da definirsi)

Pagina del corso

##Breve presentazione

Git, il più diffuso sistema di controllo di revisione, è famoso per la sua flessibilità ed efficacia, al costo però di una certa complessità che ne rende l’apprendimento non banale; è facile iniziare ad utilizzarlo in maniera meccanica, per poi trovarsi in difficoltà quando un imprevisto ci porta a dover affrontare operazioni meno comuni. Il workshop, di livello intermedio, si differenzia da altre proposte formative in questo senso per l’ampia introduzione ai concetti ed alle astrazioni di base del sistema, fornendo gli strumenti necessari ad affrontare l’uso pratico di ogni giorno con consapevolezza e capacità di gestire gli imprevisti, evitando così la mera esecuzione di comandi “imparati a memoria”, senza comprendere l’idea che vi sta dietro. A questa prima parte segue poi una sessione d’uso interattiva, coadiuvata da strumenti specializzati di data visualization per aiutare a comprendere l’effettivo funzionamento del tool.

##PROGRAMMA

  • understanding the domain (VCS landscape and main abstractions//models)
  • git implementation of the abstractions (commit, graph, reachability, references - branch, tag, HEAD, remotes)
  • understanding the staging area - do not panic: handling errors (checkout, reset, revert)
  • work with others (branch, cherry pick, merge, rebase - main tecniques)
  • intro to git as a service
  • intro to git plumbing

##VARIANTI
Per come svolto in passato, il corso consiste in un pomeriggio (5-6 ore) di presentazione con esempi pratici (ma non laboratorio), eventualmente spezzabile in più giornate per mantenere un orario post-lavorativo.

Se dovesse interessare, è inoltre possibile organizzare sessioni pratiche (laboratorio).

##Sondaggi

###Sono interessato a:

  • Corso standard
  • Laboratorio pratico (richiesto proprio portatile)

0 votanti

###Orari

  • una/due sessioni pomeridiane (sabato o domenica)
  • multiple sessioni serali (orario post lavorativo)

0 votanti

2 Mi Piace

Da che livello parte il corso?
Sono necessarie conoscenze minime di git?
Il corso pratico è puro esercizio, quindi viene già richiesta la conoscenza dell’argomento, o prevederebbe comunque una spiegazione pratica?
In tal caso sarei molto interessato!

Il corso parte da livello “intermedio” - nel senso che si presuppone una conoscenza pratica di un qualunque vcs - faccio frequenti parelleli fra git e svn//mercurial//altri.
In passato abbiamo fatto solo il corso teorico, che per ragioni di tempo non lasciava spazio a laboratori. Questa volta volendo aggiungere un po’ di pratica possiamo decidere come organizzarlo a seconda delle preferenze degli interessati… alcune opzioni potrebbero essere:

  • corso teorico completo seguito da laboratorio,
  • intervallare sessione di lezione teorica con sessione di laboratorio pratico
  • addirittura a incastrare teoria e pratica nella stessa sessione
  • altre idee?

A vostra scelta…

Mi sa che io sono a livello zero, quindi, a meno di riuscire a farmi un infarinatura generale prima del corso, mi sa che passerò. Ma non si sa mai che riesca a recuperare quel tanto che basta=).
Grazie mille!

1 Mi Piace

Nulla vieta di fare anche una introduzione base al vcs, se ci sono abbastanza interessati…
Comunque in generale non è che ci sia niente di esoterico che non capiresti nel formato corrente, ma diversi vantaggi di git si apprezzano di più avendo un minimo di esperienza nell’uso giornaliero di vcs.

@dsalvador quanto dev’essere approfondita la conoscenza pratica? Queste slides sono rappresentative del contenuto? Perché ho visto @elbaru usare git, magari può dare un’occhiata alle slides e vedere se gli sembra di seguire.

Mi spiego meglio: di solito nel corso non tratto il “perchè è importante usare un vcs quando si scrive codice”… poi a pensarci bene i concetti di commit, repo, etc vengono comunque riaffrontati quindi dovrebbe essere comprensibile anche per chi ha una conoscenza molto basilare, al massimo si perde un po’ il senso di “perchè X è meglio/peggio di Y” (io sono della scuola del “finchè non hai sbattuto il naso su un problema di prima persona non apprezzi veramente il perchè una soluzione è meglio o peggio di un’altra”).

Le slide che hai linkato sono quelle che uso, ovviamente alcune hanno bisogno di un po’ di spiegazione ma potete darci una scorsa per farvi un’idea a grandi linee degli argomenti (poi espansi a seconda delle domande)

Ad ogni modo tenete conto che non abbiamo mai fatto due versioni identiche del corso, visto che si aggiusta il tiro a seconda delle domande e del feedback degli interlocutori.

1 Mi Piace

Dicembre è ormai arrivato e da quel che vedo su altri thread siete già parecchio impegnati fra il corso di python e quello di postgres… Agli interessati: ne riparliamo per gennaio?

Direi di sì, si sono accavallate veramente un sacco di cose in questi mesi e non riusciamo ad organizzarlo per questo mese.

A me piacerebbe imparare ad usare Git, ma non faccio uso regolare dei VCS… a stento so di che si tratta… ho usato un paio di volte SVN per installare alcuni programmi/script, ma copiando in maniera pedissequa i comandi che mi venivano indicati…

Sarebbe possibile prendere in considerazione una (o un paio) di lezioni extra di “alfabetizzazione” per chi come me è digiuno?

Direi che si può provare, visto l’interesse… tenterò di preparare due
contenuti di prova. =)

Qualche altro interessato al corso con questa estensione?

Ping a @Flavia, che potrebbe essere interessata, e forse @rossiludo

Ci ho pensato un po’, e direi che partire da un livello un po’ più base è fattibile, allungando forse di qualche sessione - più che fare “lezioni” introduttive di VCS semplicemente affronterei i vari argomenti evitando di dare per scontate alcune cose, e magari intervallando teoria e pratica… insomma, un po’ da sperimentare in base al feedback in corso d’opera.
A risentirci a gennaio (qualche anima pia mi fa da referente per l’organizzazione? Raramente riesco a passare, tanto che devo ancora associarmi =P)

1 Mi Piace

Ciao Davide, avendo già co-organizzato con voi (tu e Francesco) i corsi precedenti, direi che non mi dispiacerebbe continuare a farlo…as usual.
Anche perché immagino che tutti gli altri si aspettino questo :grin:
Ci sentiamo la prossima settimana per update, attualmente sono all’estero :wink:

2 Mi Piace

Perfetto, non volevo importi anche questa edizione ma se ti offri volontario chi sono io per dire di no =)

Al caso dimmi cosa ti serve al caso, o se progettate di parlarne una serata fammi sapere che se serve vengo anch’io.

@xemant Riusciamo a schedulare il corso? Quando sarebbe il prossimo slot libero?

Ciao! Come già detto, in passato abbiamo fatto il corso in un pomeriggio (4-5 ore circa), ma questa volta si voleva fare di diverso:

  • un’introduzione un po’ più estesa per chi ha meno familiarità con i vcs
  • un po’ di pratica

Quindi sarebbero da prevedere o due sabati pomeriggio o 3-4 sessioni serali infrasettimanali (da 2-3 ore), poi suggerirei di navigare a vista… nella seconda ipotesi io ho disponibilità certa per un giorno a settimana (relativamente indifferente il giorno, meglio se sempre lo stesso?), eventualmente due ma da vedere.

I poll erano stati un po’ inconcludenti, posso suggerire agli interessati di scrivere qui per confermare la propria preferenza (ferme restando le disponibilità della sede)?

1 Mi Piace

Per me la prima parte potrebbe essere poco interessante (se ho la possibilità passerei comunque). Per la seconda parte pratica passerei volentieri. Avevi già qualcosa in mente? Se si, ignora il seguente. Se no, io potrei proporre una cosa. Stiamo discutendo su come sviluppare la gestione del nostro magazzino. Potremmo pensare di gestire i vari sviluppi via git. Sarebbe un esercizio vero e proprio sul quale provare i casi realistici. Come poi utilizzare questo per mostrare le varie potenzialità e problematiche di git non saprei. Insomma lancio un idea, libero di scartarla.

Non sono sicuro al 100% che ci sarà una “parte teorica” seguita da una “parte pratica” - a seconda di come ci organizziamo con le sessioni (quante ore per “lezione”) credo sia meglio fare teoria e pratica intervallate - aiuta a consolidare i concetti. Quello che proponi mi pare interessante come “esercizio finale”, possiamo provare a ragionarci.

Ping del lunedì… ci sono interessati a organizzare questo corso? =)