Found in 52 comments
by supernumerary
by rammy1234
by GrumpyOldDev
In alignment to codegeek's recommendation, and depending on your conditions / preferences:

You can also pick up small gig building more (and better) websites for local businesses. There's always a dumpy restaurant wanting a new website for few hundred bucks. The time you would spend with a textbook / tutorial, you can also consider synchronously apply them to real life commercial use. Also, you know Java and probably a lot of backend / db stuffs... you can bundle the whole stack together and build business solutions too instead of just "websites". Like a simple restaurant POS UI, sends order to kitchen kind of system... again, depending on how much free time you have and willingness to code for little pay just to learn.

JS / Front End Dev is one of the best setup to pair up with small jobs like that IMO.

I can also recommend Douglas Crockford's book JavaScript: The Good Parts

Disclaimer: Never an academia kind of person, I take forever to go through any book. I found myself learn faster when I can go hands-on and fail within reasonable comforts. Now 15+ years into front end, I consider myself doing quite alright...

Original thread
by GrumpyOldDev
In alignment to codegeek's recommendation, and depending on your conditions / preferences:

You can also pick up small gig building more (and better) websites for local businesses. There's always a dumpy restaurant wanting a new website for few hundred bucks. The time you would spend with a textbook / tutorial, you can also consider synchronously apply them to real life commercial use. Also, you know Java and probably a lot of backend / db stuffs... you can bundle the whole stack together and build business solutions too instead of just "websites". Like a simple restaurant POS UI, sends order to kitchen kind of system... again, depending on how much free time you have and willingness to code for little pay just to learn.

JS / Front End Dev is one of the best setup to pair up with small jobs like that IMO.

I can also recommend Douglas Crockford's book JavaScript: The Good Parts

Disclaimer: Never an academia kind of person, I take forever to go through any book. I found myself learn faster when I can go hands-on and fail within reasonable comforts. Now 15+ years into front end, I consider myself doing quite alright...

Original thread
by cocktailpeanuts
Read this

That's really all you need to get started.

Original thread
by MollyR
by MollyR
by lalwanivikas
JavaScript - "JavaScript: The Good Parts"

Can anyone please suggest more good books for JavaScript? - for beginner, intermediate and advanced levels? Thanks in advance :)

Original thread
by davidw
JavaScript is kind of ugly in some ways, but not really complicated. You could easily pick up the basics in that time frame.

I've heard people say good things about this book:

But I've never read it myself.

Original thread
by osconfused
On this same subject, an excellent read is JavaScript: the Good Parts.
Original thread
by _RPM
JavaScript: The Good Parts -

Once you get a broad overview of the JavaScript paradigm it really helped me to read other source code that people wrote.

Original thread
by Shizka
I've had the exact same concerns as the person you replied to. I just want to make sure since the title differs from the one you stated. Is this the book you were talking about: And how/why did the book improve your opinion about the language?
Original thread
by krapp
You may have to learn to put up with it. It's not the end of the world. It's just a scripting language, just suck it up and deal.

There are any number of js frameworks which will probably abstract away most of the headaches you might have, and depending on what you're actually trying to accomplish, you may not need a lot of js at all. If you don't want to use client-side templating, for instance, and there's no reason to, then just skip it. Push as much of it to the backend in the language of your choice as you can.

But javascript, when you need scripting in the browser, is kind of unavoidable.

Also consider - your expectations from working with other languages may be getting in the way of your writing javascript properly and effectively.

