I am a high school student due to graduate in one month. After which I want to take a gap year to give myself completely to computer programming. I would appreciate your ideas for things to do in this one year, so as to gain maximum from this gap year.

  • 3
    Your current level of programming experience (languages known, etc.) will be very helpful in allowing other programmers to give you advice about this.
    – Zoot
    Mar 9, 2011 at 15:32
  • Be focused. Know what languages you want to learn, gather resources, make sure you PC can handle everything etc. A year can go by quickly trust me. Good luck! Mar 9, 2011 at 15:51

7 Answers 7


Find the best programmers you can and work with them. Be a volunteer intern or anything that will get you in their company and let you watch them work. Books, theory, SO are all great but what you could learn in one day just watching a great developer in action who will answer your questions is invaluable.

Build something. Have something to show what you've learned and your ability to apply it. With a full-time effort for one year, it should be a lot.

This is a profession that will try and help people if they are sincere and willing to give an effort. Your one year self-study is a perfect example. Make sure they understand you aren't just goofing off.

Addition: Learn something other than programming. Economics, poetry, accounting, art, oceanography, anything. Develop two hobbies: one you can do while you're young and another for life. Find an activity you love that you will do until you break a sweat. Join a social organization that is not technically related. You will find a lot of your interactions with people who aren't technical, so you better learn to get along with them.

If all you end up with out of this experience is code, you failed.


I think a Gap Year is a bad idea.

I think for your professional career you need to have a mixture of a professional training via college, and practical experience by working on your own projects on the side.

That way you gain practical experience you can add to your profile, and get the round experience that manager's love to hire for.

Yes I know college can be an incredibly expensive waste of time and money, but most manager's refuse to consider practical experience, without a college degree.

  • I agree with the Gap Year being a bad idea, but not with college being a waste of time and money. It depends on what you go to college for I suppose.
    – Ben L
    Mar 9, 2011 at 15:42
  • 1
    I disagree. For some people, a gap year could provide a valuable time for the person to ask some of the bigger questions (such as "What do I want to learn?" and "Where do I want to be?") without paying to study things that may not serve those goals. Take it from a Psychology/French Liberal Arts Major who spent a fair bit of time changing to a programming career path after having fully committed to a different path in college. However, a "gap semester" may achieve the same thing.
    – Zoot
    Mar 9, 2011 at 15:43
  • I understand your opinion. I have been to college 3 times, and mostly not because of what I wanted to learn, but because I needed the paper proof of what skills and experience I had/have.
    – crosenblum
    Mar 9, 2011 at 15:44
  • I agree, if you want to take a gap year take it after at least two years of college. With the theory down pat, the year will be more productive. If you don't want to go to college but be self-taught, it isn't a gap year.
    – HLGEM
    Mar 9, 2011 at 16:38
  • @crosenblum: If you went to college without any intent to learn something new, you can't really blame the college if you didn't learn anything new. Anything CAN be a waste of your time and money if you choose to make it so.
    – philosodad
    Mar 10, 2011 at 3:32

That's an interesting idea, although I don't know that giving yourself "completely" to computer programming is going to be the best way to use this year, because you can pretty much do that at college if you want to and you'd have lots of expert resources that are being paid to help and guide you.

I also disagree that an open source project is best use of this time, not that getting involved in one is a bad idea but make it a side project.

I propose that this is a good time to decide:

  • What kind of programming interests you most, what problems do you want to solve?
  • What kind of work environment do you want to be in?
  • Where do you want to live after college?
  • etc.

Travel, volunteer, intern. See what's out there and make some general plans about where you want to go in life then test the waters and see where it takes you! Good Luck!


I would get involved in an open source project or start your own.

Developing on your own is one thing it however it all changes when you have to work with others. It will also teach you many of the things such as source control that you would need in a commercial environment.

Finally having contributed to an open source project gives you the opportunity to show something to future employers.


The best thing you can do for yourself is to study techniques. Knowing the syntax of a language is relatively simple to learn for a programmer. The kinds of thing that take years to unlearn if you start off on the wrong foot is the extreme programming mentality which might be good for getting code out quick but it'll make your life hell later.

I would take John's advice and start an open source project. Good languages for this are C++ and Java. Take your time and study how to do it well, including spending a good bit of time designing the code before you write a single line.


Study a little computer history. Read books like "The Cathedral and The Bazaar" and "Masters of Doom". Check out the history of programming languages. Learn your roots. Understand how the pioneers of the industry have made your life easier.

Find a hackerspace or user group in the area, and get in touch with as many other geeks and professionals in the area as possible. Learn from them.


Dive right in.

Pick up a book on a language that interests you (The O'reilly books are very nice for learning a new language), then dive right into a personal project you think would be fun to work on. The only way you are actually going to learn is by doing, messing up, and doing it again. It will be challenging at time, google is your friend, stackoverflow is your friend. You will write bad code, but that is the best way to learn how to write good code.