Tejas Mandre | Blog

Don't focus on learning multiple programming languages 👨‍💻

By in software

I started programming in first year of my college. It's been three years now. I write code for various websites like the one you are reading right now, apps and automation stuff. I am sharing my experience further. Initially when I started to code, I did that in C, C++. Back then I didn't know or have any exposure to what software products are like. How are they written, programmed what is front end / back end and so on. All I did was code terminal based programs like simulating a banking system using structures in C and so on.

The realisation

In my second year, college asked to start building mini projects. The first one had to be built using python. I then started learning python more and more in terms of its syntax, semantics and so on heavily relying on the libraries on pyp.org i. I completed my first project which was a voice assistant and it's GitHub repository can be found here. I started exploring more and more in python, learnt about SQL how to connect the two and so on. Later I learnt web frameworks like Django and Flask. So far so good. However I was already in my third year at this point. Looking at the companies like Google, Facebook and other unicorn companies and their job listings, they never asked for any specific programming language. All they wanted was a strong fundamental understanding of programming logic and the workflow of software. These can be tested by checking your data structures and algorithms knowledge. For this you have to be fundamentally very strong at discrete maths, statistics, permutations and combinations along with the computer programming algorithms to formulate your mathematics knowledge in a way that machine can understand. Also after this whenever you are learning any frameworks be it in web development, app development or any other development make sure you have a fundamental understanding of how things are working under the hood. For example if you are considering Django you should make sure how servers work, how are requests processes and how are queries executed on the database by ORM and so on. You should focus more restructuring the code written in components that are scale able a.k.a design patterns. Try building your logic both around Data structures / Algorithms (maths basically) and the software development life cycle.

The Conclusion

Be strong at a single programming language in terms of syntax, data types, objects, classes and so on. Don't just go on learning the programming languages. It's similar like the real world human languages. You master a particular language(mostly English) and you are ready to communicate with the world. It's not mandatory that you learn all the languages that exist in the world. Similarly one programming language with help of which you can get the tasks(which you have formulated using maths) done from the machine you are good to go. Now dig deep into this programming language and master it. You don't want to be a little of everything and master of none !