Advice for a dropout
- 24 min read - Text OnlyMy cousin reached out to me after deciding he wanted to change where he was in life. After sharing my response to my and his father, as well as a close friend, I think it is worth making more visible.
Hey
real name here
,This is your cousin
real name here
and I find myself in an interesting place in life. I couldn't stand doing homework anymore, so I dropped out of college with a year left until my bachelor's degree. This happened around April 2021 and for most of the time since then, I've been working as a shelf stocker for a grocery store. I'm wanting to get a software engineering job right now and I would like some tips on how to do that.How important is a college degree for getting a software engineering job and what can I do that would have an equivalent value to a college degree? What sort of companies should I apply to and what positions should I apply for? Where are good places to look for job opportunities? Anything else you could offer in term of information would be greatly appreciated.
Thanks for taking the time to read my email!
Before responding, I reached out to another friend, one with far more managerial and hiring experience. He mentioned that he himself was a dropout so with that experience in mind he offered some high level tips, which I expounded upon in my response.
Hey Real name here
,
I’ve asked around for some advice and got a few tips from someone who did leave school and got into the market successfully. This response is a combination of mine and their points.
Here’s what matters the most to a manager who’s hiring someone without prior relevant job experience.
They’re going to look for what you’ve done outside of school. "School Projects" really are not an effective or useful measure to talk about, except for team ones. Don’t disparage your team members. Saying "I was the only one who did something in my team" will knock you out. Even if it is true in your eyes. Instead focus on things like how you contributed to the design with your peers, agreed together, delegated work and so on. If you didn’t have any team projects, then consider if you ever did a hackathon with a team. (These happened at university here
occasionally for some charity). If you don’t have any experience there, then say you’re eager to be a part of a team and bring your ideas to the table.
So if you’ve got a hobby web application, mobile app, API or something like that, start polishing it a bit to share. If you don’t have one, then get started. Find a relatable problem like… "I don’t know when my dryer finishes, so I put a motion sensor on it, and when the sensor runs for more than 10 minutes and then goes still, it sends me a text using AWS Event Bridge and AWS SNS" is a great one for a hardware / internet of things company.
Figure out what you’re passionate about. Do you want to do frontend? Do you want to work with databases? Do you want to do backend APIs? What about mobile apps, and so on? What do you find most engaging? You need to figure this out. Being an all rounder isn’t convincing as a first-time-hire, though you’ll have to try something all rounding to know what you like.
In an interview, you’ll need to be able to speak intelligently about problems. The only way you’ll get better at this is by practicing. Practically doing hackathons without the code. Find a problem, think of what it looks like solved, design a solution, then try to break it down and find holes in your solution to see if it is a good fit. When you find something particularly engaging to you like the dryer example above, actually make it happen. That’ll be useful in your initial cover letter and interview.
You’ll have to come up with a story for the interviewer when they ask "So why did you go to school and not finish?" Saying "I didn’t want to do homework" is a terrible answer. If you instead say something like "The academic focus wasn’t engaging, I want to solve real problems" that’s far more convincing. Let me tell you, CS degrees are nearly useless. All they say is someone knows how to type things that look like code and they probably know how to learn. Yet still as I interview people 2+ years out of college, so many still do not know how to make anything useful. Oh here I’ll program a tree-map in front of you. No I don’t care about that. The language comes with one, use it effectively.
As a continuation of the paragraph above, know how to use your tools, especially data structures. This is the bread and butter of solving problems. For example.. "Count how many unique items are in a list", how would you solve an input of.. [a,a,b,a,c
] with an output of {a:3, b:1, c:1}
? Can you think of how to unit test this and propose alternate inputs and outputs? This is just a building block for greater problems. For example, a pharmacy wants to have at most 5 vaccine administration slots every 10 minutes. Create a reservation system that does not overcommit (6+ within a 10 minute slot), and where people can choose which slot 2-10 days ahead, with slots available from 8 AM to 1 PM, but none between 11:30-12:30 (lunch break). How would you solve this? Can you make an API for it? Could you make a frontend using that API? What does the database schema look like? How will the pharmacist know who’s scheduled for which slot? What’s the API and frontend look like to them? These are real problems, that get paid to be solved.
You need to be a life long learner. Not getting through school harms that image. I started programming when I was 12, added features to custom PSP firmware mods at 15, made money to buy my own desktop at 16 with PHP and javascript, and got a job doing software development before starting my first class at university here
for university student job here
. I was a student programmer with a limit of 20 hours per week, being paid 9.50 or so an hour. It wasn’t much but I could pay rent and buy food on that. Still, I did that while going through school. I only achieved that because this is where my free time goes. It voluntarily goes to learning. Where is your time going? Do you think you could change how you spend your time to be a life long learner? The way you prove this is by passionately sharing what you learned to solve a problem and show your actual solution and explain how it works. Specifically highlighting where you made mistakes, adjustments, and so on. You have so many more resources to do nearly anything today than I had. See lifelong learning for more about the definition.
So you’ve taken time off from school, I did too. I had to figure some things out in my head and adjust. While I spent 5 months away from university, I practiced some things, found a lot of my motivation was missing. Upon reflection, that was burnout. Take a look at burnout prevention and recovery.
You need to be a self starter. No manager is going to hand hold you. You need to be capable of being told "Learn enough Spring Boot to make a server that sends a random dog picture and get back to me." You totally can and should ask things like "Would you share links to where I can learn this?" to your manager. That’s part of their job is enabling you and guiding you. But they aren’t your teacher. This goes back to life long learning. You are responsible for equipping yourself on the job to succeed at the job. You can ask for hints too. But it is up to you to vet what you find online and figure out how to apply it. Do not resort to throwing code at the wall by copying stuff out of stack overflow without understanding it. Read and understand before you introduce something that you share. You can run stuff and then beak it down by experimenting with it too, but by the time you come back to your manager you should have a firm grasp of what they requested. See more at what is a self starter.
Finally, you need to figure out how to communicate clearly, cut through to understanding problems that others are talking about, confirm your understanding with them, develop the skills to listen and speak what you do and do not know and think. Your first industry job is going to be about presenting your potential. Your goal is to convince whoever interviews you that you can be trained and developed to have the skillset needed to do their job, and that you in turn get set up for a good career. Wherever you land, try to make it to 2 years. If you can stretch it to 3 or 4, you’re good for the rest of your career because now you have the "or equivalent experience" that job postings list.
Software engineering isn’t a field where someone stays around for 10-20 years at the same company. Things are moving too fast, companies (even facebook) are too slow to adapt, new ones are appearing and old ones are crumpling (search "Novell Layoffs" for example) and some go entirely out of business. This is the nature of the field. Maybe your first place is everything you hoped for, but for the majority of people out there, it is not. I moved on from my first place after 2 years and 9 months. I’m at my current place for 4 years and 7 months. This might change but that’s for me to figure out.
Here’s what I want you to get back to me on:
What are you passionate about, what engages you, what skillset have you developed on your own so far, and what are you doing to show and tell to get your foot in the door?
Best wishes,Real name here
I haven't gotten a response back yet from my cousin.
Though my father BCC:
'd gave this remark:
I think it's perfect, because it's a positive energetic email, so he could read it and say.. "I could do this!" or he could read it and say.. "not for me.. it's too much", but there's enough there that he should realize in saying so, that he needs to look at other career choices.
Are you facing a similar decision?