These 3 Principles Helped Me Shine In My First Dev Job
By: Kritika Sharma
Tags: Software Development, Coding, Technology, Work, Programming

These 3 Principles Helped Me Shine In My First Dev Job

Analyzing the work culture of tech companies from a millennial’s perspective

Photo by Ali Yahya on Unsplash

Coming from a technical background, I only knew one “mantra” to excel in this field; the more technical, the better. Well more so, because that’s what I was taught in school(by the way, which was until last year). However, being a recent graduate, and having worked for two hardcore technical companies, I’ve come to question the existence of this mantra in the present times; summarized below are my findings…

What working in a tech field has made me realize is that technical skills are no longer the challenge once you step into the business world, it’s dealing with the humans that’s much more challenging. The schools have well prepared us to take up any technical challenges, but we’re much less prepared to deal with the strangeness of human behaviour.

Watch-Out for Human Oddities

There can be instances when you may be technically correct, yet no one seem to have been rooting for you. No one’s supporting your decisions. Wonder, why?

Now, here you have to understand, sometimes very vital technical decisions are tend to be taken on the basis of very non-technical arguments. Let me start with an example, that I’m sure some of you would be able to relate to more than the others. So, you are part of a design decision, but your manager used to work on some old XYZ technology and she/he is comfortable with that. Therefore, this XYZ technology has been chosen for this project. Clearly, you’re not entirely happy with this decision, but your level in English is not good enough to argue well enough, or perhaps, you were sick on the day of an important meeting.

Well, sometimes your ambition to change a design, no matter how easy and how literal amount of work it may take, can frighten the rest of the members of your team to step out their comfort zone.

It’s even possible that your colleague “Jack” doesn’t like you, so he doesn’t like your design or your proposal as well. Well, I can go on and on with similar examples, but I think you got the point here.

The important takeaway here is; if you want your technical decisions to be supported and accepted by others, you will have to arm yourself with skills that go well beyond your technical skills, such as negotiation skills, leadership skills, and good communication skills. So, that sums up the first principle.

Old Habits Die Hard

Secondly, as a computer science major and having studied this discipline for more than six years, it was not just about working with different programming languages, or different tools and technology, it’s much deeper than that! It’s like practicing a culture and abiding by all the rules. Although, this isn’t necessarily true for the firm you work for. Depending on the operation domain of your company or the kind of project/team you work with, there is a very high chance that due to the core business of your firm or even the academic background of different members in your team, they don’t consider this discipline of technology as sacred as you do! Shocker??? Not really… What I really mean to say is, good practices can be taken for granted, or even might not be implemented at all.

There could be no code reviews, no unit tests written, or even no version controls being used in the firm that you work for.

Now, being a young engineer, all you will have to propose will be technical solutions:

What if there is no version control system, I’ll install git.

What’s next, there’s no tests written, I’ll install a good testing library.

And, if there is no code reviews, we’ll protect the master branch.

However, again, the important thing to understand here is; the problem was never about giving a technical solution. The problem was primarily human. More specifically, it was about the culture of your team or the firm.

The culture of a team is far more difficult to change than any tool. So, whenever you have a choice between choosing a very well equipped team and a disciplined team, choose wisely!!!

It sure takes time and effort to change the culture, but let me tell you, it’s well worth the efforts.

Perfect Geniuses are Scalable

Finally, let’s talk about the difference between a genius and a professional. In school and university, few people who could create complex algorithms alone or could compile thousands of lines of code overnight, are considered geniuses and they’re respected the most. However, I don’t think that really holds for the business world though!

When geniuses work alone on a project in their job, their confidence makes them over-promise, but what they don’t understand is that even geniuses just have 24 hours in a day. This bottleneck makes them slow down everyone else in the team along with themselves. This hinders the progress of the team, and makes it very hard for the team or for them to meet deadlines.

Besides, a genius’ mind has the ability to perceive complex stuff, so they can comfortably design really complex solutions which no one else understands. As a result, their presence is mandatory for every decision. Therefore, it’s really hard to work with them as a team. Moreover, this creates a dependency on one single person or in technical terms, it creates a single point of failure. Once, our genius gets sick, goes on a vacation, or god forbid, gets hit by a bus, it’s the other members of the team who will have to work real hard to cover for the months or even years of unprofessionalism.

Real geniuses are the geniuses who have the capability of producing simplistic designs and sharing their knowledge, as well as their workload with other people. These geniuses are called professionals.

Professionals are not scared to share their knowledge or even their responsibilities, so that they don’t become the bottleneck, or the single point of failure for their company.

Source: Twitter

As Arnaud Debec, a private cloud builder at airbus, brilliantly said, “geniuses build scalable services, but professionals are scalable geniuses”. That clearly sums up my third principle. Now, whenever you’re faced with a choice to make between choosing a professional or a genius, I hope you know who to work with!!!

All right, that’s a wrap, so let me know about your choices down in the comments section. I love to hear all about your views on the points discussed in this article. Thank-you for your time. I hope it was worth your time. Happy learning!