How can we improve our programming skills?
To improve programming skills, we need to focus on the following 4 areas.
Programming languages
Data structures
Algorithms
Understanding systems
To keep our answer brief, we will not refer to any book, but will limit ourselves to an overview of each topic.
Each subject is a very interesting subject in its own right. But you can try to catch up as slowly as possible in the long run.
Programming languages
Never limit yourself to one language. Keep learning multiple languages - one methodological, one object-oriented, one scripting, one functional, etc.
Also, do not try to learn more languages in less time. Keep learning the new language regularly each year.
Don’t just focus on syntax. Focus on the pattern of language, its weaknesses and strengths. Understand where each language fits best. Find out what language is designed to provide.
A good grasp of 3-4 languages will give you a very good knowledge about these languages, which will be useful to you.
Even though it is a 10 line program, you have to write the program almost every day.
Data structures
Learn all the basic data structures - array, list, tree, graph, tri, dictionary / map, set etc.
Learn the advanced data structures you can do - suffix arrays, suffix trees, etc.
Implement data structure in the language you know.
Understand the time complexity of the basic operations reading, writing, etc.
Remember data structure support through language libraries (STL, classes, etc.).
Keep playing with them a lot.
Algorithm
Learn all the simple algorithms - sorting, searching, graph algorithms and more.
Learn all the advanced algorithms you can do - Dynamic programming, backtracking and more.
• You need to learn algorithmic complexity calculations.
You need to learn how to customize your custom algorithm as needed.
Keep running many algorithms.
System awareness
Understand the nature of your target OS. What does your OS support? How is the process implemented? Etc.
Understand program sections - data, text, stock, heap, etc.
If your language is dependent on a virtual machine, find out how your VM works at the top level.
Equipment [optional]
Select the appropriate editor.
Prioritize the 'compiler' and design tools that meet the standards.
Learn static analysis tools and profiling tools.
As has happened in most cases - I can only see the full import of that experience from behind. I gradually changed my coding style. And more importantly, the attitude towards the code. (I like to think of myself as a "researcher" rather than an "engineer" - so, actually changing my approach to coding and paying attention to the little things is a big deal to me.) Due to my newly acquired ninja skills, I was able to achieve a lot in the following months. A few months ago, I made my career more challenging and said that this success was due to the skills I had achieved.
I hate to give the essence and a secret idea that you can throw away. But if there's anything I want readers to remove from this article - learning to code well is a long and slow process. This is something you have to develop very deliberately over the years. There may be other ways to do this but I have seen it only work.
Finally
Write, compile, execute, and debug tons of code. Read many codes written by others from popular open source projects.
You must be logged in to post a comment.