Getting to the Promised Land of Software Engineering

Written by obafemiogunkola | Published 2022/07/05
Tech Story Tags: software-engineering | personal-development | software-engineer | software-development | optimization | growth-hacking | career-advice | tips

TLDRGood communication is becoming more relevant because when working remotely you need to be able to pass across what you need and require as fast and as clearly as possible. This helps make a more enjoyable collaborative experience. Good communication improves service delivery and is essential in software development. The first of these Tenets -Communicating as a software developer. Good communication can be summed up in 4 sentences. The first time he asked I was so lost, how do I explain my code without using key words like if’s and whens? I didn’t really know how to summarise 20 lines of code into 4 sentences.via the TL;DR App

Hi guys, this is my first ever time publishing my writing and it’s going to focus on my journey to the promised land.

The promised land? Yes! You know the land filled with milk and money. Oops, should have been honey right? Well, my promised land is a 7-figure salary and the opportunity to change the world with my work.

I am a new Software Engineer. New in the sense that I have known how to code for a long time but, up until a few months ago, I had never really designed or structured my code in a way that was efficient, readable, or in line with any of the other tenets of good code.

This article is about what I believe is the first of these Tenets -Communicating as a software developer.

Plain English and Software Development

I work with this awesome developer and in the time we have spent working together, he tells me to explain my code in plain english. The first time he asked I was so lost, how do I explain my code without using keywords like if’s and when’s? I could read the code line by line but I didn’t really know how to summarise 20 lines of code into 4 sentences.

So, how do you do this?

Boiling down a complicated process into plain english requires 3 things:

  1. To state the reason for the code (what are we trying to accomplish)

  2. To state how your current code falls short (or where do you begin)

  3. Understand what unplanned cases may appear and how your code would handle those

Let’s look at a scenario where good communication improves service delivery.

If, at work, you are asked to develop a system to find a price in a list of ordered prices. Let’s say for example the current code at work goes through every single price and checks before returning the index but due to an influx of customers this method has become slow and impractical. With an adequate understanding of search algorithms, You could easily mention any search algorithm.

Yes, you will be correct but you would have assumed the other team members know all the search Algorithms and their use cases.

Instead, you should say:

An efficient way to find a price in a list of prices(what are we trying to accomplish), we could reduce our runtime(how our current code falls short) by comparing the price which is present at a halfway point of the list. if greater than the price we hope to find we ignore all other prices larger than that. If lesser we ignore all lower we can repeat this till we find the price (A simple binary search algorithm). Any member of your team will quickly understand what you are trying to accomplish.

Good communication is becoming ever more relevant because when working remotely you need to be able to pass across what you need and require as fast and as clearly as possible. This helps make a more enjoyable collaborative experience.


Written by obafemiogunkola | Wondrous minds make beautiful things
Published by HackerNoon on 2022/07/05