Be a Skilled Programmer !

Nandika Jeevantha
4 min readNov 23, 2020

Hi, my friends I am a trainee software engineer in Virtusa and a computer science undergraduate with more than 5+ years of experience in programming. Today I would like to share my ideas regarding a very critical point where today programmers have missed up. Strictly speaking, this is my idea and if you have any objections please leave a comment.

Before writing this article, I would like to get answers to very two simple questions. if you can answer them immediately without referring to any content, only from your mind please don’t read further, the article is not for you.

My first question is can you write a program for quick sort right now within a very little amount of time?

My second question is can you write a program for the binary search right now?

If you can’t the article is for you and read it further.

Dear friend most noobs and also many experienced people in the IT industry have messed up with this,

What is programming?

Many students even in the universities learn very heavy frameworks such as Angular, React, Spring Boot, etc and they think they are doing something called coding!! Making a crud app is not programming. It is trash work. If you think working with these heavy frameworks makes you feel good that you are doing something called coding your end is not too far. A trained machine learning algorithm will take over your job soon. So, as I said before please don’t refer to making a full-stack application (trash work) as programming.

In making a full-stack app I will mention what you are doing is. you are making a full-stack application by following a video tutorial and repeat the same code base after every app you are making (don’t argue about adding new features). In this scenario, a beautiful example is coming into mind.

In the early days in monasteries, monks used to write the holy bible again and again. what they have done in their whole life is copying the bible in the new books. As a full-stack engineer, you have done the same in your life.

Most noobs in today firstly try to learn very heavy frameworks and they have missed the most important part

Problem Solving and Basics.

What I want to highlight is if you can’t write efficient algorithms for practical problems you are not a programmer. Creating a full-stack application all you are doing is converting the business requirement to something called Code. They don’t learn how to write algorithms; they don’t learn data structures and design patterns. and also, they have no in-depth knowledge in one programming language.

Learning many programming languages at once is like learning to play different musical instruments at once. In the end, you will not be able to play any single song out of them.

I think newcomers look at programming languages and think of them as what you need to learn to know how to code. All the languages look different to the beginner, so they imagine that the languages are doing different things.

Those languages are all programming the same underlying system is mostly the same ways. None of them can do very much that the other ones can’t do.

Some people think you should learn different languages so you can learn different programming paradigms, like functional or logic programming.

I disagree. What’s the point of learning a paradigm in some other language if the language you are going to use doesn’t even support that paradigm?

Java doesn’t even support logic programming, but it started supporting functional programming as of Java 8. So now is the time to learn functional programming in Java, not before. And you want to learn it Java-style since its implementation of functional programming will have its nuances.

The other thing is the Video Tutorials. Learning through Video tutorials and following them doesn’t make you a great programmer in any way. The great programmers in the world have become to that state by not following the video tutorials. If you have found any please let me know his or her name.

I think now you have some understanding of what I am going to highlight. Skip the trash work. Become an efficient algorithm maker. Learn the basics and practice them again and again. As a suggestion to develop your skills in the field of programming I would like to suggest the following scenario.

1. Learn one programming language in Depth (I recommend Python)(will take more than one year )

2. Learn Data structures and Algorithms in Depth

3. Learn Design Patterns in Depth

4. Learn to develop the skill Problem Solving as much as possible

Good luck with your future and Stay Home! Stay Safe!!

--

--

Nandika Jeevantha

Trainee Software Engineer at Virtusa. An Undergraduate of Sabaragamuwa University of SriLanka.