To Learn a New Skill or Deepen Expertise?


As a software developer who wants to grow and become an expert in the computer science field, I know that I need to be constantly growing my skills, learning new frameworks and languages, and deepening my problem-solving skills. Anyone who works in the computer science space knows that we must always stay up to date with the latest technologies.

The dilemma I am facing as a developer that is trying to grow my portfolio is whether I should be learning new languages and frameworks, or becoming more of an expert on the languages and frameworks I already know. Should I be widening my net, so I can grow my resume skills and meet the minimum requirements on job applications, or should I be on the path to the top 1% of a specific niche so I can be exemplary in what I do know?

With those questions in mind, I have been able to reflect and come to some useful insights for anyone contemplating the same things:

1. Pick your path.

The first step in answering these questions is to ask yourself what you want to do in the computer science space. Naturally a Front-End Web Developer will need to use different technologies and learn difference languages than a low-level CPU programmer. This step can be a bit tricky when you are brand new to programming, so in those stages I do believe it is useful to try out different languages and get a taste of different things. Once you have figured out what sounds like the most enjoyable future position for you, then you can narrow down what type of programmer you want to be.

If you aren’t 100% sure, which I am still in that boat a bit, then you can at least figure out a language you wouldn’t mind starting with. I recommend looking up the most popular and widely used programming languages and learning one of those, as it will make it more likely that you will be building a useful skill.

Statistic: Most used programming languages among developers worldwide, as of 2021 | Statista
Find more statistics at Statista

2. Figure out what your path requires.

Once you have made a rough estimation of what you would like to do, you can figure out which languages and technologies are most often used in that career. If you are going to be a Web Developer, you would likely want to use Javascript and Node.JS, and then learn some of the more popular frameworks in that space, such as React or Angular. If you wanted to be a Data Scientist, you would probably want to invest your time in learning R and Python. Since there are numerous languages and tools you could learn, narrowing down to a discipline will make it a much more palatable group to choose from.

10 Most In Demand Job Titles for Computer Science Majors
https://www.geekwire.com/2012/top-cities-employers-computer-science-grads/
3. Find the balance between diversity of knowledge and expertise.

At this point, you have figured out a list of languages and tools used in your preferred career path, but that list is still probably quite large. This is when you must strike a balance. I recommend picking 1 or 2 languages to become very proficient in, and then a couple more languages and frameworks to have limited knowledge of, but still enough experience to list on a resume and explain something you have worked on with them.

The most value in this approach will certainly be before finding your first big job in tech. I believe once you have landed a job that uses a certain language, you will become very proficient in that language by default of using it on a daily basis and producing consistent output with it. This is the point where you can sink into whatever knowledge is required for your work, and build up your expertise in that lane. From there, you can continue to pick up a language or tool here and there in your own time, but it will be supplementary to the main knowledge you grow at your day job.

Summary

Hopefully I was able to help provide you with a framework on which you can start to build out your skills and expertise. Being an expert in a couple of things, and then having some supplementary marketable skills to compliment, is going to make you a well-rounded developer that can fit into any role. The most important thing will always be a willingness to learn and grow. As long as you can problem-solve and learn quickly, you can be great in any position.


Leave a Reply

Your email address will not be published. Required fields are marked *