In today’s digital age, computer science has become an increasingly essential field with numerous opportunities for career growth and innovation. High school students who are passionate about technology and interested in pursuing a degree in computer science can benefit greatly from proper preparation and guidance. In this blog post, I’ll provide advice and insights for high school students interested in pursuing a degree in computer science. By following these guidelines, you can set yourself up for success and achieve your goals in this exciting and dynamic field.

TLDR

If you’re not interested in the details of my advice and only want to skim over the main points, here’s a point-form list of my suggestions to students interested in pursuing CS. This should help point you in the right direction to help you start on the right track towards success in CS:

  • Participate in coding clubs, hackathons, and other extracurricular activities
  • Create (and learn to use) a GitHub account
  • Work on personal coding projects
  • Don’t stress about marks
  • Don’t ignore your math

Participate in coding clubs, hackathons, and other extracurricular activities

Participating in extracurriculars is one of the best ways to gain experience and hone your skills before gaining actual work experience. Not only can you have a lot of fun, but the extracurricular activities you participate in will actually be valuable experience to put on your resume, and can give you an edge against others when applying for jobs down the line. Not only this, but you’ll also meet new people and start to build a network that will prove to be invaluable later in life.

Hackathons Hackathons Hackathons

If you take one thing away from this post, it’s that you should be attending hackathons. Hackathons are basically competitions held every weekend where you have 24-48 hours to build some sort of a project. They are easily the best way to instantly get experience & projects for your resume, as well as learn invaluable skills. There’s normally free swag at hackathons, as well as informative talks which will help you gain new skills. Not to mention - you can very easily win prizes from a variety of challenges, even if you’re an absolute beginner.

MLH is probably the best place to go for finding hackathons. They always host an online hackathon every weekend (you can even sign up right now to attend this weekend). There are also in-person hackathons posted to their website, hosted in a variety of locations.

PLEASE check them out at mlh.io and register to attend an event today :)

Create (and learn to use) a GitHub account

If you’re not familiar with GitHub, it’s essentially a website you can use to save your code online. It has lots of features that make collaboration and history tracking much easier. Check it out at github.com.

I see a lot of students hesitent to create a GitHub account, either because they feel it’s too difficult to learn to use it, or they feel they don’t have anything to put on their GitHub account. While it may take a bit of time to learn to use GitHub, once you go through the initial growing pains, using it will be second nature to you. Moreover, while you may not have many spectacular projects to showcase at the moment, building a history of projects on GitHub will show future employers your progress and dedication. Not to mention, it’s very likely if you don’t use GitHub, you’ll at some point lose some project or program that you previously worked on when you need it in the future (yes this has happened to me on many occasions). Also, almost all companies use git, so you’ll be teaching yourself a skill that is sought after by almost all employers.

I seriously recommend you create a GitHub account, learn to use git, and start uploading each of your projects there. Take a look at my GitHub and look through some of my old projects. You’ll find a few high school projects, maybe similar to some that you’re doing right now!

Work on personal coding projects

The projects you work on in your computer science class will certainly provide you with a solid coding foundation, however it is only through going beyond the classroom that you’ll really hone your skills. Personal projects will not only help you learn a ton about coding and different technologies, but also allow you to create things you’re passionate about, and discover your niche in technology. One project I love bringing up is my Rickroll generator website I created for a hackathon. You can check out the source code for it here.

What language, project, or technology should I use?

What language you use honestly doesn’t matter all that much. My recommendation is to try different languages out, find one that you enjoy, and continue to use that until you see a need to switch. Once you learn the essentials of programming, switching between languages down the line becomes much easier.

If you want my specific advice on what languages I think are good for beginners, I would recommend two main pathways depending on what you’re interested in:

  1. Python
  2. HTML/CSS/Javascript

Python

Python is by far my favourite programming language. I love it because of its simplicity, great community support, and great libraries. Python is a great programming language for beginners, and you can do pretty much anything with it. It was Python that sparked my love for programming, and once I learned the basics, I started creating lots of projects due to how much I enjoyed working with the language. Now, it certainly is not perfect and not for everyone, but I’d definitely give it a try.

HTML/CSS/Javascript

If you’re interested in creating websites (or honestly any sort of program which has a user interface) I would recommend playing around with HTML, CSS, and Javascript. If you’re interested in making applications that people will actually use, these technologies will enable you to make things that you can easily and elegantly ship to anyone (by putting your website online). Not only this, but honestly any other programming language or technology is not going to be able to create a user interface as good-looking as HTML and CSS.

With fairly basic HTML, CSS, and JS, you can actually create a lot of fun and useful websites, and easily host them online for free using GitHub pages. If you’re interested, I have a ton of small websites I’ve made for fun over the years with these exact languages, which you can find at tiny.bornais.ca (source code is visible here).

Don’t stress about marks

If you think you’re “too dumb” or “not smart enough” to pursue CS because your grades aren’t very high, fret not! Employers actually very rarely care about your grades, and instead care more about what you do outside of the classroom, like participate in extracurriculars and create personal projects. Even as a C student, you can still have an extremely successful career in software development, and you should not let that deter you from pursuing CS!

Now, I’m not going to actively discourage you from caring about your marks. In fact, high marks can help a lot when it comes to things like getting scholarships. However, I do want to make it clear that marks are only one small part of you as a candidate, and you can certainly succeed without them.

Don’t ignore your math

This point isn’t too too important, but it is worth mentioning that there is a bit of math involved in CS. Most honours degrees will require you to take some introductory calculus, linear algebra, and discrete mathematics courses. Those may sound scary, but they’re really not all that bad, and you will survive them. If you have the option to take calculus and vectors in high school, I highly recommend it as it will make your life much easier in university.

Some degrees do let you to study CS without doing much math (such as UWindsor’s Honours Applied Computing program, or General Computer Science program). So if you really don’t like math, you can study CS without it. However, I normally recommend all students to start out in one of the more mathy degrees, and only switch if you find that it’s too much.

Conclusion

That’s it for now! I hope this article has been helpful in giving you some guidance on how you can set yourself up for success. CS is a wonderful field with tons of opportunity, and I encourage you to continue pursuing it!

P.S. - REMEMBER TO ATTEND HACKATHONS! mlh.io