5 Additional Skills a Developer Should Learn To Improve Productivity

5 Additional Skills a Developer Should Learn To Improve Productivity

These skills ease your work

I have been working as a software developer for more than 16 years. I have developed few skills in my early career that have helped me do my work efficiently and deliver a good quality code. I can not take the credit myself. It was my seniors who guided me and a little credit goes to the kind of work I got early in my career.

These skills are not the core skills like you study in textbooks of Software Engineering. Few call these auxiliary skills. But I think these are as important as any other skill required to do your job.

Linux Command Line

After learning the power of the command line interface I have never looked back. The shell of Linux is so powerful that it can solve a lot of your problems.

I have seen many developers that do not like to use the Linux terminal. They tend to install a lot of tools that help them avoid the command line interface. As a developer, it’s not just difficult to stay away from the terminal but inefficient as well.

Learning how to use the Linux terminal for your daily tasks makes you much more efficient than using the tools with fancy GUI. The terminal gives you much more power than these tools can ever provide.

Automate all repetitive tasks

I hate to do repetitive tasks again and again. Over the years I have learned tools and languages to automate all the repetitive tasks I have to perform.

Anything that can be automated, should be automated. This frees you up to focus your attention on more important tasks.

I recommend automating tasks like tests, deployment on the servers, triggering tests on code commit, etc. CI/CD has always been a top priority for all the projects I have worked on.

I apply this principle not in my professional life but in my personal life as well.

Test-Driven Development

There are enough arguments in favor and against TDD. I certainly go in favor of it. It took me years to realize the importance of this methodology.

I hated to write tests in the beginning. It did not take me too much time to see the advantages of TDD. We could catch the bugs while writing the code itself. Tests were helpful especially when a major change was done.

We never had 100% coverage, but we make sure the complex parts of the code are covered.

Learn and create your own Shortcuts

All developers spend a lot of time on one or more IDEs. Learning the keyboard shortcuts can save you a good amount of time every day.

Learning command-line shortcuts is helpful as well. Linux terminal allows you to create your own shortcuts using the ‘alias’ command.

I have my own configurations that have shortcuts for git, vim, and many other tools. I got so used to the shortcuts that I have completely forgotten the long-form commands.

Scripting Language

Leaning a scripting language like Python or Ruby makes you efficient at automating things and at doing hotfixes.

I love Ruby and Python. Even when the project is developed in languages like Java and Golang, I use Ruby and Python to write auxiliary programs. This code does not run on the Production environment but is needed in the heat of the moment. This saves a lot of effort and time.

Conclusion

There is no doubt, before mastering these skills you need to learn software engineering, fundamentals, and the basics of Computer Science. Learning these small yet powerful skills helps you be more efficient at the task at hand.

Comments are closed.