Why learn so many programming languages?



Image adapted from https://teachyourkidscode.com/



Disclaimer: I am in no way projecting my views on people nor am I writing to propose that this is the right way of doing things. This is merely done for educational purposes. Lastly, the interactions here are not AI-generated and references will be made to specific sources where information is taken. They are the results of consultations with people in the field and the ideas they have gathered from all their experiences over the years and my own experiences.


Introduction

Most of the 24 hours within a day, I use most of those hours to ask myself many questions.
Most of these questions revolve around the type of programming language I must learn or be a master of and most times too, I use search engines to find solutions to these questions. I have had a lot of people ask me this question "Daniel, why Tech?".

This has always been my answer "In this era of the 4IR, technology forms the basis of advancing your career". Throughout our conversation, most of the questions and interactions will also revolve around which tech stack is important, why you should learn them, and what they are used for. These questions will be answered in this article.

I started this journey when I was introduced to a course organized by Ithemba Labs, Cape Town in 2019 "Short Course in Computational Physics using Python". Although I have experience using Matrix Laboratory (MATLAB) for computational purposes, I saw this course as an avenue to advance my data analysis capabilities in my research. Also, coming from a Natural Science background (Physics), analyzing and interpreting data forms one of the core functions of a good scientist coupled with good and effective communication skills so why not engage in learning these languages to help analyze data easily and effectively.

Different Programming stacks offer one the ability to be agile, move effectively between different fields, and apply the knowledge acquired to solve a specific problem.

So why learn a lot of programming languages?

Consider this scenario: Imagine you are a carpenter (woodworker, joiner, cabinetmaker) and you are required to produce kitchen tables. If the only tool you have in your toolbox is a hammer, apart from nails, all other screws, or hinges will be "hammered". The programming languages you learn can be likened to that of a toolbox where each tool performs a specific function. You do not need to know everything about a programming language. When that tech stack is needed, you pull it out of your "toolbox", do a lot of research about it using the appropriate tools (search engines), and apply the language accordingly - "Thabang (Senior Software Engineer at Ithemba Labs, Cape Town)".

Whether you want to be a software engineer, a data scientist, machine learning expert. a web developer (front-end and back-end developer), you always need to be abreast with the changes within your respective field alongside the language you need to learn to make your job easy.

There is a certain group (Group 1) of people of the view that, if you learn a lot of these languages, you won't be able to be good at all these languages. Just be a master of one and use that effectively. On the other hand, another group (Group 2) is of this opinion, learn as much as you can, apply the knowledge in projects, and keep learning, you might not know when the knowledge acquired will be useful. So which one should we choose? Group 1 or Group 2?

In this era where companies look out for candidates with knowledge in more than one programming language, why master only one?. I will paste here a list of job descriptions that companies look out for in a prospective candidate.

Below is a job description for a company looking for the position of a Business analyst.

1.
  • At least 3 years’ experience as a Business Intelligence Analyst or equivalent (data analyst etc.) including experience in data analytics, BI methods and tools, data warehousing, and the data life cycle.
  • Relevant tertiary qualification in business administration, computer science, mathematics, statistics, or a related field.
  • Experience in identifying, quantifying, and subsequently delivering value on how to solve business challenges using data.
  • Experience with stakeholder engagement.
  • Experience in working with data on cloud platforms, such as AWS or Microsoft Azure
  • Experience in building data visualizations using tools such as Power BI.
  • Experience in using SQL to prepare and analyze data.

Based on the above job description, you need to have experience in any of the two cloud platforms (AWS or Azure), know a visualization tool (Power BI), and have experience in using a query language (SQL). 


Consider another job description for the position of Software Engineer.

2.

  • National Diploma or Bachelor’s Engineering degree in Information Technology or Computer Science
  • Minimum of 3 years+ working experience as a C# .net developer (.Net Framework) with the following technologies: MVC, .Net Core, WebAPI’s, SQL Server
  • Must have working experience with the following technologies; user controls and web parts, WCF and ASMX web service, jQuery/ Javascript/ JSON, HTML/ CSS, Visual Studio, Web Essentials OO/ SOLID. Git
  • Proven experience with ASP.NET view state management, form validation controls, and .NET controls is required
  • Proven track record in taking projects through the Software Development Life Cycle.
  • Understanding of Continuous Integration, DevOps, and SOA
  • Excellent verbal and written communication skills
  • Nice to have: Message Queuing (RabbitMQ or other), Amazon native cloud services (e.g. EKS), Unit Testing, Code Coverage, Code Metric, Containers, AWS CI/CD, Delphi, MySQL, ELK Stack, New Relic
  • 2+ years in the retail, logistics or credit sector is advantageous
The highlighted words give you an idea of what is needed for this position.

One question that keeps recurring is this "Do these companies cut down costs by hiring for a single role whilst they might need two or three people to perform this task?". A question most companies won't answer. Most companies are working to have a high profit margin by applying effective, minimal tools, and getting the best person to perform the tasks of three people.

In one of my interactions with a friend, this was what he said considering this topic. He said "If he were to learn any programming language as a stepping stone into tech, he would first look at the industry he wants to pivot into and learn the appropriate languages for that particular sector" - M. Katlego ( Software Engineer at Ithemba Labs, Cape Town).

Conclusion

Do you have to learn a lot of programming languages or you must learn programming languages relevant to the field you want to pivot?

I would go for the latter. 

This is my reason: Learning a lot of these languages does not guarantee a high acceptance rate into the particular tech field. Based on my experience with recruiters, these are what is required to get an entry-level position in any field; experience (applicability of that programming language), projects (what problem have you used that language to solve?), and portfolio (you must have either a web-based portfolio or an online repository of your projects).
Hence, if you want to pivot as a Data Analyst, learn the languages relevant to that field likewise if you want to pivot as a Software Engineer. 




Be specific in your search as you want to pivot into TECH and learn languages specific to that particular industry. 

Thanks for your time reading this blog.


"I always want to share my ideas about my skills and experiences and I will in the same manner welcome any comments whether good or bad". 





Daniel Kwasi Kpeglo.

Physicist| SQL| Python| HTML| CSS| JavaScript| Looker| LookML| BigQuery| Power BI| Tableau| GCCP

GitHub Link: https://github.com/Daniel-Kwasi-Kpeglo


Comments

Popular posts from this blog

Creating a Simple Server that sends the message, "Hello World" , using Nodejs

The DO's and DON'Ts of owning a Personal computer.

Does your business need a website?