(or do what a lot of other people do and work with a language that compiles to js and you can pretend you live in an alternate universe where you're not working with javascript even though you really are.)

Original thread
by klaaspieter
Yes. I believe such a book exists (or should at least) for every language as well.

Effective Java —

POODR (Ruby) —

Javascript the good parts —

There is of course also the gang of 4 language agnostic classic on design patterns

Original thread
by doorhammer
Code Complete 2 [1] was one of the first coding books I've read. As with anything else, it's good to look around (HN is a good place) for people who have problems with the book. I think I learn as much reading the commentary people make about books like that as I do from the book itself.

I think I've listened to every podcast on software engineering radio a few times [2]. The older ones are especially nice because they usually pick a specific topic and cover the high points. I liked that I could listen to it while I was driving, or otherwise not in front of a computer.

It's specific, but Javascript: The Good Parts is probably the most used book I have on my shelf. It has such a perfect amount of usable information in it. It's pretty great. Again, it's definitely worth looking up critiques and counterpoints.

I've also got Introduction to Algorithms, which I use as a reference, sometimes. I switched over to The Algorithm Design Manual [5] after I saw it referenced in an older Steve Yegge post [6]. I read through the intro and it seemed like a book that would be more appropriate from an autodidactic standpoint. I really have no idea if that's going to pan out, since I'm not that far into it, but we'll see, for sure. Doesn't kill me to have an extra algorithms book laying about, though, and I've always got intro to algorithms for cross reference. I've found that I really need to have as many sources available as possible when I'm learning alone. Usually I don't get something until the fifth person describes it from the tenth different angle.

That's most of what I can think of off hand. I really enjoyed The Joy of Clojure [7], though haven't checked out the newer version. Programming Collective Intelligence [8] is a fun book, and is what made me want to go back down the maths route to get more into machine learning.

And of course habitually reading hacker news for an hour or three every night :)

So that's my totally inexpert list of random stuff that I enjoy

[1] [2] [3] [4] [5] [6] [7] [8]

Original thread
by auslegung
In addition to what Isiebert said, if you're a book person, read javascript, the good parts
Original thread
by user_235711
I second JavaScript: The Good Parts[1]. It is very well-written and very dense, so you can read and reread it multiple times, each time gathering something new. Along with that I would recommend the Mozilla Developer Network JavaScript reference[2].



Original thread
by auslegung
Javascript: the good parts <

Eloquent Javascript <>.

These two are a great start.

Original thread
by nonamegiven
Bring a few thumb drives for backup.

In addition to LPTHW and dbond's very complete suggestions:

$ sudo apt-get install python-doc

This is not installed by default. It will install the entire documentation site, probably at /usr/share/doc/python/html/index.html

Decide whether you want to use python2 or python3. Python 2.7 is probably what's installed by default on your linux distro (unless you use Arch). The following is not in the installed docs, it's an external site:

Read PEP 8

$ aptitude search python |grep framework

