2349
purged
2y

!rant

After over 20 years as a Software Engineer, Architect, and Manager, I want to pass along some unsolicited advice to junior developers either because I grew through it, or I've had to deal with developers who behaved poorly:

1) Your ego will hurt you FAR more than your junior coding skills. Nobody expects you to be the best early in your career, so don't act like you are.

2) Working independently is a must. It's okay to ask questions, but ask sparingly. Remember, mid and senior level guys need to focus just as much as you do, so before interrupting them, exhaust your resources (Google, Stack Overflow, books, etc..)

3) Working code != good code. You are an author. Write your code so that it can be read. Accept criticism that may seem trivial such as renaming a variable or method. If someone is suggesting it, it's because they didn't know what it did without further investigation.

4) Ask for peer reviews and LISTEN to the critique. Even after 20+ years, I send my code to more junior developers and often get good corrections sent back. (remember the ego thing from tip #1?) Even if they have no critiques for me, sometimes they will see a technique I used and learn from that. Peer reviews are win-win-win.

5) When in doubt, do NOT BS your way out. Refer to someone who knows, or offer to get back to them. Often times, persons other than engineers will take what you said as gospel. If that later turns out to be wrong, a bunch of people will have to get involved to clean up the expectations.

6) Slow down in order to speed up. Always start a task by thinking about the very high level use cases, then slowly work through your logic to achieve that. Rushing to complete, even for senior engineers, usually means less-than-ideal code that somebody will have to maintain.

7) Write documentation, always! Even if your company doesn't take documentation seriously, other engineers will remember how well documented your code is, and they will appreciate you for it/think of you next time that sweet job opens up.

8) Good code is important, but good impressions are better. I have code that is the most embarrassing crap ever still in production to this day. People don't think of me as "that shitty developer who wrote that ugly ass code that one time a decade ago," They think of me as "that developer who was fun to work with and busted his ass." Because of that, I've never been unemployed for more than a day. It's critical to have a good network and good references.

9) Don't shy away from the unknown. It's easy to hope somebody else picks up that task that you don't understand, but you wont learn it if they do. The daunting, unknown tasks are the most rewarding to complete (and trust me, other devs will notice.)

10) Learning is up to you. I can't tell you the number of engineers I passed on hiring because their answer to what they know about PHP7 was: "Nothing. I haven't learned it yet because my current company is still using PHP5." This is YOUR craft. It's not up to your employer to keep you relevant in the job market, it's up to YOU. You don't always need to be a pro at the latest and greatest, but at least read the changelog. Stay abreast of current technology, security threats, etc...

These are just a few quick tips from my experience. Others may chime in with theirs, and some may dispute mine. I wish you all fruitful careers!

