How to start your journey as a programmer?

If you’re looking at what you can make with a computer, well, we can guarantee that you can do more than just writing some texts, watching a movie, or playing a video game. Most of the funniest parts in a computer remain in how you can manipulate them using code in order to do a lot of useful stuff like a responsive website, a funny application, or even a debugging script.

Starting a learning journey isn’t so easy, but with some help and motivation, you may achieve your goal quickly and more efficiently. And in this article, we will introduce you to the most useful tips and advice that every programmer should know to enhance his career in programming and avoid a lot of mistakes that may cost needless time, effort, and money.

Set up your work environment:

Before getting to actual programming, it’s clear that you need to set up a suitable environment that allows you to stay comfortable while programming like a comfortable chair, a well-organized desk, and a good computer. Talking about computers, here are our recommended specs of a good computer for programming:

  • Brand: Any brand is fine, get the one you like the most.

Learn Algorithms & Data Structures:

In order to be a good programmer, you need to be a good problem solver because any program you write is a solution for a specific problem. And that’s why learning algorithms & data structures should be your first step in the learning process. Having a good knowledge of solving problems algorithmically will help you a lot when solving them technically or writing a program.

A good place to start from is

Make your first “Hello, world” program:

After learning algorithms & data structures, the next step is learning your first programming language so you can write your algorithms in a language that computers understand. Some people may ask “which programming language should I start with?”. Well, it doesn’t really matter since you are getting started but we recommend you start with a well-known programming language so you can easily find the learning resources you need and get quick and many answers when asking questions in the community forums. And align the purpose of this step is getting a clear idea about programming so starting with any language you want is totally fine.

Try different technologies and get the IT culture and intuition:

Now that you started your learning journey. You will need to choose a field to work on like web development, mobile or games development, etc. However, if you don’t have any idea about them and you wonder what you should do now? Well, we got your back!

Since the IT world is very rich and diverse, you can learn and discover at your own pace and using your preferred method.

  • Learning by doing: You can try any technology from any field to get an idea about how it works, its requirements, and its applications. You can start from,, Coursera…

It doesn’t matter how you do it, reading, watching, attending events, or coding. All this will help you choose the right field that suits your skills and ambitions.

Choose your favorite field:

It’s time to choose your programming roadmap! After having a clear view of the IT world and programming fields, you can find yourself more comfortable in choosing a field to follow. Choose a field that you love, one that you are passionate about and you’re sure that you will shine in. Don’t choose a field that has a high value in the IT market or most people have chosen. Being an expert in a field you love is better than choosing a trending field and having difficulties or lack of interest in the way.

Dive into your chosen field:

After choosing a field, now it’s SHOWTIME! You can now improve yourself and learn more about the ONE: Learn the different techniques and technologies, build projects, collaborate with other people, and share what you’ve learned with your community. That’s the best way to make an impact as a skilled expert in the selected field.

Be sure to have the common skills that any expert programmer in that field should have:

Now after getting a good knowledge of the selected field, you need to know that there are some other technologies and skills that you should learn whether you create websites, build mobile applications, or make any other programs because you will find yourself in need of extra in some situations like teamwork on a specific project. And here we talk about version control systems, agile methods, design patterns…

Learn, learn, learn and differentiate yourself from others:

The learning process will never stop. No matter what level you’ve reached as a programmer, you will always learn about what’s new in your field or in any other field. So, never stop learning and growing both your soft skills and hard skills, work hard to achieve what you want.

What’s next?

Now, after starting and progressing in your programming journey, it’s all up to you. Meet other programmers and help them when they need it, learn how to understand other programmers’ code, how to work as a team, and how to find a solution for any problem you face. Also, keep yourself updated with what’s new in the IT world, attend events and competitions.

One last thing: practice, practice, and practice. You can’t improve your programming skills without practicing.

Useful Resources:

In this section, we will provide you with some useful resources that can help you in your way to becoming a great programmer:

  • Github: You can have a look into other programmers’ codes and share your programs with them. You can also find some very useful resources there, such as roadmaps and tutorials.

In the end, there is something you need to know: Follow your ambitions. As long as you love what you’re doing, you will make a great impact and become a great programmer. Just do what you do with love and always follow this process: Learn, build and share!

“Everybody in this country should learn how to program a computer… Because it teaches you how to think.” — Steve jobs

Written by: Sohaib ZOUAMBIA, 2nd year student at ESI and member of CSE Club Scientifique de l’ESI

A club of passionate algerian students who aim for promoting both the contribution of students community to the country’s development, and youth empowerment.