- Presentazione generale
- Quale direzione possiamo prendere e quale scelte possiamo fare per riuscire a scrivere il libro e a contribuire in modo efficace
- Discussione sui capitoli e su come proseguire
- Decisione sulla nomina di nuovi ambassador.
- Scrivere delle linee guida su come scrivere e contribuire
- Definire le linee guida per le nomine dei nuovi ambassador, avendo raggiunto un numero già elevato di persone
- Messa online del libro: Proposta Github Pages. Cosa usiamo come strumento?
- gitbook
- docusaurus
- Aprire varie issue per ogni tema da trattare per raccogliere interesse e idee
- Definire una prima deadline per la prima bozza del libro. Si pensava a Dicembre.
Qui successivamente una proposta dei temi che potremmo trattare nel libro.
Una buona pratica per iniziare potrebbe essere iniziare a mettere giù tema per tema una serie di domande a cui rispondere.
Questo potrebbe essere utile per una serie di fattori:
- Guidare le contribuzioni
- Rimuovere il "blocco dello scrittore"
- Definire meglio i contenuti
- Far accendere lampadine :)
Suggerimento di @JeyDi
In generale siccome il libro (o i libri) dovrebbero esser fruibili da tutti penso che potremmo iniziare a strutturare il tutto in due parti.
- Una parte più generica che può essere letta da chiunque, soprattutto da chi si approccia a questo mondo per la prima volta o per chi vuole reinventare la propria carriera
- Una parte più tecnica di approfondimento su alcuni concetti, che non vuol essere esaustiva sugli argomenti, ma che da le basi e aiuta le persone ad orientarsi.
- Cosa significa essere un dev: Cosa fa lo sviluppatore e perché dovrei decidere di entrare in questo mondo.
- Perchè è importante e interessante?
- Quanto è diventato importante?
- Come si è evoluto il dev nella storia?
- Cosa può succede in futuro?
Suggerimento di @JeyDi
Questo potrebbe essere un ottimo primo capitolo iniziale orientativo per descrivere anche gli altri contenuti tecnici e creare un filo rosso conduttore attraverso il libro.
- Formazione: Come scelgo gli argomenti sul quale formarmi e come dovrei approcciare lo studio?
- Quali sono le tecniche migliori e più efficaci che potrei usare?
- Quanto è importante il sapere pratico? E quello teorico?
- Quali consigli per approcciare una nuova tecnologia o un nuovo argomento?
- Carriera - Junior: Cosa fare per i primi X anni? Come inizio la mia carriera? Come accresco le mie skill per andare allo step successivo?
- Carriera - Mid: Ho un po' di esperienza, ma come so di essere un Mid? Come faccio il salto di seniority?
- Carriera - Senior: Sono riconosciuto come senior nel mio campo / nella mia disciplina, e ora come miglioro la mia condizione di carriera?
- CV: Quanto è importante il curriculum e il modo in cui lo compilo / lo rendo disponibile?
- Annunci di lavoro: Come leggerli e red flag
Smart working / Remote / Hybrid / Sede
- Differenze tra diversi luoghi di lavoro.
- Consigli per i vari luoghi di lavoro con pro e contro.
- L'importanza del networking
Aziende di consulenza vs prodotto
- Cos'è un'azienda di consulenza e perchè è interessante? Quali sono i lati negativi?
- Perchè è interessante lavorare in un'azienda di prodotto? Quali sono le differenze? E i lati negativi?
- Vendor lock-in / Debito tecnico: cosa sono e come si possono affrontare? L'open source può aiutare in questo senso? Come?
- Community: le community sono open source?
- Problemi e critiche sul mondo dell'open source
- Come posso approcciarmi all'open source? Come posso contribuire?
- Open Source: Contribuire e/o mantenere dei progetti può avere un effetto sul mio modo di sviluppare e/o sulla mia carriera?
- Perchè per uno sviluppatore è importante?
- Come un'azienda può approcciarsi all'open source? Che vantaggi può trarre?
- Come si fa praticamente a fare open source? Quali sono gli strumenti, linguaggio, best practice?
- Come faccio a fare un progetto open source di successo?
Fornitura del software e proprietà, licensing, NDA, ecc..
- Che tipi di licenze esistono?
- Perchè una licenza software è importante? Soprattutto nell'open source?
- Cos'è un NDA?
- Posso brevettare il mio software? Come si fa?
Figure / Ruoli in un team di sviluppo: PM, tech lead, ecc..
- Quali sono gli stakeholders?
- Devo necessariamente diventare un manager o posso continuare come individual contributor?
Università vs self-made
- Come fare per diventare uno sviluppatore?
- Devo seguire l'università? Che vantaggi mi da?
- Altrimenti come posso fare?
- Burnout: Quando troppo è veramente troppo?
- Come posso evitarlo?
- Conferenze: Per essere un buon dev, devo partecipare?
- Devo diventare uno speaker?
- Quali sono le conferenze importanti?
- Com'è fatta una conferenza?
- Consigli e suggerimenti per la prima volta da speaker?
- Meetup Vs Conferenze: Dove cominciare e che differenze ci sono?
- Leadership
- Cosa vuol dire leadership?
- Chi è un leader?
- Come posso fare per diventare un leader? A cosa devo prestare attenzione?
- Manager Vs Leader: Quali sono le differenze?
- Perchè è importante il public speaking? E quanto?
- Come posso fare per migliorare?
- A cosa devo prestare attenzione?
Suggerimento di @cadienvan
Questo potrebbe rientrare nel capitolo delle conferenze?
- Partita IVA?
- Tipologie dei contratti?
- Associazioni e donazioni?
- Commercialista?
Suggerimento di @JeyDi
Serve anche qui identificare di cosa vogliamo parlare perchè rischia di essere un buco nero
I concetti più importanti da conoscere per entrare nel dettaglio del mondo tech.
Suggerimento di @JeyDi
Personalmente credo che nella parte tech ci sono moltissimi concetti importanti, ma che rischiano di diventare dei buchi neri, ci sono dei macro argomenti molto molto grandi. Potrebbe esser interessante come prima bozza iniziare a scrivere dei riferimenti per approfondire un particolare argomento (libri, blog, video, altri progetti) con dei consigli su come fare per imparare (ad esempio Data Structure & Algorithms).
- Version Control: Quanto è importante padroneggiare lo strumento di version control che uso?
- Quali sono i concetti fondamentali da sapere?
- Git Flow vs Github Flow?
Il ciclo di vita del software: Documentazione, lavorare in team, fasi tipiche del ciclo di vita, manutenzione ecc
- Quali sono i concetti fondamentali da sapere?
- Diverse tipologie di testing?
- TDD?
Suggerimento di @cadienvan
L'argomento è grosso, capire bene come trattarlo.
- Refactoring: Come approcciarlo e come trarne i maggiori benefici
- Quando farlo? Perchè?
- Può aiutarmi con il debito tecnico?
- Evitare di over-rifattorizzare...può essere un problema?
- Cos'è un design pattern?
- Design Patterns: Quanto sono importanti nel day-by-day?
- Cos'è un algoritmo?
- Notazione per misurare lentezza e velocità
- Data Structures & Algorithms: Quanto sono importanti nel day-by-day?
- Quali sono le strutture dati che devono conoscere?
- Quali sono gli algoritmi che devono conoscere?
- Code Structure & Organization: Avere un codice pulito e ben organizzato, sì, ma come?
- Managing Dependencies: Quando scelgo di reinventare la ruota, e quando invece mi posso affidare ad una dipendenza? Che cos'è il vendor lock-in e come posso evitarlo?
Suggerimento di @JeyDi
c'è una domanda simile nell'open source, qui si potrebbe affrontare il discorso in maniera più approfondita e tecnica
- Cos'è il DevOps? Perchè è importante?
- Quali sono le best practice?
- Quali sono gli strumenti più utilizzanti per fare DevOps?
- Cosa vuol dire CI/CD? Come si può fare? (github, gitlab)
- Etica: Come approccio il tema etica nello sviluppo? Il mio codice è sostenibile? Devo preoccuparmene, oppure un dev non dovrebbe preoccuparsene?
- Esistono diversi tipi di etica? Quali sono?
- AI: Cambierà il nostro modo di intendere il lavoro dello sviluppatore?
- Quali problemi può portare l'AI?
- Come possiamo trarre benefici dell'AI?
Suggerimento di @JeyDi
Eviterei un capitolo descrittivo di che cos'è AI, ma come l'AI cambia lo sviluppo e può aiutare lo sviluppatore.
- Cosa vuol dire sicurezza del codice?
- Quando il mio codice può essere considerato sicuro?
- Ci sono degli strumenti che posso usare per controllare che il mio codice pubblico open source sia sicuro?
- Sicurezza: Quali tecniche posso adottare per rendere il mio codice sicuro?
- OWASP: Cos'è?
- Performance: Sono davvero così importanti? Devo veramente spremere il mio codice per ogni millesimo guadagnabile?
- Come faccio a misurare il mio codice in termini di performance?
- Come faccio a misurare l'impatto del mio codice?
Suggerimento di @JeyDi
Non mi è molto chiaro cosa potrebbe essere
Suggerimento di @JeyDi
In questo momento molto generico...potrebbe essere un libro a parte.