My humble tips to become a better programmer, developer, and
software engineer.
Hello folks, if want to become a better developer and
looking for some solid tips then you have come to the right place. In this article, I am going to share a few practical
tips to become a better and all-around developer.
Many Java developers ask me how to become a better
programmer? How do I improve my programming skills? Or I am good at
Java but not so good at problem-solving ability etc.
This is a reality, today’s era is full of language experts
than real programmers. It’s easy to understand keywords, methods, and API of
the Java programming language.
Still, at the same time, it’s challenging to solve practical
problems, design reusable, and robust software, and get the best of data
structure and algorithm.
I have often seen Java programmers are not doing so well
when asked to design and code a solution in a limited time, but at the same
time, they are really good with Java concepts and all theories.
Even senior programmers with 4 to 6 years experience in Java programming,
sometimes fail to solve questions like designing coffee-maker, coding Vending Machine, or sometimes even reversing a linked list.
I may be just moving off from becoming a better programmer,
but it’s essential to know your limitations and then work out to resolve those.
If you feel resistant in coding, then you should code as much as possible, if
you feel stressed and lost in designing using Object-oriented analysis and design. You should do a design
using a pen and paper as much as possible. This resistance is what prevents you
from being a better programmer.
I have personally found that coding and designing present a lot of resistance
to an average programmer because most of them don’t do enough coding and
development in their professional job.
By the way, there could be numerous tips to become a better programmer, I will
stick with my list, which I personally follow and which has continuously helped
me.
You may find them useful but if you are on a more senior
level and looking for tips to become a solution architect, you may like to
see how to become an outstanding solution architect course
by Mark Farragher.
10 Tips to Become a Better Programmer or Software
Developer
To become a better programmer, you need to be good at
the data structure, algorithms, designing using OOP, multi-threading, and various programming concepts like
Recursion, divide and conquer, prototyping, and unit testing.
Programming is a combination of many skills, which means it’s not possible to
learn it in a quick time instead, it will come with time and experience, but
that won’t happen automatically.
You can spend five years doing a Java programming job without being a good
programmer. Since most Java interviews focus on theory rather than
programming and coding skills.
Not many programmers practice these essential programming skills. If there is a
mandatory problem-solving programming test, I will bet the average programmer
would have been much better. Anyway, here is my list of things that can help
you become a good programmer.
1. Coding, Coding, and Coding
Why have I put coding at the top of this list? Because it’s
the most difficult and, at 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 that you have found building a
prototype.
2. 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? You cannot
understand the difference until you have seen a good code and know why a
particular code is good.
This is where books come to help; more often than not, authors are great
programmers themselves. They offer their experience in the form of a book. I
love books, but one book that particularly helped me is Clean Code by Uncle Bob.
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).
Remember more is not always good, rather than reading 5
books, I suggest reading two books, which you enjoyed reading multiple times.
These two books are also from my list of must-read books for Java programmers.
3. Practicing Data Structure, Algorithms, and System
Design problems
I thought of putting that as the second item, but it ended
up third. 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 sorting
algorithms, and other well-known algorithms develop programming skills for 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 to these books to improve your knowledge of data
structure and algorithms.
Another thing that is crucial to becoming a better developer
is to learn about System design and Software architecture. This is one thing
that can be the difference between a programmer with 10 years of experience and
an experienced programmer.
You should be familiar with how the system works, how their
individual part collaborates, different architectures like Microservices and
Monolith, their pros and cons, etc.
If you need resources, I highly recommend Grokking System Design Interview course
on Educative. This interactive course and its second part about advanced design
problems can teach you a lot of good things about designing and optimizing a
system.
4. Open Source Contribution
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, listening to
them and understanding the problem and their approach, solution, and view
automatically develops good programming habits.
To get most of it, do not just sit passive, ask questions, offer your view, but
also value others. If you are wondering how to start with open source
contribution, then here are some nice articles from Medium to learn about open
source contribution
5. 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 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.
6. Reading Code
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 the 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 it.
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 spot others’ mistakes,
gaps, and code smell.
This Code sense is one of the signs of a better programmer, they often tend to
look, at what you missed.
7. Writing Unit tests
The unit test complements the thinking and coding process
and subsequently helps you to design better. Anything 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 about 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.
8. 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 programmers 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 are often neglected.
Note— Don’t do the code review in a big company style as the
great Joma does
9. 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 found gaps, missing requirements, bugs, and design flaws while discussing
with teammates. In the software industry, where programmers tend to isolate
themselves with their computers, talking, sharing, and doing whiteboard
sessions helps immensely.
Don’t just sit and code, talk, listen, 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 on Blogs
This is another form of activity that helps you to revise
knowledge. By sharing knowledge, the first person who benefits is the one who
shares. Since programming is
vast, you tend to forget most things you don’t use for more than three months.
Participating in StackOverflow and, answering others’ queries, commenting on
blogs and forums is a nice little way to revise knowledge and correct your
misconception.
By putting our knowledge in front of others, we help others and put them to the
test. Many times you will see someone benefiting from your knowledge, but also
you are getting your misconception corrected.
Every programmer wants to become a better programmer, but not everyone
succeeds. Apart from the natural talent of programming and problem solving, it
requires a lot of hard work, constant learning, and perseverance to become a
better programmer.
The more you do real work like coding, design, Unit Testing,
and Code review, you will become better. If you just want to do one thing at
this moment, I would say go and read clean code.
Thanks for reading this article so far. Please share these tips with your friends and colleagues if you like these tips. If you have any questions or feedback, then please drop a note. If you have any other tips to improve your programming and coding skills, then feel free to share them with us.