Live data from Hacker News

What's the Easiest Programming Language I Can Learn

news.ycombinator.com

11–20 of 30 posts

Re: What's the Easiest Programming Language I Can Learn

#11
post #3

This depends entirely on what you are making. If it is heavily datadriven and you are only prototyping an ORM will help you immensely especially if it creates your database structures for you, for this I reccomend Django (Python). If you are not beholden to a heavily datadriven system you can go with Flask (Python). If you however do not even need a backend to talk to, lets say you do not need data consistency or sto…

I also recommend python + flask.

Re: What's the Easiest Programming Language I Can Learn

#12
I think the best approach is to build something practical like a web app. Granted, things may still feel like magic when you're done with the tutorials, but the mist slowly clears the more you practice and every other day you'll be having "AHA!" moments. From what you've mention it does sound like JavaScript is what you're looking for. You probably don't need to learn an entire framework like AngularJS if you don't care about writing entire apps and only care about adding 'flourishes' to your designs. However, I need to agree @lmm, when starting out it really is the superficial things that matter. Personally I found JavaScript to be a bit tedious at first. Not to mention some hidden surprises you may run into (i.e. how scopes bubble, etc.) - so if your intention is to write full apps, I don't know if JS should be your first choice (but it should definitely be your second!).

In the case where you want to learn all aspects of building web-apps (and don't come from a computer science background), I would have to suggest you start out buy learning a framework like Ruby on Rails or Django (haven't tried flask, so can't tell). The reason I'd suggest one of these MVC frameworks is that you will learn a lot about the REST architecture (REST is the fundamentals of the modern web, you will probably be consuming REST services with JS frameworks). At least with rails it taught me the fundamentals, without even realising it. After figuring out how rails handled resources looking at APIs etc, all made sense. So for this reason I'd recommend people who don't have a CS background to learn from one of these frameworks - it really helped me fill in a lot of missing pieces when it comes to developing for the web. As for the language, I've tried both Ruby and Python, and found Ruby to be a bit more fun to write. It made programming seem like solving a puzzle rather than figuring out obscure syntax (which was the case for more 'hard core' languages like C++). Not to mention the fact that it seems to be the language of least surprises - more often than not, it does exactly what you expect it to do.

Sorry if I went on a bit of a tangent. Wrote this in a hurry. Hope it helps.

Re: What's the Easiest Programming Language I Can Learn

#13
I would actually consider only Ruby and Python.

Javascript in my opinion will take longer to get up and running because the language syntax and frameworks are not as straightforward to grasp for a complete beginner.

Ruby and Python have awesome books for beginners and intermediate. I recommend Think Python by Allen Downey and Learn to Program by Chris Pine for beginners. Both are interesting, relatively small, and give you a taste of the language, and both are free.

Both Ruby and Python have frameworks (Rails and Django) that are used by many, many people making it easy to ask around if you have any questions.

Re: What's the Easiest Programming Language I Can Learn

#14
Python was designed as an easy to learn language and it has a nice syntax. Its main drawback is in its 'dynamic typing' nature which means that you can make a mistake which can stay hidden for a long time (compared to a compilation error), which is quite annoying. Sorry but I don't know a language which has the same qualities as Python (easy to read, lots of library) but is statically typed..

Re: What's the Easiest Programming Language I Can Learn

#16
From one non-programmer to another, I highly recommend Python + Django + a CSS framework to get up and running.

Python is a great language to get started on because the code is relatively simple to write and read (for very geeky reasons), and the MIT OpenCourseWare intro to CS for non-majors class is a great way to pick up as much "core" programming ability as you need. That class is taught in Python. Underrated perk: errors are easier to diagnose relative to JavaScript.

Once you have a rudimentary grasp of Python, do the Django tutorial and build yourself a sample app. Django is the way to get up and going with a modern-ish MVC (model-view-controller; you'll see what it means) app. It's very easy to get going as a developer and the only headache you'll find is the Virtualenv thing. Easier than getting Rails (which is Django for Ruby) going for the first time, because Rails has the potential for more version conflicts.

Lastly, to build out web pages, consider Zurb Foundation or Twitter Bootstrap. These are premade CSS components that make building pages faster (thus good for "rapid prototyping"). They also bring along browser compatibility and jQuery for added UI niceness.

If you want to animate things on the page, search for animate.css.

I did this a couple years ago to build my first app and now I have a side project that I coded myself. You can do it! :D

Re: What's the Easiest Programming Language I Can Learn

#17
I was a bit of a polyglot in my earlier days..

C, C++, C#, Java, Python, Ruby + a ton of stuff at uni

I now mostly stick to Python. I'd say its the easiest to learn and the most fun to program in. (never thought I'd become a fanboy)

If you want to check it out, I'm writing a tutorial at http://www.teachmepython.com

You'll (hopefully) see that you can get moving real fast with Python. ;)

Re: What's the Easiest Programming Language I Can Learn

#18
Out of the ones you listed, Haskell would be the most difficult for sure. For quick prototyping though, like others mentioned, the tools around the language would make a bigger impact than the language itself. So RoR or Django would make a lot of sense. You might also wanna take a look at Meteor (Javascript) for quick prototyping

Re: What's the Easiest Programming Language I Can Learn

#19
For discussing whether Python and Ruby are too big compared to Javascript or Haskell, I'd like to give you the following UX anaology.

You're a cashier at a bank and want to give the best experience for your customer, who just withdrew $248.67 from her account. The Python way would be to give this person two hundred dollar bills, two twenty dollar bills, a five dollar bill, a two dollar bill, a one dollar bill, a fifty cent piece, a dime, a nickle, and two pennies. Some one on the messge board will later tell you that the fifty cent piece has been deprecated and that you should have use two quarters. Also, the two dollar bill has performance issues and you should have just used two ones. It's pretty big and maybe not the best for your customer.

The Javascript way is much smaller and simpler. You'd just give the user 24,867 pennies. There's no variation in bills to memorize - just counting. You do get tired of counting after a while and your bank manager tells you a little secret. In the bank, there's premade bags in sizes of a ten thousand pennies, two thousand pennies, one thousand pennies, five hundred pennies, two hundred pennies, twenty-five pennies, ten pennies, and five pennies. So, you give the customer two ten thousand penny bags, two two-thousand penny bags, a five hundred penny bag, a two hundred penny bag, a one dollar bill, fourteen twenty five penny bags, a ten penny bag, a five penny bag, and two loose pennies.

You get tired of hauling all the pennies, so you decided to do things smaller and simpler. You do things the haskell way. You give the customer a two hundred forty-three dollar bill, a negative nine dollar bill, a three dollar bill, and a thirty-three cent piece. You require the customer to sign an oath stating that she won't just throw out the negative nine dollar, but will ensure that it is safely paired with a positive nine-dollar bill when it is returned to the bank for no value. For some reason, the thirty-three cent pieces are all in a drawer labelled "Monoid", and you're told it's because they're closed with the Yen under addition, as long as Japan keeps printing the zero Yen coin.

This isn't meant to be an attack on any of these languages. Any of them would be an excellent choice. The javascript way has a smaller number of denominations to memorize, but you wind up needing to learn a long list of premade baggies, which can make everything suddenly seem big. The Haskell way has a small, optimal set of denominations, but learning to figure out to put them together can make everything seem huge. The Python/Ruby way has more denominations than either, but some people think that they're easier to add up than the Haskell ones and more convenient to carry than the Javascript ones. So knowing which language is the smallest and easiest all depends on what you call small and easy.

Post reply on HN