Skip Navigation

Graduating highschool and wanting to work as a programmer, advice?

I'm a junior in highschool and will be graduating next year, and the degree that makes the most sense to me is computer science. I've always loved using and tinkering with technology, and learning about it when I can.

I've taken the CS50p course as an introduction to coding, and have really enjoyed the problem solving nature of programming. I just don't know what the industry is like, and people keep saying the job market for CS majors is terrible. so I'm not 100% sure that a computer science degree would be right for me. any advice?

update: I've gotten a lot of good advice from comments and have decided to start a personal project of some sort, to test the waters and see if this is something I can do and enjoy as a hobby outside the CS50p course. thanks to everyone who responded!

10 comments
  • The job market is not terrible. But there is a frustrating thing where a "senior" developer with 3 years of experience will get tons of recruiter-spam offering them $200k+ positions, while a junior developer (your position) will get ghosted when you apply for a job that's offering to pay $50k. So it can feel demoralizing because people you see as your peers are having a very different experience. (And if you go in some circles the FOMO just never stops; people telling you you're wasting your life not being a Meta dev getting $800k TComp or founding a unicorn start-up...)

    You say you enjoyed programming, which sure sounds to me like you could enjoy getting paid to do it. But it's easy to overwork yourself because your boss says that real developers pull 80-hour weeks. Or burn out because it's so frustrating to watch bad decisions ruin your good work. If you can find the right balance of caring and not caring, you can make good money and enjoy your job.

    And it only takes a year or two to get rid of the "junior developer" label and then jobs are a lot easier. (Others have said that the market is bad. And it is bad compared to how it was in, like, 2020. But it's still a very good market all things considered.)

  • I did Software Engineering Bachelors and then gamedev masters, and while I didn't really appreciate it at the start, since it felt like I'm learning a lot of stuff I'd never need, I've eventually come to be really glad that I did it.

    Throughout the classes it felt pretty meh, I didn't understand why I have to do so much stuff that I'll never really use, and always felt like I'm just forgetting 90% of what I was taught the moment I was done with finals for that class. Why do I need to learn Smalltalk? Why Lisp? What even is Prolog? Does anyone even do UML anymore? I want to be a C# programmer, I don't need this.

    And it was true. From most of the languages I've had to go through, I don't remember almost anything. But that's not what it was about, and that's something I only came to appreciate with time - it was not about learning Pharo or Prolog, it was about overcoming the initial learning curve and getting somewhat familiar with OOP or formal-logic style of languages. And while you forget the details, the familiarity will stay with you. The goal is not to make you a Prolog programmer, but to make you a programmer.

    I've eventually realized that I can pick up any language pretty quickly, no matter what it is - because I've already seen and learned all of the different styles or types of languages there are, and no matter what it is, it's similar to something I vaguely remember seeing somewhere. And that's an immense help. I picked that up naturally, I've kept hearing the question "what programmer are you? What language you can program in?", and it felt weird - sure, I do know the most about C#, but I never had issues with picking up whatever was close at hand or needed, and writing anything I needed with a little bit of documentation and googling. And it was thanks to what I learned in school.

    And the same applies to the math and data structures that they hammer into you. Do I remember the difference between red and black tree, or a min-heap, and can I prove it? Not really, but I know they exist, and when I see a problem that sounds like it could use some obscure data-structure, it comes to my mind and I know what keywords to look up. And that's a skill that I've notice is missing from most of the people who didn't have formal CS background. Same goes for algorithms like FFT - you know it exists and what it's used for, and seeing a problem that could use it will trigger your PTSD.

    So, I highly recommend giving college a try. You will learn a lot of cool algorithm, and some of the classes were fascinating, and it will give you a vague overview that will stay with you throughout your carreer, feeding you with keywords about stuff that might be usefull for the problem at hand. It's the best thing I've done in regards to programming.

  • Just a heads-up that Computer Science is a branch of mathematics, and some schools lean into that more than others. There's a lot of theory in addition to the practicalities of writing programs. I'd assess how comfortable you are with math and abstraction, then try to figure out where the schools you're looking at place their emphasis. Since you want work as a programmer, make sure the school offers some software engineering classes in addition to the theory.

  • Only way to get hired with your credentials is with some serious networking. In your local area, look for code/tech meetups and talk with people. Look for "Code and Coffee" on meetup or facebook or something (though I must warn against caffeine consumption for teenagers!). You'll most likely have to look for an internship rather than a Junior Dev position at first, which is typically the pipeline that companies use to hire Jr Engineers.

    Another option is to look for "Tier 3 support" or "Integrations engineers". Often, companies will look for people with minor coding skills to work directly with clients to help implement the company product for the client (for example, adding some custom widget to their wordpress site, new features for their salesforce instance, etc.)

    These engineers don't create the company product but they do get some experience scripting things and often they can use this position to transition to a full time engineering role. In my experience, these roles have far lower requirements to entry

  • If it's the one that makes the most sense to you then do it.

    Even if the job market is at a low, I doubt other industries fare much better. If you'll be a good dev you'll likely be in good demand. (Even then job hunting may be a hassle, but I doubt that's different elsewhere.)

    Go for it! It's not like you're stuck on that road forever anyway.

10 comments