10 Ways to Prepare Yourself for Computer Science at a University
With only one computer science graduate for every 10 open computing jobs, salary for those jobs rises sky-high, attracting many people to pursue a career in computer science.
If you’re looking to pursue a career in a lucrative field like computer science, you’re probably planning on getting a university degree. A degree is important to learn how to program, as well to help prepare yourself for a career in the field.
University students are required to not just learn but also to perform well on team projects. Students who perform outstandingly and secure an excellent grade point average then get selected for opportunities, like overseas exchange programs or really good internships, that will boost your resume and open up even more opportunities.
Before getting into a university, students need to be ready to endure the challenges presented in an academic setting. Most students coming out of high school do attempt some preparations, like learning how to code, but they only scratch the surface. Simply learning to code is something anyone can do in a short period of time and won’t give as much of an advantage and head-start compared to an all-around approach for preparation that will distinguish you from the crowd.
Pre-university preparations are extremely important and valuable for students, especially because of the intense competition of incoming undergraduates intending to perform spectacularly in school.
I’m a Singaporean awaiting matriculation to National University of Singapore to study computer science in 2019, but first I must serve two years of mandatory national service. Inspired by John Sonmez’s How To Prepare Yourself For College video, I have crafted a game plan to best prepare myself for computer science at the university level. And hopefully, these suggestions can help anyone else who hopes to enter a Computer Science program, too!
1. Determine What Computer Science Means to You
Before deciding to go to a university to further your education, ask yourself the following questions: Are you doing it it to make good money? Because of a childhood dream of designing your very own computer game? Or a wonderment of the beauty of bringing to life artificial intelligence?
Regardless of what computer science means to you, the key is to hold on to it as dearly as your life because when things get tough (when, not if), it will be your source of willpower.
Find out what your specialized interest in computer science is, whether that’s algorithms, computer security, or software engineering, and fully immerse yourself in it because computer science is a diverse field. By building a foundation for your study around a main interest, you’ll see the big picture, and it’ll no doubt help fuel your passion.
Invest in books related to your interest, watch YouTube channels, read news about it, etc. They need not be technical, but they should give you a better perspective and general understanding of the discipline.
As John Sonmez put it, not knowing your interest of specialization is akin to rowing on a boat with no sense of direction.
For example, my interest is in artificial intelligence, and the books I’m reading are: Machine Learning by Ethem Alpaydin, Superintelligence by Nick Bostrom, and Life 3.0 by Max Tegmark. I also subscribe to The Artificial Intelligence Channel on YouTube and follow Yann LeCun and Kai-Fu Lee on Facebook to keep myself updated on the field.
2. Hone Your Craft and Build a Skillset
Needless to say, technical skills and knowledge are what gives a computer scientist his/her substance. The pace of lessons at the university level is fast, and some students may have difficulty catching up – which makes it difficult for you to become a high performer.
It can be a good idea to give yourself a head-start in learning. One way to do so is through massive open online courses (MOOCs).
MOOCs are free online classes that provide a flexible way to learn new skills. Some universities, such as MIT and Harvard, provide them for their own on-campus students as an alternative to earn course credits, and that in itself should say something about the quality of their MOOCs.
Here are a few organizations that offer MOOCs so that you can hone your craft and give yourself an added edge over your university peers:
I’m currently studying CS50: Introduction to Computer Science by Harvard on edX. The lectures are engaging, the problem sets have interesting contexts, and it’s free (unless you want a verified online certificate).
And the best part is, this CS50 class has a Facebook group with an active and helpful online community of students ready to answer any of your questions. Less than a day after posting a question, people chip in and try to help.
3. Know Your Resources
If you're looking for even more supplemental resources before you enter an actual university, check out the cheaper e-book version of textbooks that are popular at various universities. The Internet provides a plethora of resources and information. Use them to your benefit!
Here are a few good introductory textbooks I've used:
|Problem Solving and Program Design in C||Discrete Mathematics: An Introduction to Mathematical Reasoning|
Online tutorials and manuals teach programming language basics, like operators, functions, and libraries, that you can freely apply to your code and problem sets. In university, you’ll also be expected to look these basics up for reference.
Here are a few examples of sites to look at:
4. If You Want to Go Fast, Go Alone; If You Want to Go Far, Go Together
Network with everyone you know: University schoolmates and alumni, relatives, and friends. Your seniors and alumni could also provide valuable insight into certain company cultures. You also never know when you’re in need of a job after graduation and a friend turns out to be a Human Resource recruiter.
Don’t be shy to approach a university alumnus/senior for advice. Look for them on your university’s Facebook/Twitter page, where they may occasionally showcase their achievements and awards. Do ask friends and relatives if they know anyone studying computer science in university too; they should be willing to help you.
Count on the online community’s help. From StackOverflow to Facebook groups, wealthy sources of wisdom, knowledge, and words of encouragement online will bring you far. People have valuable experiences which cost them a lot of time to gain. Learn from them, and you’ll have saved all the time they spent to learn.
Help others, too! Friends in university studying other courses, such as materials engineering, often have courses where they need to learn basic programming. Try to be there when they need help, and you’ll benefit from learning other subjects too.
5. Train Your Mental Discipline
Programming is not easy — long hours of staring at a screen/planning code structure/analyzing a problem set can be uncomfortable, so it’s necessary to practice early if you want to succeed at a university. Plan a programming schedule and carry it out.
Find out your own programming habits and what gets you into The Flow. Whether that’s listening to music on headphones, having a hot cup of coffee at your side, or studying or working at a place where everyone studies together (like the library), do what feels best for you.
In addition, to alleviate the effects of long hours of staring at a screen, practice good sitting posture and get a good chair, adjust the light setting optimal for your eyes (and install a blue light filter), and have a laptop stand to level the screen to your eye level.
By the time you’re in university, you’re going to be too busy with completing assignments and revisions to be concerned with your eyesight and posture. So take the time now, while you have it, to make all these necessary preparations for the long term.
6. Learn to Use GitHub
GitHub is a development platform for hosting open-source projects. It’s how developers work together online on the same project.
GitHub is commonplace both in university and in the workplace. It’s a compulsory skill for developers to work on the same code. Some universities even use GitHub to conduct their lessons, and it’s important to at least learn to maneuver around the site.
Here are some guides you can use to get you started on GitHub: GitHub Guides, Open Source Guides, and GitHub Tutorial by LearnCode.academy. Of course, you’ll also need some technical knowledge of coding.
7. Keep a Progress Log Portfolio
WordPress, GitHub, and StackOverflow Developer Story are some of the platforms where you can record your progress in programming, noting mistakes you’ve made and learning points from them. You can even attach your projects and use it as your portfolio to showcase to interviewers for internships and jobs.
The point of keeping a progress log is for you to look back every couple of months and analyze if you’re making progress towards your own goals. If you’re not, you can adjust your future plans accordingly. While your end goal is to enter a university, it's really all about the journey, and it helps to have a log to reminisce about how you improved throughout the years — even after university.
8. Try a Hackathon
In university, your grades depend not just on your individual knowledge and skills but also that of your teammates. Trying a hackathon lets you experience first-hand the communication, leadership, and programming challenges of collaborating as a team and learning something from it.
As a beginner programmer myself, I wanted to see what hackathons were all about, so I tried one.
I approached a university alumnus who’s participated in 30+ hackathons over the past three years. After sharing with him how I’ve been taking MOOCs and studying, he advised me to “just join a hackathon” because the purpose is not just to create a solution, but to learn. He also noticed people who had no programming background joining a hackathon and learning the ropes from scratch in the process.
Here is a compilation of the hackathons in the USA that you can try: HackEvents
If you’re nervous about how a hackathon runs and whether you can work effectively in a team, I suggest looking for a small group (3-4) of friends and trying to work on a personal project. Call it a personal mini-hackathon session: Learn as much as possible from your friends and their programming languages, and create a small product.
9. Experiment With Different Preparation Ideas
Step out of your comfort zone. Discover what works for you and what doesn’t. Experiment with novel and niche ways of preparation, be it by creating YouTube videos to explain concepts or volunteering for non-profit organizations to design their websites.
As you venture out of your comfort zone, you discover opportunities that will bring you to greater heights. You will gain confidence so that when you meet new challenges in university (any particular programming error, for example), you know that it will require some time for you to overcome them and remain motivated.
If you have sufficient time to spare, you could consider teaching coding to teens. Teaching is the best way to learn. Teens can have very different analytical perspectives from your own. Their questions can prompt you to rethink what you already know and how that knowledge can be applied in completely novel ways, broadening your perspectives.
10. It’s Not a Race — It’s a Lifestyle
Relax a little; the point isn’t to outcompete all the others in university to secure your first class honors. The process of learning and attaining your degree is what makes computer science meaningful to you, and the achievements are a bonus.
It’s about the friendships you forge, the challenges you overcome, and how you grow. That’s what makes computer science a meaningful career to you.
The Beginning of a Great Journey
Of course, all these are just plans and won’t be useful unless you follow through on them. In the end, a university is simply a platform for you to acquire marketable skills. Your goal shouldn’t simply be to complete university but to engage in lifelong learning after university as a computer scientist. With that said, don’t wait for university and start preparing now.
And when you encounter challenges that tempt you to quit, always fall back on what computer science means to you; it’ll help you find the strength to push on.