DEV Community

Cover image for 5 Software Development Skills That Will Put You In The Top 3% Of Software Developers

5 Software Development Skills That Will Put You In The Top 3% Of Software Developers

Dragos Nedelcu on June 08, 2021

You sometimes ask yourself... What does it take to excel in software development? I asked myself this a few dozens of times in my career. Wheneve...
Collapse
 
hasnaindev profile image
Muhammad Hasnain • Edited

After being in the tech field for two years I've noticed that the software engineering industry is elitist. A person who had 20 years of experience building enterprise level applications was rejected from jobs because he failed to solve the useless whiteboard problems, something that you'd never use any way, they just want to see, "How you solve problems."

If you have a preference, you are bashed. Your package is 200 KBs instead of 199 KBs, that's bad. Use Svelte and not React because Svelte does not include a library/framework in the bundle, as if in 2021 a mere few KBs matter. This was not just a rant. You will never amount to any "senior" developer's expectations because he prefer a certain way of doing things. They have a problem for every solution. This wasn't just a rant, there are a lot of "senior" and "experienced" developers who simply just want to appear smart.

Recently, I started a few open-source projects and I got a lot of attention from colleagues, including my boss. It just blew my mind, no one cares how good or bad you are, it's all about the image you develop of yourself.

I'm still learning and growing. What I shared might change in future but new developers should be mindful of how toxic a surprisingly large number of developers are. I remember when I was learning JS, I shared an Express.js project where senior developers literally bashed me.

I hope your experience is different and I'm constantly learning things. Soon, when I spend more time in the industry and I can articulate my thoughts, I'll write about the toxic aspect. Thank you.

Collapse
 
leob profile image
leob • Edited

Great comment ... this mindset is not just elitist, it's also incredibly biased and narrow minded. I think a goal like "you need to be in the top 3 percent" (whatever that is) also contributes greatly to this elitist mindset.

And, the whole idea of diversity and inclusiveness goes out of the window like this - we all need to be "rockstars" or "ninjas", as if we're movie stars in Hollywood, rather than people writing code and fixing bugs.

I don't think real world companies need ninjas, rock stars, geeks, nerds or 3 percenters, they just need real normal people with empathy and communication skills!

Collapse
 
hasnaindev profile image
Muhammad Hasnain

This!

Collapse
 
rajaasyraf profile image
Raja Asyraf

Agreed 👍

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️ • Edited

My 2 cents: the most important thing if you want to be productive is to develop an intuition for reducing both problems and their solutions into their building blocks.

I see so many programmers write the same code again and again only to figure out during refactoring that there might be some common aspect, when that should have been obvious by just looking at what the code does.

Don't write code that solves the current problem; find your solution, then analyse your solution and see if there's some core aspect to it that can be generalised. This takes some practise, but after a while, you'll get to the point where you have an idea, then just naturally see how the idea leads into more generalised building blocks.

A simple example that most of you will be familiar with:

I need a function that takes an array of strings and turns them all into uppercase

should quickly become

I need a function that takes an array of elements and applies some other function to them

And voilà: you've arrived at map :D

Why is this important? Because it naturally leads you to write more extensible code by putting interfaces not only around your solution, but inside it as well. If your requirement changes to making the strings lowercase, you can just change the function you pass into map instead of having to find a line of code inside a loop.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
Sloan, the sloth mascot
Comment deleted
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
houssem12ai profile image
Houssem12-ai

such an amazing advice !
i like the part of generalizing => very good trick
thanks for sharing !

Collapse
 
leob profile image
leob • Edited

Some good points, e.g. about documenting (which you could, for instance, achieve by blogging) ... I'm just puzzled by the infamous "three percent" - what's that about, how do you define it, and why would you even want or need to be part of it? Seems a highly artificial goal ... just be yourself & believe in yourself would be my advice - don't get crazy about what others say you "should" do.

Collapse
 
gureisu profile image
Grace

"just be yourself & believe in yourself would be my advice - don't get crazy about what others say you "should" do." - As a junior developer, I needed these words today 🥺

Collapse
 
leob profile image
leob

Cool! yeah it's good to be passionate, and some of the advice that I'm reading left and right is fine, but don't take every piece of advise as an absolute truth - more often than not "it depends", so do your own critical thinking and ultimately make your own choices

Collapse
 
mwrpwr profile image
Joseph Maurer

“ But talent without visibility goes nowhere. And when I say visibility, I mean inside and outside of the company.” <—- can’t emphasize that enough! Nicely put!

Collapse
 
amaben2020 profile image
amaben2020

Great post. SWE is not a easy profession. We'll keep grinding.

Collapse
 
sandordargo profile image
Sandor Dargo

Learning after work is challenging because you are exhausted and you need to spend time with your family.

No, no, no... You don't need to spend time with your family. But I guess you want to spend time with your loved ones. Otherwise, why the heck should we have a family?

Collapse
 
abragred profile image
abragred • Edited

Those are true, but a bit far-fetched. It depends on a lot more than just following some rules that are obviously make you appear more pleasant in front of customers. Also, of course the quality of your portofolio is in the end the thing that might make the differnece. When I chose a software research and development company to work on my app I can't remember the exact thing that made me be attracted to develux.com/r-d-center and their services, it was a mix of everything thye offered.

Collapse
 
ash_bergs profile image
Ash

Thought provoking stuff, thank you for the insight!

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

This is a awesome article i like the part of thinking like a CTO , I think another is more towards delegation and time managment is a key.

Collapse
 
mahmoudessam profile image
Mahmoud EL-kariouny

Thanks for your effort.

Collapse
 
eggscode profile image
Eggscode

Thanks alot I find this very insightful, before now I've been working without documenting my little win. I'm a junior developer still trying to master the basics of web development.

Collapse
 
mahmudcse profile image
Mahmud-cse

Thanks for the post.

Collapse
 
alexon02 profile image
Alex Standal

Go to ergonized if you're experiencing difficulties converting to Salesforce Lightning. They are real pros that are working on a salesforce classic to lightning migration. I recommend this team to everyone since they provide low-cost services and nice communication.