Settings

Theme

Ask HN: What should I learn over the summer? (computer science student)

1 points by parwell 11 years ago · 4 comments · 1 min read


I'm a computer science major. Soon I'll be done with my freshman year of college, and I'll have three months of free time. After this year, I will have learned C++ fairly decently (topics up to polymorphism, linked lists, and templates). Also, from hobbyist programming before college, I know Python to a decent level. In the fall, I'll be taking two CS classes (data structures, and intro to computer systems).

My question is, what would be a good use of my time over the summer to still be learning CS topics at a decent pace?

The idea I had was making a good-looking website where users can play some small video game, and create an account so that they can log in and see their previous scores. Would this be a feasible idea? I figured it would help me learn web design (HTML, CSS, JavaScript) and I would try to make the game (whatever it is) from scratch, so I'd learn Java (or whatever is best for the job) too. If this seems like a good idea, what order should I go in? Any other suggestions? Thank you!

mmrasheed 11 years ago

If I were you, I would learn something practical, fun to do, and have visible accomplishment. One such example is mobile device (android/iOS) programming. It will not only give you an edge over your classmates, but also you may earn extra bucks as well. If you own macbook+iphone/ipad, swift [https://developer.apple.com/swift/] is a fun language to learn. And Professor Paul Hegarty has made iOS programming much more fun to learn over the years [https://itunes.apple.com/us/course/developing-ios-8-apps-swi...] [http://cs193p.stanford.edu/]. For android programming, you can start from learning java and then jump in to Google's android course [https://www.udacity.com/course/developing-android-apps--ud85...].

You may experiment with arduino or any other embedded systems. You will learn a lot about electronics, and basic computer structure. Embedded systems are integral parts of IoT.

  • parwellOP 11 years ago

    Ah, that is one thing I forgot to mention. I have some Arduino experience from a tech project I had senior year of high school. Of course, I did it with my very very rudimentary (at the time) C++ knowledge, but I still have all the boards and wires and stuff. I'll try to come up with something to do with that also.

sumitgt 11 years ago

If you wan't to build a website where users can log in and store their scores, you'll need to learn a web backend language too. I would recommend this Udacity course (https://www.udacity.com/course/developing-scalable-apps-in-j...) since you plan to learn Java anyways.

This would be intimidating at the beginning, but you seem motivated enough to survive it. :)

Overall, I feel like you are on the right track. Building projects/games/websites would lead to better learning.

armenarmen 11 years ago

By the sounds of things building the site you described is well within the realm of doable. If you are looking at web games (as opposed to android which I think is what you were getting at with Java) there is a lot of cool stuff happening with canvas and js. Some tutorials here: http://www.canvasdemos.com/type/games/

I'm looking forward to seeing your project!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection