The content here is under the Attribution 4.0 International (CC BY 4.0) license
Throughout my career I’ve met many developers in the beginning of their journey in become a programmer. In general what I observed was common doubts and questions that could be generalized to a broader audience. In this section I’m going to bring all the content that a beginner should start to learn and also further references to take it to the a next level.
Thi is a structured view of this blog, what I think and what I did to reach each section and understand each concept. This is not meant to be followed as it is, instead think of it as a guide that you can check against what you know and what might be next step.
This is what worked for me and might work for you.
Even though the idea is for beginners, experiences developers might find the resources here useful for a review or to share that among other developers. You are also welcome to share what your opinion is, or to share some reference that I haven’t used here.
- My technical reading path - Software engineering journey
- The philosophy
Mental mode for programming
- Programing is not what looks like
- Does the operating system matter? Mac vs Linux vs Windows
- Conflict resolution
The university fallacy
The programming industry
- Before joining the party
- Software engineering, in the developer’s hand?
- Looking for a job
- Algorithms, Algorithms, Algorithms …. Oh Wait!
- The experience fallacy
- Brownfield projects vs Greenfield projects
- Should I have a github profile?
- Looking for help
- I am blocked, what should I do?
- The hero
- To specialize or to generalize?
- Developer conferences
- Speak, share what you know
Choosing the correct programming language
- What is correct?
- For me, it was PHP and the LAMP stack
- Head First HTML and CSS: A Learner’s Guide to Creating Standards-Based Web Pages 2nd Edition
- Head First SQL
- Head First PHP & MySQL
- Introduction to Object Oriented Programming with PHP (Classes, Encapsulation, Inheritance)
- PHP Design Patterns
- PHP architect magazine
- PHP certification
- And then, expand
- Object Oriented Programming (deep dive)
- Functional Programming
- Does it matter? Don’t limit yourself.
- Pick a platform
- The web
- The web
- Service workers
- Real time
The programmer toolkit
- My setup for web development, 2020 edition - Vim, linux, zsh, tmux, Jetbrains and docker
- IDE’s or text editors
- Database Administration tools
- Pomodoro is it worth it?
- Keep an agenda
- Infrastructure as code
- Design patterns
- Readable code
- Document as code
- Pick a cloud provider
- Lambda (AWS) - first impressions
- Deploying git bot release to AWS lambda
- The waterfall
- Test Driven Development
- Continuous integration/ Continuous delivery
- Facilitating meetings
- What is even architecture?
- Architectural styles
- Do I need to architect?
- ADR’s (Architectural Decision Records)
- Representing architecture
- The C4 model
Empirical software engineering
- Taking decisions based in data
- Learning how to learn
- The programmer’s brain - memory and code
- Katas - why, when and how
- Side projects
Where to go from here
- This is just he beginning
- Do not advocate, teach
- Teaching others
Table of contents
- Mental mode for programming
- The university fallacy
- The programming industry
- Choosing the correct programming language
- The web
- The programmer toolkit
- Software architecture
- Empirical software engineering