5 skills that are never out of fashion for Software Engineers
5 skills that are never out of fashion for Software Engineers
As a software engineer, you might be overwhelmed by new technologies, new design patterns, new architecture principles, new UI and API frameworks, new libraries, new way to implement software, new way to store the data... and the list goes on. There are few skills that are never out of fashion irrespective of what happens around you. Getting deeper understanding and practising these skills will make the career for Software engineers brighter.
1. Data Structures and Algorithms:
At the fundamental level, software programs, capture the data from various sources and present in a more readable and understandable format either for humans or for machines. If there is no data and there is nothing to process perhaps there is no need for a software program. Depending on the language you learnt, you will come across names like array , stack, queue, linked list, doubly linked list, hash tables, dictionary, graph, binary tree, heap, list, set, tuple. There is no easy way to master Data structures. Experiment with one and improve. Now let's look at algorithms. Algorithms are steps to solve a particular problem. If you want to go from Point A to B, you have multiple options. You can walk, run, cycle, go by a car, fly, take a ship… and why not crawl. Same thing with Algorithms. There will be more than one solution to the same problem. A software engineer is best placed to find a solution, that executes faster occupying less space by consuming less processing power. After all the Engineer as a word derived from ingeniare meaning “to create, generate, contrive, devise” and ingenium “cleverness”. When you combine all these “Create something that is simpler, better and cheaper”. Here is a good reference to Big O notation to understand the complexity of space and time.
2. Be interview ready:
Going to the workplace (pre and post-Covid) and doing the work that was allocated is a given expectation. Being interview ready goes beyond that. What really happens during the interview? You are fully attentive, you give your best possible answer, you are well dressed (except in Covid situation perhaps), you go well prepared, given a problem you come up with multiple options and solutions and finally you sell your ideas and yourself. All these principles can be followed in day to day office life as well.
3. Be collaborative:
When in danger, animals have only two options fight or flight. But humans have a third option, that is collaboration. It is amazing to experience 100s of vehicles zooming on busy Indian roads with almost no written rules (except the signals). Even in this chaos, the probability of having a scratch or dent on the vehicle is negligible (not zero though). This is the power of collaboration.
Cambridge definition of collaboration is the situation of two or more people working together to create or achieve the same thing. On the road, the goal is clear- “Reach the destination safely”. The biggest killer of collaboration is ego. There is a difference between being confident and being egoistic. “My view or solution is also great” shows confidence, “Only my view or solution is great” shows ego. Imagine, on the road, the driver in front of you suddenly stops moving because he/she whats to take rest or suddenly takes a turn without an indicator. Then the vehicles behind would stop or meet with an accident and create a deadlock situation. You encounter this kind of behaviour in the corporate world often. Lack of collaboration is the biggest drainer of energy and money. Signs of lack of collaboration are multiple meetings on the same topic, next steps on next steps, lack of participation from people in the meeting.
Being collaborative is actually easy. If you ever played football, as for as you do not care about who scores or who gets the credit for the goal, you will pass the ball without hesitation. At the end, team wins. As a thumb rule, if you do not care about who gets the credit, but focus on the ultimate goal of reaching the destination, you are collaborative. If the goal is clear, collaboration comes out automatically. Next time when you encounter an issue, look around and analyse, it is high probability that it is because of lack of collaboration between two people or two teams (assuming that communication and prioritization issues are already sorted out)
4. Presentation skills:
I feel Presentation skills is the most ignored of all. It is the ability to show data, information and concepts in a way your audience can understand. It is just not about how to make the presentation using PPT or Keynote.
These are some tips to improve presentation skills.
5. Critical Thinking:
Critical thinking is the ability to think clearly and rationally on what to believe and what decisions you need to take. Some times our intuition helps us in taking decisions so that we will not end up reinventing the wheel. There is nothing wrong in it. Intuition makes the decision process easy because our brain is coded with millions of years of human survival experiences. It is alright to be intuitive for some trivial decisions like what to wear, what to eat in a restaurant or which movie to watch. But if you need to make a big investment decision, career move or take a call between Project A vs Project B critical thinking is necessary. Take this example. Sometime back, in my college whatsapp group someone shared a video of a person who did a flying magic and this was attributed to power of Yoga. The original video doesn't have any reference to magic word. The video was circulated by explaining what is Yoga and if you reach some stage in yoga what can we achieve (flying in the air in this case). Lets apply critical thinking here. 1. Can Yoga make the human body to float against the earth gravity? If so how is it possible? 2. Are the people that were seen in the video are the paid artists are real people? 3. Why the person is moving only in the vertical direction and can’t he fly like a bird in all directions? and finally, 4. If he can really fly, how did he reach the venue? Did he take a vehicle or he came flying?
Now let's look at how critical thinking can help a software engineer. These are some questions worth pondering every day.
Hope these tips are helpful. If you think few other skills are evergreen, please write in comments. Have a successful 2021.