Live data from Hacker News

What programming language should I start with?

news.ycombinator.com

101–110 of 117 posts

Re: What programming language should I start with?

#101
post #89

Earlier quoted context omitted.

If you sit down at a randomly chosen web server and write two files, one ending in .php and one ending in .rhtml, which file do you think has the better chance of working correctly? Newbies would prefer not to know what CGI means, let alone how to edit an Apache setup file. But, yeah, PHP is a scary language. In addition to what you've already mentioned, PHP's core "array" datatype appears to have been designed by a…

I would not expect someone trying to learn to program to select a web server to test projects on randomly. Installing mod_ruby is as easy as installing mod_php. Finding web hosts that support it isn't hard either.

Plus, there are Ruby on Rails packages that don't even require apache! You just download the package, install it, then you can run a built-in development webserver by typing "script/server". What could be easier?

(OK, I know of one stealth mode startup that's going to make it even easier, but that's beside the point.)

Re: What programming language should I start with?

#102
post #69

Earlier quoted context omitted.

"For what it's worth, Ruby programmers are more in demand than python programmers." Only in one small segment of the industry (the one that hangs out here). Python jobs in almost every other area are more common. And, of course, Perl is still more popular than both. And PHP and Java and C# dwarf all of the interesting languages.

Are startups still fighting for Ruby programmers in the Bay Area?

The dumb ones are.

I'm not saying they're dumb because they're using Ruby. I'm saying they're dumb for hiring based on one language on the resume. I'd hire a great Python/Perl/Java/Lisp programmer to work on a Ruby app before I'd hire a mediocre Ruby programmer. In my own experience, I've seen a great Java developer become an amazing Python developer in the span of a couple of weeks...while a mediocre Python developer could remain a mediocre Python developer for the rest of his days, even though he may have years of Python experience. Being a good developer knows no language boundary (within reason), and the same is true of mediocrity.

When I saw the Auctomatic guys at demo day, they were talking about how easily a Ruby guy they'd just brought on board picked up Smalltalk (obviously the Ruby to Smalltalk gap is smaller than most languages, but the point still stands). Hire good developers, not good X developers, where X is the trendy language of the moment. The language(s) will take care of themselves.

Re: What programming language should I start with?

#103
post #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.

great way to get turned off to programming

Not that it really matters (this is pure religion after all) but the sheer numbers of Java programmers suggest the exact opposite.

Re: What programming language should I start with?

#104
post #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 aca…

Thank you, Zak. I'm going to look into that book.

Re: What programming language should I start with?

#107
post #105

Earlier quoted context omitted.

Compared to something like Ruby, it's a lot less forgiving.

There's no such thing as a forgiving language. If your program is wrong, it won't work.

Not really. Your program can work for the wrong reasons, if you don't understand what the language is doing.

In C, if you're wrong, chances are your program either won't compile or it'll give you a nice segfault or bus error.

In something like Javascript, you can easily be "wrong" every time because you don't understand an aspect of the language, and still have your program "work" 9 times out of 10.

If your logic is wrong then yes, it doesn't make a difference what language you're using, but that's not what I was talking about.

Re: What programming language should I start with?

#108
post #94

Earlier quoted context omitted.

I don't know enough about non-Lisp languages to recommend one. If I knew them well enough to choose one, my pick would be whatever makes it easiest to write simple programs. Building confidence is the most important thing, not conceptual elegance. I wrote most of my first programs in old fashioned Basic. It was a kludge of a language, but it was good for writing the dumb little programs I started with. The worry that…

Scheme worked wonderfully for me on this criteria. Even if it looks scary, as a newbie, I felt I knew what the interpreter was doing. This built my confidence much more than putting a lot of power in my hands that I didn't understand, like some other languages I tried first.

Scheme is awesome as long as you are mathematically fearless enough to learn from square one using books like How to Design Programs and The Structure and Interpretation of Computer Programs. They provide a great foundation if you feel right at home in math, and you're not too concerned with building something practical for your first project.

For people who aren't as confident in their math, I would recommend Python, as other have mentioned. It's thoroughly friendly to newcomers, there's tons of good documentation (the free tutorial written by Guido is incredible), the libraries are among the best available, and, like Scheme, it's easy to start by biting off a manageable chunk and then gradually learning more details as you go.

Re: What programming language should I start with?

#109
post #69

Earlier quoted context omitted.

Are startups still fighting for Ruby programmers in the Bay Area?

The dumb ones are. I'm not saying they're dumb because they're using Ruby. I'm saying they're dumb for hiring based on one language on the resume. I'd hire a great Python/Perl/Java/Lisp programmer to work on a Ruby app before I'd hire a mediocre Ruby programmer. In my own experience, I've seen a great Java developer become an amazing Python developer in the span of a couple of weeks...while a mediocre Python develope…

brilliantly said.

It seriously takes minutes to pick up ruby. In any good team, any decent developer would be productive by the afternoon.

And honestly, who hasn't really looked and noodled with ruby, even if their day job has nothing to do with it (its probably the sign of a decent programmer really isn't it).

Re: What programming language should I start with?

#110
post #94

Earlier quoted context omitted.

I don't know enough about non-Lisp languages to recommend one. If I knew them well enough to choose one, my pick would be whatever makes it easiest to write simple programs. Building confidence is the most important thing, not conceptual elegance. I wrote most of my first programs in old fashioned Basic. It was a kludge of a language, but it was good for writing the dumb little programs I started with. The worry that…

JavaScript probably fails miserably on the "easiest to write simple programs" count. The development environment is easy to find, obviously...any browser and any plain text editor. But user interaction is hard, and gets all mixed up with nasty DOM and browser incompatibilities in short order. You also have to have additional tools (like Firebug) to get anything resembling useful errors from JavaScript. A good modern…

We don't really need the browser's implementation of Javascript. For example, consider Steve Yegge's rails port to JS which he developed on top of Rhino (the mozilla engine.) IIRC, rhino includes a very basic shell.
Post reply on HN