Monday, October 4, 2021

9 Tips to become a better Software Developer

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

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. 

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:


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 Top coder 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:
  • 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; 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. 

Learn about System Design and Architecture




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?


No comments:

Post a Comment

Feel free to comment, ask questions if you have any doubt.