TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask YC: how to learn computer programming in 8 months?

19 pointsby deltapointover 16 years ago
I am graduating high school a semester early and have 8 months before college. My career aspiration is to be a startup entrepreneur. I barely know any computer programming now and have tried to teach myself but have had trouble doing so. What do you think it the best environment and method to learn computer programming?

27 comments

tsallyover 16 years ago
While your 8 month time frame is a little longer than most, the honest answer is that you don't.<p>Essential reading: <a href="http://norvig.com/21-days.html" rel="nofollow">http://norvig.com/21-days.html</a><p>The bottom line is that you need to work on projects you care about. You need some motivation for what you are doing. Wanting to learn to program is not enough. For example, I have wanted to learn Haskell for a few months. Being a busy college student however means that it's difficult to find time for such an abstract goal. Tangable, realistic projects are the best route to go. I never fully learned or understood C until I was hacking around Linux in my operating systems class last semester. Pick a small project that you want to accomplish, ask for advice about which language would be best, and then have at it.
评论 #432061 未加载
评论 #431847 未加载
aneeshover 16 years ago
I'd recommend getting started in the following order:<p><pre><code> 1) Familiarity with Unix &#38; shell scripting 2) A scripting language (Python/Ruby/Perl) 3) C </code></pre> If you have more time, learn C++/Java, and a functional language. From a motivation standpoint, it might be helpful to learn a language with a specific task/project in mind (ie, I want to learn Python to make a webapp that does XYZ).<p>Also, check out <a href="http://norvig.com/21-days.html" rel="nofollow">http://norvig.com/21-days.html</a>
评论 #431839 未加载
评论 #432490 未加载
评论 #432020 未加载
jdnierover 16 years ago
For me, it was having something practical to accomplish (and better if it had a deadline attached). String processing (manipulating text) was, for me, a comfortable place to start. Python is a great first language to learn and will let you explore just about every nook and cranny of computer science you find interesting. Pick up a Python book, work through the first several chapters. Then come up with a simple problem <i>you</i> want to solve. If you enjoy solving problems, stick with it -- a programmer you may be!
andrewljohnsonover 16 years ago
I just did that! Here's how I did it.<p>I had a job working as a marketing director, but I got bored, so I quit my job. Then, I started working on www.trailbehind.com in April. Now, I have angel funding and know a lot of javascript, python, and CSS.<p>There's no book, or method, or realization that will make you a programmer. You just have to start programming something.<p>Once you have programmed a thousand line system that does something cool you are a programmer. At least that's what my buddy told me.
numairover 16 years ago
I think the best way, at least for me, is to work your way backwards. Come up with an idea, and then figure out how you can create it... Most people I know who created successful projects (millions, tens of millions of users, etc) did this. Google, IRC, etc are your friends, along with your local bookstore.<p>[Edit]<p>I also want to support cmos' point that you should try to see the world during this time - youth is far more valuable than money, and the friends you make when you are young are the ones you remember forever. Especially ones made on random travels in random cities/countries.
astrecover 16 years ago
Knuckle down and study MIT's SICP course: <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-001Spring-2005/CourseHome/" rel="nofollow">http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Compute...</a><p>You can find the book here: <a href="http://mitpress.mit.edu/sicp/" rel="nofollow">http://mitpress.mit.edu/sicp/</a><p>Finish this course and you'll have a better grounding than many of today's professional programmers, and will be able to teach yourself pretty much anything.
评论 #431990 未加载
johngundermanover 16 years ago
I would suggest python (www.python.org), though of course you will get many alternate suggestions. Python is easy to pick up and is great for entrepreneurs in the sense that it gives them a good understanding of the fundamentals of programming without requiring them to learn more complex languages.
评论 #432247 未加载
asnyderover 16 years ago
Normally I would recommend you hunker down and try to write a program, or join an open source project, but since you said that you've had trouble teaching yourself I recommend you look for an unpaid internship. Every few months we take a few interns from high schools and colleges and start them off on basic projects which eventually evolve into more complicated ones. This gives you concrete goals while you learn new and interesting things in order to complete those goals. Usually you'll also have the benefit of collaborating with other interns in addition to asking the more experienced coders for help if you've exhausted all other options. We've found that most of the interns improve significantly during this period, it might work for you too.
systemsover 16 years ago
You can learn computer programming in a lot less than 8 month, will take you years to be good at it!
评论 #431970 未加载
austonover 16 years ago
By working on something - think of something - anything, start building it.<p>Once you do that - find a better way to do everything you just did, it's called re factoring.<p>As other people have stated, don't be afraid to use Google, IRC or even forums.<p>Python seems to be the language of choice for learning and you can get started by using Google App Engine for free if you don't want to deal with Server Config (but please realize you can't dodge this forever).<p>If you go the rails route you can use Heroku, it's very good from my understanding. I've only used it briefly.<p>I'd say it's recommended that you learn how to install MySQL, PHP/Python/Rails on your server. That will give you a big heads up.<p>Good luck!?
ponnapover 16 years ago
Given that the question reads "how to learn computer programming in 8 months?", I'd say there is no definite carved out approach to get there. Individual mileage might vary. However, as most other people have already suggested, "quickly building something" (preferably something that you care about) and trying to improve upon it will make you a decent programmer. In the process of trying to improve upon it, you would have hopefully figured out what is wrong with the existing program, quickly learn from it and come up with a better evolved program/product.
PStamatiouover 16 years ago
Why must you learn in these 8 months? Yes I agree you should get a head start but you've got your college career to become good at it, meet smart people that will guide you and meet peers willing to help you learn.<p>I was very much in your shoes when I finished high school. AT the time I was much more involved in hardware/circuits and had only taken one java class. When I go to college, aside from my CS-based curriculum I tinkered with web development on the side and 4ish years later I'm working at my own startup doing ruby (and still learning). Best of luck!
gcheongover 16 years ago
You're graduating a semester early - congrats! That is certainly some indication that you have the drive and motivation to reach your goals. As others here have said, the best way is to write programs. But you need to start somewhere and I would echo the suggestion of starting with python. I have heard Think Python is good and you can get it free here: <a href="http://www.greenteapress.com/thinkpython/thinkpython.html" rel="nofollow">http://www.greenteapress.com/thinkpython/thinkpython.html</a> . You may feel you are parroting a lot at first without necessarily understanding what is going on, but gradually things will come into focus. When I first started, it was just by typing in programs in the BASIC language from the little tutorial manual that came with my computer. Each program would be followed by a little explanation of what each new line meant and after a while you start to be able to apply your knowledge to other things. Python is a "just right" language in that you can start simply but it has all the power you will probably need to get you as far as you want to go when you're ready. But if you find it's not working for you try something else. Some people pick up lisp right away - I still struggle with it (or at least people's explanations of it). Don't give up until you find something that works for you. I would also see what hacker groups are in your area or try and find some like-minded people to learn with - you may be able to find an intro course through a local college or community college if nothing else.
cabalamatover 16 years ago
&#62; <i>I have tried to teach myself but have had trouble doing so</i><p>Could you go into more detail about the problems you had?
brentover 16 years ago
Give yourself a couple of small projects with a timeframe within 8 months (a game, software related to other hobbies, etc. ... something you can get passionate about). Split your time between learning the fundamentals and explicitly working on the project. It is my feeling that you will learn more if you are motivated to complete a project with explicit goals. Good luck. (btw, go with python)
naragover 16 years ago
Nothing beats seeing what you do works. I'd choose Python (available on most platforms, easy to learn, very complete) and a good book. Also try to accomplish individual tasks: reading and writing from a file, downloading a web page, printing a document, executing another program, sending a email, parsing an XML file, creating a CGI applicatin, etc.
rsheridan6over 16 years ago
Other people have most of the bases covered, but I don't think anybody's mentioned that you should learn to use a real text editor, like Emacs or vim. They have steep learning curves, but the time spent learning them pays itself off.
评论 #432182 未加载
axodover 16 years ago
Pick something, and build it. Learn what you need along the way, to make it.<p><pre><code> * Write a game * Write a text editor * Write a webapp * Write an irc server </code></pre> Just choose something that looks fun, and do it. Start today!
评论 #432050 未加载
评论 #432179 未加载
lallysinghover 16 years ago
If it's a web-based startup you want to do, then you should just decide on a language. Then, start cranking out prototypes of your first system.<p>Start with simpler languages, start with 3-page (i.e. demo1.html, demo2.html, demo3.html) prototypes.<p>Probably the best way to decide is to hit the bookstore. Get a list of potential languages, and check out the books available. The one that's the easiest to read &#38; follow, use. Then maybe get another book or two on the same language, to help get past rough spots.<p>If you're into a framework (e.g. Rails), start with the language first. Do the framework <i>second</i>, unless there's a book that teaches you both.
shutterover 16 years ago
Start with the basics. Ensure you understand general concepts well before progressing to the details of specific programming languages. Take a trip to your local bookstore and spend a couple hours reading the beginning of several books on programming. I recommend starting with Python because it will remain useful throughout your career while providing a shallow learning curve and stable library, but language choice matters less than the concepts.<p>I recommend staying away from Microsoft's .NET and other proprietary languages for now; focus instead on more open tools. You'll attain more versatile skills that way.
评论 #434711 未加载
cmosover 16 years ago
If you can, try to also spend some time seeing the world!
评论 #432047 未加载
ashleywover 16 years ago
Fundamental programming skills are the same in any language may it be Ruby, PHP, or C, so if I were you I'd learn Ruby (or maybe Python; I prefer Ruby though) in those 8 months and then take a good programming class in collage to advance to Java/C. For a average startup a low level language such as Java or C will be pretty useless, you'll do 99% of things in something like Ruby, Python or even PHP.
delanoover 16 years ago
Follow the commit history for a language and project that interests you.<p><a href="http://github.com/languages" rel="nofollow">http://github.com/languages</a>
speekover 16 years ago
For the love of god, please don't start out with How To Design Programs.<p>Learn Scheme and Java. Use SICP for scheme, that will make you think like a programmer. Then you can learn Java using HeadFirst Java.<p>That way you'll have a "normal" language that a lot of colleges will use, as well as scheme... which is incredibly powerful and functional. Some colleges do tend to use scheme as well.<p>Where are you heading for college?
评论 #432103 未加载
评论 #432056 未加载
snitkoover 16 years ago
Hire a guru interested in teaching beginners and explain him your task. A teacher cannot read books and learn for you, but he could tell you what you are doing wrong when you're doing it.
popscheduleover 16 years ago
Web or software startup?
hsover 16 years ago
touch type (10 fingers + numbers)<p>vim<p>newlisp<p>jquery
评论 #432183 未加载