Dev guide
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.
Motivation
Mental mode for programming
- Programing is not what looks like
- Does the operating system matter? Mac vs Linux vs Windows
- Soft-skills
- Leadership
- Conflict resolution
The university fallacy
Bootcamps?
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?
- Socialize
- Developer conferences
- Meetups!
- Speak, share what you know
Choosing the correct programming language
- What is correct?
- For me, it was PHP and the LAMP stack
- And then, expand
- ReactJs
- VueJs
- Object Oriented Programming (deep dive)
- Functional Programming
- Does it matter? Don’t limit yourself.
The web
- Pick a platform
- The web
- CORS
- The web
- Service workers
- Real time
- REST
- GraphQL
The programmer toolkit
- My setup for web development, 2020 edition - Vim, linux, zsh, tmux, Jetbrains and docker
- Terminal
- Git
- IDE’s or text editors
- Database Administration tools
- Productivity
- Pomodoro is it worth it?
- Keep an agenda
- Docker
- Kubernetes
- Infrastructure as code
- Design patterns
- SOLID
- Readable code
- Document as code
- Pick a cloud provider
- AWS
- Azure
Practices
- The waterfall
- Winston W. Royce 1970, described the model known as waterfall, but didn’t attributed a name to that.
- The waterfall terminology first appeared in 1976 by T. E. Bell and T. A. Thayer.
- Agile?
- Test Driven Development
- Feedback
- Continuous integration/ Continuous delivery
- Facilitating meetings
Software architecture
- What is even architecture?
- Architectural styles
- Do I need to architect?
- ADR’s (Architectural Decision Records)
- Representing architecture
- The C4 model
- Monoliths and microservices
Empirical software engineering
- Taking decisions based in data
Learning
- 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
- Introduction
- Motivation
- Mental mode for programming
- The university fallacy
- Bootcamps
- The programming industry
- Choosing the correct programming language
- The web
- The programmer toolkit
- Practices
- Software architecture
- Empirical software engineering
- Learning
Got a question?
If you have question or feedback, don't think twice and click here to leave a comment. Just want to support me? Buy me a coffee!