10 Tips for improve coding and programming skills 2021 | Most useful tips from Devlopology

01. Coding, Coding, and Coding

Why have I put coding at the top of this list? Because it's the most difficult and the same time its central piece of programming By doing coding, you also realize your mistakes in designing, error handling, threading, and then go back to those respective skills to improve. You just can not work in designing only; coding produces output, which is vital to learn and act as a success.By the way, do not stop just after solving the problem, it's always better to throw away your first solution, that is just a prototype, your next solution should address issues, missing requirements which you have found building a prototype.You can also see Clean Code: Writing Code for Humans course on Pluralsight to learns more about writing production-quality code, which can stand the test of time.

02. Reading books

Coding is easier said than done, and there is a massive difference between good code and bad code, but how do you know? Until you have seen a good code and know why a particular code is good, you can not understand the difference.

By reading this book, I have found myself finding problems in my code and applying the advice given in this book every now and then. My advice is if you ever find such books, grab them. I also recommend reading these classic books many times and refer them every now and then.

Another similar book is Effective Java by Joshua Bloch, which is full of good advice. Also, by reading books, you are learning from someone else's experience, and there are only two ways to improve yourself, either by learning from your own experience (which is very limited) or learning from others' experience (which is unlimited).

03. Contributing to Open Source, Signing-up mailing lists

Contributing to the Open source code, especially from Apache, Google, and some other projects, is another way to improve your programming skills and become a better programmer. Just signing their mailing list and the following discussion teaches you a lot. Since most of the discussions happen between good programmers, by listening to them and understanding problem and their approach, solution, and view, automatically develop good programming habits on you To get most of it, do not just sit passive, ask questions, offer your view, but same time value others as well.

04. Practicing Data Structure, Algorithms, and Design related problems

I was thinking of putting that as the second item, but it ended up fourth. In my opinion, this is the most critical of things to do to become a better programmer. Most of the good programmers I have seen and met are really good in data structures, algorithms, and Computer Science basics. By learning these things, you take better advantage of what is available. Since data structure is a key piece of any program, solid knowledge of them helps during problem-solving. Similarly, knowledge of key programming principles, search and sort algorithms, and other well-known algorithms develop programming skills on you. You can join a comprehensive course like Data Structure and Algorithms: Deep Dive Using Java to learn more about basic data structure, their properties, and when to use them in your program. It's one of the better courses I have found on the internet. And if you like reading books more than online courses, then you also refer these books to improve your knowledge of data structure and algorithms.

05. Reading Good Blogs

Reading good blogs is a small part of reading books. How does reading blogs help you to become a better programmer? Well, it does. Since blogs are often written by programmers themselves, and most of them share their personal views, experience, you often find them relevant. Also, blogs are a small piece of information, so it digests well. A blog also helps to learn new technology and new features of existing language and API. Many times, I have seen something subtle or missed things from a really well-known part of Java described in a small blog post. When it comes to reading good development articles, I prefer to go to websites like Dev.to, FreeCodecamp, and Medium, particularly some dev focused publications.

06. Reading codes

If reading blogs help to become a good programmer, then reading code help more than that, but at the same time, reading a blog is easy, but reading the code is tough. Do you see resistance? Then you should do it. Look at code of open source projects, your fellow programmer's code, your existing proprietary code, code from Java SDK, and try to understand how they work, try to see what they are doing and why they are doing. Find patterns, develop navigation skills, initially you will find it boring and difficult, but with time you will develop a good code sense, which will alert you when you make a mistake, help you to spot others' mistakes, gaps, and code smell. This Code sense is one of the signs of a better programmer, they often tend to look, what you missed.

07. Writing Unit tests

The unit test complements the thinking and coding process, and subsequently, help you to design better. Anything which is difficult to test has a chance of improvement. Also, writing unit tests helps a lot in finding better names, better abstraction, better interface, abstract class design, and overall improves code quality. But like coding and designing, unit testing is also a tough job for average programmers, you will see a lot of resistance there. Some programmer writes trivial test, instead of thinking hard on usage scenario. Remember, there is no substitute for thinking through the process, after analysis, design, and development, unit testing is another opportunity to think through scenarios and gaps in your code. Make it a rule, always write a Unit test for your code. If you want to learn Unit testing in Java, I suggest you learn JUnit and Mockito, two essential frameworks for unit testing in Java, and if you need a course, I suggest you join the JUnit 5 in 20 steps course by Ranga Karnan on Udemy.

08. Doing Code reviews

Like Unit testing, Code review is another development practice that helps to become a good solid programmer. Code review helps both reviewer and author, the reviewer improves his code sense and offers genuine advice while the author learns from his mistakes. It often helps that the code you think is rock solid, has some bugs which only other programmer can see, Code review and four eye check does that for you. If you are lucky and get a chance to work in a company that has unit testing, code review as a discipline, then you are likely to be a better programmer than the rest. These two things immensely help to improve programming skills. If you are wondering what to check on Code reviews, I suggest you check if the code is functionally correct, if standard practices have been followed like SOLID design principles and Java naming conventions. Another thing you can check is if there are enough unit tests or not, which is often neglected.

09. Talking to a fellow programmer

Reading is a passive event compared to talking. Talking about a program and discussing that with a fellow programmer, often leads to a better solution, it's natural because your mind tends to involve more when you talk and listen to others. I have then found gaps, missing requirements, bugs, and design flaws while discussing with teammates. In the software industry, where programmers tend to isolate them with their computer, talking, sharing, and doing whiteboard sessions helps immensely. Don't just sit and code, talk, listen, and think and hang out with fellow programmers. Participating in the event also helps. You may also get some useful and practice tips to become a better developer overnight, like this one :-)

10. Participating in Stack Overflow and forums, Commenting in Blogs

This is another form of activity, which help you to revise knowledge. By sharing knowledge, the first person who benefits is the one who shares. Since programming is big and vast, you tend to forget most of the things which you don't use for more than 3 months. Participating in StackOverflow and answering others' queries, commenting on blogs, and forums is a nice little way to revise knowledge and same time correct your misconception. By putting our knowledge in front of others, we not only help others but also put them to the test. Many times you will see someone benefiting from your knowledge, but also you are getting your misconception corrected.