Pick a lightweight framework or two to install before you leave (unless you've packaged up the repository as dbond suggests). bottle, flask and pyramid come to mind. When in doubt, install it. Don't start off using a framework though, learn the basics of plain html, then css, then javascript, then a lightweight framework (or the framework first then javascript).

$ sudo apt-get install sqlite3

Install a database. sqlite is lightweight and more than good enough for learning, and won't bog you down with learning how to run a database server. Alligators and swamps ...

I wouldn't bother installing a web server, python comes with a rudimentary web server module.

General background on python web programming: (skim it)


The module you'll likely use to play around:


Learn the python debugger, it's rudimentary but very helpful when you're learning.


Learn the python REPL, or the interpreter as they call it in the docs.


Install, learn and use a better python REPL:

sudo apt-get install ipython

If you can afford it, Oreilly has some good ebooks.

If you can't afford it, but you can afford the weight, search for books you like on AbeBooks: (used or internation edition books)

Dive Into Python is available online and downloadable:

Eventually you'll want to know more about sql:

Learn you a shell:

Install vim and emacs and decide which one you like, but any simple arrow-key-based editor that comes with your desktop is good enough to get started.

Install git, eventually you'll lose some work and you'll see the light. Just go real basic with git if you haven't done much source control before. Don't get bogged down in learning git, you want to learn python and web programming. As you go, you'll eventually want to know more; you'll know when that is.

$ sudo apt-get install git

Appropriate first web projects would be any of the example projects that come with the lightweight framework docs.

Appropriate first python-specific projects would be the same, in whatever python tutorials you like.

Appropriate next projects would be whatever catches your interest as you're going through all of the above. Keep a notebook/file of project ideas. Actually that would be a nice first project right there, a simple web app for a project notebook.

EDIT: Also, learn to rely on the man pages.

$ man man

$ man bash

$ man python

$ man -k python

$ man woman

No manual entry for woman

Original thread
by yvdriess
The core Javascript design is a mix of Scheme and Self, which is interesting in its own right.

Most people will recommend:

Original thread
by cpleppert
I haven't found a use for a lot of these features, a lot of them just seem very ad-hoc additions to the language. A class based object oriented model would have solved a lot of issues relating to the myriad ways to implement object orientation in javascript. The schizophrenic like approach we have right now isn't being helped by incremental changes driven by the lowest common denominator of what can be implemented in a web browser development cycle.

Knowing the [Good Parts]( helps but you just can't keep adding parts that you think may be good.

Original thread
by recurser
'JavaScript: The Good Parts' by Douglas Crockford is a great place to start[1].

    This authoritative book scrapes away these bad features
    to reveal a subset of JavaScript that's more reliable, 
    readable, and maintainable than the language as a 
    whole-a subset you can use to create truly extensible 
    and efficient code.
The other thing that has had a huge impact on my coding style is learning to write tests for everything with Jasmine[2]. Forcing myself to write tests has basically forced me into better design practices, since it's nigh-on impossible to test javascript callback-spaghetti.

Doing a couple of backbone.js[3] tutorials may be a bit of an eye-opener too.




Original thread
by sanderjd
While I think GWT is a pretty good project and has some way to go before it can be categorized as failing, some of your other remarks make me think that you have not given appropriate consideration to the alternatives to its approach.

First and foremost, you can write javascript in such a way that your code does nothing weird and only what you intended. A good place to start is still "JavaScript: The Good Parts"[1]. Then I suggest finding some examples of nicely written javascript code on GitHub or some such site. I personally think underscore.js[2] and backbone.js[3] are rather nice.

If you have really given javascript a fair shot, and still strongly dislike it, there are many other languages that compile into javascript, but match its style more closely that Java does. I have been enjoying working in CoffeScript[4]. There is an excellent interactive book[5] that shows the javascript generated by the constructs in the language, which is also a good resource for discovering idioms to do things that are not obvious in javascript, like creating classes. TypeScript[6] and Dart[7] are both interesting languages with syntax more familiar to Java. There are a lot more languages that compile to javascript that I haven't mentioned[8].

It's possible that GWT and Java are the best fit for you, but don't pigeonhole yourself by thinking that they are the only good options out there.

[1] [2] [3] [4] [5] [6] [7] [8]

Original thread
by SeanLuke
> The scope of a parameter, local variable, or local function declared within a function declaration (including a constructor, member function, or member accessor declaration) or function expression is the body of that function declaration or function expression.

This thing claims to be meant for "application-scale" JavaScript, and yet doesn't repair even JavaScript's most notorious error?

A suggestion to the authors. Purchase this book:

... then go through the book with a fine-tooth comb, and every time it describes something as a "bad part" or an "awful part", delete or fix that misfeature in TypeScript.

Original thread
by vibrunazo
I've heard that same argument for a long time from PHP people. Yea, these are all but tools we use for the job. But bottom line is, some tools are just worse than others at pretty much any real practical use. [1] You make it sound like you've read the Javascript: The Good Parts book [2]. I've read it too, and it's a great book I recommend for anyone who must work with Javascript and have no way out of it. But keep in mind that an important premise of the book is aid those who are in this position where they can't run away from Javascript. As shown by this thread of languages that compile to it, it's often perfectly possible to dodge the shortcomings of JS by just not using it. You shouldn't torture yourself for no good reason. If you are in a position where you must work with JavaScript. Then I recommend reading this book to learn to stay away from the bad parts, as you said. But if you can work with any of the compilable languages, I highly recommend you stay away from JS as much as you can.

I would repeat the exact same argument for using SASS or LESS instead of CSS. There is no good reason to torture yourself with CSS instead of these better languages. It's very clear that there is such thing as one language that is much better than another in every practical sense.



Original thread
by demetris
I don’t know about must-read ones, but here are a few No Starch and O’Reilly titles that stand out from a quick look at my library:

No Starch, Eloquent JavaScript. A Modern Introduction to Programming:

No Starch, The Book of CSS3:

O’Reilly, bash Cookbook:

O’Reilly, CSS: The Missing Manual, 2nd Edition:

O’Reilly, JavaScript: The Good Parts:

O’Reilly, Mastering Regular Expressions, 3rd Edition:

O’Reilly, The Art of SEO, 2nd Edition:

Original thread
by anvaka
That's right! I love the discovery part of these visualizations. It helped me to find proper books many times - the graph drawing library is a result of such discovery.

I wanted to learn JavaScript. So I read a book recommended by my old Silverlight-based visualization, and developed the library.

I believe recommendation was successful. The book is Crockford's "JavaScript: The good parts" -

Original thread
by iKnowKungFoo
1. Learn JavaScript (the language)

2. Learn jQuery (a JavaScript library)

3. Learn SQL (the language)

4. Pick an implementation

MySQL, PostgreSQL, SQL Server, Oracle


After that, most application development languages are just syntax. Pick what feels best.

Learn how to use Ajax to tie client-side requests to server-side requests and you're marketable.

Original thread
by ryanbigg
I second the advice about setting up an Ubuntu machine. Windows is unnecessarily painful for development in comparison. Although there are "workarounds" around the problem, you'll find things much easier for development on an Ubuntu or Mac computer.

Now for a language recommendation. I am a Ruby programmer, so I've got a pretty heavy lean towards that.

Ruby is an exceptionally easy language to learn. There's a book called Learn to Program written by Chris Pine ( which is an amazing beginning to getting into Ruby.

Past that, there's the Well-Grounded Rubyist by David A. Black ( which covers all the things from basic Ruby up to medium-advanced levels of Ruby). There's also Programming Ruby 1.9 by the Pragmatic Programmers (

If you want to brush up your Ruby skills, the Ruby Koans ( are also pretty good.

If you're looking to get into web development (well, you ARE on the internet!) then I would recommend learning HTML and CSS with a book such as HTML 5 and CSS 3 by Brian Hogan ( Then a good JavaScript book, perhaps something like JavaScript: The good parts (

After learning as much of those as you can, familarize yourself with Git by reading the Pro Git book by Scott Chacon (, or if you choose another version control piece of software (Mercurial, Bazaar are good, SVN isn't and CVS is (I'm pretty sure) the work of demons).

Ah and before I forget, I've got The Developers Code ( bookmarked for late-night reading and I'm quite enjoying it so far. Quite a lot of lessons in there that I have learned over my brief career, but ones I knew from the beginning.

One more final thing: you are new here and people will treat you like that. Be nice to them and they will be plenty nice back. Respect the fact that they have limited patience and may not wish to answer your questions eternally. They may also have other people asking them questions at the same time you are, or have other things they would like to be doing.

You will get better with practice. You show a keen want to learn, which is a great start. Never give it up. Nothing is "too hard" forever. Persist, and for the love of god, practice.

Original thread
by andrewcooke
Effective Java is the best book for general Java that I know - It's not a tutorial, but a collection of recommendations that could take you from just-learnt to competent.

Very slim, and very good - Javascript: The Good Parts

For a C reference, Harbison & Steele is excellent -

Original thread
by franze
some real tips: read javascript the good parts and anything else form mr.

read (and understand) the "learning javascript with object graphs" series

use node.js for the backend of your apps to come (start with or for a quick hack )

do not use w3school ressources (they are wrong in critical cases) see

and the most critical tip if you really want to get serious about javascript: learn other programming languages as well, then revisit javascript. one language can never be enough. take the learnings from other languages and apply them to javascript.

oh yeah and: do not seek cross browser compatibility. it's frustrating. (after you are good it will work cross browser anyway (excluding IE)).

Original thread
by lwat
This book really convinced me that Javascript can be awesome:

And of course there's all these fancy new things being built on top of it, like CoffeeScript. I just recently realized that it's not the horrible monster I always thought it was.

Original thread
by jdietrich
A lot of people are of the opinion that you can pick up a new language very quickly, but I disagree strongly. Being able to formulate a basic program is easy, learning to be fast and efficient and effective is another matter entirely.

Personally, I'd pare that schedule right down. If you don't need a specific language, I'd start by learning the basics with Python. It's clear, readable, comes with a brilliant standard library, is very useful for all sorts of things and is a fairly 'normal' high-level language - what you learn in Python will be very broadly applicable.

Once you can competently write software in Python, the logical and inevitable next language is JavaScript, which is as useful as it is ugly. It's a terrible first language, but it's a brilliant second one, mainly because it's so useful. Obviously there's client-side web stuff, but also servers with node.js, smartphone apps with Appcelerator Titanium, Chrome plugins and a whole variety of other stuff. Javascript is very similar indeed to ActionScript, so you should find it fairly easy to pick up Flash and Air, giving you the opportunity to do all sorts of rich web stuff, develop multi-platform apps with Air or develop for the upcoming Blackberry Playbook.

You'll pick up HTML and SQL by default and while it's worth having a book or two on standby, you'll probably find yourself learning what you need as you need it.

As regards books:

There is no good introductory text on JavaScript, but try:

Now go out and build something.

Original thread
by rudenoise
Earlier in my development as a programmer, skimming books and hacking was standard. But, as programming became ingrained, reading on the topic became more and more enjoyable. Appreciating the intellectual approach, holding the ideas in my brain without needing a computer to figure out the concepts upped my appreciation of good writing rather than tutorials.

Books that I've really read and enjoyed:

JavaScript the Good Parts

Coders at Work

Programming Erlang: Software for a Concurrent World

On Lisp

The common theme: the authors reflect on the wyhs not just the hows. Programmer personality matters.

Original thread
by yummyfajitas
Javascript: The Good Parts

This teaches you the language. Jquery is just a library on top of that which is fairly simple to learn.

Original thread
by S_A_P
besides by "doing it" I say bulletproof web design is a good book to start with.

javascript- the good parts could also be helpful

all helpful

Original thread
by kreek
The best way I've found to learn JavaScript is through anything by Douglas Crawford. 'JavaScript the Good Parts' is especially good.

Original thread
by siculars
JavaScript: The Good Parts,

Watch Crockford on Javascript at ydn:

Watch @ryah on nodejs at ydn: (and the other javascript related videos linked on that page)

Original thread
by mjhoy
It isn't on the list, but the discount code still worked for me.
Original thread
by limist
If you like this article, you'll love the book "Javascript: The Good Parts":

Original thread
by Daniel_Newby
by shmichael
Javascript is always a nice topic to discuss. Depending on the technical level, you could take it in different directions:

* "good" paradigms in Javascript (using concepts of functional programming). I always recommend Crockford's Javascript: The Good Parts -

* Demonstrate some interesting JS libraries such as mootools or Raphaël -

* For less technical folks, you could demonstrate new JS graphical capabilities, such as the porting of Quake and the chrome experiments gallery -

Original thread
by anactofgod
by docgnome
He also wrote what is, imho, one of the best programming language books, JavaScript: The Good Parts. ( I found it super handy mostly because he made no claims that JS is the best thing ever. A lot of it sucks and he admits that. Which I found super refreshing from the standard "ZOMG X IS TEH BEST EVAR! USE X AND GOLD COINS WILL FALL FROM THE SKY!" of most programming language books.
Original thread
by bluebird
I am sorry, that was "JavaScript: The Good Parts",
Original thread
by tptacek
Thanks, I totally forgot about the Resig book since it was announced. Just bought.

I really liked _Javascript: The Good Parts_:

Particularly because it's purely about style and code organization, and not about the best way to get consistent DOM access between Gecko, WebKit, and IE.

Original thread
by kqr2
Crockford's "Javascript: The Good Parts" is also a nice little read.

Original thread
by mbrubeck
"JavaScript: The Good Parts" by Douglas Crockford is a good, concise, opinionated crash course in JavaScript. It demonstrates the full power of the language, but also teaches you how to avoid real-world compatibility and performance traps. One of the few books that's useful as both a tutorial and a reference.

"Programming Erlang" is a good introduction to both the language and the way of thinking about programs as highly distributed, multi-node systems:

"Real World Haskell" is a very fun book, with a ton of good lessons to absorb, and impressive real-world example code. Some of the later material is pretty dense, though, and I'd plan on spending some real effort working through it, especially if you haven't used any similar languages before. (I've done SML, Lisp, and Prolog, and I still had to work hard to understand parts of RWH.)

Original thread
by jdunck
Note that there's a lot of bad webdev information on the web. Go to the experts and the sources. Avoid random blog's advice on javascript especially.




See this timeless rant for a tiny example (countering all the bad advice you see on a trivially easy feature):

You may wish to do some JS dev without a framework just to get a taste for the terrible truth. Then get jquery or one of the other excellent tools.

JS quirks:


Also, some good tools: wget curl firebug wireshark (neé ethereal) yslow

webby python code libs:

Relevant validators:

Original thread
by compay
Javascript, The Good Parts.

One of the most clear, logical, well-written programming books I've ever read. Douglas Crockford covers more ground in 153 pages than I ever thought was possible in a tech book. An absolute gem.

Original thread
by mechanical_fish
It is embarrassing to have to admit that I'm only halfway through a book as compact as JavaScript: The Good Parts. But so far it is a very good book.

Original thread

Found a good book? Subscribe to the weekly newsletter.