DEV Community

Daniel Warren
Daniel Warren

Posted on • Updated on

Ten Tips for Becoming an Elite Developer

Experienced developers will tell you after graduating from boot camp your first job will most likely be as a junior developer.

This is utter nonsense. Bologna.

Trust me, I’ve built several todo apps and I taught myself Typescript in only a few months so I know what I’m talking about.

Today I’d like to share with you ten tips to take your deving to the next level, whether you are a junior or a seasoned professional in the field.

1. Always edit your node_modules

Let's start off with the most obvious tip. Many of you are probably rolling your eyes at this one because it's the first good piece of advice you get when you're a junior. But why does it matter? NPM packages are updated all the time but sometimes we as devs don't have the time wait around for the next update or bug fix in the source code. Any competent dev worth their salt should be able to go in and make the necessary changes to keep their project on the right track.

2. Functions

Functions should be big. According to Merrium-Webster, a function means “an official or formal ceremony or social gathering.” Social gatherings encompass many people, all who do different jobs. A function in coding is no different. They should contain a plethora of functionality. In my React projects, I have one or two giant functions for the entire project. Don’t buy into the hype of smaller functions doing one thing each. It’s garbage. Keep all your functionality together in one giant function. It’s easier to read too.

3. Indentation

Two or four spaces? I prefer five. When people look at my code, I want them to think, that’s Daniel’s code. What’s one of the first things they tell new writers or artists? To find your own unique voice or style. Coding is no different. Find a unique style. Grab your voice by the brackets. Experiment with different indents and layouts. Linters are creativity killers. Don’t use them. Your code is art. You are Rembrandt, your keyboard your brush.

4. Documentation

Documentation is for the weak-minded. If you’re a good coder, you should know how your code works just by looking at the code. READMEs are for amateurs. Your code is the README. If another developer joins the project and asks for a README, they probably aren’t very good at their job. Recommend their position at the company be revoked back to junior.

5. Staying ahead of the trends

Brush up on XML because I predict it’s going to make a serious comeback over JSON.

6. Git smart

This one drives me mad. Stop committing so much. I commit once a day. Sometimes I don’t commit for weeks. Doing anymore only confuses and clogs up your flow. You want clean code, Uncle Bob? Look at my commits. Ideally, a project should only have two commits - initial commit and deploy.

Start pushing directly to the main/master/develop branch. Pull requests are for the gutless. If you believe in your code, dammit, push it directly to master. Branches only make things more confusing. As a team, we should all be on the same page, but how can you do that if everyone creates their own branches? What is this, the Wild West? Your team needs unity, one branch. One team.

7. Agile vs. waterfall

I have to say, I’m flabbergasted with agile development taking over many businesses. Imagine building a house using agile. The foundation is poured and suddenly the owners want that second bathroom moved to the other side of the basement. Then they want the fireplace on another wall. Now the blueprints have to be thrown out and you have to drag the architect off of another project so he can fix the plans. This is why you lock the blueprints. Building software is no different. If your vision has to pivot halfway through the project, you’re doing something wrong.

8. Designers

If the designer gives you designs for the app and you think they look like crap, overrule them. You have the most important job in the world. You are a software engineer. A God, really. You have an ego? Damn right, you should. Heart surgeons have nothing on you. Somebody has to do the really important work in this world. Show that designer a thing or two about designing.

9. Dress code

Push for stricter dress codes - suits, lab coats, scrubs - something in that vein. We’re the smartest and most sophisticated profession out there - time we start dressing like it. I wore a tux to work on my second day as a junior dev and my colleagues were so impressed, they didn’t say a word.

10. Finally…

Do the opposite of everything I just said.

Discussion (46)

Collapse
kamo profile image
KAIDI

Hopefully there is number 10, I was shocked by giant functions...

Collapse
joelbonetr profile image
JoelBonetR

and not for other points? LOL

Collapse
kamo profile image
KAIDI

I stopped reading at this point, I jumped to comments directly lol

Thread Thread
joelbonetr profile image
JoelBonetR

hahaha i was getting nervous while reading through so I hit Ctrl + W, then I came back and finished the lecture 😆

Thread Thread
kamo profile image
KAIDI

Hahah, it was a scary joke

Thread Thread
warrend profile image
Daniel Warren Author

I thought it was obvious after #1, haha.

Thread Thread
joelbonetr profile image
JoelBonetR

Well... I read too many things to assume that 😂😂

Collapse
k0che profile image
Marcus Zippka

after reading the first 5 points i think, what an stupid Developer write this shit. I scroll directly to the comments. then i read Kaidis comment and scroll back to point 10 and I have to say good jocke, you had me @daniel Warren.

Collapse
adamcoster profile image
Adam Coster

Excellent trolling. I started off just skimming, and when I read the part about editing your node_modules I thought, "surely this is some sort of typo." The Functions section gave it away, and the spaces thing was hilarious.

Collapse
warrend profile image
Daniel Warren Author

A coworker and I always debate 2 vs. 4 spaces (he's in the 4 space camp). As a joke, I suggested going rogue and doing five just to prod him, ha. Thanks for the read. I thought it was very obviously satire, but now I'm not so sure, haha.

Collapse
erickruano profile image
Erick Ruano

I also cracked at #3 since I've been struggling with a co-worker who always justifies his awful practices and lack of adherence to project's styling decisions with: "Code is art, i have my own style" 😂

Collapse
donut87 profile image
Christian Baer

Couldn't you compromise on using 3 spaces?

SCNR

Collapse
crisleo94 profile image
Cristhian Reinoso

No spaces is the new 4 spaces.

Collapse
adamcoster profile image
Adam Coster

It's a classic Poe's Law situation.

Team Two Spaces, all the way.

Collapse
timmybytes profile image
Timothy Merritt

Two or four spaces? I prefer five.

Brain: explodes

Collapse
lilian131 profile image
lilian131 • Edited on

The opposite of number 10 is do exactly what I just said lol which create an infinite loop

Collapse
joelbonetr profile image
JoelBonetR

the opposite of 10 is 01 which will be a loop that runs only once... i don't catch the joke 😅

Collapse
jamesthomson profile image
James Thomson

The loop would be going back to through it all, but with the inverse reasoning of what you just read then getting to 10 and doing it all again. Thus, an infinite loop 😉

Thread Thread
joelbonetr profile image
JoelBonetR

Damn 😂 i organized it in my mind as a dataSource from 0 to 8 then the 9 (which is the point 10) negates the rest 😅

Collapse
milestonedev profile image
Justin Miles

Well done. The only piece I can disagree (maybe agree?) with, other than #10 is #6. There are a lot of great developers advocating and using "trunk-based development." The overarching theory being that merges can suck, so do them more often and smaller.
To do the practice right you would pair program so code review happens in real-time, do TDD so everything is tested, and make many small commits, any of which would be production-ready. You can use feature flags or branching by abstraction to hide functionality. If you're interested you can read more at trunkbaseddevelopment.com/. I'm not presonally doing it yet, but working on moving my team that way.

Collapse
evankapantais profile image
Evan Kapantais

Mate, I was about to go bazooka on your ass until I read #4 😂

Collapse
dwd profile image
Dave Cridland

Is it bad I've spent the week writing an XML serializer?

Collapse
kwekuq profile image
KwekuQ

Lol, you had me at point 1. Brilliant.

Collapse
itumelengmodise profile image
itumeleng-modise

You got me there. I was reading with my eyes getting wider in disbelieve on every paragraph. Nice one.

Collapse
madza profile image
Madza

My favorite is still this one 😂😂
Ofc, there wasn't 'April fools' in the title at first 😉

Collapse
ya39oubi profile image
Hamza Yaakoubi

You had me in the first half ain't gonna lie 😄

Collapse
seveneye profile image
seveneye

Instantly scroll down when I saw #1 😂😂😂

Collapse
jwp profile image
John Peters • Edited on

With advice like this I hope to never use one of your libraries.

Except for last point.

Collapse
barriosdfreddy profile image
Barrios Freddy

I ended the reading at the second point...I said serious, WTF!...hahah

Collapse
grahammorby profile image
Graham Morby

Great Post! Love it!

Collapse
annietaylorchen profile image
Annie Taylor Chen

I was preparing counter arguments as I read but luckily I was patient enough to finish because after the last one I did a remove command line mentally for those lol

Collapse
ikechukwu profile image
Ikechukwu

You should know readers have enough going on in their day to be playing your mind twist games.

Collapse
danble profile image
Danble

Haha good one or maybe I should say these 10 ones... and I think the worst enemy of a good developer is this arrogance of thinking that they are superior in everything

Collapse
andrewbaisden profile image
Andrew Baisden

lol 😂

Collapse
ssoemoe profile image
Shane Khant Soe Moe

That number 10, lol. Is this a troll article?

Collapse
mathieuhuot profile image
Mathieu Huot

Amazing, you made my day! Thanks for this! 😂🤣

Collapse
amsrocha2020 profile image
Miguel Rocha

ahahah very good! Number 10.

Collapse
cirphrank profile image
🎧Cirphrank👣

Checked your profile and went; yeah right!

You really are a writer.

Collapse
betancourtfran profile image
Francisco Betancourt • Edited on

you had me on the first half of #1... ngl

Collapse
vexuzdorotan profile image
Jonnel Salvador "VeXuZ" Dorotan

Don't know much about #1, but when I read #2 and #3, I already sensed that this post will be sarcasm. 😂

Collapse
victor_kenneth3 profile image
Victor.kenneth💡🌍

😅 you got me, i was about to type a mean comment till i saw "Do the opposite of everything I just said"

Collapse
enmel profile image
Enmanuel Marval

Too bad, I dumped all the coffee allotted for me today. It was too much fun for me, it made my day.

Collapse
srini85 profile image
Srini Vasudevan

You better put a TL;DR at the top and put number 10 as number 1. Nice piece. However documentation point is definitely controversial, at least in the context described ;)

Collapse
allenmiller304 profile image
Allen Miller

I disagree with point number 4, documentation is required, but it must be in Latin, because “Quidquid latine dictum, altum videtur” means Whatever is said in Latin, appears profound (or noble). 😊 😊 😊