A Programming Career
The content here is under the Attribution 4.0 International (CC BY 4.0) license
Throughout my career, I’ve helped many beginner developers start their journey. I’ve noticed that they often have similar doubts and questions. In this blog post, I’ll share the essential knowledge and resources that every beginner developer should know. I’ll also provide some links to more advanced resources for experienced developers who want to review the basics or share their knowledge with others.
This blog post is not meant to be a rigid curriculum. Instead, think of it as a guide that you can use to assess your current knowledge and identify your next steps. Here’s a structured overview of the content on this page:
- Essential knowledge for beginner developers
- Programming languages
- Data structures and algorithms
- Software development fundamentals
- Further resources for experienced developers
- Advanced programming topics
- Best practices and design patterns
- Tools and technologies
I encourage you to share your feedback and resources in the comments below. Let’s learn together!
Motivation
Mental mode for programming
- Programming 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
- Readable code
- Document as code
- Pick a cloud provider
- AWS
- Azure
- Study guide for Exam AZ-204: Developing Solutions for Microsoft Azure - A guide made through notes and self-study guide
- AZ-204 Developer Associate: Architecting Powerful Compute Solutions on Azure
- AZ-204 Developer Associate: Exploring Azure Storage Solutions for Developers
- AZ-204 Developer Associate: Securing Azure Solutions for Developers
- AZ-204 Developer Associate: Troubleshooting and Monitoring Azure Solutions
- AZ-204 Developer Associate: Navigating Azure Service Connectivity and Consumption
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?
- Manifesto for Agile Software Development
- eXtreme programming
- SCRUM
- Starting with the framework
- The idea behind process
- The gap that SCRUM does not help
- Kaban
- Metrics
- Test Driven Development
- Feedback
- Continuous integration/ Continuous delivery
- Facilitating meetings
Software design
- Design patterns
- SOLID
- Object Calisthenics
- Code smells
- The four elements of simple design
- Connascense
Software architecture
- What is even architecture?
- Architectural styles
- Do I need to architect?
- ADR’s (Architectural Decision Records)
- Representing architecture
- 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
Resources
Table of contents
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!