Tom Harrison
Tom Harrison’s Blog
5 min readMay 23, 2017

--

I read the excellent piece above. To the junior developers, I can only offer you and your many overwhelmed brethren and sistren the following sage words of calm and hope:

It gets worse.

and

You’re a loser.

and

It’s ok.

This all makes me furious and sad. You just spent millions of dollars getting a degree in computer science. And you just spent years of your life getting a degree in computer science. But you were not taught: GitHub or git, Jenkins, CI, AWS, anything JavaScript, or for that matter anything at all about SQL. Or anything remotely useful. Hahahaha!

This makes my blood boil. Not at you, but instead at our computer science programs. My company hires and trains a lot of people out of these programs. Of these freshly minted graduates, we have come to realize that while you can now write a compiler, and are now able to conceptualize many important algorithms (all of which have already been solved) you have almost no practical or useful experience.

I am lucky to have Nick on my team. Nick was a winter 2017 graduate of an exceptional CS program. He seemed to know so much more than most graduates, and I asked him: why? how?

Most of what made Nick stand out from others is that he spent a great deal of time on his own trying to do practical things that used his learnings from college. He also worked at internships during college where he realized that most of what they were teaching him was abstract and useless. Nick is not normal (I worry about him at times), but he just managed to get a small jump on his peers. That’s all.

I studied computer science at college back in 1980 before there was even a CS degree. It was pretty abstract then (so abstract that my major was Econ). What I have come to understand is that college teaches you concepts and, largely college teaches you to learn how to learn, not how to do.

Nick is exceptional because he took the time and effort to learn stuff that was practical on his own. I am old now, and my son just got back from his freshman year at college (holy crap, holy crap, holy crap, I am old). He worked his ass off, and when he wasn’t working his ass off, he did what good college students do, which is to play hard.

Fuck these college programs who tell you they are preparing you for anything. They are not preparing you for anything immediate or real, because (sorry to tell you) you will not do anything close to an “algorithm” in your first several years of software engineering. Or ever. You’ll deal with stupid git merge conflicts, build-fails, dealing with some stupid horrifying code that someone 10 years ago who thought they were god’s gift to computer science wrote before they realized they were mortal and quit. Nope, computer software is just a business, all dirty and sordid, like all the rest.

However…

Once you become marginally proficient, things will be better. I can promise you, Anna, Bowei, Cory and many others who were in your very shoes last year are now killing it, and specializing, and getting past those insecurities, feelings of hopelessness, loss of innocence and all the rest. Anna has made several critical changes in the way we do things. Cory fixed a problem with a bit of software that our 53 year old senior architect was ready to throw out completely, just by upgrading to a new version and a little diligent manual reading. Anthony has learned Bash and figured out how a longstanding bug that all the “senior engineers” had long-since worked around and made worse was actually just a small thing and is now undoing the years (and years, and years on years on years) of workarounds. Bowei is converting our infrastructure to use modern tools (with Nick).

So here’s the thing. You know nothing. Face it. You know how to drink beer. You know how to get good grades. You know a shitload more than those stupid freshman you saw, right? But in professional software engineering, you’re a newbie. You can choose to be intimidated. Or frustrated. Or antagonistic. Or accept your new reality and roll with it.

And if you roll with it, if you accept and welcome the new reality, you’ll be amazed at three things: 1) how fucking little you know that is useful, and 2) how quickly you can learn how to make it look like you know it, and 3) how incredible and amazing the field of software engineering is.

There is simply no other field where your professors are so completely clueless that they could just have spent time teaching you the cutting edge of what they knew in the years they graduated which is likely between 5 and 20 years old. Six months is a long time to be out. They are only able to teach old news. You have entered a field where in several years, if you apply yourself, you’ll know more about specific things than any professor ever will know.

Also, you don’t have to unlearn stuff like the rest of us. This is where Nick, Anna, Bowei, Cory and others have leapfrogged those of us set in our ways. (But not me, not me, not me!).

You are a software engineer. You have entered a profession in which, if you work hard (and as hard or harder than you have worked in college) you will become a god, a hero, and a genius who knows more shit than any other human on earth. My wife Theresa is such a software engineer, and she has this status, and I know it. And so does her boss, who is a douchebag, and her boss’s boss, and she works from home as many hours as she pleases, is paid a lot and knows that were she to look elsewhere she could get a new job, but doesn’t because she is way nicer than I am.

Chances are you will need to specialize at some point and know only as much as some the other amazing humans. But however you go, you’ll be amongst the smartest, most hardworking, most ingenious, and most thoughtful group of people on this planet.

I have been doing this for 30 years, and I still know more than a good 15% of the people I work with (it’s all the other managers who have gotten fat and happy) and while I try to keep up, I know that every new crop of freshly minted engineers will have a Nick or Anna or more in their midst. I had better go and learn what the fuck Kotlin is, because if I don’t and it becomes the Next Big Thing, I am dead meat. And I love this. Have for my entire career. Will until I die.

And in case you think this sounds like a competitive male thing, stop. It’s nothing competitive at all. I know who the people are that I can learn from and they are neither more nor less male, neither older nor younger than I, neither smarter not dumber than I. They just know shit I haven’t figured out yet, and that makes them more able to be competent.

It’s an equal opportunity world for people who are willing to constantly learn new things. It’s not competitive. I have seen almost no indication that it’s preferential towards any race, gender, sexual orientation, religion, or anything else. (And yes, we’re all geeks, but it’s kind of a thing you just come to realize is part of what makes us more fun than all the others. Just sayin’). Some people got it. Some don’t.

So, buck up. Take a deep breath. And fucking go do what you love!

--

--

30 Years of Developing Software, 20 Years of Being a Parent, 10 Years of Being Old. (Effective: 2020)