Live data from Hacker News

Ask HN: If I learn one programming language, what should it be?

news.ycombinator.com

31–40 of 48 posts

Re: Ask HN: If I learn one programming language, what should it be?

#31
I would recommend Java. Recent surveys of programming languages have ranked Java as the second most widely used programming language after JavaScript.

Java is a strongly-typed "classical" object-oriented language with C-like syntax. These characteristics make it an ideal foundation upon which to build your knowledge of programming.

Many of the newer and more popular languages deviate from the "classical" way of doing things. For example, many are loosely typed. Some use a simpler syntax without semicolons or curly braces. Others have a non-traditional OO model, or a hybrid OO / functional model.

You will likely encounter problems if you skip over the "classical" style languages and head straight for something like Ruby or JavaScript. For example, when you start to get into the more advanced parts of JavaScript, all of the books and tutorials explain things by contrasting with Java or C#. Therefore, if you don't have that classical knowledge, the comparisons will be meaningless.

If you start with a loosely typed language, you won't understand why your JavaScript developers are debating using TypeScript, or why your Ruby devs are debating switching to Java or Scala to build the app to scale. If you start with Ruby or Python you will never be comfortable with languages that use curly braces and semicolons.

I started out by learning PHP. It was a mistake. If I could go back in time I would have learned Java first. When I started to learn object-oriented programming it was tough because I had to unlearn the procedural way of thinking which was very common amongst PHP developers at the time. When I wanted to learn Android development I was confused by the use of types in method signatures. I had to go and learn Java-101 before I could do anything more than write a layout file.

I hope this helps...

Re: Ask HN: If I learn one programming language, what should it be?

#32
Why learn a single programming language? Why not several? and by doing so get an understanding about what programming and computation is all about. From 100,000 feet, most programming languages are similar. When you know several you begin to see the unifying structures they support, and that may give you some insight into how computation is related to problems.

Re: Ask HN: If I learn one programming language, what should it be?

#33

Earlier quoted context omitted.

Why do you hate using Python for production tasks?

In my experience/opinion: get over a certain number of lines of code and the type system starts getting in the way rather than getting out of the way. This number is not obvious and is very easy to pass without realizing it until it's too late.

Hey, not arguing, just curious, do you have some examples of times where the type system has gotten in the way? And what languages you prefer to use for production systems that don't have those problems?

Re: Ask HN: If I learn one programming language, what should it be?

#35

Why learn a single programming language ? Why not several? and by doing so get an understanding about what programming and computation is all about. From 100,000 feet, most programming languages are similar. When you know several you begin to see the unifying structures they support, and that may give you some insight into how computation is related to problems.

I think learning one sounds hard for someone new, so learning two sounds impossible.

Inch by inch...

Re: Ask HN: If I learn one programming language, what should it be?

#36

Python 3. It is fairly simple to learn. It is cross-platform. It is suitable for server-side programming. It has an extensive standard library and an active ecosystem for additional libraries. It has IPython. It uses, and therefore helps you learn, but does not force object-oriented programming. It has enough functional programming to let you explore that concept. It is widespread and easy to find support for. It has…

Thank you for the detailed reply! A number of comments here favor Python for ease of entry and utility. Do I understand correctly that Java is important, but with a much steeper learning curve?

Yeah, that is right (though some will have a hard time agreeing because your definition isn't very conclusive/complete)

Job wise: if you only had one language (and did not have history as a programmer) I think it would be easiest to find employment using Javascript. The need is huge and growing all the time.

Python or Ruby are pretty easy to learn and can be used for a number of different ways.

If you had plenty of time (read money) then Java would be the best choice. Java easily has ten times the amount of jobs available, so you can imply that it's more useful if you want to accept that metric.

Re: Ask HN: If I learn one programming language, what should it be?

#37
Really should tailor it somewhat to what you intend to build.

I'd recommend Python or Javascript without knowing more.

Python is useful in a variety of applications, both web and desktop, multi-platform, low barrier to entry but will get you a long way.

Javascript can be all you need on the web (though my stacks all have another language involved).

Python is great for the web as well, but you'll need javascript, too. It's pretty inescapable.

Re: Ask HN: If I learn one programming language, what should it be?

#39
> Be better prepared, as a founder, to understand engineers.

Be careful, you may start to suffer from the Dunning-Kruger effect[0]. You would only begin to understand what engineers are doing after a substantial experience with programming real world applications. However, your limited experience may make you over-confident in your abilities.

[0]: http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

Re: Ask HN: If I learn one programming language, what should it be?

#40
Whatever strikes your fancy. If you're pursuing startup culture at your age, and you aren't trying to become a developer/engineer yourself -- you have all the freedom in the world.

You've probably got more honed skills to contribute actively, and you won't have opportunity to make especially useful contributions programming in anything that's widespread. So you can dable in something popular to be able to read it better, explore something esoteric to have something novel in your toolkit, or just pursue something that's personally practical like the systems scripting and web stuff you've already been toying with.

Don't overthink it. Just find the one that gets you excited and spend whatever time on it you'd like.

Post reply on HN