DEV Community

Cover image for Six Things You Thought Senior Devs Did (But We Don't)
Jason C. McDonald
Jason C. McDonald

Posted on • Edited on

Six Things You Thought Senior Devs Did (But We Don't)

If you're a junior or mid-level developer, you may have certain ideas about what constitutes a Senior Developer. There's almost certainly an idealized picture in your mind, and if so, I can safely bet you keep comparing yourself to that fictional ideal.

But what is a Senior Developer, really?

It doesn't help matters that practically every company has its own definition. In general, a Senior Developer is simply someone who has enough experience with software development to:

  1. Independently understand a given problem that needs to be solved in their particular knowledge domain,
  2. Enumerate one or more viable solutions and their merits, and then
  3. Implement one of the better solutions, likely as a member of a team, using the idiomatic patterns of the language and framework being employed.

Seriously. That's it.

So what about all those other things you've always imagined were true of Senior Developers?

1: We Don't Avoid "If" Statements

A lot of junior developers seem to be under the impression that conditional statements are only for wimps and n00bs. Nothing could be further from the truth!

Often the best solution to a problem is also the simplest. While there are times and situations wherein there's a better solution that a conditional statement or a loop, senior developers still default to the classics. As Donald Knuth famously said...

Premature optimization is the root of all evil.

The basics are the basics because they work. Don't go looking for a clever alternative solution to an already well-solved problem.

2: We Aren't Developing Algorithms

For the most part, it's the propeller heads at the universities who are coming up with better sorting and pathfinding algorithms, and more power to 'em!

A senior developer knows when to rely on the preexisting work of others who have come before. In other words...

Good programmers know what to write. Great ones know what to rewrite (and reuse).

Don't be afraid to use existing libraries, algorithms, and abstractions.

3: We Don't Customize Our Kernels

Seriously, we don't have time to be mucking about in the internals of our day-to-day operating system. A senior developer prefers to do the minimum necessary work to get a working environment that meets her needs...and then she leaves it alone!

Most of the time, the only reason a senior developer will be recompiling their kernel is to solve a hardware issue, and even then, it's compiled from an unmodified source. The only real exception is the folks for whom kernel hacking is a hobby...and that has nothing to do with seniority.

Beware yak shaving! If it ain't broke, don't fix it.

4: We Don't Have Regex Memorized Either

Your average senior developer is going to have one of her ten thousand browser tabs open to regex101.com too. Regex is infamously esoteric, and we have more important things to remember.

On a related note, if a typical senior developer is able to get the syntax for the tar command on Unix right on the first try without checking the docs, he probably has it tattooed on his arm.

Don't be ashamed to read the documentation, even if it's something you've looked up before.

5: We Don't Know All Top 10 Hottest Languages

Pick any random senior developer, and chances are that they know one or two languages very well, and have working proficiency in two or three others. They almost certainly won't have mastered a dozen different languages!

This is on purpose. A good senior developer is mostly interested in gaining further mastery of their primary languages, frameworks, and knowledge domains. It's impossible to know everything there is to know for any one language!

You don't need to learn everything. When you find a language you love, dig deeper.

6: We Don't Feel Like Senior Developers Either

No, really. We don't. As soon as you crest one mountain, you discover a dozen higher peaks on the horizon. We also have imposter syndrome. I've talked to 30-year-veteran software developers who still felt like they were faking it.

Software development is a life-long adventure. The destination is always changing; the journey is the interesting part.

Latest comments (58)

Collapse
 
shubhambattoo profile image
Shubham Battoo

Very relatable for a person trying to transition slowly into a senior dev.

Collapse
 
makeavoy profile image
Nick McAvoy

This is pretty hopeful, It's just too bad all the jobs out there are for senior devs

Collapse
 
codemouse92 profile image
Jason C. McDonald

Not at all. I've come across more mid-level jobs than senior ones.

Collapse
 
renanlazarotto profile image
Renan "Firehawk" Lazarotto • Edited

1, 2 and 4 are so true even if I'm not a senior yet (I'm in a position that sits in between junior and senior, which I believe its called 'mid level' in english).

I usually spend some time on 1, but a lot of time on 2... I love to go 'libhunting' :D

Collapse
 
0x46656c6978 profile image
0x46656C6978

I'm a senior fresher, for sure :D

Collapse
 
oneguycoding profile image
Steeve McCauley

Can we use goto yet?

Collapse
 
codemouse92 profile image
Jason C. McDonald

If you know why you shouldn't use goto, you may use goto.

Collapse
 
cristiancastrodc profile image
cristiancastrodc

Great list!
I have 6 years of experience and point 6 is really true.
I don't feel like a senior dev and I don't know if I will ever feel like that with so many things to learn every day!

Collapse
 
raissamartinsmenezes profile image
Raissa Martins

great points :) i was explaining this to a junior dev yesterday. it doesn’t matter your seniority we are always learning and sharing with each other every day <o/ can i translate you article to portuguese to reach our community in brazil?

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Absolutely! Just as long as you link back to the original and credit me as the original author. :)

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard

Thank you for this.
Number six is especially spot on!

Collapse
 
gmeben profile image
Grant Eben

Yeah, number six hits hard.

Collapse
 
pinotattari profile image
Riccardo Bernardini • Edited

About regexp: I see that I am among the few that actually like them. πŸ˜„

I learned them quite early, even before university. I was born, in a CS sense, in the 80's with Sinclair, Commodore, and stuff. I always had a fascination for compilers, so I bought Compiler construction for digital computers by D. Gries and I learned about grammars, parsers and, yes, regular languages.

I find regexp a very powerful tool, although I agree that the most complex ones look some transmission error... In my free time every now and then I tried to come out with a different way to write regexp.

The GNAT implementation of Ada provides the SPITBOL alternative to regexp; I am still unsure if it can be easier than regexp

About tar: xkcd.com/1168/ πŸ˜†

Collapse
 
sarahcodes_dev profile image
Sarah πŸ¦„

β€œSoftware development is a life-long adventure. The destination is always changing; the journey is the interesting part.”
This β˜πŸ»πŸ’―