DEV Community

Maria Luisa Campos
Maria Luisa Campos

Posted on • Updated on

The solidly roadmap to start working with Software Engineering

Illustration of a woman in a desk with a computer
Illustration from Adevait

In my first year at university, I didn't have any idea about where I was supposed to go or what I was supposed to do. I just knew I wanted to be a developer. So I started to look for some roadmaps to help me with this. The problem is that most part of the roadmaps advises us to start with Programming Logic and then move to a language, for example. But I don't agree with this approach. In my opinion, people are playing down that.

And speaking of my opinion... let me bring a polemic one which is the core of this post: yes, I believe that graduating is important in your career. Not to have a diploma, a certificate, etc, but to have the knowledge that a university can give to you and most roadmaps and online courses don't provide to us. By the way, the market has not been easy for entry-level developers and it's imperative that we have a good curriculum!

That's why I am writing this, to give you an initial roadmap with knowledge beyond programming according to my experience as a junior developer who is almost graduating and also completing one year of working soon. This roadmap will give you rich knowledge to study about development and other important topics which will help you to be a well-versed Junior Software Engineer. Let's go!

OBS: Links are just suggestions for some subjects! Be curious!

1. Introduction to Programming and Programming Logic

What is Programming and how it works | In and Out Instructions | Variables | Logical and Relational Operators | Conditionals | Repetition Structures | Functions

Some good links:

2. Algorithms, Data Structure and Paradigms

Asymptotic notation | Recurrence | Recursion | Sort and Order | Search | Stacks and queues | Linked Lists | Pointers and Objects | Hash Tables | Trees | Object Oriented Programming

Some good links:

Some good books:

  • Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein.
  • Grokking Algorithms - Aditya Bhargava

3. Git and GitHub

What is Git and GitHub | Version Control | Git Commands | SSH Keys | Resolving Conflicts

Some good links:

4. Computer Networking

Networks | Addressing | Protocols | OSI and TCP/IP and its layers, protocols, etc

Some good links:

5. Choose your path in programming

  1. Web or mobile development?
  2. If Web, Front or Back-End? If mobile, Android, iOS, Flutter...?
  3. What stack (language, framework...) are you going to focus on at this moment? One tip for this is to study the market and see what the jobs are requiring, for example.

Create your own roadmap on this step for what you are going to work on, but, for example, if you choose to work on the Front-End, don't ignore the Back-End! It's important to know at least the basics of how it works.

Never forget: you must practice and create your own projects for your portfolio.

Some good links:

I repeat: be curious!.

6. Data Storage

Some good links:

Some good books:

  • Fundamentals of Database Systems - Ramez Elmasri e Shamkant Navathe

7. Software Testing

Unit Tests, Integration Tests, End-To-End Tests... knowing how to test your code and your application is really important. What you will use here depends on the language, framework, etc. For ReactJS (a JavaScript library), for example, it's commonly used Jest and React Testing Library.

Some good links:

8. Software Engineering skills

Software Process | Software Documentation

Some good links:

Some good books:

  • Software Engineering - Ian Sommerville
  • Modern Software Engineering - David Farley

Finally, I have to say one more time: Be curious! This is an advice I always give to my friends or any other people that are studying to become a developer. Be curious. Go after to really understand what you are doing. Know how to explain about WHAT and WHY you're doing what you're doing. Do not turn on automatic mode. Curiosity and consciousness are keys. Let's learn!

If you think this Roadmap is missing something please put your contributions in the comments! Let's help our community :)

Top comments (0)