Many of my readers, students, and programmers often asked me how to improve their programming skills, coding skills, or design skills. I know it's not easy to be a professional programmer. Apart from programming and coding, you have to be good at communicating ideas, designing solutions and, more importantly, convincing peers and stakeholders. Ideally, you learn all these qualities at your workplace by working with more experienced and smarter people than yourself, but that's just an ideal scenario. Many programmers don't get lucky enough to work with a fellow programmer who helps them to grasp these skills; often, it's your own hard work.
Since most programmers are very enthusiastic about their career, it helps m to learn coding and programming, but after some, they reach a plateau with little growth. This is the period, which separates a good programmer from an average programmer.
The former will remain proactive in learn advanced skills in presentation, design, communication, and spending the time to learn new technology. Still, the average one will just wait for the next of work.
So, what do you do to continuously improve your technical skills? Your programming skills? Here, I will share some of my personal findings, which help me to continuously improve my technical skills.
9 Tips to become a better Software Developer in 2024
Here is a list of practical tips to become a better Software developer,
programmer, and IT professionals. These are the tips I have learned from my
own experience as a professional software developer and you won't find these
tips anywhere else.
Since most programmers spend their life working with one or two business domains like finance, insurance, healthcare, gaming, etc., it's imperative to know your domain as much as your business peers know.
To learn your business domain, you can start by taking online courses offered by your company, talking to your peers, building a relationship with your business, and keeping in touch with the guy who knows more than you.
Apart from knowing your language basics and API, you also need code sense to create applications from scratch. Read code, which is already written in your project, and by reading, try to understand the developer's motivation, what code does, what are assumptions, validations, etc.
One important skill here is navigation; you must learn about shallow reading and keep reading. If you are trying to understand the flow, then no point in going very deep up to API level methods; instead, you just need to go to the point, which decides code flow. On the other hand, you must go to the deepest level while debugging or performance tuning vol.
By the way, reading code will much or, if you don't write enough code. It's the writing part, which teaches you. Reading is just taking input. When you write, you process those inputs and acquire knowledge and produce output. So always write code, if not as much as you read them, at least a good percentage.
For being a good programmer, it's not just to avoid a repeat of your own mistake but also to avoid mistakes, which have lead others to an incorrect path. Books are the best way to learn from others' experiences.
Book authors who have done a lot of work know their subject in and out, they are also authority. If you do not avoid readers than at-least try to read one book in one year. Here is just a small list that you can choose from:
1. Learning your domain
No matter how good you are in programming, you can not design and solution systems for that domain until you have good knowledge of your business domain.Since most programmers spend their life working with one or two business domains like finance, insurance, healthcare, gaming, etc., it's imperative to know your domain as much as your business peers know.
To learn your business domain, you can start by taking online courses offered by your company, talking to your peers, building a relationship with your business, and keeping in touch with the guy who knows more than you.
2. Reading Code and Writing Code
This is the single most important tip to improve your coding skill, no matter whether you program in Java, C, or C++, code sense is a key skill. It's not easy to think through details and turn an idea into code.Apart from knowing your language basics and API, you also need code sense to create applications from scratch. Read code, which is already written in your project, and by reading, try to understand the developer's motivation, what code does, what are assumptions, validations, etc.
One important skill here is navigation; you must learn about shallow reading and keep reading. If you are trying to understand the flow, then no point in going very deep up to API level methods; instead, you just need to go to the point, which decides code flow. On the other hand, you must go to the deepest level while debugging or performance tuning vol.
By the way, reading code will much or, if you don't write enough code. It's the writing part, which teaches you. Reading is just taking input. When you write, you process those inputs and acquire knowledge and produce output. So always write code, if not as much as you read them, at least a good percentage.
3. Reading books
I have often said that learning from others' experiences is the key thing. If you only learn from your experience, then it's constrained, but if you learn from others' experiences, then it's simply unlimited.For being a good programmer, it's not just to avoid a repeat of your own mistake but also to avoid mistakes, which have lead others to an incorrect path. Books are the best way to learn from others' experiences.
Book authors who have done a lot of work know their subject in and out, they are also authority. If you do not avoid readers than at-least try to read one book in one year. Here is just a small list that you can choose from:
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Domain-Driven Designs by Eric Evans
- Refactoring: Improving the Design of Existing Code
- The Pragmatic Programmer
- The Mythical Man-Month
- Coders at Work by Peter Seibel
- Working Effectively with Legacy Code by Michael C. Feathers
- Patterns of Enterprise Application Architecture by Martin Fowler
- Test-Driven Development: By Example by Kent Beck
- Head First design patterns
- Java Concurrency in Practice
- Effective Java
- Java Generics and Collections
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- Clean Coder by Uncle Bob
- Getting Real by 37 Signals
- The Annotated Turing
4. Doing programming exercise
Many sites are available on the intern that contains good programming exercises, also known as code kata; they are good ways to improve your programming and coding skills. Sites like Topcoder also organize coding contest.
Participating in improving your coding and design so-and-so brings awareness
about new algorithms, data structure, and methodology, which is extremely
valuable for any programmer.
Here are a couple of websites where you can practice coding questions:
It's natural for the mind to forget things that are not accessed for a long time, StackOverflow, forums, and participating in discussions on a blog helps to remember things you already learn and builds your authority on the subject. Most importantly, you are also helping someone, which is a satisfactory feeling in itself.
- Project Euler - a series of challenging math problems that make excellent practice problems
- Leetcode - a lot of common coding problems
- Coding Bat - basic programming questions for beginners
- CodeChef
- TopCoder
- Facebook Programming challenge
If you need questions to practice, you can also checkout my list of
100+ Data Structure and Coding Problems
to Practice.
5. Meet people, attend events
If you are lucky to be around a place where the Java community is strong, then attend Java meetup events and programming seminars. This not only helps you to improve your technical skill but also your networking. You will learn with fellow developers and meet peoples who are more knowledgeable than you. It will also help you to motivate and keep you on your toes.6. Participate in StackOverflow, Forums, Blog commenting
This is another way to improve your programming and technical skill. We indeed learn new things every day, but it also tries to forget something equally important.It's natural for the mind to forget things that are not accessed for a long time, StackOverflow, forums, and participating in discussions on a blog helps to remember things you already learn and builds your authority on the subject. Most importantly, you are also helping someone, which is a satisfactory feeling in itself.
You can go to the following sites, can read the discussion on a topic that
interests you
- Reddit/programming
- Reddit/java
- hacker news
- coderanch
- StackOverflow
7. Give presentations
You can also organize small learning sessions in your company for fellow developers. Most of the company has some hours on Friday reserves for that. An hour session on new technology, Coding, Java Concurrency, System Design, Dynamic Programming, may or something useful to the audience can bring many people together.
Believe me, as a presenter, you are the one who learns most. As part of the
preparation, you already sharpen your skills, and by explaining the concept
and answering questions, you only become better.
8. Learn Your Tools
Not many developers invest time in learning tools that can save time later and
make them more competent developers. I always put some time learning existing
tools and building new tools to help troubleshoot, debug, and general support
tasks.
It doesn't matter if it's a full-fledged tool like your IDE or a simple script
that helps you in deployment; you should always put some time aside from
learning your tools and using them regularly. This will not only help in your
day-to-day task but also enhance your reputation as a competent
developer.
If you are keen to learn tools, here is a list of
10 Useful tools for Java developers from git to IntellijIDEA to VisualVM, you can check them out. I have also mentioned links to the various courses
to learn those tools.
9. Learn about System Design and Architecture
This is another topic which many programmers shy away from. They seem too
afraid to design a system and how the whole system works and is happy to work
on their own module. If you want to become a better developer, you must
understand the architecture of your system.
You should also learn about different software architecture patterns like
Microservice, Monolithic, Distributed architecture, 2-tier, 3-tier
architecture, etc. This will help you understand the pros and cons of each
architecture and how tradeoffs are made to meet the requirements and
SLA.
If you want to learn about System Design and Architecture, I highly recommend
you to check out
Grokking the System Design Interview course. Although its focus on system design interview, there are some important
lessons to learn. You can use this course as a launchpad to start your System
Design journey.
That's all folks, these are
9 tips you can follow to become a better Software developer. They do
not just help you learn the programming language you are using but also the
whole ecosystem. They will actually make you the more competent and better
developer you always wanted to be.
I am sure everyone has their own way to keep themselves updated and improve
upon. Let us know what your way of improving your coding, programming, and
other technical skills are?
Other Java and Programming Articles you may like to explore:
Thanks for reading this article so far. If you like these tips for becoming a better software developer, then please share them with your friends and colleagues. If you have any questions or feedback, then please drop a note.
- The Java Developer RoadMap
- 10 Books Java Developers Should Read
- 10 Frameworks Java and Web Developer Should learn
- 20 Libraries Java developer should know
- 10 Free Courses to learn Spring Boot in depth
- My favorite free courses to learn Java in depth
- Top 5 courses to learn Spring Framework in Depth
- 10 Free courses to learn Maven, Jenkins, and Docker for Java developers
- My favorite free courses to learn Docker
- 7 Free Courses to learn Kubernetes
- 10 Best Udemy Courses to buy on Black Friday Sale
Thanks for reading this article so far. If you like these tips for becoming a better software developer, then please share them with your friends and colleagues. If you have any questions or feedback, then please drop a note.
This is a great article. I wanted to be a software developer once, but I went in a different direction. Now that I wanted to open my little business, I realized that I could not do without software. Now I think how I can solve this problem.
ReplyDelete