Over the recent years as a programmer, I have developed some habits that have helped me in my day-to-day work. In the process, these habits have successfully translated into productivity and made me more organised.
I consider these as essential habits that every successful programmer should have. However I find them missing, especially in ‘junior’ developers. In my case, I was fortunate enough to be mentored by some great people who taught me these basic fundamentals. In this post, I share 10 habits that I consider essential for developers to become effective programmers.
#1: Organising is always helpful
As a software developer, we have to work with many files like installers, project sources, documents, etc. It is good to make a directory layout with a separate directory for each topic being worked on. For example, I put all the software programmes in the tools directory, project source code in the dev directory, and technical books or documentation goes to the books directory. Inside each directory, there are sub-directories for different sub-topics.
#2: GIT! Smart enough to version control everything for you
Make sure you put all your project work in a version control system. You can use it for taking backups or for storing revisions. I use github for all my projects, both personal and official. I have a github repository called writings where I store my blogs, articles, and/ or a random list of things. Using a version control helped me in analysing my writing habits.
#3: Don’t fear the command-line
Most young programmers fear the black/ blue/ green screen i.e. the terminal or command prompt. They always look for GUI tools that they can use instead of poking around the command-line tools. I have met many developers who are unaware of the most basic terminal commands. What I have learned over the years is that as a good developer, you’d spend more time on the terminal than on any other tool. Even learning the basics of the command-line scripting can take you very far.
There are tasks that can be performed more quickly with command-line tools than any GUI tool, for example remote SSH. Also, you can automate items by putting commands in a script easily. Every developer should try to at least learn the basic commands like cp, mv, find, grep, ps. One reason why beginners find command-line difficult to use is that they are overwhelmed by the help offered by man [command to show the manual of other commands] pages. It contains so much information that most of the time you don’t understand what to do. I have recently discovered a very helpful node.js module called tldr that gives just enough information one needs to know to use a command.
I find the book Conquering the Command Line by Mark Bates to be a very good introduction to most commands that we need to know.
#4: Master your IDE (tools)
A good craftsman always masters his tools. This should be true for us programmers too. Knowing the shortcuts of your editor or IDE can make you productive and help you in writing less code, or more code in less time, as the case may be. Developers should know refactoring shortcuts like extracting a method or renaming variables. When you use shortcuts a lot, then actions like formatting code become ingrained. You don’t even have to think about it; you automatically do the right stuff. IDEs like IntelliJ and Eclipse have one shortcut that provides a list of all other shortcuts. For IntelliJ it is CMD+Shift+A on Mac or Ctrl+Shift+A on Windows. Always keep a cheatsheet of your favorite tool handy until the time you’ve learnt them by heart.
#5: Being Proactive is always helpful
A good programmer is more proactive than reactive. They should have the initiative and motivation to improve processes and enhance software development productivity tools such as SVN, agile apps or resolving anticipated software bugs.
#6: Write and share everyday learnings
We all learn something new each day. It could be a new command, a shortcut, a new tool, a new language feature or something new in your web framework. Start sharing what you have learned today with the world by posting a small blog post or creating a github repository or confluence page where you can keep all your tips.
#7: Watch conference videos
One habit that I adopted early in my professional career is to watch technology conference videos on InfoQ. Most of the conferences post their videos either on YouTube or Vimeo. Watching good programmers can not only help you in understanding a topic, but it can also motivate you to learn and become like them. Good programmers talk very passionately which is infectious. Most of the technology videos are also hands-on so you can learn how they use their tools or other day-to-day things that are not part of the topic. Often, my reading list comes from these good programmers.
#8: Invest in books
Gone are those days when we can survive with our limited skills. nowadays we must keep ourselves updated with the latest technologies. I find books as the best medium to learn. Whenever someone asks me how to learn a specific topic or how I learned it, then I recommend them a couple of books. The immediate question that I am asked is “Do you have a PDF for the book?” or “Can you refer me to the location from where I can download it for free?”. My answer to them is to always invest in your learning. Buy an original book, be it an ebook or a paperback. When you invest your money, you make more effort to read.
#9: Seek first to understand, then to be understood
Communications are one of the most important skills that we need. We spend most of our time communicating.
So, always pay your attention to analyse and understand the requirement and then give your best to give solutions which meet the expectation.
#10: Exercise, Sleep and Diet
Last but not the least, doing exercise on a regular basis, having minimum 7 hours of sleep and having a proper diet are always helpful. If you go to your work by foot or bike you are ahead of the curve.
While programming isn’t considered a dangerous occupation with a lot of hazards, a surprising number of developers suffer from health issues. Sitting at a desk won’t kill you, but studies have shown that it isn’t as healthy as you might think. I consider the above points as good habits that developers should adopt. They have helped me a lot.
Ankita is a full stack developer, she joined makepositive in November 2016 as Technical Consultant. She is an expert in server-side technologies PHP, C# with ReactJs as client side with mongoDB as Nosql and in a learning phase of Salesforce – Apex. Ankita has a lot of love for programming and travelling!