Getting into programming as a first career or change of career may seem daunting but there is a lot out there to help you learn about being a developer (aka software engineer).

This post is focused on the Python language but can be applied to other languages.

Free online resources

I got into Python programming through a combination of free online resources which did not cost anything.

  • An online course (Codecademy)
  • Community support through Stack Overflow answers, blog sites and tutorials
  • Open-source code and libraries, including good documentation for how to use those or examples of using them

I wrote this list of Python Resources which includes links to some online courses.

Posts by other people which I can suggest.

How to learn Python

Learn Python the right way on

That post is a guide on how to learn Python in such a way you don’t get bored with tutorials that cover a lot of basics before they get to part you really want and in a way that don’t get overwhelmed by the advanced tutorials which don’t give much context.

Data Science path

How I went from zero coding skills to data scientist in 6 months on

If you are interested getting into Data Science with Python as your main tool, I can recommend this article which I came across.

It suggests that you:

  • Learn coding skills through tools like Codecademy and Edx.
  • Learn data analysis skills including how to do database queries.

More than code

I learnt that being able to write code does not make you a great developer. You need to learn to work with others - juniors, a manager, a developer at your level, other teams and departments… Often they don’t mind how you are doing something but care more about what the result will be, when it will be ready and whether it meets the requirements of the business or customer.

These communications skills come from interactions in your company and even if you are not a developer yet you can still practice them.

You can also put yourself in situations like tech conferences, meetups and hackathons where you will interact with people from various levels of experience and different coding backgrounds (or no coding skills at all). You can learn to exchange knowledge or actually work together on projects, without committing to a job or long-term project. This is a great way to work on the technical and non-technical skills needed to be a developer.