While working on a talk for Refresh Chicago, I tweeted this…
Giving a talk on "Things I wish I knew as a junior dev." What's on your list?
— Greg Baugues (@greggyb) June 24, 2014
… and was rewarded with an unexpected deluge of replies:
General
.@greggyb I just posted this advice for aspiring software developers: http://t.co/ETSl54el2I
— Dave Hoover (@davehoover) June 24, 2014
@greggyb @JEG2 @kytrinyx "Go that way. Really fast. If something gets in your way... turn." #betteroffdead
— Avdi Grimm (@avdi) June 24, 2014
@greggyb 1) Argue to understand, not convince. 2) You must grok the inner loop. 3) Never work with time zones.
— Josh Susser (@joshsusser) June 24, 2014
@greggyb » Try to be your most forgiving peer, don't dwell on the little mistakes for too long. It's kryptonite. That, and drink less beer.
— ·٠•●★ JR☠D ★●•٠· (@JRodl3r) June 24, 2014
@greggyb all technology/experience has a place, listen to criticisms of tech/orgs, but don't write them off.
— Isaac Sanders (@isaacsanders) June 24, 2014
@greggyb don't be afraid to make mistakes
— Christopher Saunders (@chris_saunders) June 24, 2014
@greggyb @avdi TATFT. No absolutes. Don’t worry, nobody really knows what they’re doing. Need to be able to sell.
— Caleb Thompson (@thompson_caleb) June 25, 2014
Career
@greggyb Salary negotiation, how people actually get jobs (not blind resume firing), importance of soft skills, where should one work early.
— Patrick McKenzie (@patio11) June 24, 2014
@greggyb My theory for first jobs is you maximize for learning/impact, and Twilio is at the sweet spot of a) you own stuff b) experts above.
— Patrick McKenzie (@patio11) June 24, 2014
Twilio plug – We’re hiring developers and developer evangelists!
@greggyb I wish I'd read @patio11's salary neg article, had it existed in 2008. Screwed myself out of lots of money for lots of years
— Colin Dean (@colindean) June 24, 2014
Said article on salary negotiation.
@greggyb since @patio11 covered the stuff I’d mention, I’ll add a book recommendation: The Geek Handbook by @rands. Great career guide.
— Larry Wright (@larrywright) June 24, 2014
Said book. I also recommend The Clean Coder.
@greggyb oh, and "you don't get paid for overtime. Go home."
— brian wisti (@brianwisti) June 24, 2014
@greggyb Code for your clients, not your peers
— Jeff Claeson (@dreamtime) June 24, 2014
@greggyb dev is a long career of cathedral construction. start with huts. be patient and be eager to learn and listen.
— Jared Habeck (@smotchkkiss) June 24, 2014
@greggyb @kytrinyx @JEG2 @avdi if you're pairing with a more experiences dev, is she checking in often? Allowing you to drive? Investment.
— Sean Knox (@smk) June 25, 2014
@greggyb @kytrinyx @JEG2 @avdi be wary if company doesn't specifically consider your role as jr, and plan to level you up.
— Sean Knox (@smk) June 25, 2014
@greggyb Don't be the smartest guy in the room. You don't learn anything that way.
— Matt Hucke (@matthucke) June 24, 2014
@matthucke I'd rephrase that to: Try to not *end up* in a room where you're the smartest :) . @greggyb
— (∀x)(has(x,Cooties)) (@jonathanmarvens) June 24, 2014
@jonathanmarvens @greggyb Ha, good point! Being sole developer really sucks for learning opportunities.
— Matt Hucke (@matthucke) June 24, 2014
@greggyb your hard work decides when you stop being a junior
— Stuart Nelson (@stuartnelson3) June 25, 2014
@greggyb @JEG2 @kytrinyx @avdi Also: instead of bemoaning less-than-ideal circumstances, learn to excel despite them.
— Joe Grossberg (@grossberg) June 25, 2014
Impostor Syndrome
@greggyb That sense that you're out of your depth, winging it by the seat of your pants? That's everyone, not just you.
— Theodore Lief Gannon (@dour) June 24, 2014
@greggyb everyone has impostor syndrome at some point. ask questions because the guy/gal next to you is wondering too.
— Bill Condo (@mavrck) June 24, 2014
@greggyb everyone spends a lot of time looking at documentation.
— Really Just Hoss (@mi_c_ah) June 24, 2014
@greggyb Criticism of your code is not criticism of you. Own your code but don’t let it define you.
— Petri Partio (@peritpatrio) June 25, 2014
Learning
@greggyb It’s okay to ask for help and/or look things up.
— Noel Rappin (@noelrap) June 24, 2014
@greggyb @noelrap I second this, but “It’s okay to ask for help… but spend at least 20 minutes trying to solve it yourself first.”
— Brett Bender (@brettbender) June 24, 2014
@greggyb @JEG2 @avdi timebox. First you must try, then you must ask for help.
— Katrina Owen (@kytrinyx) June 25, 2014
@greggyb Get comfortable saying “I don’t know”. It gives you the space to learn and discover new things.
— Mike Clark (@clarkware) June 24, 2014
@greggyb @JEG2 @kytrinyx the programming world you know now is actually just a tiny archipelago. Pursue perspective.
— Avdi Grimm (@avdi) June 24, 2014
@greggyb you can't "know" everything and no matter how "easy" a language or framework is, difficult problems will be hard to solve.
— PJ Hagerty (@aspleenic) June 24, 2014
@greggyb People are generally nice so don’t be afraid to ask questions that may sound stupid.
— Jamie Wright (@jwright) June 24, 2014
@greggyb don't suffer alone: if you're struggling, get someone to pair with you.
— Amy Isikoff Newell (@amynewell) June 25, 2014
@greggyb That learning is like doing the dishes -- there's always more to do tomorrow.
— J.T. Grimes (@JT_Grimes) June 24, 2014
@greggyb @JEG2 @kytrinyx blogs and Twitter are data, rarely information. Read books.
— Avdi Grimm (@avdi) June 24, 2014
@greggyb Don't be afraid of the unknown.
— Adam Bair (@adambair) June 24, 2014
People
@greggyb Remember to level-up your social skills alongside your coding skills. Programming is about people: pairs, users… @kytrinyx @avdi
— James Edward Gray II (@JEG2) June 24, 2014
@mooreds @greggyb A peer once told me "once you can program a linked list, everything else is a people problem"
— Scott Yost (@Yostage) June 24, 2014
@greggyb I wish I had known that most development is much more about human to human coordination (the right requirements) than coding.
— Dan Moore (@mooreds) June 24, 2014
@greggyb the Maya Angelou quote about ppl not remembering what you did or said, but how you made them feel.
— Dan Buettner (@Capncavedan) June 24, 2014
@greggyb software development has a pop culture too and this is not necessarily bad, but a thing to be fully aware of
— Bell Biv DeVops (@gabrielgironda) June 24, 2014
@greggyb Get involved with the community - online, user groups, and conferences. These people are your references and your resources.
— J.T. Grimes (@JT_Grimes) June 24, 2014
Coding
@greggyb "all estimates are lies. You only need to learn how to make them sound plausible, including changing them as your task progresses."
— brian wisti (@brianwisti) June 24, 2014
@greggyb 1. when giving an estimate for eng. time, calculate it, then double it. 2. don't hesitate to read source code
— Dylan Jhaveri (@dylanjha) June 25, 2014
@greggyb There is no one ‘right’ way to do things. I wish i had learned that so much sooner than i did.
— Greg Ferrell (@gregferrell) June 24, 2014
@greggyb How to stop at "good enough"
— J.T. Grimes (@JT_Grimes) June 24, 2014
@greggyb I was never taught git at uni, until I had to use it at work.
— Paul Hallett (@phalt_) June 24, 2014
@greggyb It's okay to throw out the first versions of your feature. Learn what your building, toss it, then build it again once you know.
— Adam Bair (@adambair) June 24, 2014
@greggyb YAGNI
— Scott Yost (@Yostage) June 24, 2014
@greggyb @avdi Automated testing means letting the computer remember all the weird combinations of test inputs for you.
— Sam Livingston-Gray (@geeksam) June 25, 2014
@greggyb @avdi Always keep track of code you use to change data; you *will* need it again.
— Sam Livingston-Gray (@geeksam) June 25, 2014
@greggyb @avdi “clever” isn’t.
— Sam Livingston-Gray (@geeksam) June 25, 2014
@greggyb @kytrinyx @JEG2 @avdi Always bear this in mind: code is written once, read many times.
— Joe Grossberg (@grossberg) June 25, 2014
@greggyb Know your tools but don’t let it turn into a time sink. You’ll improve/optimize over time.
— Jon Daniel (@binarycleric) June 24, 2014
@greggyb Curb your ADD for new things. I'm still struggling with this one.
— Jake Champlin (@grubernaut) June 24, 2014
@greggyb Prototypes are good learning tools, but don't show them to anyone. If you do, they'll go into production and you'll be a sad panda.
— J.T. Grimes (@JT_Grimes) June 24, 2014
If you enjoyed this post you may want to follow me on Twitter.