A Letter to an Entry Level Software Engineer

Welcome to tech! It’s not always an easy field to be in, but there are always fun challenges and I’ve enjoyed doing the work involved at nearly every step in my career. Since you’re new here and I’ve been around for over 20 years, I want to share some of the skills and habits I wish I knew when I started.

Essential Skills and Habits

First, I want to tell you what I’m looking for when I hire today. Our field is essentially about taking fuzzy human problems and ambiguous processes and translating them into something a computer can handle. As a result, our job isn’t just to write code, it’s to understand the problem well enough to be able to a computer what to do every time. The skills I care about most in someone like you are:

  • Curious: do you want to dig deep on a problem, whether it’s code or people or yourself?
  • Collaborative: our profession is not solitary, are you willing to share information and ask questions?
  • Introspective: do you know your strengths and weaknesses and seek to improve them?

I can teach you technical skills, I can teach you how to work with people, but only if you’re interested in learning. When I’m hiring a more experienced person, I look for this along with experience, technical competence, and independence.

What I Wish I Knew Back then

Looking back, these are the things. I would go back and tell myself.

Ask for help

This one is so hard, but remember none of us knows everything. I use question starters like these all the time:

  • Can you tell me more about…
  • I haven’t had the opportunity to work with…
  • I want to learn more about what you meant when you said…

I promise you two things. First, people love to talk about what they know and second, you won’t look stupid when you ask questions. In fact, people will appreciate that you are curious and willing to ask. Also, if you have a question, you can be sure others are thinking something similar.

Trust your instinct

If something feels off to you, it probably is. Don’t deny that gut feeling. Dig in more. I ignored warning signs about people, about jobs, about relationships, about situations far too often.

On the other side, trust your approach to a problem. Be ready to take feedback and learn if it goes wrong, but trust you know how to solve the problems you were hired to do. Believe in yourself.

Ask questions about your work and then ask more

If your job is to create an unambigious program to automate a process, you need to seek clarity. Understand the processses you’re automating, understand how things can go wrong, and if it doesn’t make sense, ask more questions. I think of myself as an “Ambiguity Destroyer.”

Try to see the opportunity in every challenge

This is hard. Sometimes, especially early in our careers, our work doesn’t make sense or it’s dull or it feels too easy. Honestly, I still get work like this all the time. I have three suggestions:

  1. Figure out what you want to get out of it: what you want to learn or understand about this?
  2. If the work is dull or feels beneath you, how can you challenge yourself to get it done faster or better without sacrificing quality?
  3. How can you make it easier for the next person who has to do this job?

Give Yourself Time to Think

Our work involves a lot of thinking. A lot of time is spent thinking through a problem before, during, and after we code. Work looks like more than just coding, don’t think you need to code before you know what you’re solving.

You’ll be surprised how much you can solve while taking a walk or playing a simple game or napping.

Last Thing

Welcome to this industry. Don’t give up, keep improving, stay curious. We need every last one of you.

Introducing mazemonster.com Analyzing Methods of Election Fraud for Mail-In or Absentee Voting
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now