Keywords
- practical
- real-world
- preparation
Sections
Process
- problem: most people entering their first job, or whose first job was at a smaller unstructured shop (like an agency), don't have any idea about how a functional software development shop is run. They have to learn on the fly the meanings of many buzz words. They might have to learn new tools. And they have to learn a slew of cultural norms in terms of how the team communicates and builds software together
- topics
- agile. What is "agile"? What are the most popular forms of agile? What forms of agile are you likely to run into in the real world? Who are these people who think they are the authorities on agile? What are "agile-ish" and "agile-lite" and "agile a la cart"? Standups? Demo days? Sprint planning? Sprint kickoffs? Postmortems?
- kanban. What are the advantages and disadvantages of kanban? How does it differ from agile? How does it work with agile?
- source control. Main/release branches. Feature branches. Merging.
- advanced git
- continuous deployment. Continuous integration. Test suites and automation.
- code review. Norms. How to do a good code review. How to receive a (good or bad) code review. How to stay focused during code review. How to capture non-essential items for the future.
- pairing
- RFCs
- resources
- [[The Phoenix Project]]
- [[Sandy Metz]]
- [[John Cutler]]
Architecture
- problem: no education prepares the person for the size of any actually used software application.
- topics
- what is architecture?
- databases and when to use relational vs nosql.
- minimum viable architecture
- when to introduce new architecture
- front-end architecture
- API design
- resources
- so many books to pick from 😛
- [[Kent Beck]]
- [[Sandy Metz]]
Reasoning
- problem: software development is as much about reasoning (around code, around a problem, around org dynamics, around business requirements) as it is about writing code.
- topics
- how to debug
- how to read code
- build vs buy
- consultants
- organizational will
- competing goals, compromise
- the minimal amount of business stuff required
- resources
- book?
- [[Sandy Metz]]
Leading
- problem: in software, talented coders are often promoted into leadership roles when they have no business leading teams/organizations. It's a different skill set and if a more junior software dev aspires to leadership roles they need to develop leadership skills in parallel.
- topics
- "IC vs management track". leading isn't glamorous or ego-assuaging and for many it's unfulfilling and/or a terrible idea
- leading while not a leader, leading peers
- leading a team
- leading an organization
- essential leadership skills
- listening
- taking responsibility
- mindfulness
- decision making
- resources
- [[An Elegant Puzzle: Systems of Engineering Management]]
- [[The Five Dysfunctions of a Team]]
- [[Camille Fournier]]
- [[software lead weekly]]
Other possible topics
- History of software dev
- Time management
- Continuing education
- Building a reputation
- talks
- writing
- community participation
- (other [[badass.dev]] stuff, basically)
By the way I really like these things. i got a lot from your painstorming Notion. I won't have much to say in terms of comments when it comes to this but I appreciate being able to peak over your shoulder.
BTW i like Cutler
BTW that is all