|
|
|
Ask HN: Advice to Student Finishing School
|
|
2 points
by strider24
6375 days ago
|
|
I about to finish school and enter into an undergraduate course on CS. I have a few questions.
A little background first: I am a 16 year old guy and I really enjoy programming and every aspect related to it. I have been programming in C and C++ for a while now. Also, I have learned Allegro (Game Library) and (some) QT along the way. Questions:
1. What should be the next language(s) that I should learn? And any specific order?
2. Where should I start to get a good mathematical foundation? (to say, understand algorithms and follow CLRS)
3. Any general advice to an undergraduate?
4. This might be a bit off-topic, but, do you as a hacker have a schedule for your activities?
5. Books that help improve programming skills and understand best practices(other than language specific books)? |
|
If you think that you want a head start before starting your CS degree, you can learn Java right now. Most of the 4 years college will only require you to learn Java, C++ and C. They may have some others languages that you have to learn. But, I am sure that these are the main three.
In fact, you don't have to learn tonnes of language to be good in CS. From what you describe, you may be lack of some practical experience on programming. Try to work on some open source projects or your pet projects. But, I strongly recommend you to work on open source projects so that you can learn from other good programmers in the project.
For Math, it is good for you to learn some basics of Discrete Math before you start learning some deep algorithms that may require more advanced math than high school math. I don't know any book that I can recommend to you. But, I am using "Discrete Mathematics and Its Applications" in my first semester in UIUC. The author of this book tried to relate Discrete Math with Computer Science. So, it may be a good head start for you. From the book, you can learn some basic algorithms and some Math theories such as graph theory, number theory, etc that will be very important in your CS degree. You will learn CLRS usually in the last year of your CS degree.
Remember: Books are good to learn a new knowledge. But, practical experience is always more important in real world.