At IDR Solutions we are always looking at ways to improve our code for our PDF to HTML5 Converter and Java PDF Library. The most common thought is that coding whether it be as a software developer or a web developer can be improve through the use of tools. Although its quite true that tools help with the process its the person behind the code that makes the code what it is, and this is reflected in the the final product.
Its my belief that as an individual its down to you to improve your developer and programing skills through self learning and other different methods. In this article I will take alook at the top 11 ways on how to be a better developer and programmer.
1. Practice & make Mistakes
The first tip is that you should keep practising the more you code the better you get at it and the more you make mistakes. Why is it important to make mistakes during your practices? The more you code the more you will realize your mistakes in error handling, designing, threading, etc. You will learn from these mistakes and the more you practice your craft the more better you will get.
Create a schedule or structure that you can work from to ensure that you learn effectively and ensure that your spend your time practicing different things such as a different coding language.
2. Self learning from website and books
The most obvious choice on how to improve your skills would be to teach yourself more skills, specifically by concentrating on the areas in which you are lack experience in. A good place to start for most developers and programmers is to read through any technical, educational material available from a variety of sources for example Google,have a website for developers that contain a lot of information and high-quality guides of best practices written by people with experience in various languages. Code academy, Code.org,W3 Schools, and HTML5 Rocks are also a good place to start depending on what your looking for.
Books although considered old fashion by some are a good place to start, it is a good idea to build up a good reading list of technical books. Most technical books are written by authors with years of coding experience.
Reflecting on your code is very important, every-time you fix a bug in your code you should look and reflect back and see how you can avoid creating this error/bug in the first place and how to avoid it in the future. It would be good to practice good programing principles as well. A good book recommendation for this would be Code craft: The Practice of writing excellent code. There also informal rules that are also followed known as ‘best coding practices‘. Also use the reflection to fix any bad habits you have and adopt new habits which are good for you.
4. Learn from other programmers
Try working on a variety of different types of projects. Use every project as a method of learning, doing things your uncomfortable with is good. Through pushing yourself outside of your comfort zone and working with other programmers on tasks you are unfamiliar with you will be able to pick up new skills.
If the opportunity arises, try pair programming with other programmers and developers since this will improve the quality of the code and help you work better as a team member. Whilst working with other programmers use them as learning opportunities, ask questions if you are unsure on how to do something just ask. Ideally make sure if your on a team there are at at least a few senior programmers and developers that you feel like you can learn from.
5. Work on Open Source code
Working on open source projects from places like Source Forge and GitHub and creating a fork of that project is often a great way of improving you skills and developing and programing, and spending time immersed in the code is a quick way to improving your developer and programming skill set.
Also work on reading and understanding other peoples code in open source projects. Write documentation for code you wrote or on open source code this will help you to understand your own code better and help to put you in the shoes of other people.
6. Read Code
Following on from working on Open Source Code, take a look at the code of open source projects, or other programmers code, proprietary code, code from else where and try to understand how they work. Look for patterns in the code and develop your skill, slowly you will develop your code sense. Developing your code sense will allow you to sense when things are not right and allow you to spot mistakes or gaps and allow you to fix things which you may have previously overlooked.
7. Master the programming language(s) that you use or be the Jack of all trades…master of none
There are two options which both work for Developer and programmer, these are either to focus on mastering one specific programming language for example Java and to be the very best at this language. However it can be argued with ever changing technology and programing standards it would be best to be multi-skilled in this field, essential learn more than one language and be a ‘jack of all trades, master of none’, this ensures employ ability on some occasions and opens your eyes to how each language is different.
8. Get Involved in Social media, communities, blogs and mailing lists
Technology has made it easier to learn, essentially removing the barriers to learning, where as before you may have needed to sign up to a class, now its much more simpler since all the information you can find is at your fingertips.
Getting involved in social media, online communities, blogs and mailing lists are a good place to start.
For example By reading the articles on this blog, its making you a better Developer and programmer. How you may ask? Blogs like the Java PDF blog and others are often written by developers and programmers who have had a fair amount of experience in a particular field and, may have a personal view or experience that may be relevant to you and you can learn how they solved an issue.
Often blogs and mailing lists exchange or contain tutorials, guides and information and often highlight new features in new technology, language and API.
Participating on stack overflow, forums and other communities, is really important, since you can learn from these discussions, and by knowing what the problem is half the battle. It will give you a better stance on how to approach issues, how to formulate a solution are all important things to practice. Make sure to ask a lot questions in discussions and offer your own point of view as you will learn nothing unless you actively participate.
9. Write a Unit Test
If you write a Unit test you will find that it will help to complement your thinking and coding process, and thus the result will be you will be better at designing code. By writing a Unit Test it will help you to finding better names, abstraction, interfaced and abstract classes all of which will overall improve your code quality.
10. Do a Code review and send your code review to others to critic
Doing a code review is important, i helps you to become a good programmer and developer and can help you whether you are both the review and/or author. Through reviews you can improve you code sense and through receiving feedback from others, at the same time you can also help others to improve themselves. Quite often Ive found that when you work on code sometimes because you’ve spent so long working on it you don’t notice your own mistakes and only a fresh pair of eyes can spot it. When having your code reviewed, any feedback you get make sure you ask for a more detailed review on any areas that you’re not too confident about.
11. Most important of all…Talk to others and have fun
When developing and programing its often quite easy to get detached from everything, but its good practice to talk code, share and doing white board sessions to brainstorm.
What are your tips on how to be a better developer and programmer? Let us know your thoughts!
IDRsolutions develop a Java PDF library, a PDF forms to HTML5 converter, a PDF to HTML5 or SVG converter and a Java Image Library that doubles as an ImageIO replacement. On the blog our team post about anything interesting they learn about.