Post

How to Choose Your First Language

How to Choose Your First Language

Lately, I’ve been immersing myself in content from software developer influencers, and I’ve noticed a recurring question in almost all the streams:

“I’m just starting in development. Which programming language should I learn, and what should I build?”

So I thought I’d share my thoughts on this. First, let’s address each question separately. From this point onward, we will work with the assumption that your goal is to land your first job as a developer and start a career.

Which language should I learn?

This is the more complex of the two questions, as the language you should learn depends on various factors, including:

  • The job market in your area or the area where you plan to work
  • Your target job
  • Your aptitude for each language

Let me explain further:

The job market in your area or the area where you plan to work

This is perhaps the most important consideration to take into account. You could spend the next two years learning every aspect of a language, but if no one is hiring developers for that language, you’ll have nearly wasted that time. For example, I’m a Ruby developer, and I love it. However, at the time of writing, the Ruby market in London where I live is quite competitive. While the average salary is on the higher end, most companies are looking for developers with at least three years of commercial experience. Even if the job specs often list certain skills as “nice to have” rather than firm requirements, applying for jobs without meeting all the criteria can make your search more difficult. It could lead to many “we decided to proceed with a candidate with more experience” responses, which could be demoralizing. Therefore, although I love Ruby and think its simplicity and power make it perfect as a first language to learn, I hesitate to suggest it for people looking for their first web development job.

Your target job

Although you can use almost any language for various purposes in today’s environment, certain languages are more suited or provide more opportunities for specific job markets. For example, if your goal is to become a mobile developer, Python wouldn’t be the best choice for you. While there are mobile development projects written in Python, such as those using Kivy, this would restrict your employment options to companies already using it. However, if you’re specifically targeting a company that uses Python for mobile development, then that’s your answer, and you can start learning it.

Your aptitude for each language

This may seem strange, but in my opinion, each language has its own character and idiosyncrasies, which could make it more or less suitable for a specific developer. It’s not insurmountable, but it might require experience to adapt your thinking to a particular language. While this becomes less of an issue over time, initially, it could lead to frustration. That’s why I suggest exploring a few languages before choosing the one, especially since you plan to spend a significant portion of your waking hours with it in the near future.

What should I build?

This is a tricky question, as the answer depends on several factors: the industry and language you aim to work in, and whether you’re building something to learn the language or to enhance your portfolio and showcase your skills. For the former, I suggest following one of the many tutorials available online for building simple applications. However, don’t just mimic the instructions; strive to understand the reasoning behind each step. Otherwise, you might as well have copied the code from their GitHub to yours. Once completed, consider how you could enhance the software with new functionality or improved UI/UX. For the latter, the simplest approach is to identify problems around you and devise solutions. The size or complexity of the problem or solution doesn’t matter; what matters is that you start building something!

Small problems are almost the best place to start, as they generally have the simplest, most straightforward solutions. Once you solve those, you can begin tackling larger and more complex problems. This may seem like a minor endeavor, but solving even small problems trains your brain to break big challenges into manageable pieces. If you’re currently working in an office, look into automating repetitive tasks with MS Office macros. Even if you’re not planning a career as a Visual Basic developer, the goal is to learn the fundamentals of problem-solving and software. Alternatively, you could build a Chrome or Firefox extension to add a button to fix that terrible web app you’re forced to use.

This post is licensed under CC BY 4.0 by the author.

Trending Tags