5 underrated skills every fresher in the software development industry MUST have

5 underrated skills every fresher in the software development industry MUST have

After spending several years as a professional programmer, I have come up with a list of skills that one should acquire along with learning different programming languages and tools. You wouldn't normally find these skills listed on any job posting but these are quite essential if you want to excel at your job.

Advantages

  • You can start practicing these skills at a very young age.
  • You will need all of these irrespective of the area of software development you choose as your profession.
  • There are many free resources available online to help you excel at each of these.
  • You can create a lot of "DEV TIME".

What is a "DEV TIME"

Most developers would agree that their best work is produced in a mental state where they are highly focused and free from any kind of distractions. I call this mental state the "DEV TIME". This is the time where developers turn ideas into reality, solve complex algorithmic problems, and have their LIGHTBULB moments.

With a little experience, I can say that your productivity and efficiency as a programmer depend on how much "DEV TIME" you create per day.

Here is a list of few skills that will help you increase your dev time.

1. Keyboard

If I can go back in time and talk to my 10 years younger version, I would tell myself to master keyboard typing. Slow keyboard typing has put many limitations while I was starting my development career. While working on a really complex problem, our brain needs to think without any interruptions. Mastering keyboard typing helps us to keep up with our thoughts. We can think and type at almost the same time. Thus in a given time, we can try many solutions with ease. Few other benefits are

  • No more wastage of time due to typos in coding.
  • Using keyboard shortcuts speeds up a lot of things.
  • You don't have to toggle your attention between keyboard and screen which is a big stress reliever for your eyes.

How to achieve it?

  • Take any free online course on keyboard typing available on YouTube, Udemy, LinkedIn, Coursera, etc.
  • Start typing difficult language constructs without looking at the keyboard.
  • Learn keyboard shortcuts of applications you use and start using them.

2. Command-line and automation with Scripts

Being afraid of the command line was the biggest hurdle in my career. As boundaries between a developer and an operations/network engineer are growing thin day by day, you must be prepared to work with the command line sooner or later. You might need to use the command line

  • To interact with a cloud server.
  • To use a version control system such as git.
  • To run automated tests.
  • To make changes to configuration files on the cloud.

If you gain a certain level of expertise with the command line for Linux/Windows/macOS, you do not have to waste precious dev time searching for basic commands.

In your daily routine, you have to spend a lot of time doing repeating tasks such as

  • Opening a project folder with a code editor.
  • Open a browser and navigate to a bunch of URLs.
  • Launch a set of applications on our machines,
  • Run a bunch of commands to run automated tests.

We can write small programs called 'Scripts' which are nothing but a set of OS commands to automate all these routine tasks. I had written a small script which used to do all the things listed above. This used to save a lot of my dev time throughout the day allowing me to focus on other tasks at hand.

How to achieve it?

  • Learn commands related to basic file and directory operations.
  • Start using the command line instead of GUI for the daily operations you perform.
  • Identify repeating tasks in your day and try to write a script for it.
  • Learn basic Linux commands.

3. Spreadsheets

You must have the skills to work with the Spreadsheet application. There are many spreadsheet applications such as MS Excel, Libre Office, Google sheets, etc. I have used MS Excel countless times for generating various reports, apply transformations to data lists, and create test data for my programs. You can even write programs in Excel to automate complicated calculations which are often required in programming.

How to achieve it?

  • Take any free online course on spreadsheet applications you use.
  • Try to apply different formulae on a set of numbers.
  • Try to do basic data processing with spreadsheets.

4. Email communication

As a professional developer, email communication is an integral part of your daily life and you would waste a lot of dev time if you don't perfect it. There are many situations where you need to deal with emails.

  • Asking for help.
  • Sending a reminder.
  • Replying to a query or asking a query.
  • Sharing minutes of the meeting.
  • Applying for a job opportunity.

You should be able to communicate your intentions clearly with the smallest possible count of words. This is surely a skill you want to master. Learning to write effective emails saves a lot of time in to-and-fro clarification mails. There are certain applications that allow effective email management. The most commonly used application is MS Outlook. Outlook is quite huge to summarize here. You should start using it to explore.

How to achieve it?

  • Take any free online course on effective email communication.
  • Identify situations that you find difficult to write an email for and practice them.
  • Explore features of commonly used applications such as Gmail or Outlook which can help you automate repeating tasks of email communication such as Filter Rules and Templates.

5. Presentation skills

Due to covid-19, we are seeing a huge surge in remote collaboration culture as a permanent standard in many organizations. In this situation, effective communication becomes a prime requirement for these organizations to keep the same pace as before. Following are some instances where the team communicates via some electronic medium of communication.

  • Daily stand-up meetings to discuss work progress.
  • Planning meetings.
  • Demo meetings where developers showcase their work to others.

You should possess a certain level of presentation skills to be an effective contributor to the team.

How to achieve it?

  • Take a free online course on improving presentation skills.
  • Master presentation software such as MS PowerPoint or Google Slides.
  • Learn how to present information using Graphs, Charts, Tables.
  • Learn how to use colors and fonts effectively.
  • Explore different web applications useful to present ideas in the form of Mind maps, flow charts, or 3D diagrams.

Finally...

There are many things you can add to this list. In a nutshell, DEV TIME is a very precious resource. You should aim to increase it and use it with efficiency.

Stay tuned for more articles such as this...

Cheers!!!