Live data from Hacker News

What programming language should I start with?

news.ycombinator.com

31–40 of 117 posts

Re: What programming language should I start with?

#31
post #3
post #2

www.hacketyhack.net is an integrated environment for learning ruby, the hardest part of learning ruby is setting up ruby on a web server.

Ruby or Python? I'm getting mixed signals!

Try both and see which one feels better. For what it's worth, Ruby programmers are more in demand than python programmers.

Re: What programming language should I start with?

#32
post #23

Just curious, but would anyone recommend Javascript?

Maybe. On the plus side, it's a pretty nice language - somewhere between Python and Ruby on the power continuum, I think. The C-like syntax is more complicated than Python, Ruby or Lisp, but familiarity with C syntax is probably advisable for anyone trying to get an overview of programming in today's world.

Implementations and libraries are a drawback. I think the best way to learn a language is to build something interesting using it, and the only thing that's easy to build with Javascript these days is the client-side part of a website. Doing that also requires CSS and HTML, which the OP should probably learn a bit about, but it might be distracting to do that while he's trying to learn the fundamentals of programming. Trying to learn Emacs at the same time I was learning Lisp was distracting for me. I don't think browser incompatibilities are a reason to shun JS; unless you're building something for a website used by the general public, just target Firefox. Use Firebug to learn what's going on with your code and track down problems. Once you know what you're doing, it's more tedious than difficult to get it working on other browsers.

If you already know how to make web pages, or really want to learn, JS is probably a good choice. If not, it probably isn't. It's probably best to can figure out what sort of project you'd like to build, and then learn a language well-suited to building it.

It's possible to use Javascript for other purposes, but it's not yet easy. In a couple years, that might change - Steve Yegge seems to think it's the "next big language".

Re: What programming language should I start with?

#33
post #23

Just curious, but would anyone recommend Javascript?

JS is better as a second language, because of DOM issues. It's better for a beginner not to have to worry about those. It is very convenient for beginners because it's built into the browsers, and many people learn it concurrently with something else. You could do a lot worse than JS.

For a first language, look at Python/Ruby and choose what you're most comfortable with.

Re: What programming language should I start with?

#34

I'm learning on Lisp, and it's kind of weird. I'm using Practical Common Lisp ( http://www.gigamonkeys.com/book/ ) and I have to reread chapters a few times to really understand them. I downloaded Lisp in a Box for it, and that is weird because it's rickety. The tutorial isn't there, and it will keep kicking me out of the SLIME. I'm in the middle of a four-month vacation, but progress is pathetic. Lisp in a box and P…

I love that book, but I have to agree with you: it's intended to teach Lisp, not programming. If you don't already know how to program, you probably won't learn programming or Lisp from PCL. Instead, you're likely to get turned off to both.

The Structure and Interpretation of Computer Programs is a great book for learning the fundamentals of programming. It happens to use Scheme, a dialect of Lisp. If you want an academic introduction to programming, it's one of the best. I haven't found anything as good that takes a more pragmatic "let's build something useful/fun and learn to program in the process" approach, but I bet someone else here has.

Re: What programming language should I start with?

#36

Dare I say Java? Seriously though, Java is a good programming language to start with. You get used to C style syntax, but don't have to much with memory management and architectural differences. Plus you can use Eclipse, a great IDE, for free!

I think learning Java is a great way to get turned off to programming. There's just too much busy-work you have to do before you can actually do anything interesting. Pick a language where Hello World is one line.

Re: What programming language should I start with?

#37
post #9

Preferred: Python. clean, elegant, pure, simple, easy. Just fine: Ruby. good, but less simple and elegant than Python. Good if you want to deeply understand the principles of being a programmer but don't care about being very practical at the start: Lisp (yes, Lisp can be practical, but it's trouble for a newbie) Avoid: Perl, PHP, BASIC variants. These cause brain damage.

If you do want to take a shot at becoming a "full-fledged hacker", here's a great way to start: http://mitpress.mit.edu/sicp/full-text/book/book.html

SICP uses Scheme (a Lisp dialect) and falls under the "deeply understand but not practical at the start" category.

Re: What programming language should I start with?

#38
Learn whichever language is closest to your application. If you want to make a blog, go take a look at some blogging software already out there and learn the language it's written in. (Wordpress -> PHP w/ HTML & CSS just because they're always helpful)

Then, once you've got your feet wet, learn another one. I feel like I never understood one language until I could compare it to another.

Python and Ruby are great for hammering out functionality and learning. Common Lisp/Scheme are great for widening your perception of how problems can be solved. I don't want to say much about C because I'm not proficient with it, but it definitely gives you a closer feeling to how your computer runs your code even if it obfuscates the problem a little. Learn Haskell/OCaml when you're feeling lucky. They will break your brain and then rebuild it in crazy, inventive new ways.

Re: What programming language should I start with?

#39
Python is certainly a good one (ruby as well) - "Learning Python" by Lutz & Ascher I think is suitable for someone like you (and it is not a bad reference as you get more experienced). Ruby can be a bit stranger to newcomers (in my opinion), people like to be "clever" in ruby, and then there is the hype (this is my personal opinion - although I find ruby much easier to use myself, and its OO approach suits me a bit more then python).

As for mind expanding, I like Scheme - as taught by MIT in the SICP series (you can watch the videos on google video). It would be interesting to see that taught to someone new to programming (sorry to make an experiment of you !). Someone tried to teach this stuff (kind of) to me once in miranda (didn't work to well as a first programming language).

As for practical messy stuff, then look into Java (for basic static strong typing and endless tools) and Perl if you must, the basics of C to wrap your head around pointers may help - I learned that around the same time as motorola assembler (much nicer then intel) and it helped form a mental model of 'on the metal' computation which I found helpful.

Another angle: Haskell seems to be popular for functional programming (as it is pure) - many people think functional's time has come, and there are some useful videos introducing it here: http://sequence.complete.org/hwn/20070807

Stick to things where you can get all the tools you need for free on the platform you use (and they are easy to get running).

Re: What programming language should I start with?

#40
Python is certainly a good one (ruby as well) - "Learning Python" by Lutz & Ascher I think is suitable for someone like you (and it is not a bad reference as you get more experienced). Ruby can be a bit stranger, people like to be "clever" in ruby, and then there is the hype.

As for mind expanding, I like scheme - as taught by MIT in the SICP series (you can watch the videos on google video). It would be interesting to see that taught to someone new to programming (sorry to make an experiment of you !).

As for practical messy stuff, then look into Java (for basic static strong typing and endless tools), Perl if you must.

Another angle: Haskell seems to be popular for functional programming (as it is pure) - many people think functional's time has come, and there are some useful videos introducing it here: http://sequence.complete.org/hwn/20070807

Stick to things where you can get all the tools you need for free on the platform you use (and they are easy to get running).

Post reply on HN