

Ask HN: Math major wanting to get into programming quickly - monkeykay

Hey!  I'm a math major with a concentration in teaching at UC Berkeley.  After learning enough about how crappy a job in teaching will be, I've decided I should really dive into computer programming.<p>Where should I start and what's a good plan?  I hope to get into a position where I can work remotely online, so that I can travel a lot.  It would be ideal to accomplish this in a year or two.  I'm almost done with my undergrad in math but I'm a complete beginner in computer science.  I hope to develop skills that I can use for 'good causes', like contributing to a nonprofit or maybe even an education startup.<p>A friend has suggested to work through either python or ruby and then C on learncodethehardway.org.  Is this a good idea? What other options are there?<p>THANK YOU!
======
bwh2
I'd recommend writing some parsers (in python, ruby, perl, whatever) for large
data sets ( [http://www.quora.com/Data/Where-can-I-get-large-datasets-
ope...](http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-
public) )

It will probably speak to your analytical side and teach you stuff like string
manipulation, loops, file i/o, etc. Plus you could use your math background to
do some cool data analysis for the public good.

------
moistgorilla
www.udacity.com

start with their cs1101 course then move up from there.

------
saiko-chriskun
If you love math you might wanna check out Haskell ;)

------
mrose
Before making my recommendation, I should note that it would be beneficial to
know a bit more about what sort of programming you'd like to get into. Even
withing the realm of web programming, there are many different paths you can
go down before even crossing the client-server line.

Your mention of good causes/nonprofits suggests to me that you anticipate a
sort of "generalist" technology role in the future, as these organizations
typically need as much breadth of skill in their talent as they can get. This
leads me to recommend you spend your initial focus learning a bit about as
many diverse topics as you can. At once, you will be exposed to a wide variety
of syntax amongst many different programming languages and methodologies
allowing you to gravitate towards the areas you find most attracted to.

