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
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.- 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
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.
- 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.8. Learn Your Tools
9. Learn about System Design and Architecture
- 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