Comments
  • 46
    Great advice indeed.
  • 100
    As a student about to graduate, this is kick ass advice. Thanks!
  • 59
    If I could ++ 10x I would. I'm stealing this to share with my students!!
  • 32
    Very good rant, made me register just so I could ++ this
  • 22
    As someone with similarly varied and lengthy career in tech, this is excellent advice for both beginner and experienced dev. ++ for you
  • 7
    Thank you
  • 4
    Thank You!
  • 4
    I can totally relate!
  • 8
    Thank you a gazillion times !!
  • 4
    Could not agree with you more πŸ‘
  • 5
    Solid advice there. Thanks πŸ‘
  • 6
    Thank you really much! Superb advice for me as a kind of new dev πŸ‘πŸ‘ŒπŸ‘
    I will give you a ++
  • 5
    Thanks, jr. Dev taking your advice here!
  • 9
    As someone with similar length and experience although mostly as a developer/system engineer I think this post is right on the spot. All of you out there that are new in the craft listen and learn! So much wisdom in this list!
  • 4
    Developers, with big egos? Never! Great advice. Thanks for sharing @purged
  • 5
    Thanks a lot..it's really very good advice.
  • 5
    Baby dev here, passing this to my team hehe.
  • 3
    Best advice so far here at devRant. Thanks for sharing...
  • 23
    This is pretty good, I share the sentiments here. A couple of my own to add here:

    - spending some time on upfront design is important. It's also important to realize that you will not catch all issues upfront, and you will have to tweak your designs as your go along.
    - don't do stupid work. If it's repetitive automate it.
    - your best code is the code you won't have to write and maintain.
    - whatever you do, make sure you actually solve a real problem, so have realistic metrics to estimate your success.
    - you are never the smartest person in the room. corollary: feedback is always important, the earlier you get some the better.
    - spend time to have deep understanding of the issues/technology
    - don't jump aboard the hype train. Counterargument: stay atop of new trends.
    - use the right tools for the job. This applies to different abstractions as well: code, services, your home.
  • 3
    Great advice! Thanks for sharing.
  • 5
    Thank you!! πŸ‘πŸ‘πŸ‘
  • 3
    Thank you for taking the time to write this, by far the best thing I've read here.
  • 5
    As someone who's slowly breaking free of IT Support role monotony, this advice comes at a great time.
    Thank you!

    Any tips for when clients ask for ETA's on a bug?
  • 3
    Very good thanksπŸ‘
  • 7
    Number 1 alone deserves a stress ball. And that's the problem with "teenage geniuses". Their egos often are so big that you feel bad for when it's going to fall all over their faces.

    Anyway, thanks for the advice. There is nothing better than working with people like you.
  • 4
    I'm saving this! I never want to lose this !rant
  • 5
    Hmm selecting text isn't supported in devRant? Hmkay, a series of screenshots then....
  • 5
    Great advice! Just one thing about #10. Does anybody have some tech news site recommendations?
  • 17
    @renegade When a client asks for an ETA on a bug, I set my status to "Away."

    No, truthfully, that is my weakest area. I have never been any good at estimating time.

    I typically tell them "It will take me some time to diagnose the issue. Until I know why it's broken and come up with a plan of action to resolve it, any ETA I give is a shot in the dark."

    Any good technology leader should play top-cover for you with generic statements like "We're looking into the bug as we speak and will get back to you on an ETA as we know more."
  • 3
    I appareciate this a lot!! thank you so much πŸ‘πŸ»
  • 6
    @purged to add to this, it's always good to add extra time, if you think it will take 6 hours to fix, give yourself 10-12 hours, if you get it done early cool clients will live you, if it overshoots they won't know
  • 3
    Get this man on the podcast
  • 3
    Thanks man!
  • 3
    This is a golden advice, thank you :).
  • 3
    Thanks for sharing your experiences. This is really helpfull
  • 4
    Great advice :), thanks!
  • 6
    So I'm not crazy...
  • 3
    Thank you
  • 3
    Great stuff, thanks for sharing!
  • 3
    @JBSnorro you can 'favourite' the rant. Under your profile you find all your favourites.
  • 3
    Forwarding this to my codecademy group. Thank you for this
  • 7
    Thanks man! It's not just an advice for devs and ops, but for everyone else
  • 6
    @purged, thank you very much. I'll remember this.
    I try to write the best code possible, I do a lot of research on StackOverflow and similar websites, to make sure I'm doing it the best way. And I don't simply copy-paste the code and if it works, I'll leave it there as it is. I try to understand what the code does, I think this is essential.
    I like to use understandable variable names, practical functions (I make a lot of functions).

    As of PHP7, I don't know what would be a good enough answer, the only thing that I know now is that it has the null coalescence operator ( ?? ).

    I've been programming in PHP for a year and a half now, and I started programming about 3 and a half years ago. I'm enjoying it a lot, and your words will surely help me on the future.

    I do have some ego because I self taught myself almost everything I know, and often I see very bad code, but I'll try to be more humble from now on.
  • 3
    πŸ‘πŸΎ
  • 4
    Thank you so much :)
    I'm sure these tips will prove invaluable for students like me, who are just a couple of years away from starting their careers.
  • 12
    @phiter remember, ego and confidence are two very different things.

    Confidence looks like "I can handle that!"

    Ego looks like "I can handle that better than you!"

    With ego often comes the inability to take constructive criticism, which makes nobody want to work with you.

    I too am self-taught. I too had ego issues. Once I learned to accept the fact that there ARE developers who are better than I am, I felt better, and my coworkers liked me more. This is one of the tips that I can tell you I learned the hard way.

    Sometimes ego is useful to give yourself confidence, but when that ego is thrown in people's faces, they'll resent it/you.
  • 2
    Amazing!
  • 3
    This is really helpful. Not just for juniors!
  • 3
    Pure gold. Thank You Sir.
  • 2
    Sealed on my heart forever!!! Thanks buddy. Thank you.πŸ€—πŸ’ƒπŸ‘Š
  • 2
    From a junior developer to a senior... thank you. Some of these I have learned on my own but others, I definitely need to get better at.
  • 2
    As a recent code boot camp graduate. This is spot on. Thanks!
  • 2
    Thank you for the advice.
  • 5
    Awesome advice! Should write a small article about this so a lot of other juniors (and not just juniors) can read it :D
  • 2
    Holy mother of everything holy. After the last month plus 100000 to point 2 and working independently. It's soooo important.
  • 2
    @piks Agreed, @purges you should definitely write that on Quora or/and on Medium or/and Hashnode.
  • 2
    This is going up on my wall!!!
  • 10
    Love this! Great advice and a must read for everyone. =)
  • 7
    I would add, don't treat older coders who aren't updated on the latest hot framework, library, API, technique, etc. like garbage. None of us knows everything, some of us are re-entering the programming workforce, and each of us gets through a learning curve at different rates with different learning styles. If you are condescending to or talk about older developers behind their backs, it will come back around on you some day.
  • 2
    Thank you for this. It's very good advice. I can't add anything to it.
  • 8
    @stackodev I think, if you talk about any coworker behind their back, regardless of time or skill, you're a problem.

    That said, my personal opinion differs slightly. Sure, we don't and can't know everything about every framework/language/technology out there, but regardless of whether you're an "older" dev or not, if you don't immerse yourself in current tech and trends, you are allowing yourself to become obsolete. Us "older" devs don't get a pass when it comes to relevance. Quite the opposite really, we should be setting the example.
  • 2
    Just wish I could favorite this rant
  • 2
    @muK22 there is a favorite button in the bottom right corner.
  • 3
    This is indeed very very helpful!! Thanks!
  • 3
    @purged thanks man!

    Can you also give some advice on how to document your software? What is practical?

    Thanks in advance πŸ‘
  • 2
    Top notch advices, thanks a ton!
  • 2
    Thanks!
  • 1
    11) its okto fall on the nose. U will even if ur the best. Just recode the same thing, and learn from ur mistakes
  • 4
    I have also been doing this for 20 years. Love the advice except for 2).
    I think you should ask lots of questions but
    a) think about what the answer to your question might be so you can validate your thought process against the more senior members of the team
    b) listen to the answer - write it down if it will save you asking it again
  • 2
    Amazing advice, which could be implemented for any career and even generally in life. Thanks!
  • 1
    You are the Mo$e$ of coding!
  • 2
    This is fantastic advice, thank you for sharing!
  • 2
    Being junior employee since 8 month now, since a lot of people would give the exacts opposite advices (like "a good code is a working code"), your words are golden !
  • 2
    Thank you!
  • 3
    @purged
    Thank you for sharing and mirroring your behaviour to the community.
    I believe you being a true plus value to all your surrounding.
    That makes you a role model to me.
    Thx
  • 2
    I have been solo programming for 4 years, and I agree with all the points.
    Thank you, OP, for the post.
  • 2
    Great Rant I ever heard :)

    Thanks :/
  • 1
    I'd consider myself mid level but #10 rang true the most for me. Even in college I was forced to learn Java but that didn't stop me from learning web
  • 0
    @phiter it's good to hear you say the copy and paste thing because it's what I've been seeing many developers do most of my career leaving us with code they don't understand...
  • 0
    @stackodev I try to be understanding and explain everything to developers that don't understand some of the stack or technology but then I get the feeling that they're pissed at me for being a know it all and basically shut me up so not really sure what to do about that
  • 2
    @timurtu I guess it's just the peril of working with individuals. For my part I try not to be persnickety when someone offers to help me. If anything I feel self-conscious and awkward asking younger developers to help me with stuff they likely assume I already should know. Nobody can know (or remember) everything, though.
  • 0
    @thmnmlst nice!
  • 1
    Woa! Thank you for your advice. Sometimes I think that I'm a bad developer because my code is not as good as from others. Your advice is giving me some hope.
  • 1
    Very helpfull! Thank you!
  • 0
  • 1
    I added this to my journal. Thank you so much for sharing your insights and advice!
  • 1
    Really great advise. Thank you!
  • 1
    Nice post :) Merci beaucoup
  • 1
    Just in time .. Thanks ..πŸ™
  • 1
    Really appreciate, but !rant :)
  • 1
    Thank you for your advice. I'll follow it. :)
  • 1
    Thanks for the advice!
  • 1
    Cool ...πŸ‘
  • 1
    1+ on #2
  • 1
    Thanks for sharing!
  • 1
    thanks for the advice
  • 2
    I feel like giving you a virtual hug. Thanks so much sir.
  • 1
    Thank you
  • 1
    These are some precious advices, thanks
  • 2
    Neat! Are there any strongly reccomended resources for things like decent documentation? I'm still in school and do what I can, but I feel like it's not a thing that's been talked about extensively and I'm not 100% what the best things to emulate are right now.
  • 2
    I registered just to add a ++

    I say the exact same thing to all the teams i work with, sometimes i cross a dev who thinks to be the best just because he knows php and html, what a joke, i don't even take them in consideration during recruitment, WTH everyone know these.
  • 1
    The best article I've read so far πŸ‘Œ
  • 1
    Best thing on the internet today :D

    DevRant is my internet.
  • 1
    Thank you. Appreciate it a lot.
  • 2
    I'm a student and this is my favorite post. Thank you!
  • 0
    !rant is rant
  • 1
    > Write documentation, always!

    Oh god, I tried to point this out to a developer of a ever growing open source game project once. Needless to say it didn't end well ... for me.
  • 1
    wisome
  • 2
    Brilliant. Bloody brilliant. & it applies to life everywhere. I'm copying it to a document and I'm going to try to memorize it. Seriously. Fill my brain with something other than The Rolling Stones 1972 North American Tour!
  • 1
    Could you please build a time machine and tell this to my past self, like, 10 years ago?
  • 1
    I still always get back to this rant. +1
  • 1
    I know this is a very very old rant and I generally don't comment on rants that are more than 3 days at least, but the lessons shared here they are very rich and I'd love to share and show my appreciation.
  • 1
    Well, I feel point number 1 is so fucking true. I used to have so much ego about how I can do anything. But to be honest I couldn't code a simple website with Angular, spring in the quest of learning the tech even after weeks. It's not about what you think you can do. Your actual doing matters the most.
    So, just code. Don't just imagine.
  • 0
    I want to print this and have it on my wall lol
  • 0
    #1 applies even more so for senior devs! If some dude asks me a question, I'll take a break and help them. I do c++ and in my case I have a very different idea about documentation: code is the documentation, I document unobvious/tricky things and some APIs that are meant to be used by others, other than that I try to keep code dense and not polluted by BS comments that do not have any value.
  • 0
    For juniors I'd also give this advice:

    - your boss/manager is not your friend. Don't be fooled.

    - always work on self improvement and some personal side projects at your personal time.

    - always be looking for better opportunities. Early in your career if you stayed more than 2-3 years at the same place switch to active mode of searching for a better place. Remember: making the right move may advance your career in a day to a new level whereas it would take you 5 or more years of your life to reach the same level at the old place.
  • 0
    Regarding ego/asshole attitude: even if you are much better than your teammates don't act like asshole, try to help them instead so that they become better. In the end, the better your teammates the easier it is for you. Also, many companies specifically try hard to avoid people with ego issues and assholes, regardless if they are gods of software engineering. In interviews we try to spot these types of people and reject them if they are suspected of such ego problems.
  • 1
    This is the best advice Ive ever seen for developers starting out. I wish I would have had it several years ago.
  • 0
    Thanks for sharing your experience, much appreciated!
  • 1
    I would like to add one tip that seems important.

    No matter what, if your boss/employer tells you to do something in a certain way and you think its not the best approach to it, don't be afraid to give your opinion about it, sometimes they don't have a clear/better picture of how to accomplish X task, it is important that as a developer you can speak your mind out and then agree on both sides.

    Sometimes my coworkers just follow my orders as literal as I said them, but they never put some effort on questioning me because they think I am correct all the time.

    I let them know to always tell me if they think my approach is wrong or good, so we can discuss it and finish our work in what we think is the best way of doing it.
  • 0
    This is gold...

    Thank you!
  • 0
    this piece of advice never gets old, thanks
  • 0
    This is one of the most succinct posts I have seen on this topic. Thank you. Saving and sharing.
  • 0
    This is the most awesome thing, I have ever read from a developer! Big ups on your emotional intelligence
  • 0
    Mad respect. Thank you very much!
  • 0
    Thank you. This is very good advice
Your Job Suck?
Get a Better Job
Add Comment