Live data from Hacker News

MIT female learning to code

news.ycombinator.com

21–30 of 42 posts

Re: MIT female learning to code

#22
Choose something you feel needs to be created/invented, and do it in the language you want to learn. This is a time tested methodology, why follow line for line a movie rental service for BlockMuster when you can have fun and learn more doing your own project.

Get creative, get inventive and just jump in.

Re: MIT female learning to code

#23
post #21

Your query and responses seem earnest, but leading with your gender in the submission title and handle is suspicious. Is this an A/B test?

I don't think it's suspicious, it's just very sad (to me, I mean). The OP says they are an economics major - they probably would never think to post a question on economics entitles "MIT female economist seeks OECD data".

sigh

Anyway as to the question, the best way of learning to code is (a) by doing and (b) by exposing yourself to those who do it well. If you have your own project to work on already that's great, otherwise find an open source project and cut your teeth onto that. Most languages have standard libraries or modules, take a look under the hood and try to understand how they work. Since you specifically ask for websites, try hanging out on stackoverflow.com and try and answer some questions before looking at the answers.

Contrary to others, I probably wouldn't recommend C - please let's not start a language war, but for someone who may or may not decide to focus on programming it's probably better to focus on a higher level language like perl, python or ruby in the beginning.

Also, I don't know if/how MIT supports co-ops/internships, but try and get a short (3-4 month) programming placement, there's nothing like having to do it "for real".

Re: MIT female learning to code

#24
post #7

Definitely give C and Scheme a try. Both are simple, compact languages with strong philosophy and history. I think that most of the languages we have today compromise between C style and Lisp style. One of my favourite books is called, "Write Great Code: Volume 1: Understanding the Machine". This book gave me a real intuition for why the computer behaves the way it does given a piece of code. If like that kind of stu…

Is there a benefit to learning multiple languages? Or would you recommend trying to truly "master" one of the starting (Java or Python) and then branching out after completely comfortable in one? Should I learn them in a specific order? I just picked up Code Complete at the lib today but will start with "Write Great Code" as you suggested. Thanks!

if you are a manager or business owner (which it sounds like you are? "my programmers") a broad but shallow education may serve you better than one that is deep but narrow.

Even if you do decide to focus primarily on one language, I think there is a lot of value to learning several languages. (also, after your second or third, picking up another becomes really easy.)

Also +1 on "Code Complete"

Re: MIT female learning to code

#25
How can you judge the speed of "your"[1] programmers if you know nothing about programming?

Are you perhaps being misled by the frequent "I did X in a weekend" submissions? Those are mostly hyperbole.

[1] A little word of advice: Don't talk like a manager already. If your story is legit, the two grad students are quite likely to read it here.

Re: MIT female learning to code

#26
post #3

The only way to learn how to program is to just do it. Pick a language. Start with small programs. Learn the features and syntax of the language. When you feel you know the language well enough to write a program that uses most of its features, then pick an open source program and learn its code. Make some modifications to it. When you feel you're pretty comfortable in one language, pick a new language. Rinse repeat.…

Amazing. No Google search led me to an answer this helpful. Thank you for your input on languages also...it seems there is quite a debate between Java and Python.

I disagree with starting with Java. Rather I second coffeemug's advice in the following comment, focus on C, Lisp, and Haskell:

http://news.ycombinator.com/item?id=1747713

My first manager taught me something college had failed to (or that I failed to learn there), which is that programming languages come and go in trends, but they are all based on recurring fundamental concepts, which endure beyond any single language.

Most new programming languages are a remix or mashup of some or all of these concepts, so if you master those concepts you'll be able to easily pick up any other language.

It's like learning Latin as your first foreign language, and being able to quickly pick up any Latin-based language after that. C, Lisp, and Haskell are the Latin of the CS world.

Since you're at MIT, take the famous Structure & Interpretation of Computer Programs (used to be 6.001, not sure if it still is). http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma.... That'll get you started with Lisp (specifically the Scheme dialect).

For C, start with K&R (http://en.wikipedia.org/wiki/The_C_Programming_Language_(boo...).

For Haskell, Real World Haskell is good, and the e-version is free. (http://book.realworldhaskell.org/)

Joel Spolsky has an article worth reading on why not Java:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...

And of course PG's essays on Lisp are a must read:

http://www.paulgraham.com/lisp.html

Since it sounds like you're running a business you may feel pressured to learn Java or whatever your coders are currently using to get your business off the ground. But I heartily recommend resisting that pressure, doing it right, and mastering the enduring fundamentals first. It may cost you something in immediacy and expedience, but that's what school is for, especially one such as MIT. You should carefully weigh how you spend your time there, and unless you think you've got the next Facebook, focus on mastering the enduring concepts, not the trends. You'll be glad you did the rest of your life and career.

PS - there's little to nothing that Clojure (a Lisp dialect on the JVM) and Haskell can't do in the web space, so the cost in immediacy and expedience is slim to none anyway.

PPS - it didn't register till just now that you're an Econ Major not going into CS or Software Engineering as a career. If you just want a tried-and-true, versatile, easy-to-get-started-with language with tons of libraries and frameworks (reusable code) to hack in, huge and helpful community go with Python. Java is too bureaucratic a language for this purpose.

Start with Zed Shaw's excellent introduction, Learn Python the Hard Way (hard way = by doing lots of follow-along examples until it gets into your brain muscle memory), then go from there.

http://learnpythonthehardway.org/index

Re: MIT female learning to code

#27
I recommend you start a side project of your own and learn by doing. start small, maybe some extra tools for your blog or a simple widget you've been wanting for your desktop. python is a good intro language, you'll find it useful for a wide variety of projects and can go lower level for your next language

Re: MIT female learning to code

#29
post #2

For hands-on practice, try this: http://projecteuler.net/ An HN-er recommended this in an article last night. Also, as ugly and difficult as it will seem at first, invest the time to learn how to use an efficient text editor. I prefer vim.

Thank you for your response. I'll check it out.

Text editor preference seems to be as personal (and perhaps, perverse) as religion or sexual preference.

Last Monday I got the chance to ask (even though I'd read it before) James Gosling (the Father of Java, wrote first Emacs-y editor for Unix) if he still uses emacs, at least sometimes. The answer was: No. He uses NetBeans. Seems he writes no more lisp, having worked through his lifetime's quota of parentheses while working on his Ph.D [sic].

Re: MIT female learning to code

#30
Try Scratch! http://scratch.mit.edu/

Saw a great demonstration of this system at JAOO this year, by John Maloney of the MIT Media Lab :) [http://gotocon.com/aarhus-2010/speaker/John+Maloney]. Dan Ingalls and Rob Pike were in the audience.

The whole system really looks very nice and well thought out. Wish I had Scratch to learn with when I was young, instead of puttering around with Turbo C++ 3.0. Few "real", "man-size" programming languages/environments are so coherent.

If you want to be productive soon, try Scala. Martin Odersky (the creator) is a brilliant, level headed guy who is committed to keeping this language pragmatic. It's complex, but just like C++, you don't have to inhale the whole thing in one go to get things done :) So don't worry about all the people with blogs who denounce Scala for complexity.

Post reply on HN