新西兰Thoughts: how to get A+ as an average CS student
在新西兰
先给紫宁小姐姐打call, 101里第一眼就喜欢上的女生,气质超好有没有!
原文写在github里,懒得翻了,请大家多多包涵我的chinglish.
Now I have graduated, time to reflect on the 3 years of learning as a CS student.
Disclaimer: I’m not a CS genius(shame of my github name, knew nothing when I created it.) and this is just my personal experience, may not be suitable for everyone.
Why choose CS?
Mixed reasons.
Before coming to uni I had zero experience in CS and had a lot of concerns if others would be more superior than me. No need. Good if you’ve already had experience and know what you’re doing. No worries if you’re a blank paper because uni will teach you from scratch and most of the people are like you. So have wiped out the concerns, why CS? If I was still in China I would probably choose sth like law or anything irrelevant to Science because I’m simply not qualified to as so many smart students! Now I took NCEA and had the chance to do a Science subject then why not? OK interest is one thing but as a student who was paying expensive international fee we also had to consider the return from this education investment. What do you want to achieve in a short term? A career you like, a place you want to live in. That’s it.
How to learn?
Personally I don’t think there’s too much difference about my learning strategy throughout the 3 years. Here goes the list:
1.>= 8 hour sleep every day. No need to get up early if you don’t have lectures or homework. Sleep as much as you can because your EYE and brain need rest.
2.Go to lectures. Even if you are sleepy, just go and sleep there and come back to watch the recording. You’ll notice the difference.
3.Do your homework way way before the deadline. I always start as soon as the assignment is released and seldom stayed up late for them. Some genius can finish it in half a day but as a dumb student I know I have to start early.
4.Use as much help as you can. While independent thinking is highly recommended whenever you see a task, don’t hesitate if you need help. Sometimes you just need a different perspective:
By far I haven’t found anything stackoverflow cannot answer except some highly specialized questions
There’s plenty of resources on Github that you need
Go to labs/tutorials and get help from the tutors. If there are 3 labs a week I would recommend go to two of them and get all your homework done there.
Find some genius around to help you. Very important.
Exams?
Not sure if works for other universities. But what I do for UC:
1.Make a revision plan according to your exam schedule. The plan might be rigorous. That’s fine. You don’t have to follow it exactly. It just gives you an overall picture of how many materials you need to revise, how much time you need to devote etc. General rule for myself:
Review part of the course first if its exam is the last;
Two subjects a day;
Start revision a week before the study break starts.
2.Revision plan: Personally I always do two past papers first. Not necessarily in a set time. The aim is to know what they are going to ask. Then I look at/make notes from lecture slides, do the tuts/labs again based on what I concluded from doing the past papers. Eg. This point is likely to appear again because it was in the past 2 years; They did not ask this point in the past two years, very likely to appear this year etc. While going over the lecture slides, I’ll still do some extra past papers based on how many are available but always save at least 1-2 for mock. When finished all slides and tuts, I do mock exams in a strictly set time. That’s usually two days before the actual exam. On the day before the exam, I revise all the mistakes I made during the revision eg.do all the wrong questions again. On the exam day, I do nothing.
3.During the study break, lecturers will usually hold Q&A sessions. Definitely go and not afraid to ask! Also very important to check your past paper answers with your fellows. Explaining to others will help you learn as well!
4.Exercise, breaks, whatever can refresh your mind.
Lab tests?
OOOH that’s the scariest part for me because you have to finish everything in such a limited time! What I usually do is just practise labs and online resources again and again. Use prolog as an example, the more you do, the faster you’ll solve it. In the end, all you want to get is a natural instinct that comes up as soon as you see the problem. Same reason for solving Math problems. It’s not a shame that you have to practise so much to get a good result NOT AT ALL. This is how things work for me as an average CS student. And my personal strategy for lab test is: hit 8/10 of the questions correctly in first try and then think about the last 2 questions. Don’t panic if you can’t finish! Some genius will but most people are like you so try to get as much accuracy as you can within your range! When you see a question you can’t solve for 5 minutes, skip it. Don’t complain by saying that I could have solved it if given more time, as everyone is on the same boat and your ability is just not up to that level yet.
Coding?
Just one piece of advice: Don’t stuck and suck on one question. Go outside for a walk, play some pianos whatever and come back to it. Magic will happen!
Regrets?
If again I would start a personal project from the freshman year. Just some extra nice things to put on the resume not only your assignments or intern works.
Others, none. Although not a CS genius I think I’ve tried my best to achieve what I could academically. The hardest time for me was my second year. Got a concussion unfortunately. Slept through most of the lectures and struggled to look at the screen. Only had a clear mind 3 hours max a day. Had to watch the recordings again and again and took me significantly longer to finish the homework as limited by the amount of time that I could focus. Thanks to UC, my family and friends for the massive support during that time. Thought I would have failed but still managed to get an ok result. Did drag down my GPA a lot though.
Jobs?
Definitely start your intern no later than your second year. Don't worry about the poor salary all you want to get is EXPERIENCE. When some companies say they want graduate software engineer they still mean some graduate with 1+ year industry experience.
One page CV.
Github/portfolio/personal web
Best of the luck to all CS students! CS真的是一个燃烧颜值的专业。一定要睡好,吃好,运动好!