So, you're a first year computer scientist.
There are so many things I would have loved to know when I was just starting out studying computer science. I come from a background of computer science, having grown up going to coderdojo and having a programmer for a dad, It was only natural I was going to end up somewhere in this general area, in the end I chose not to study pure computer science.
I study computer science, linguistics and french; therefore I can only really comment on a small subsection of computer science, in Trinity in particular. There is a few common misconceptions I would like to bash out, as well as some general tips for how to attack your first year.
1. You don’t need the fastest computer or laptop to be a computer scientist
In fact, if you really felt like torturing yourself you could get away with only using the computers provided to you by College, in the computer labs as well as the generally available library computers. When purchasing a laptop for computer science you should look for a few key things - More than 8GB of Memory - A 14” or larger screen which is 1920*1080p - 6h+ of battery life (60-72WH+) - A decent CPU/iGPU, something relatively modern. Quantifying CPU performance is hard, so I can’t give exact things to look out for but most quad/6-core CPUs with a decent base clock should be good enough.
2. You don’t need to have prior programming experience.
You will find that the vast majority of your incoming class have no prior programming experience, this is normal! There will be a few who do; and frankly they will end up bored out of their tree for those introductory modules which can actually lead to them becoming disengaged/do poorly in them due to not having paid attention in class.
However, in saying that, try to do as much programming as you can during your first semester – You want a solid grounding in the principals of programming, and how to think in terms of code. You won’t be taught programming languages after first year, if a module uses a completely seperate language they will just expect you to pick it up yourself overtime, and that’s fair enough – Once you know one language pretty well you shouldn’t struggle too much with grasping another.
3. The language doesn’t matter
This follows on from my last point. Don’t get hung up on whatever programming language your intro to programming module uses, you’re not really learning the programming language, you’re learning how to program – Two completely different tasks. You should try and learn the language through which you’re learning to program, but don’t worry too much about the syntax/semantics of that particular language too much; just try and get your head around what’s going on. Being able to read code and more or less understand it regardless of the language is an invaluable skill.
4. Office hours / Contact points; Use them!
Lectures will tend to have some form of office hours, discussion boards or email which you can use to engage with them over the module material. Making use of this time can help you make a good impression with that particular lecturer, and can help you when you go looking for extensions, etc as you will have already built up a rapport with them. They can see you’re engaging with the material, and are trying your damnest to understand it.
5. Download and archive lecture/module material
You should make it regular practice to download and maintain offline and local copies of your lectures. If they’re pre-recorded or have recordings attached it may also be useful to download and store the actual videos themselves, of course don’t disseminate those recordings – that could get you in a world of shit with your particular university, but keeping it locally on an old harddrive might save you if you find out you’ve failed the module, but they’ve taken all the lecture material down from the course webpage/VLE when you go to study for the supplimentary examination session.
6. If you have a mentor / tutor in your college, touch base with them!
Some colleges/instititions have a mentorship program whereby students in older years mentor a group of incoming Freshman for their first year, providing them with useful tips/tricks and helping them acclimate to college life. In other cases, these mentors might be a member of staff who acts as your advocate in matters where you need to deal with the College. It’s vital that your tutor knows who you are, what you’re doing and that sort of thing before you run into trouble. You don’t want your first point of contact with them being knee-deep into a plaigerism case, that’s for sure.
7. Don’t plaigerise
Following on from that last point; don’t plaigerise. This includes pulling code from stack overflow verbaitm, and copying eachothers work. Lecturers see this year after year and they often know the particular websites and resources students are using, year after year. They’re not stupid – so you shouldn’t treat them like they are. You should be able to justify how you got to your solution entirely from the lecture materials or reading list – If you used an online source be prepared to have to source it.
8. Manage your workload
Lecturers are lazy, they don’t have any form of co-ordination as to when they plan things such as Assignments and readings. You will have hell weeks where you have 8,000 words due as well as several coding assignments, that’s just a fact of life – particularly in the run up to reading week, or the end of semester. You should anticipate this and plan accordingly. Don’t leave lectures unwatched and readings ignored up until the assignments are released. That is how you end up completely overworked and overwhelmed. Pace yourself, avoid burnout and make use of a planner so you can keep track of all of the demands of college life.
9. Have fun
College is essentially the most free you will ever be, don’t be afraid to kick back a few times a month and just be present. Take part in societies, join the student’s union – meet people. You will regret it if you don’t. Friends made in college have the potential to be friends for life. It’s also the time to make all the mistakes that each of us eventually do; know your own limits and know when to say no.
I’ll probably come back to this list from time to time, re-phrase it and add additional points as I come across them. I know this comes off as very preachy, and the advice I have given is rather generic, but that’s simply because it needs to be said – I break and have broken a lot of this over the last year and I fully intend on doing it again.