DEV Community

Jeremy Friesen
Jeremy Friesen

Posted on

What's One Thing You'd Tell Your Younger (Dev) Self?

I've been a professional "programmer" for 24 years, and often wish I could go back and talk to my younger self to give him some words of advice.

What's one thing you'd tell your younger (developer) self? And how would you know they listened?

Top comments (28)

Collapse
 
emmaccen profile image
Lucius Emmanuel Emmaccen
  • Stop losing sleep, unless you’re ready to keep it up for the rest of your career (there’ll always be bugs to fix)

  • You can’t know everything

  • Your competition is “You”!

  • Your “happiness, life and wellness” is more than your “job”

  • Keep learning

  • You’ll be “discouraged” a lot and feel like you don’t know enough but usually you’ll be better than you were yesterday and “that’s enough”

  • Read documentations

  • Share your work

  • Give yourself a treat every once in a while, you deserve it !

  • Lastly, be kind to juniors in tech as you’d have other be to you

Collapse
 
w3ndo profile image
Patrick Wendo

The competition is YOU

This resonates with me. I spent a good part of my campus life trying to compete with classmates when in reality I should have been working to make sure I get my skills better than they were the previous day. Once I figured this part out, life got way less stressful.

Collapse
 
milanwake profile image
Moon Presence

Wonderful tips that could really come in handy if there was an opportunity to go back in time. 🧡

Collapse
 
jeremyf profile image
Jeremy Friesen

I would tell my younger self to write up test scripts. The idea of automated unit tests was not something I learned about until I adopted Ruby on Rails. But I've seen their value. Namely in refactoring existing code and conveying intention. I've also seen how they can become a false positive.

Yet test scripts are not automated tests; they could be, but they don't need to be. Instead, they focus on stating "How can you verify that this is done?" As a software developer, I would likely look for ways to automate this, but the reality is not all tests need to be automated. But they do need to be remembered.

And knowing my past self, this would be a hard conversation. He was full of hubris, thinking that logic could handle all things. Which, in software, is mostly true, but we invariably make concessions, oversights, and short-cuts. It's the nature of modeling in the abstract.

What I would hopefully instill in my younger self is a sense of helping others come along in the journey of understanding the code I'm delivering. Hence the test plan.

Collapse
 
kquirapas profile image
Kristian Quirapas

I would definitely keep this with me. I suffer from too-lazy-to-test-personal-projects disease and this really motivated me to write tests.

Also a great write up, Jeremy. I'm wondering what you have in mind when it comes to writing maintainable and scalable code.

Collapse
 
jeremyf profile image
Jeremy Friesen

One of my guiding principles is "If it's hard to test, it's going to be hard to maintain and scale." So, make it easy to test.

This influences my low level decisions (make methods easy to test by using dependency injection). And also my higher level decisions (in Rails testing controllers is painful, so minimize the amount of tests you need. Which quickly becomes writing objects for actions.)

I wrote most of github.com/ndlib/sipity, and it's been the most maintainable codebase I've ever wrote. There are a few bad decisions in there based on requirements that later proved to not be necessary.

Collapse
 
ben profile image
Ben Halpern

I'd emphasize the need to treat collaboration as a first-class citizen in the process, not an after thought.

Collapse
 
jeremyf profile image
Jeremy Friesen

I've long maintained that playing D&D since forever ago has been a key contributor to my software career. It's all about collaboration.

Collapse
 
history_dev profile image
History Dev

That is really sound advice. It's connected to taking on too much as an individual, share and collaborate.

Collapse
 
kquirapas profile image
Kristian Quirapas • Edited

I'm still fairly young and far from your level of experience, but I would've told my 12-year-old self to focus on a single tech discipline while still understanding the fundamentals of other tech disciplines. Wide in perspective, but deep in skill. I find that I've spent so much of my time learning different tech fields that I end up becoming a jack of all trades master of none (can't be hired), albeit not anymore.

Collapse
 
wardason profile image
Leonard Warda

If you want to learn programming consistently, block a amount of time in your calendar (f.e. Everyday at 6pm for 1 hour). It will become a routine and you will stick to it. That’s how I learned programming much faster.

Collapse
 
milanwake profile image
Moon Presence

If I could go back to the days when I was just starting to study programming, I would tell myself the most important thing:

« Spend more time with your family and friends, and do not go headlong into learning programming languages, technologies, design and other things. One day there will still come a time when, without fear of the new and unknown, you can just take and do your job, which you will like madly, but the time when native people will be around, will run away and you will never bring it back.

You will regret spending almost all of your free time at work. These thoughts will be waiting for you sleepless nights, when your code editor will be open for long hours, and you simply will not have the desire to continue creating something new, because you will try to stop time - which is merciless and incorruptible. And no matter how good a developer you are, you can't write that script, application, or just a function that can turn back time or at least slow it down. »

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

"You were right, the quality of developers will continue to go down, processors will get faster, storage and memory will get cheaper, and code will get sloppier and sloppier"

Collapse
 
kquirapas profile image
Kristian Quirapas

In what way are developers deteriorating in quality? I'm curious to know so I could prevent them in the future

Collapse
 
jeremyf profile image
Jeremy Friesen

I'm not the original poster, but what I've found is that there's a tendency to chase the new thing. And as such, a person loses the opportunity to reflect on the impact of what they've done. Each new thing attempts to solve the problem of the previous new thing, but itself introduces a new problem as it specifically address the previous old problem (but might have forgotten the lessons of what the previous new thing fixed).

In other words, our collective understanding of software is soft and shifting, and we're forgetting the lessons that each technology solved.

tl;dr - move fast and break things is terrible for the human condition.

Collapse
 
devfranpr profile image
DevFranPR

That's kinda of sad.

Collapse
 
tmchuynh profile image
Tina Huynh

Don't give up on your dream simply because you don't know how you belong in their story yet. There will come a day when you find your footing and everything will click into place. Wait for that day, be patient with yourself and take the time to allow yourself to grow completely. You will never regret the time and effort you put into your own future.

Collapse
 
devfranpr profile image
DevFranPR

Take the basics more seriously you d*ckhead!

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Don't sell that BTC you got paid until the price is over 30k.

Collapse
 
baloraki profile image
baloraki

Yeah!!!

Collapse
 
codewander profile image
codewander

Learn Haskell, but use mainstream languages at work.

Collapse
 
jeremyf profile image
Jeremy Friesen

What specifically is it about Haskell? Like how would you sell learning it to your younger self?

Collapse
 
codewander profile image
codewander

Already did it, I would just tell the younger self not to go too far.

I was drawn to Haskell as part of my search for the most powerful, safe language that I could find.

Collapse
 
1446450047 profile image
1446450047

to learn English well

Collapse
 
history_dev profile image
History Dev

To care less, I cared far too much when I was younger and it caused me a lot of needless pain and anguish. No business you work for will ever care as much as you do about anything.

Collapse
 
janpauldahlke profile image
jan paul

git only via CLI!!!

Collapse
 
jeremyf profile image
Jeremy Friesen

I once thought that but have come around to using magit as it cleaves close to the command line and provides a lightweight UI for applying command switches.

And boy howdy the interactive rebase is much nicer than the command-line method.

Collapse
 
lukasw12v profile image
lukas

Hello my beloved fellows,

I come from the future and can tell you that everything you're saying is totally correct.
Keep on and be successful. We appreciate your work in full strength.