DEV Community

Cover image for 5 most underrated skills of a top developer

5 most underrated skills of a top developer

Anubhav Singhal on May 26, 2021

You all might have stumbled upon blogs like "Best books you should read to become a top developer", "Best frameworks you should learn to become a s...
Collapse
 
leob profile image
leob

Nah ... :)

"Collaboration and Communication" should have been #1 ...

"Touch Typing" LOL are you joking, no that does not belong here (especially because personally I suck at it, haha) ...

and "Algorithms", that's so horribly overrated, I'll refrain from calling it complete nonsense, yes in academia and Computer Science it's super important but in RWD (Real World Development), especially Web, it plays oh so tiny a role ...

So reduce your 5 point list to 3 points and I'm all in (BTW why do listicles have to contain at least 5 items nowadays? good ol' "magic 3" is what I'd like to see more)

Collapse
 
dillonheadley profile image
Dillon Headley

After being a web developer for 7 years I finally recently invested some time into touch typing. And man it makes a huge difference! A customizable keyboard also helps. But yeah I can get my thoughts on the screen quicker and even my neck and back are less strained at the end of the day from less bobbing my head up and down. Don’t knock it till you try it bro

Collapse
 
leob profile image
leob • Edited

Right, I get your point - all of that does make sense, fact however is that I don't actually suck at typing - I can do it reasonably well, with more than 2 fingers, and without constantly looking at my keyboard ... it's not perfect by any stretch, but it's just good enough to not substantially hamper my productivity or jeopardize my health :)

If I'd suck that bad at typing that I'd only be able to do it with 2 fingers and I'd have to look at the keyboard all the time, yes then you'd be completely right - it would be bad. And well anyway I think by now I'm not gonna learn the perfect touch typing technique anymore, it's too late lol.

So yes, apologies for unjustly belittling this skill, which is important indeed - I just sort of assumed that any dev would naturally be at least at my level (or better) with their typing skills - which I assumed would be sufficient then.

Thread Thread
 
larsejaas profile image
Lars Ejaas

What about challenging yourself? Sit down one day and learn the basics of touchtyping and then use 5 min. every day on practicing? It will take some time to learn this way, but 5 mins only! It makes a huge difference: trust me!

Thread Thread
 
leob profile image
leob

You could be right ... I'm okay-ish with my typing, but I guess I could be better.

Thread Thread
 
larsejaas profile image
Lars Ejaas

Well, you never get to old to learn new stuff πŸ˜‰ I was super fast typing without touch typing, I feel itΒ΄s more about typing more "automated" so more attention is on coding or writing really.

Thread Thread
 
leob profile image
leob

I guess you're right, well let's see, I definitely know I could be better at it, OTOH life is short and there's only 24 hours in a day, you know what I mean ... ;) anyway thanks for the advice :)

Collapse
 
anubhavitis profile image
Anubhav Singhal

I am thankful to my high school computer teacher for teaching me touch typing, and yes it makes huge difference.

Collapse
 
anubhavitis profile image
Anubhav Singhal

I had tought time deciding #1, #2..., #5. For me each one of them were equally important. I just moved ahead with what seemed right.

Collapse
 
leob profile image
leob

By all means, although I still think that "Collaboration and Communication" is just that tiny bit more important than "Touch Typing" ;)

Thread Thread
 
anubhavitis profile image
Anubhav Singhal

Hi, Leob

I agree with you, but again, this article is not about which skill is more important, but which is more underrated.

Lots of people know about documentation, there are numerous blogs for writing good documentation, but touch typing, a simple productivity hack, no one is talking about.

Hope you understand my point here.
Thanks.

Collapse
 
foresthoffman profile image
Forest Hoffman

1000 points for listing communication! I started my career thinking that soft skills and the humanities were completely useless in the software engineering world. OH BOY, I was so wrong. Now, I'm a firm believer in fluid communication and building patterns that allow teams to communicate easier and more effectively.

Nice post! :D

Collapse
 
anubhavitis profile image
Anubhav Singhal

Thanks, Forest.
I am glad you liked it.

Collapse
 
leob profile image
leob

Performance is of utmost importance, but in most cases it's achieved by applying "best practices" like using your framework's ORM or database library correctly (for instance use eager loading, use SQL joins, define database indexes), using caching where needed, properly designing your database schema, and so on.

But, I'd argue that most of that has little if anything to do with "algorithms". Most web/app developers are never going to program their own bubblesort or quicksort or whatever (let alone their own encryption or security), they just use the most suitable "sort" or "crypt" routine provided by their programming language or framework, whether that's JS, PHP, Ruby, Rails, Laravel, Node or whatever it is.

So performance, yes, important - theoretical knowledge of algorithms, no not really, UNLESS you want to design programming languages, compilers or frameworks.

