5 tools that boost my productivity as a programmer
5 tools that boost my productivity as a programmer
Sourcetree is a free Git client for Windows and Mac that simplify the way you visualise and manage your repositories. It has a low learning curve for beginners without losing powerful features for advanced users.
The main reason I use this application everyday at work is because it can handle multiple repos in a single window. I find this feature highly productive as it enables me to save plenty of time and mental effort when switching around projects.
In my workflow for instance, I work on a web app that makes API requests to a server.
Having the latest code base enables me to always develop according to the most recent change. Moreover, I can also work on a few modifications in the back end as is usually the case when requirements change.
Another eye catching feature that helps making my life easier as a developer is the illustration of branches, both local and remote in a colourful and easy to understand way. I find it easy to see where remote/master branch is located within a quick glance.
The elements on the GUI, including commit, pull and push buttons are intuitive to use. They are the buttons that I use most and are found in the upper left part of the screen, the location which users tend to look first.
GitLens — Visual Studio Code extension
When working in a team, I use Visual Studio Code mostly because of this extension. It makes collaboration awesome easy, simple and straightforward. I find myself significantly more productive — without adjusting my workflow to use another software.
For example, on working on a new issue, I want to know the last person who worked on a particular file — I can use git command line. But I need to think of the command to use if I can still remember it. Otherwise, I need to look for it, which takes time and results in an unneeded distraction.
I can also use GUI tools such as SourceTree or GitKraken by going into history or log and looking for the last author. I can similarly use Git Blame options to get a list of codes modified by authors. I usually do this when using Sublime Text as it’s blazing fast.
However, with the GitLens extension, it’s all in the same window within one application. On opening the file, the name of the authors and the person who last changed the file is displayed.
If I don’t understand a part of this file, I can directly ask the person about the change and/or the reason behind, depending on the requirements. I don’t lose precious time and mental energy trying to understand codes that I have not written. If the new change requires me to invest too much effort, I prefer delegating it to the person who wrote it.
Moreover, by using the Git Blame feature in GitLens — the Git icon in the tabs to the right, I get a colourful illustration displaying the commit message, the author and the number of days or month passed.
I use this feature to determine when a change was made, by whom and which other part of the file was modified during the same commit. I find this process useful for avoiding regressions.
Postman is a tool that facilitates API Development. You have different pricing plans ranging from free to enterprise. I find the free version complete enough for my day to day usage, as I am primarily a front end developer. As a programmer or tester, you have the benefits :
- of switching between a light or dark theme, depending on your preference
- a simple interface with exact balance between screen elements
- collections that you can share
- workspaces for working on different projects in a single window
- automated testing that can be integrated with your CI / CD pipeline
I use postman primarily to retrieve data from the server with APIs calls. I can cross check without having to put endless debuggers or console logs in my codes to understand the data and the structure.
I usually use this data with modifications as my test data when working on unit tests. There is also the option of Design & Mock in Postman that I have not used to date.
Additionally, I can also set environment variables that enables me to change only part of the requests by only modifying the variables — for example, I can set a variable home with 127.0.0.1. If tomorrow I want to connect to another server, I just need to change the value of the variable.
I also like using the duplicate tab during my workflow — so that I can simply change a parameter while keeping the previous one intact. I can return to it without any modification.
By default, postman on my machine takes Monaco font if installed, which is a nice looking readable font.
I can also change the Headers and Authorisation values. Postman is such a powerful development tool that can additionally enhance my productivity if I learn more about the features.
Typora Text Editor
Typora is an excellent free markdown editor and reader with a rich set of Theme Gallery. It offers a distraction free minimal experience, with live preview and beautiful fonts.
With pandora installed, you can even export to various formats such as PDF, docs, EPUB among others.
There is also the characters, words, lines and minutes to read count — that gives a progress on your prose.
But my favourite couple of features in Typora — that I think has been inspired from iA Writer, is the Focus and Typewriter Modes. I can focus on one paragraph at a time and be more productive in writing and planning without the need for constantly trying to edit whatever I have just written down.
In my experience, Typora has proved to be a highly stable application that has rarely crashed with no important document lost since the time I started using it — around two or more years ago.
The main reason for me to use this editor is because I try to write everything down following the concept of Getting Things Done Methodology by David Allen.
Otherwise, I was previously using Sublime Text to jot or copy and paste ideas or snippets throughout my working day.
You also have a Source Code Mode, an Outline Panel and custom themes.
I mostly use this tool for :
- daily, weekly and monthly planning routines
- writing down and elaborating on important tasks
- writing down ideas that could be useful later
- noting important things as memos such as a list of things I need to do at the bank
- writing and editing communication documents such as emails, chats that need to be precise
- writing technical documents and/or descriptions for tasks, issues, user stories, comments, epics — I try to communicate well in writing and this requires clear thinking and planning which I believe is best done through simple, precise and direct writing.
Additionally, I find writing down a series of questions before attempting to solve a problem highly useful. I try to think about different situations than I can attempt — or different point of views. For example :
- Is this task completed or should I confirm with the product owner ?
- For a task that I am delegating, is the Definition of Done or Expected Outcome clear enough ?
- What if the feature updated broke something else ? Should I check again in the test suite ? Or should I check the feature status from the tester ?
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks.
I find myself more productive using this method while also reducing procrastination on big complex tasks such as coding validation rules in a long form.
You have multiple ways to implement the Pomodoro technique, depending on your nature of work. In today’s modern office with constant distractions, both online and offline —focusing on work that requires full attention is difficult. We often fancy checking Facebook, Instagram or Twitter to divert ourselves from our monotonous or routine jobs.
I find doing focused work almost impossible, without full concentration. I certainly cannot multitask. Even thinking of doing something else distracts me from doing my current task well. When my Angular app is compiling, I try replying emails or chats. However, I find it arduous to focus back on the development I am doing.
“Deep work is the ability to focus without distraction on a cognitively demanding task. It’s a skill that allows you to quickly master complicated information and produce better results in less time.” — Cal Newport
When focusing on deep work such as programming, writing or planning, I prefer putting my computer or laptop on Airplane mode to prevent notifications from disturbing me.
Maintaining that level of focus is too intense for a whole day. As average human beings with willpower depletion, we divert ourselves with stuff such as checking emails, crunching a piece of dark chocolate or grabbing a cup of hot coffee with a colleague.
That’s where I find the Pomodoro Technique most effective.
With the traditional timing, 1 Pomodoro represents 25 minutes. I try breaking down my tasks for the day according to a Pomodoro. I try grouping related tasks one after the other. For example, I plan on working on the same feature while deferring issues and bugs for later.
I then have a 5 minutes break — I usually read football and technology news or respond to urgent messages. Or I often take this opportunity to walk and refill my glass of water — unless I am in the flow moment, whereby I prefer delaying the break at the end.
At the end of 4 rounds of Pomodoro, you can take a 15 minutes break. I find it refreshing and on starting back, I can focus as well as I initially could instead of ploughing on complex tasks throughout the entire day, leaving me exhausted.
I try breaking complex problems into 25 minutes chunks. For example, instead of directly implementing a HTML screen, line by line, I prefer writing the codes for outline. I try doing this exercise in 25 mins or so. I then add another task for the positioning of crucial elements. Finally I add a task for improving the CSS if needed. But, I keep the planning process separated from the actual time — even though most of the time, I rarely get the estimates accurate.
I try to get 8 focused uninterrupted Pomodoros during a work day. Sometimes, I can get more — otherwise, depending on the nature of the work and my energy level, I can only get 4 or 5.
As a programmer who wants to improve his or her craft, hard work alone is not sufficient. You need to make it into a habit of working without distractions. Then when you feel tired and can no longer continue, put it a day. Say goodbye and choose to have enough rest.