I saw a /r/cscareerquestions post on Reddit:

So I went on LinkedIn to see what other University students are like… It was so depressing. […] How am I supposed to compete when I am nothing compared to these people?

Copied here is my response.


Listen up.

Two years ago, at 23, I started my second bachelor’s degree in CS. No programming experience besides a handful of online tutorials. My first bachelor’s degree at a top UC was a joke. I was traumatized by my experience graduating with no applicable skills.

I worked my ass off in those intro CS classes and then hustled until I got an internship. Writing automated UI tests for a random web application, but at a decent local company. I learned a shit ton from the software engineers on that team, and people liked working with me.

When that internship ended abruptly, I hustled and applied for more internships. Got a software engineering internship at a great company that’s funded by the DoD. So, it’s not the most software-oriented company in the world, but it’s a good learning opportunity.

I got lucky (but luck only happens to those who seek opportunities) and a senior engineer saw “Linguistics” on my resume, decided I’d be a good fit for his project. Later on I learned that this was the hardest project he’d ever given to an intern. Early in the summer he told me he liked my attitude and that attitude matters more than skills, because we can always train for skills.

At the end of summer he went to bat for me and the company hired me full-time. Still working on that project a year later, delegating work to a few newer people. I told my intern that if he sees me doing something that doesn’t make sense, he should speak up! I have knowledge gaps and I often just never encountered the right way to do things. My ego isn’t that fragile.

In two years I went from clueless to leading API redesigns and establishing project standards. Mentoring interns and keeping up with experienced software engineers. Organizing and leading training sessions for our users, who happen to be brilliant engineers.

People kind of laugh at me when I get excited for knowing something or solving a tough problem but they know I’m still in school (taking way longer than anticipated because of depression and recently-diagnosed ADHD).

By the time I finish school I will have such solid experience. My confidence got a huge boost the past couple months.

Things I attribute to my success:

  • Attitude is huge. If you want to do a good job, quality people will want to work with you. Then you learn a ton from their mentorship and just listening.
  • Shut up and listen. You don’t have to take everything you hear at face value–actually I’d encourage you not to. But gather tons of information from all relevant sources and then come to your own conclusions.
  • Fuck competition. I want everyone to hold hands and work together. Oneupsmanship is a waste of precious time and energy. Which leads me to my next point:
  • If you don’t know something, ASK DAMMIT. Don’t be shy about it. Just be like, “Can you explain what you mean by XYZ?” or “Could you go over the ABC one more time?” The grey beards who’ve seen everything and can write a compiler with their eyes closed ask lots of questions. Take a page from their book.
  • Fuck your pathetic, fragile ego. Focus on your potential. I had serious imposter syndrome for a long time, but you know what? Neuroplasticity is a thing. The best thing you can do for your life is establish a growth mindset. I highly recommend the book Mindset by Carol Dweck. I’ve read a ridiculous number of self-improvement books. Mindset has had played the largest role in my success.
  • It’s hard when you’re in school, but I consume a ton of books and articles on software industry topics. There’s plenty of space for 9-5 developers and so-called mediocre developers who don’t want to read this stuff, but if your life was incomplete until you discovered computer science the way my life was, consuming info won’t be a problem. It’s just a matter of where to get it from. (Just a couple I like off the top of my head: Coding Horror, Joel on Software, Daedtech, Model View Culture. I follow a lot of quality people on Twitter so I get introduced to a lot of great blogs)

Additional advice:

  • Know your fundamentals. It’s amazing how often recursion comes up. Or resolving those complex conditionals. Big-O and shit. But:
  • Eliminate complexity. That’s the #1 goal in software development, according to Code Complete (which is a great resource but not applicable to every situation. Like I said, gather information and then come to your own conclusions.)
  • You are the interface between the domain and the implementation. It’s your job to effectively communicate with your business stakeholders. Fuck the technical shit, this is the hardest part of your job.
  • Domain knowledge takes time. It’s frustrating as all hell not getting why people care about stuff. Eliminating complexity can make this easier.
  • Life takes time. Life is fucking hard. Life is fucking shit. Back in January and February I’d go around all day wanting to die. Just couldn’t stop thinking about being dead. If you’re in a bad place, get help. Reach out. People care about you and love you and want to see you succeed. You can get through this. :hug:

Another thing: I’ve dated engineers from Google and EA and SpaceX (nerdy guys love me for some reason) and a lot of them are either seriously boring or seriously entitled.

Software is amazing and powerful and so fucking cool. There are so many amazing things we can do for the human race. And other species! Idgaf about getting rich people richer. Right now I’m in my apprentice stage, but my goal is to get so good at this that I can wield it like a fuckin sword for world peace. (I’m exaggerating and oversimplifying here but you get the idea.)

So, what do you care about? What’s your legacy? You don’t need to figure that out as a 20-year-old sophomore–you need life experience to give you a few ideas first. But try to care about something beyond the rat race. It’s a great ego boost to have a killer resume, but your resume isn’t what you’re going to tell your grandchildren about.

You’re young and you have potential. Expand the scope of your goals and adjust your priorities. You’ll get there and you’ll kick ass when you do.