(analogy: most people are perfectly able to drive a car without knowing or understanding how the combustion engine and all of the other technology inside of it work "under the hood" - but if you want to become a car mechanic, or a designer, or an engineer, yes then of course it becomes important)

Thread Thread
 
horomancer profile image
horomancer

wait in your analogy are devs just car drivers? i figured they would be more like mechanics, or maybe modders, and the consumers of their products would be drivers.

Thread Thread
 
anubhavitis profile image
Anubhav Singhal

Exactly, Horomancer.

Thread Thread
 
leob profile image
leob • Edited

Analogies only ever take you so far, but yeah if you're a dev and you're not actively developing (or modifying the internals of) your programming language, compiler or framework, yes then you are a user of that tool ... the "driver" so to speak :)

Maybe that's not a popular view, because we like to see ourselves as geniuses, but it's a practical and realistic one.

Collapse
 
christyc92 profile image
Christy Campbell

Number one biggest underrated skill in a developer for me is the ability to manage their focus/effort. This can range from the small (cases to tests, meetings to decline, minor comments in a code review to ignore) to the large (pushing clients to allow a feature to be delayed so that an MVP can be shipped, writing tools to remove manual process from their ownership). The best developers I have worked with are masters of spending time on the important stuff

Collapse
 
anubhavitis profile image
Anubhav Singhal

Hi, Christy
I agree with you, it's just that I wanted to focus this article more on developer skills, and ability to manage focus/effort is a skill that is, irrespective of profession, a very important skill.

Collapse
 
aatmaj profile image
Aatmaj

Nice post!! Beautifully explained!
Al the skills are a must have for all the developers.
I especially liked your #2 skill of documentation. Here is my post upon the importance of documentation
The Memes and the quotes were really nice! Hope that the developers of tomorrow would definitely learn from this invaluable piece of advice..... :-)

Collapse
 
anubhavitis profile image
Anubhav Singhal

Thanks, Atmaj
Glad to know that you loved it.

Collapse
 
httpcyberdata profile image
httpcyberdata

As software engineer, this post there could be a remake of 100 underrated skills of developer and not just 5. The top software engineer should know how to use VPS virtual private servers for hosting software web app over the air and use version control systems to track progress of engineering.

Collapse
 
anubhavitis profile image
Anubhav Singhal

Yes, there is so more to discover.

Collapse
 
sjatkins profile image
Samantha Atkins • Edited

Fortunately I took typing in high school back in the days of dinosaurs. I sucked on old selectrics in the days before built in editing abilities. But I trained the muscle memory. Then I retrained it for DVORAK which is scads better in every way and especially on the hands.

Anyone that things Data Structures don't matter is out to lunch. Not fun reading code that was hacked on to only used simple arrays and perhaps a POJO or two when that actually obfuscates what the code is trying to do and makes it less efficient than it could have been with a bit more knowledge of common data structures and algorithms.

Some coding standards make tons of sense and some are completely arbitrary and worthless conventions that it would be better to have software do for you. There are better things to focus on to deliver quality maintainable software.

Refactoring didn't even make the list? Taking the extra trouble to have clean composable reusable abstractions makes all the difference in the world when the specs or functionality inevitably change and expand. It will save many a rewrite and make you look like a super hero when tweaking parameters and composing some bits together satisfy what is needed tomorrow and needs to be delivered yesterday.

Collapse
 
anubhavitis profile image
Anubhav Singhal

In days of dinosaur :lol

Btw, I very much agree with you.

Collapse
 
winstonpuckett profile image
Winston Puckett

Should 2 be in this list? Documentation is a failure to express yourself using code. It's necessary sometimes, but shouldn't self documenting code be the thing we strive for?

Collapse
 
anubhavitis profile image
Anubhav Singhal

Hi, Winston

Self documentiing code is surely an awesome thing, but again in more complex systems, it's tough to navigate through codebase. Documentation does the charm, and it's also helpful for begineers to read and understand one's project.

Have a nice day. :)

Collapse
 
biffbaff64 profile image
Richard Ikin

Touch typing has never been particularly important for developers. It's about what you type not how fast you type it, as long as it's not too slow obviously.

Collapse
 
anubhavitis profile image
Anubhav Singhal

Yes, It's not particularly important for sure, but again, touch typing is the best way to type fast and efficiently.

Collapse
 
anubhavitis profile image
Anubhav Singhal

Exactly, it's so worth it.

Collapse
 
vijayvenkatanarayan profile image
VijayVenkataNarayan

Wonderful!! Must read this often to keep it on top of my head
Thanks!!

Collapse
 
anubhavitis profile image
Anubhav Singhal

Glad to know you liked it.