Tips for technologists: Advice for a junior software engineer

Learning to code can be hard and even frustrating, but those who endure manage to strive! The best way to keep going even when you’re not yet seeing the light at the end of the tunnel is to have a passion for code. With passion you will go an extra mile in your learning, and with time coding will become fun – and part of you!

Getting started

Software development or coding is a huge subject to tackle, and it’s nearly impossible to be an expert in all areas. It ranges from mobile, web, and Artificial Intelligence (AI), to Machine Learning (ML) and many other fields.

When you’re first starting out, choose a section to begin with, ideally web. But before that, you need to know the basics, and this requires that you choose a software stack.

At times choosing a software stack isn’t easy because there so many different programming languages and technologies that have been released during recent years. The choice most of the time is driven by what your peers are using.

For web development, you have to choose whether you’re starting out as a Frontend or Backend developer. If you decide to choose web development over other areas, here is a handy guide on the FreeCodeCamp publication that sheds more light on the topic. All in all, you have to choose what to start with, because once you learn a language it is easy to change or learn another language as your requirements evolve.


After you have chosen a stack/language, you then need an environment to work with on your computer. The best way to know what you need to install to learn a language is to visit the official website of that language and download/read the guide to get you started.

Now that your coding environment is successfully setup on your computer, you need somewhere to write and run code, so you see its output. You need to choose whether to use a Text Editor or an Integrated Development Environment(IDE).

A Text Editor is easy to use; all you need to do is download, install, open it and start writing code. Over time you’ll need to add more functionality to the text editor to benefit your code writing, and you can accomplish this by installing plugins. Some of the common text editors include VsCode, Sublime and Atom.

IDEs, unlike Text Editors, arrive bundled with many features to make the development process a breeze. There is a little adjustment needed to make it suit your programming needs. Though one of the downsides is that they can be intimidating for a new user, as they have a lot of icons and menus. I personally prefer using an IDE as it takes care of all my development needs, including code completion, debugging and many others out of the box. Some of the common IDEs include Pycharm, PhpStorm, Webstorm, and Eclipse.

In the modern programming age, you cannot be a developer if you do not use Version Control Systems (VCS) when writing code. Therefore, you will need to add VCS to your workflow and out of all options, Git is the most popular. This will enable you to control versions of your code and to efficiently host and share your code remotely.

Most of the time you will want to store your code somewhere else, in case you lose your computer, so you can easily recover it. The good news is that there are remote tools such as Github and BitBucket that provide a free plan for storing your code. Github is the most popular and also easy to use; within Github you’ll also find many OpenSource repositories.


After learning the basics of a language, it’s always a good idea to go and check out some OpenSource projects on Github that use that same language. This is important because it can enable you to learn more about best practices and also how others approach or implement specific features.

Later on, after gaining some experience in your chosen stack or language, you can start contributing towards OpenSource projects (for example, during Hacktoberfest). It is a way of giving back to the community.


Most new developers ignore code documentation, whether official or not. This isn’t a good practice because later you will encounter unnecessary errors, or even get stuck when writing code – something that can be avoided if you read the documentation. Make it a habit to always check out the official documentation for your chosen language and also try out the code sample or examples included within.

You should also check out other tutorials from sources such as Lynda, Codementor, Youtube and Udacity as well as FreeCodeCamp, Hackernoon and of course, Andela’s blog.

Another great resource used by many developers is StackOverflow. It contains many questions asked by a wide range of developers with different skill sets across the world. Most of the time, when you encounter an error, there is a good chance that someone else already encountered it. Therefore you could find a solution on StackOverflow and a simple Google search may lead you directly to it.


When starting out don’t worry too much about the quality of your code. Quality comes with experience; the more you write code, the better a coder you become.

One thing you should keep in mind is writing clean code from the beginning of a project, as this will pay off in the future, especially when you join a team. Writing clean code is more about following code styles and conventions for a given programming language.

One of the most important aspects of clean code I have come to appreciate is “code documentation”. You should (must) always add comments to your code. This is important because later when you return to your code, you will be able to get a context of what you were doing. You should also note that the you today is not the same as the you tomorrow, therefore keep documenting your code.

Final thoughts

When learning something new, your main goal should not be finishing the project, but rather the learning itself. Don’t feel bad if you haven’t completed a project yet in your new stack or language. First, put more effort in learning as much as you can, as this will benefit your projects and help you to finish them.

Always ensure you share your newly acquired knowledge with the wider engineering and technologist community. There are a lot of platforms or channels you can use to share what you have learnt. One of the ways is to write about it on your blog or website, or share your findings on social media.

Thanks for reading!

If you found John’s blog useful, check out our other blog posts for more essential insights!

Are you a developer interested in growing your software engineering career? Apply to join the Andela Talent Network today.

Related posts

The latest articles from Andela.

Visit our blog

How to Build a RAG-Powered LLM Chat App with ChromaDB and Python

Harness the power of retrieval augmented generation (RAG) and large language models (LLMs) to create a generative AI app. Andela community member Oladimeji Sowole explains how.

Navigating the future of work with generative AI and stellar UX design

In this Writer's Room blog, Carlos Tay discusses why ethical AI and user-centric design are essential in shaping a future where technology amplifies human potential.

Platform and Mobile App Engineering: How They Work Together

In this Writer's Room blog, Usman Siddiqui explores how these engineering disciplines must coexist and work in parallel to provide secure and reliable applications in an ever-evolving digital landscape.

We have a 96%+
talent match success rate.

The Andela Talent Operating Platform provides transparency to talent profiles and assessment before hiring. AI-driven algorithms match the right talent for the job.