5 Things More Important Than (Logical) Intelligence In Software Engineering
Table of Contents
1. 5 Things More Important Than (Logical) Intelligence In Software Engineering website
1.1. 5 Things More Important Than (Logical) Intelligence In Software Engineering
1.1.1. What’s better than being smart? …being useful.
Blah blah blah
1.2. But Michael… what’s more important than just being a goddamn whiz?
1.2.1. 1. Documentation Habits
As your team grows, the key to success is how you onboard new engineers and
disseminate key information to stakeholders. How quickly can your security team
answer questions for your sales people? How easily can a support engineer get
info from product engineers? How quickly can developers dive in and patch
critical problems? The transferring and sharing of knowledge between parties is
so key that it’s frankly disappointing how little people focus on it. Before you
realize it, you will have people at your company who know everything yet somehow
everyone else is still in the dark.
“Never mind the fact you don’t communicate well and would be a terrible team
member. I’m really impressed by the efficiency of your indexing
algorithm!”\\ —Every Bad Interviewer Ever
1.2.2. 2. Writing Maintainable Code
I’ve said it before, and I’ll say it again as many times as needed: the hardest part about coding is not actually writing the code. It’s everything around it, including the planning and collaboration. There are three ways you
get unmaintainable code:
- Disparate ideas and visions for architecture / design
- Bad engineers who don’t understand best practices
- Good engineers who over-engineer everything
1.2.3. 3. Being a Team Player
- Agreeableness
- Generally speaking, are you pleasant to be around? It doesn’t matter how smart you are if nobody wants to work with you.
- Reliability
- Can you be trusted? Can you finish what needs to be done? People want someone they can lean on. Be the teammate you’d want to have.
- Drive
- It’s hard to work with someone who doesn’t put in at least as much effort as you.
1.2.4. 4. Discipline
There will oftentimes be moments where you have to buckle down and burn the midnight oil. You’ll be frustrated, you’ll be tired, and you’ll probably find yourself lacking in patience and focus.
It is these key moments that test your limits as a developer. If you slip up and start disregarding best practices or procedure, you’ll end up regretting it later.
1.2.5. 5. Receptiveness
As you all well know, the software industry is ever-evolving. Practices are always changing. New tools or concepts are always emerging and replacing old ones.
Subsequently, the ability for an engineer to learn, absorb, and adapt will make or break their innovation.
No matter how smart you are, you’re not perfect.
1.3. To summarize:
Smartness is over-hyped. You could know all the algorithms in the world or you could solve every hard problem on HackerRank with the optimal solution.
But if you don’t communicate well and document anything, you don’t write maintainable code, you’re not a good team member, you have no discipline, and you’re too prideful to learn and adapt, you’re just not a great engineer to have at any company.