Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I taught myself programming last year (starting with Python from Google's course) and am incredibly jealous of this. I'd have killed for someone to explain what on earth Object Oriented Programming was in the context of the project I was working on. It simply did not make sense to me for a very long time.


I'm curious; what was the first project you built on your own?

It's been so long since I started programming that I can't really remember mine. My wife is learning now and I sometimes worry that my gauge of what are good beginner projects is off.


Well, I still remember my first projects:

* a console hangman game

* a weird ascii art animation program

* a "guess the animal" program that used a binary tree of yes/no questions to guess the animal the player thought of. if it failed, it asked for a question that could be used to distinguish the wrong guess from the right one, and appended it to the binary tree (which was stored on disk)

I thought those were such a big deal back then :) Oh, the good old times :)


For me it was a system for tracking errors in weather forecasts. I downloaded 400-odd forecasts from the NOAA twice a day and dropped them into a database.*

Figured out the following technologies on the fly: Python for the machine learning part, the backend and web scraping (after I finally gave up on SOAP), SQLite, HTML/CSS, PHP (after giving up on Django), Apache web server, FTP protocol (for backing up my stuff to my external drive). There are probably other things I tried and gave up on but forget.

I definitely went down a LOT of blind alleys and generally found out-of-the-box frameworks incomprehensible. The difference in the various communities was fascinating, too. For instance, try comparing forum answers to CSS or PHP questions against Python or, gasp, C. Holy cow.

*The result, if anyone cares, was that I figure they systematically overestimate High temps, underestimate low temps and overestimate POP.

EDIT: forgot javascript/jquery.


Wow, that's an impressive first project, congratulations on finishing it! I definitely agree that the developer community for a language makes a big difference in how easy it is to use.

We are really into StarCraft II, so she's thinking of building a build order identification game for her first bigger project. We'll probably go ahead and use JQuery Mobile + PhoneGap to make it a free Android app we can give to our friends. Not quite as complex, but it should be fun!

For those of you that don't play StarCraft: A build order is like an opening in chess: it sets up the rest of the game, and recognizing/responding to a build order is key to being a good player. The game she wants to build would help train people to recognize build orders by showing them a quiz with pictures.


Did you set out with the goal to be a programmer when you started? I have a particular project I want to build, but I struggle with the build vs buy dilemma. It will probably take me 5x as long and be 10x worse than if found a good programmer.

But, I also want to learn because I know that I need to understand what is being built and if it's being built in the best way to accomplish the goal - getting the job done for the customer.

Is it realistic to focus on being a generalist with an understanding of various languages or do I just need to learn one language first like Python and go from there? I noticed the MIT Python videos are free also. Thanks


If you want to build something, I think that's an excellent reason to learn Python and dive in. You don't need to become a generalist before you can build something useful which you can learn from. As mentioned in the article, having concrete pain points in your coding ("Why doesn't this work?" or "how can I X?") will help you appreciate the problems that various techniques solve.

Studying other languages exposes you to issues that you might not experience on your own, but on the other hand it's hard to apply your understanding of them all quickly. Python is an excellent language to learn first.

Learn enough of one language to be dangerous, code the minimum that comes close to what you feel you need (or a toy version of it), and then you'll have a much better idea of what else you want to learn. Good luck!


Really appreciate your insight. It seems like there are some good online tutorials out there for Python also. Ok, Python will be my first victim. Thanks!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: