The Hardest Software Engineer

31 Aug 2017

Introduction

Ever since an early age, I was fascinated by learning. I wanted to know everything, and I loved knowing things others did not. I also liked telling people things they never knew before. I kept reading and searching, and am now simply in love with learning. I want to have the hard skills (technical expertise) and soft skills (interpersonal expertise) to become the renaissance man of software engineering, the software engineer who is able to do a little bit of everything, at a highly professional level of course.

Hard Skills

Hard skills are skills related to technical expertise, so these would be domain specific skills. This is what we are supposed to learn in college. So, to become a software engineer, we need to know the programming languages in use today like C, C++, Java, JavaScript, Python, et cetera. Frameworks like Meteor, Express, Koa, et cetera. Unfortunately, simply knowing technicals skills is not enough, we must be able to learn and use new languages and frameworks at a very fast level. This is because the field will keep changing, and languages will come and go as time passes. So the most important hard skill is the ability to learn new technical hard skills, which will definitely require a strong knowledge/foundation of current skills. That is why we should always be looking for those innovative solutions and be able to learn those skills quickly.

Soft Skills

Soft skills are skills related with dealing with people, so these would be more general skills that are valuable in nearly all jobs. Some examples of soft skills are effective communication, listening, leadership/management, and so on. These skills are necessary to create an innovative and effective team to develop software. Nowadays, everything is done in teams, making reasonably large software without much help is nearly impossible. In my opinion, these are harder to develop than hard skills, thus making them more valuable. I believe this is the case because everyone is taught those technical skills and can learn them quite easily, but soft skills cannot be learned from simply reading a book. Soft skills sometimes take years and years to reach even a competent level, whereas a hard skill is learned much quicker and has a plethora of resources available to guide you.

Conclusion

Although there are many hard and soft skills, the one who has the hard skills but poor soft skills, is going to struggle creating and maintaining an effective team. The one who has the soft skills, but poor hard skills will be incompetent in his tasks and will be forced to rely on others for all the answers. The one who has both, has the power and freedom to create innovative and effective software almost on command, which is what I strive for… to become the hardest soft software engineer, whilst being the softest hard software engineer. P.S. I love oxymorons if you did not know.