开发者

Summer Learning Opportunities for an upcoming College Freshman

I'm currently a senior in high school, about to matriculate and pursue a major in Computer Science (possibly dual-major with electrical engineering. Comments?). I already program regularly as a hobby, but I would like to get a jump start this summer by perhaps attending a seminar, helping out on an open source project...开发者_开发百科you know, something legitimate that will bolster my knowledge of the computer science field.

Any ideas?


Pick a totally random language (from Ruby, Python, Erlang, Scala, OCaml, etc) and work your way through http://projecteuler.net/ solving each problem posited on the site.

As the problems get more and more complicated, you will be forced to learn more and more features of the language (from Google, SO, etc) and after about 200 problems, you will have a pretty good idea about a entirely new language and possibly paradigm of programming. You are not aiming to merely to merely solve the problem, but to learn the conventions and best-practices, an expert of that language might use to do your task.

At that point you might want to be motivated enough to build something that language is generally known to be very good at, and so might end up entering a new domain of application development as well (like web-dev, graphics, distributed-systems, etc)


Help out an open source project! I cannot recommend this enough. You get experience working with other people, you get to read code, and you get to work on real-life applications, and... your work will probably have some meaning even if you decide to abandon the field.

Plenty of medium and high-profile open source projects have a page of projects that they want done, some are accessible to novice developers and even non-developers. Here's an example from the VideoLAN project: http://wiki.videolan.org/Help_VideoLAN


As far as specific seminars, it would be difficult to say unless I had some idea where you live. (Not to sound creepy ;D)

But many universities (such as MIT, or I just finished a "course" at Harvard) have freely available course lectures and notes, assignments, etc. available to those who have the interest to watch and (sort-of) partake.

Here is Harvard's "CS-50".


I entered college with a experience in programming, and found the classes to be overly easy and simple. I would recommend against taking classes over the summer unless they would count as credits. You're going to be bored out of your mind if you have to sit through an introductory class if you know all the material.

That being said, I don't know if I would have skipped the intro class if I could, knowing what I know now. Since then the majority of the cse classes have been similar, but they provide small tidbits which can be very useful or provide a better solution or tool than you had before. Its through college that I was introduced to linux, eclipse, gcc, etc. Its the introduction which is hard. After you get the ball rolling, dancing is easy.

I should mention that I'm finishing my second year, and have just this quarter started upper divs.

All that being said (some of which was superlative), I would suggest working with an Open Source project. The possible benefits that I can think of are as follows (I'm sure I've missed some as well):

  • actual programming experience
  • depending on the OS project, actual team work interaction
  • better for resume
  • more interesting
  • can work on the project in the future
  • large realistic project/application

Remember, after school starts, you're going to get your fill of classes. Why not do something different during the summer?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