Well! Programming is fun once you understand it and the good part is a good programmer get a huge paycheck from Top Tech Giants Like (Google, Amazon, Microsoft, Facebook & Apple).
The best part is Programming also improves your critical thinking capability. Programming is all about writing optimized and quality code.
Below are some of the programming skills of a good programmer.
You need to put a good amount of effort into all these points and then you become a good programmer.
Point 1 and Point 3 are the same, For becoming a good programmer you should understanding all topics of data structure and algorithms, Once you know the algorithms then writing optimized code is easy. We learn different algorithms to write so we can write optimized.
Ultimately all big Tech Giants during there interview looking for people who have good hands of writing optimized code.
Point 2 is not that difficult just need a good command in any programming language Like JAVA or Python or C++ etc
Point 4 comes from practice. Once you understand algorithms then you need to practice lots of problems and write every problem with production-level code
There are multiple Online materials that are there from which you can take help.
For Improving Point 1 and Point 2,
You need to learn all topics of data structure and algorithms in the below sequence
Spent a significant amount of time in all topics and practice
Some Of the Online materials which can also make the preparation process easy
GeeksforGeeks: This website is the bible of Algorithms. Here you will find millions of problems for Practise. They have arranged all these above topics separately. All software Engineers must have gone through this website at least once. Because whenever we need to switch organization we need to check this website
Logicmojo This is Online Course for Learning Programming. It teaches all the techniques of writing optimized code using algorithms and data structure. Although it’s a paid course but a good investment. Nice tutorials to learn all the concepts and practice those techniques in their coding editor only. Along with it, they also provide assignments for practice algorithms.
For beginners, they provide tools to analyze the code so steps by step execution of every program can be also checked, along with that they provide online coding tests. As they provide lifetime subscription, eventually helps every time during switching the organization
visualgo This is especially for Beginners because there are lots of sorting and searching algorithms that are there. They provide animation diagrams and tools so you can see the flow of the code. Different Boxes, tables, and all those stuff to learn to program.
Now Once you understand the concepts then need to work on Point 4, That it writing production level error-free code. As I said it comes with practice only.
You can follow the below resources to practice code
Leetcode: Leetcode has a huge collection of problems ranging from Easy, Medium, and Hard. If you just open the practice section here, a huge list of programs is there for practice. So you start doing practicing the program, start from easy then gradually move to medium and then Hard.
Topcoder: This is for advanced programmers. After leaning and practice from the above resources, then at the last take a taste of topcoder also. World top programmers come to this platform to practice code. If you feel that you become an expert in this field then give a shot at TopcodeR also.