What Programming Language Should You Learn First?

Part III of the 'Becoming A Software Engineer' Series


10/2/20233 min read

what programming language should you learn first?
what programming language should you learn first?

Welcome back to the Series 'Becoming A Software Engineer' where I go over 10 key questions I had to ask myself (and answer), in order to successfully transition from a Pharmacist to a Software Engineer 👩🏾‍💻. In case you missed the previous post, you can view it here!

In this post, we'll be looking at the following question:

  • What Programming Language Should You Learn First?

What Technology Should You Learn First?

Getting clarification for your technical learning route can be challenging. But I have a key tip you can use to simplify this process. In the last post from this series (view here if you haven't seen it yet), we looked into different engineering roles and how to decide which one you want to be. By selecting a specific role, you can focus on the technologies and skills associated with this role. Sometimes, choosing what technologies to learn can be the trickiest step, as there are many different suggestions. However, a useful tip I have learnt is to work backwards from a job description.

Search on a job board or LinkedIn for an entry-level or junior role. Read the job description; there should be a ‘required skills and abilities’ section. Make a list of these and use this to design your learning plan.

For example, below is a job description for a role as a DevOps engineer; everything in bold is what I’d learn for the role. I’d list each technology out, starting with a programming language, and use it to structure my learning pathway.

Required Skills and Abilities:

· Hands-on experience with industry-standard DevOps tools and technologies, such as CI/CD pipelines, containerization (e.g., Docker) and orchestration (e.g., Kubernetes).

· Proficiency in command-Line interface, such as PowerShell, Azure CLI and Bash.

· Extensive hands-on experience with cloud technologies, preferably Azure.

· Familiarity with Agile development methodologies and the ability to work in an Agile team.

Desired Skills and Abilities:

· Proficiency in Java programming language and familiarity with Java frameworks.

· Proficiency in scripting languages, such as Python, Ruby, Java.

· Good knowledge of tools such as Harness, GitHub Enterprise, OpenShift and Jfrog Artifactory.

a diagram of a suggested coding learning roadmap
a diagram of a suggested coding learning roadmap

It's important to note that you don't need to learn every technology on the job description. Many people feel that you have to meet 100% of the requirements on a job board but this isn't the case (and often, isn't possible). When starting a new role, it is highly likely that you'll go through a training period where you'll be able to acquire any additional skills or technologies needed for the job. So don't stress! Learn the necessities and the gap will be bridged once you start your role.

Alternatively, you can use a website that has learning pathways already defined for you (we’ll get more into this later). If you are still unsure of what pathway you should take, I’d always recommend starting with HTML, CSS, and Javascript (even if you are not front-end focused, it provides a good foundation) before learning Python and Databases. They are beginner-friendly and easy to grasp.

Its important to note that your first language will always be the hardest. But really take your time to understand it fully. Focus on learning underlying programming concepts e.g. loops, conditionals etc. This will make learning new ones easier!

Happy Coding ☺️!


connect with ruthfultech
connect with ruthfultech