Best Books according to Reddit

Reddit mentions of JavaScript: The Good Parts

Sentiment score: 114
Reddit mentions: 159

We found 159 Reddit mentions of JavaScript: The Good Parts. Here are the top ones.

    Features:
  • O Reilly Media
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Weight0.64 Pounds
Width0.38 Inches
#15 of 224,006

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Found 159 comments on JavaScript: The Good Parts:

u/radium-v · 243 pointsr/IAmA

I'm going to be brutally honest here, and I'm probably going to get down-voted, but I'm not impressed with the underlying code for the project. I don't even know where to begin.

You're obviously passionate about Javascript, but runtime engines and best practices have changed dramatically in the last few years. Some things that stick out could easily be chocked up to coding style or preference, but when those preferences aren't well-adjusted to current-day standards, it leads to a perpetuation of those bad practices and hinders the growth and evolution of web development overall.

I'm posting this here, instead of on Github, because these aren't quite bug reports. I'd be more than happy to contribute though.

  1. Syntax and readability are more important than shortcuts.

    Cutting corners in the interest of character count is useless. It's better to be able to read the code than to have to interpret it line-by-line.

    For hinting, I recommend JSHint. It'll be nicer than JSLint, but it'll still likely hurt your feelings.

    Here are some JSHint errors/warnings that popped up:

    > The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.

    > Expected an identifier and instead saw 'arguments' (a reserved word).

    > Expected a 'break' statement before 'case'.

    A lot of syntax errors can be solved by linting or hinting, and following a style guide. Here's Google's Javascript Style Guide. You'll find that most projects on Github follow the same code conventions, and for very good reason. When you make your code consistent and readable, other developers will be more likely to like you and contribute to your projects.

  2. Read Douglas Crockford's Javascript: The Good Parts and Nicholas Zakas' Maintainable Javascript.

  3. Use an AMD-style, modular system like Require.js or Yahoo Module Pattern because Global variables are evil. The basic idea behind a modular system is that every piece of functionality is broken down to its basic form, and no less. It helps to keep things organized. Even if you choose not to use a framework, following a trusted organizational pattern is a good idea. Consistency is key.

  4. Check out Backbone.js or Underscore for data manipulation.

    I really like the project, but the code is unwieldy and confusing.
u/cogman10 · 75 pointsr/learnprogramming

HTML and CSS are pretty simple, I would spend almost no time reading about them (Unless this is for some sort of job interview) for the most part you will just be googling "How to I make round borders" until you can do it by rote memorization.

JS, on the other hand, is a tricky beast. I would spend a majority of my time learning not just how to write javascript, but how to write good javascript.

javascript the good parts and Javascript garden is where I would start out learning. Javascript is easy to write, but hard to write well. You need to follow strong conventions otherwise your code will end up looking like spaghetti right quick and in a hurry. If you start playing around with the language, I would suggest using JSLint to make sure you aren't doing anything stupid.

After getting a good strong base in javascript jquery shouldn't be too hard. It is just a javascript library. perusing through the docs and getting a feeling for what it can do is probably all you really need. Just like any library you've used. You didn't learn all of the .Net framework, rather you would google and lookup specifics as you needed them. That is much the way you are likely to use jQuery. It can do a lot and you don't need to know everything it can do to use it effectively.

In short, javascript is where the traps are. The other things you mentioned are "I'm going to google this anyways" so I wouldn't really spend a large amount of time learning them.

u/wigflip · 23 pointsr/Bitcoin

Well firstly, language is a big choice right now. If you're looking to make a financially fulfilling career in a young company or on your own, I'd recommend learning javascript to later use node.js, and learning ruby. Personally, I'm a node.js developer, so I would recommend moving toward the JS world and using really cool things like socket.io and mongoDB. Ruby is a fantastic language overall. It's a bit slow, but it does a great job regardless, and tons of really cool startups use it. At the moment, I would say that these are the two most profitable paths to take in web development.

http://codeacademy.com is a fantastic place to start. It does a great job at teaching the fundamentals of programming. If I recall correctly, the javascript courses take you from the absolute basics to building some kind of useful application, such as a calculator or todo list.

Once you've made your way through the tutorials at codeacademy, move on to http://codeschool.com. Their tutorials are a bit more advanced, and leave you with a real application and real knowledge on how to take an idea and turn it into a real product. For node magic after you've moved through Codeschool, check out http://nodeschool.io/

Here are a few books I would recommend

JAVASCRIPT

u/dreasgrech · 18 pointsr/programming

First of all, for any software development questions you may have, I suggest you post your questions on Stackoverflow because the people there will surely provide you with answers.

Now, for a list of books I recommend:

JavaScript

JavaScript: The Definitive Guide; if you're new to JS, start with this one.

JavaScript: The Good Parts; not a beginner's book, but a must-read if you are going to use JS

If you are going to be using JS, you will most probably be developing using a framework, and for that I seriously recommend mastering jQuery because as they say, you will write less and do more!

CSS

CSS Mastery: Advanced Web Standards Solutions

Web Usability

Don't Make Me Think: A Common Sense Approach to Web Usability; the book that shows the users' perspective when viewing a website

Performance

High Performance Web Sites: Essential Knowledge for Front-End Engineers and Even Faster Web Sites: Performance Best Practices for Web Developers;if you want to get serious about performance for your websites

u/jkwuc89 · 17 pointsr/webdev

IMHO, knowing the basics is vital. For JavaScript, I recommend buying and reading, "JavaScript: The Good Parts".

https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1

u/simonsarris · 14 pointsr/javascript

Read JavaScript: The Good Parts by Crockford. He goes over structuring JavaScript in an OOP fashion. More generally it's a great book that will bring your understanding of JS from intermediate to the beginnings of expert.

u/Cantum2 · 13 pointsr/learnjavascript

When I was starting to learn JS which was not that long ago at all and I am still learning I started with this video series:
https://www.youtube.com/playlist?list=PLz5rnvLVJX5VdVNddvRTj68X6miAWQ5pz

.then this one
https://www.youtube.com/playlist?list=PLz1XPAFf8IxbIU78QL158l_KlN9CvH5fg&disable_polymer=true

.then this one
https://www.youtube.com/playlist?list=PL4cUxeGkcC9jAhrjtZ9U93UMIhnCc44MH

.then I read:
https://www.amazon.com/gp/product/0596517742/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

.then I read: https://www.amazon.com/gp/product/1430264489/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1
and
https://www.amazon.com/gp/product/1118871650/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1

.then I read:
https://www.amazon.com/gp/product/1491904240/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1
and
https://www.amazon.com/gp/product/1491904240/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

.then
When I felt like I had a good enough grasp on vanillajs I started a giant project in Angularjs. Where I advanced my skills with git big time. Other resources I used are:
Atom: https://www.youtube.com/playlist?list=PLYzJdSdNWNqwNWlxz7bvu-lOYR0CFWQ4I

Rest api with MEN (lol): https://www.youtube.com/playlist?list=PL4cUxeGkcC9jBcybHMTIia56aV21o2cZ8

Docs are great for js: https://developer.mozilla.org/en-US/docs/Web/JavaScript

These were good for angularjs just incase you were interested:
https://www.youtube.com/watch?v=FlUCU13dJyo&list=PL4cUxeGkcC9gsJS5QgFT2IvWIX78dV3_v

Honestly I cant link one of this guys videos because they all help sooooo much:
https://www.youtube.com/user/shiffman

u/uzimonkey · 13 pointsr/gamedev

I wouldn't call this game "finished," not even in quotes. Implement scoring correctly with display in the game and disappearing/respawning balls, correct deflection (as if the paddle were rounded), smoother AI motion and correct keyboard input (it's backwards and seems to rely on autorepeat). Then the game will be a "finished" pong game.

I can't comment on the Javascript code really, but if you're just learning Javascript, I really recommend reading Javascript: The Good Parts. It's a very short book on how Javascript really works, with no real attention given to irrelevant APIs (to game programmers) and the like.

I also recommend looking at one of the several HTML5 game libraries out there. I'm using ImpactJS, but it costs money. If you want something free, you could try looking at Crafty. They abstract a lot of things and you can focus on making games, and not with the details of HTML5 APIs.

u/PhantomRacer · 12 pointsr/programming

I highly recommend JavaScript: The Good Parts. I'd say to read that one first because it explains how you should think when programming in JavaScript. Knowing the syntax and function names is no good unless you how to use them.

u/meathead80 · 12 pointsr/exjw

There's a reason why there is a Javascript book (1096 pages) and another called Javascript: The Good Parts (176 pages).

I think the bible could use a similar treatment.

u/sitefall · 11 pointsr/learnjavascript

You're an experienced programmer: this


You're a mathematician/scientist/engineer/etc: this



You are "ok" with another language: this


You're more of a "video tutorial" learner: this (and your local library probably gives you free access, seriously check)


You're completely new to programming: this


You're 9 years old: this

u/kotojo · 10 pointsr/IAmA

I'm just two months into my first real job for programming and have a few books I've been going through.

Clean Code is a book not just about writing code, but good code that is easily maintained and passed down to other people to understand.

Working Effectively with Legacy Code was a great read coming into company that has been around for 20 years and is on the third iteration of their product.

I am doing web development so You don't know JS, Javascript: the good parts and then Javascript The Definitive Guide have all been a great help.

If you aren't much a book person, Pluralsight.com is awesome for info on tons of different technologies and is well worth the monthly cost. Go follow every major name in your preferred technologies on twitter. They will tweet all sorts of cool things to learn about. Also, PODCASTS!!!. I don't even listen to music anymore. If I'm in the car alone I'll be listening to Dot Net Rocks or Javascript Jabber.

Lastly, there are subreddits for every tech imaginable. Go subscribe to them and hit everyone up for where they get all their info!

u/TehUberAdmin · 8 pointsr/javascript

But for the love of God, please, please, learn JavaScript itself to a good standard before even touching jQuery.

Even though jQuery makes writing web apps a lot easier and saves you a lot of development time, it is still a JavaScript library and as such, if you don't have a good grasp of JavaScript, you're going to be writing jQuery code that may well work correctly, but you're not going to have any idea why it works correctly and as such, debugging and writing advanced jQuery code is going to be a nightmare.

I appreciate that you might not want to spend any money on learning JavaScript, but if you're really interested in the language and want to know it well (and you already have a solid foundation in programming), then I highly recommend getting JavaScript: The Good Parts and reading through that. It's short (176 pages), you can read it in an afternoon (though the first time round, some of the stuff might go over your head), and although it may be very opinionated, most of what Crockford says is pure gold and at the end of it you will have a thorough understanding of how JavaScript works and how you can write good JavaScript, which will aid you tremendously when you start using libraries such as jQuery.

Apologies for my rantiness, it's just that JavaScript is seen as a 'toy' language by many, a simple language that people can just jump in and use without learning it first, as evidenced by people suggesting diving straight into jQuery, which is a reputation that I think is undeserved. JavaScript may not be the prettiest of languages, but it's here to stay, and if you learn to use it properly, you'll find that beneath the design mistakes lies a simple and beautiful programming language that just wants to be loved.

u/zjs · 7 pointsr/web_design

It's not quite what you asked for, but the parent of this reply answers that.

JavaScript: The Good Parts offers a wonderful Computer Science style discussion of JavaScript.

u/mysticreddit · 7 pointsr/gamedev

To expand upon this ...

  1. In game dev just because a language has a feature doesn't mean it's a good idea to use it. Professional game devs are concerned about the run-time costs. That means knowing the costs of the features your language provides.

    For example, see this talk about how Ubisoft uses C++

  • CppCon 2014: Nicolas Fleury "C++ in Huge AAA Games"

    They avoid most of modern C++ features because there is little, or no benefit, and the (run-time) performance cost is too high.

    To be a great programmer, you should know both the strengths and weakness of every language feature. They were designed and added to the language to solve a certain problem. What is the context? Where does it NOT perform?

  1. As you move from indie to professional game dev you will be more focused on budgets. Memory Budgets. Performance Budgets. Polygon Budgets. Shader Budgets. How how to manage memory with a mid-level language like C is a fantastic skill to have. You should have a grasp of using memory/object pools which can be used in Javascript to further boost, say your particle system performance.

  2. OOP does not scale and leads to terrible performance. For now, don't worry about it.

  3. Javascript is a shitty designed language.

    On the negative side, it has tons of small gotchas. One of the ways to minimize it biting you in the ass is to use this hack at the beginning of your .js file

    "use strict";

    This will prevent the browser from allowing you to use variables that haven't before declared.

    On the plus side, it is fantastic for rapid prototyping.

  • ALL Javascript programmers should have Douglas Crockford's book JavaScript: The Good Parts

    Now I didn't say you shouldn't use Javascript. Whether you write your game in C or Javascript is (slowly) becoming irrelevant as you can compile Javascript to C, or compile C to Javascript.

    Use whatever language you feel fits your dev style.

    All programming languages suck. Some just more.

    The more programming languages you know, the better the programmer you will be.
u/theanzelm · 7 pointsr/Games

I can really recommend this book: http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 (not an affiliate link ;) )

JavaScript is amazing if you embrace it's prototype-orientation and assorted ugly warts.

u/emcoffey3 · 7 pointsr/webdev

I'm a big fan of JavaScript: The Good Parts. I'm not sure if it is quite intermediate, but it is a terrific (and short) read.

Secrets of the JavaScript Ninja is a bit more advanced. It's written by the guy who created jQuery. I found some of the coding style to be sort of strange, but it does have a lot of great information.

u/KidA001 · 6 pointsr/learnprogramming

Check out JavaScript, the Good Parts. Imo the best beginner JS book. No one should be able to save a .js file without reading it :)

You can learn angular without learning JS first, but it sure will help you go a lot further if you understand the fundamentals of JS.

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/rjett · 6 pointsr/javascript

Advanced

Medium

Old, but probably still relevant

Yet to be released, but you can get the in progress pdf from the publisher

Docs

The one that everybody recommends

HTML5 spec

HTML5Rocks

Latest Webkit News

Other than that build build build. Make demos and play. Ask questions here or on stackoverflow and read other people's code. Also, lots of great old JSConf videos out there.

u/duskwuff · 6 pointsr/lolphp

Now I'm imagining a book titled "PHP: The Good Parts". (Kind of like "Javascript: The Good Parts".) Only, it's less of a book and more of a pamphlet.

u/jhnsnc · 6 pointsr/webdev

First of all, don't worry too much about a single interview. A lot of interviewers don't really know what they're doing / why they are actually asking the questions they are asking. Usually, they're programmers--not experts at hiring people.

Having said that, you definitely want to be familiar with common "gotchas" and major issues in the languages/frameworks you will be using.

For JS, I recommend two books in particular: JavaScript: The Good Parts and JavaScript Patterns. I found these helpful because they cover all the major issues with the language and they are quite concise. These don't cover any frameworks like jQuery or Angular though--that's another matter altogether.

Also take a look here: https://github.com/h5bp/Front-end-Developer-Interview-Questions
There's a good chance the interviewers will straight up copy questions from this list and you researching the answers will be a great learning experience.

u/dmazzoni · 6 pointsr/learnprogramming

One more to add: JavaScript: The Good Parts

(obligatory joke)

In all seriousness, it is a really good book.

​

u/RecycledAir · 6 pointsr/javascript

I've recently been working on my JS skills and heres a few resources I've found super useful:

Books:

Javascript Patterns

Javascript: The Good Parts

Javascript: The Definitive Guide (While an exhausive resource on the topic, this one is a bit verbose)

Web:

Mozilla's Javascript Guide (One of the best free online javascript guides/references.

How to Node (Tutorials on server-side Node.js)

Daily JS (Interesting JS related news)

Echo JS (Similar to above but updates less frequently)

Hacker News (This is more general tech news but there is a ton of useful web stuff, especially as node.js is currently a hot topic. Reddit actually spawned from HN)

Online Videos (free)

Douglas Crockford's Javascript Lectures (I would recommend these to anyone getting into javascript)

u/adamzx3 · 5 pointsr/javascript

I can definitely relate, this sounds just like me last year! I've done things the hard way and it took me 5x longer. I also prefer screencasts to books. I always need to create a project to solidify those fresh skills, otherwise they'll be gone in a month. Also tutorials for things like Backbone assume you know how to use jQuery, Underscore, and things like REST, and JSON responses... this can quickly get confusing if your not familiar with all of these. My largest regret is not building enough practice apps in the last year. I really should have applied more by doing, instead of staying in the theoretical world.

Here are some insights that i've made and the courses/tuts/projects that helped me the most:


Learn the language first:


u/user24 · 5 pointsr/node

I've been using node for about a year now (was a PHP/mySQL dev for 6 years before that) and have come to realise that it's all about methodology. The language is just JS (I mean, you should get good at JS too) but it's how you use it that defines whether your node code will be good or not.

Some things I've found useful:

  • JavaScript: The Good Parts If you're a JS developer, you just need to read this.

  • Node Beginner Book Hands-on node is a little more rough around the edges but still worth a go. I bought the bundle for kindle and didn't regret it.

    My experience:

  • Write everything in modules. Your index.js should be tiny. Ours just links URLs to modules.

  • Try to make your modules reusable. We're (I'm) guilty of having my modules assume a http request, which means I'm ferrying the request and response objects around all over the place. It's not heinous, but it is bad.

  • Put your modules in git

  • Caching: Our stack is slightly unusual in that we've built a REST API in node which PHP then consumes to produce the HTML for the site, so end users never connect directly to node. (We have reasons for doing it this way). So we cache the API results based on URL in memcache. For a traditional web server model you'd probably use caching proxies in front of your node layer. I also cache database results based on the SQL string (I think we tested it to be faster than querycache. If not, why the hell aren't we just using querycache? Hmm...), so even if the API-level cache misses, some of the data will still be cached hopefully. Your caching strategy will depend heavily on the frequency of data changes in your application. A lot of our data never changes. We certainly don't have sub-minute changes, and typically our data changes exactly once in its lifetime.

  • A good proportion of the stuff I write is utility modules (like pluribus) rather than business-logic specific to our website. I've written a HTTP router, a caching object (which abstracts the cache mechanism away so if we wanted to move away from memcache none of our code would have to change, we'd just plug in a new storage module to cachejs), a twitter module, and a connection-pooling module. Some of these problems were already solved in existing modules (and we use a lot of 3rd party modules too) but often you'll find that it's not quite right for your use-case, doesn't scale well, or the github isn't up to date with the latest node etc etc.

  • Node is getting better all the time. We've thrown away a few things we'd written because the functionality is in core now. That's good.

  • github is your friend. We end up forking a lot of modules and issuing pull requests to them. If they don't accept it's a shame because we then will have to keep our version up to date with their fixes. We prefer to fork, fix, pull req and then switch back to their version when accepted.

  • architecture is the most important problem to solve. We use rackspace cloud hosting and they provide cloud load balancers which helps a lot. Beyond that, we make use of a consistent hashing module to spread memcache data and load evenly. But for any large application you'll quickly find that you can't just keep it all on one fat box, and you'll need to think the architecture out avoiding single points of failure.
u/NegatedVoid · 5 pointsr/webdev

Crockford's JavaScript: The Good Parts.

Serious recommend.

u/bobishardcore · 5 pointsr/learnjavascript

JS is hard, especially for people new to programming. Basically, JS as we know it today is an evolution of a browser hack that only recently became a seriously useful language. The syntax is terrible, math and numbers don't make any sense, the regex system isn't super robust, oh and it's not really an OOP language. Technically, it is multi-paradigm and includes some oop-like things and classes are on the way to browsers, but it's for naught anyway, because you don't need classes in JS - It's a prototypical inheritance based language.

If you're new to programming in general, I'd say you should start with a more sane environment, like Python. It will teach you programming concepts while railroading you into making good coding decisions. It's really common for people to start with Learn Python the Hard Way - don't. Go to /r/learnpython and search "LPTHW 31" and just count up the people struggling with it. Zed Shaw is an idiot, there are better things to read, I'd recommend watching the google IO talks, get a buddy to learn with. Honestly, I've never read a python book cover to cover, but I feel pretty comfortable with the language from just googling "How do I do X in Python" millions of times, usually if a link comes back to docs.python.org, I click that one first. The docs are wonderful, you don't need a book.

But, since JS is one of the most important languages due to it's integration with the most common form of media distribution in our time, I'd recommend reading / watching talks by Douglas Crockford. Check out Javascript: The Definitive Guide and Javascript: The Good Parts. The second one is a little easier to digest, while the first is really the definitive guide.

In both cases, I'd recommend doing the challenges on hackerrank.com.

u/EllaTheCat · 5 pointsr/tasker

In today's shiny web world, it can't hurt to learn JavaScript, but it's a dreadful mess, saved only by this fine book.

Python is a great language for learning, and I think Tasker supports it..

Now, I've spent years in software, and I suggest you stick with Tasker and its plugins, because it is very well thought out. You can learn a lot about real world stuff if you focus on being battery efficient and being responsive. Setting task and profile priorities, scheduling waits, running tasks in parallel, is an art.

Premature optimisation is the root of all evil in programming. JS doesn't necessarily make things faster, and believe me I've seen clueless JS programmers consider using C/C+ for speed, when they could have simply used JS properly. Use libraries, not DIY code, which is why AutoTools is so good.

u/eric_weinstein · 5 pointsr/ruby

> Failing that, are there any good cheatsheets/references for JS "gotchas" and unusual features that devs from other languages might not be familiar with?


There are entire books dedicated to this! (Also some entertaining talks.)


Here are some good JS books not aimed at total beginners:


  • JavaScript: The Good Parts
  • Professional JavaScript for Web Developers
  • Effective JavaScript


    Bonus (to give you a sense of the kinds of "gotchas" you'll find in JS):


    // Even though you pass in numbers, JS sorts them lexicographically
    > [5, 1, 10].sort();
    [ 1, 10, 5 ]

    // You "fix" this by passing in a custom comparator
    > [5, 1, 10].sort(function(a, b) { return a - b; });
    [ 1, 5, 10 ]

    // This probably makes sense to someone, somewhere
    > Math.min();
    Infinity

    > Math.max();
    -Infinity

    // Some things are best left unknown
    > {} + {};
    NaN

    > var wat = {} + {}; wat;
    '[object Object][object Object]'

    Here are a bunch more in quiz form.
u/w3cj · 5 pointsr/javascript

I highly recommend checking out the You Don't Know JS book series by Kyle Simpson. It goes in depth into how the language works and all the quirks you might encounter: https://github.com/getify/You-Dont-Know-JS

If you'd like a shorter read and maybe have your opinions formed for you... checkout JavaScript the good parts: https://www.amazon.com/_/dp/0596517742

u/reversekilled · 4 pointsr/programming

Perhaps you should learn something about the language first? It has its good parts and its bad parts and its really bad parts. This book is a great place to start.

u/jellatin · 4 pointsr/javascript

This is kind of a side-answer, but it looks like you are just compiling a list of things that are super popular at the moment.

> React.js with Flux seems more hot than all other frameworks

What concerns me is that you seem to not be concerned with what is the best framework for your project(s), but rather what is "hot".

For a long-term career I would recommend focusing on improving your understanding of concepts and theory that these ever-changing tools are built on rather than trying to chase what people think is cool.

The people who spent time learning JavaScript rather than simply "mastering" jQuery were in a significantly better position when client-side frameworks came out because they knew the underlying concepts.

If you haven't mastered these things yet, I think they have more value than most of the list of specific tools I see listed:

u/fajitaman · 4 pointsr/learnprogramming

The usual advice is "get out and program!" and that works, but it can be very tricky coming up with something to write that's also satisfying. The idea is that you learn best by doing, and that many topics in programming can't really be learned without doing. All that stuff is true and I'm not denying that at all, but some of us need more. We need something juicier than spending hours configuring a UI for a project we couldn't care less about. It shouldn't be an exercise in masochism.

I guess what I'm saying is that there are a lot of ways to learn to write code and books are great if you can really sink your teeth into them (a lot of people can't). Code Complete is a great book on the practice of programming. You also say that you "get" OO pretty well, but it might open your eyes to read up on design patterns (e.g., Head First Design Patterns). You have a long way to go before you really get it

In addition to those, you could delve deeper into your languages of choice. There's no way around JavaScript if you're a web programmer, and a book like JavaScript: The Good Parts is pretty enlightening if you've got some experience in JavaScript already. It's a pretty interesting and unusual language.

But sometimes programming is about building gumption, so instead of just being practical, try to figure out what you like about computers and keep going deeper into it. If you have an interest in computer science and not in just building apps, then something like Structure and Interpretation of Computer Programs could instill in you an enthusiasm for computers that trickles down to everything else you do. If you're more interested in web design, there are probably similarly interesting books on artistic design principles.

I think what I'm ultimately saying is that you should find what you enjoy doing and just go deeper down the rabbit hole, getting your hands dirty when it's appropriate and interesting.

u/checksinthemail · 4 pointsr/webdev

Preface - you have missed years of development in an area (web client front end coding). It's advancing so fast the rest of us can barely keep up. I'm serious - seems like every day there's something new that would take me multiple days to learn well.

See the "Web Development Timeline"





Moving beyond the standard HTML5/CSS3 stuff, I spent part of my evening compiling this list. It's incomplete and some stuff is opinion. WMMV. If you were helped, well, buy me a beer someday :-)

  • JS got real popular. Catch up on the current terminology used.
  • ECMAScript/ES5 language extensions
  • ES6 ("Harmony") extensions - coming soon; some already here. The current working draft of ES6 as PDF
  • Exhaustive list of Micro-libraries
  • HTML5 shims, ES6 shims, Lazy loaders (require.js), Modernizr... It's overwhelming, please see Daily JS for an exhaustive roundup of libraries/frameworks as they are released.
  • Underscore.js for functional programming niceties
  • The myriad client-side MVC frameworks - (Backbone.js, Ember.js, Spine.js, etc.)
  • Stratospheric rise in the goodness of webkit. See Peter Beverloo's blog for weekly reports of WebKit new features added.
  • Douglas Crockford's JavaScript: The Good Parts was a huge hit - this always comes up in interviews.
  • IE9 and IE10. IE9 did border-radius, SVG, and added a faster JS engine. IE10 (only for Windows 8) adds CSS gradients, 2D/3D(?) transforms, CSS transitions (and animations now I'm told?)
  • Opera is now on versions 11 and 12 - and it still rocks. Here's what's new in the development snapshots from their blog. I'm a fan since long ago, it's nice to see them continue to remain competitive with the 'larger' browsers.
  • Firefox is now on versions 12 through 14.
  • Chrome is now on versions 18 through 20.
  • JSLint is now integrated in some editors (I love it in notepad++) and JSLint begat JSHint, which is sold as "kinder, gentler"
  • Web Workers (aka JS threads)
  • Web Sockets API
  • WebGL See the 3-D dynamic terrain/bird demo - awesome!
  • Death of Ajaxian.com rule, takeover by Daily JS and BadAssJS (IMHO)
  • Inline images expressed in data/uris which are base64 coded) eg: IMG SRC="data:image/gif;base64,EEEEEEBASE64JUMBLE" online image encoder
  • LESS and Sass - better CSS with variables, macro expansion, etc.
  • calc() in CSS3 Really new - chrome nightlies and firefox supports. If you remember way back when, IE 5.5/6.0 had a similar but poor performing feature called CSS expressions
  • INPUT TYPE="COLOR" and "DATE" should now work well, and have in-browser helpers for selection.
  • CSS3 display:flex-box
  • CSS Gradients/Animations/Transitions see this slidedeck/demo
  • CSS3 Shaders/Filters. Shaders are really really new (as in: last week) as far as implentation in a browser. I'm psyched about creating some vertex shaders (.vs files) for effects.
  • Local Data Stores (4k cookie - bah!)
  • Mobile browser coding: events for swiping screen, etc. see jQuery Mobile, Sencha touch.
  • Node.js based on Chrome's V8 JS interpreter (I know; you know...)
  • Coffeescript (I know you know, I included for completeness) The JS to Coffeescript is also interesting.
  • DART. Google's JS-like language for those who like classical Java/C++ oop style - they even have a version of Chromium for Mac which has DART native. Else it transpiles to JS, like Coffeescript does.



    If you didn't click on any links above, well, for shame. There's some good important stuff up there. Below are a couple websites that I think are must-sees, as far as demos of the recent html5/css3/bleeding edge, and news/informational blogs I read daily or weekly... Most were listed above!

  • CSS3 Click Chart
  • HTML5 Rocks!
  • Learning threejs/tQuery (WebGL)
  • Bad Ass JS

  • W3C's blog on CSS
  • Daily JS - - news on libraries and node, mainly
  • Steve Souder's blog on high performance web sites. He wrote a couple books too that are very good.
  • Peter Beverloo's blog discussed what's new in this week's WebKit/Chromium builds.






    Stuff I didn't include, and am going to leave as an exercise to the reader:

  • Vibration API (for tablets, phones)
  • Battery status API
  • CSS3 image-set (download different quality/resolutions depending on capabilities)
  • Video element stuff - Hollywood's next blockbusters may be edited over the web.
  • Speech API - see Peter Beverloo's blog and W3C...
  • Audio - there's some full on audio mixers and synthesizers out there now
  • Web Inspector in Chrome
u/ManicComputer · 3 pointsr/css

Start by trying to understand the CSS and HTML on the sites you like going to. If you haven't already, become familiar with the F12 developer tools each browser provides. You'll want to get comfortable with them all because early on you will want to discover why your pages aren't looking the same in one browser to the next. Using the dev tools in the browser you can actually change the way the page is styled by literally changing the CSS in the developer tools. Or you can add styles as well which is GREAT when modifying your own site so you dont have to go back and republish it each time you make a change. IE's dev tools are actually pretty great. You can also simulate older browsers by changing the document/browser mode in the Emulation tab (this isn't perfect btw, but works well for the most part)

Next start using JSFiddle.net or CodePen.io and try to recreate some elements on a site you like. Do this daily, and do not get frustrated. By using the dev tools you can see how they used CSS to get the style you like, and the surrounding divs/spans/p/etc around it. You can also right click on the page and select "inspect element".

Codecademy is GREAT but one thing it doesn't do well is using real world tools since you are using their environment. You will learn far more by manipulating the dom in F12 or using JSFiddle/CodePen. Plus you can post a page you are working on in JSFiddle/CodePen to a forum like this one for help with what you are working on for a lot better discussion.

Another good site to keep in your toolbox is Can I use. This will help you with understanding which CSS can and can't be used for your specific browser support needs. One example that comes to mind is wanting to use text-shadow which isn't supported in IE9.

Because this is a post in a CSS sub, I'm not sure if you are going down the web developer route, but if you are, then continue reading. Otherwise, feel free to skip to the last paragraph.

Next you will want to move on to the final tool in your front end development toolbox you will want to master and that is JavaScript. Learn straight JavaScript first, and avoid mixing in jQuery until you feel like you have a great understanding of how JS works on its own. I believe the JS tutorial on Codecademy mixes jQuery early on, and if you are just starting out you may not realize the difference. Don't get me wrong, learning jQuery is almost as important as learning JavaScript, it's just important to understand it is a library for JavaScript, and as a framework has its uses and limitations. I really liked the JavaScript tutorial on Code School, so that would be a great place to start. It's not free, but I believe they have a free trial. Otherwise everyone will tell you JavaScript: the Good Parts and Eloquent JavaScript (which is online and free) are required reading.

After that you'll want to learn some of the more popular libraries and frameworks for CSS & JS, such as LESS, Sass, jQuery, AJAX, node.js, backbone.js, and Bootstrap to name a few.

After this, then you'll need to decide if you prefer to lean more to the designer side or the back-end developer side. Front-end developers are usually the bridge between the designer and back-end developer.

In my experience though, you fall in to either being an all-in-one or the designer who does front-end work. Learning designer tools like Illustrator and Photoshop will be helpful if you are asked to or need to create your assets. I actually prefer Fireworks (though I hear it is being discontinued) for creating quick assets I couldn't create with CSS instead of Illustrator because its a little less robust and for someone new its much easier to learn. Otherwise if you are going the back-end route you'll probably want to research which server-side language you want to start with like PHP, Ruby, Python, .NET, etc and then what database such as MySQL, MSSQL, etc.

The best advice I can give you though, is don't be a "master of none" web developer. Become a master at CSS before you move to JavaScript. Then become a master at JavaScript before you move to another language, or whichever language you choose next. When I started out I tried to learn CSS, JavaScript, ASP, PHP, jQuery, C#, AJAX, SQL, and a few others because I wanted to get started quickly...along with pressure from the company I worked at. You will get overwhelmed, burnt out, and start making mistakes, or even worse, not get to the bread and butter of the language you are trying to learn.

u/GrayDonkey · 3 pointsr/java

You need to understand there are a couple of ways to do Java web development.

  • Servlets & JSPs. - Check out Core Servlets and JavaServer Pages or the Java EE Tutorial. Note that I link to an older EE tutorial because the newer versions try to switch to JSF and not much changed in Servlets and JSPs between Java EE 5 and 6. I recommend learning Servlets and JSPs before anything else.
  • JSF - A frameworks that is layered on top of Servlets and JSPs. Works well for some tasks like making highly form centric business web apps. Most of the JSF 2 books are okay. JSF is covered in the Java EE 6 Tutorial
  • Spring - Spring is actually a bunch of things. You'd want to learn Spring MVC. If you learn any server-side Java web tech besides Servlets and JSPs you'd probably want to learn Spring MVC. I wouldn't bother with GWT or any other server-side Java web tech.
  • JAX-RS - After you get Servlets and JSPs down, this is the most essential thing for you to learn. More and more you don't use server-side Java (Servlets & JSPs) to generate your clients HTML and instead you use client-side JavaScript to make AJAX calls to a Java backend via HTTP/JSON. You'll probably spend more time with JavaScript:The Good Parts and JavaScript: The Definitive Guide than anything else. Also the JAX-RS api isn't that hard but designing a good RESTful api can be so be on the lookout for language agnostic REST books.

    Definitely learn Hibernate. You can start with the JPA material in the Java EE tutorial.

    As for design patterns, Design Patterns: Elements of Reusable Object-Oriented Software is a classic. I also like Patterns of Enterprise Application Architecture for more of an enterprise system pattern view of things. Probably avoid most J2EE pattern books. Most of the Java EE patterns come about because of deficiencies of the J2EE/JavaEE platform. As each new version of Java EE comes out you see that the patterns that have arisen become part for the platform. For example you don't create a lot of database DAOs because JPA/Hibernate handles your database integration layer. You also don't write a lot of service locators now because of CDI. So books like CoreJ2EE Patterns can interesting but if you are learning a modern Java web stack you'll be amazed at how archaic things used to be if you look at old J2EE pattern books.

    p.s. Don't buy anything that says J2EE, it'll be seven years out of date.
u/michael0x2a · 3 pointsr/learnprogramming

I've recently been collecting some resources related to learning different programming languages. It's a work in progress, and is still a bit disorganized, but the section on HTML/CSS/Javascript might be useful. Also, many of the links might be too basic for you, but several of them might still be useful.

In particular, I think [Eloquent JavaScript][webdev-eloquent] is a pretty good overview of JavaScript for people with prior programming experience. You might need to skim the first couple of chapters though.

The [Mozilla Developer Network][webdev-mdn] (MDN) also has a good number of resources that range from beginning to advanced that you can check out. MDN also tends to be very thorough and comprehensive, which is good. The section on JavaScript is here.

I also like a book called JavaScript: The Good Parts. It's a bit short, but I've personally think it's the least bullshitty guide to JavaScript I've read. Unfortunately, it focuses more on understanding JavaScript, the programming language (and all its quirks and oddities), rather then on practical application.

[webdev-mdn]: https://developer.mozilla.org/en-US/docs/Web
[webdev-eloquent]: http://eloquentjavascript.net/
[webdev-more-js]: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#javascript

u/ew73 · 3 pointsr/webdev

Even if you're a seasoned JS pro, I'd suggest reading Javascript: The Good Parts, it helped me tremendously, to the point I was comfortable moving Javascript to the primary skills section of my resume.

u/j9461701 · 3 pointsr/slatestarcodex

I remember batch! That was the first programming I ever did, because my Star Trek games required me to kill explorer.exe before they'd load the colors correctly. So I just made a little file that I'd click on and it would turn on say Starfleet Command, turn off explorer, then wait for SC to exit and turn explorer back on. I was like...10 I think. Good memories.


Anyway, right now I'm reading Javascript: The Good Parts, while using notepad++ for coding the examples. I tried using code academy but I found it annoying and uninformative.

u/tech-mktg · 3 pointsr/Frontend

Most of the answers already say to start learning JavaScript, which I agree with. I'd worry less about learning libraries, and start learning plain vanilla JavaScript. A good book if you're interested is JavaScript: The Good Parts. I'd then move onto jQuery, and from there you'll be able to get the gist of most libraries.

At our company, our front-end people all do JavaScript, although some of them started where you're at with backgrounds in just HTML & CSS. We have a lot of emails coded, which can't have JavaScript, so that could be a good fit for you if you're not looking to expand your skills.

u/soullessredhead · 3 pointsr/FreeCodeCamp

This one is pretty good.

u/OolonColluphid · 3 pointsr/dotnet

And then read Javascript: The Good Parts which will tell you the subset of js that is actually sane.

u/dmerrick · 3 pointsr/IAmA

Luckily, JavaScript is a pretty easy language to pick up. Personally, I'm partial to O'Reilly's "JavaScript: The Good Parts." It's a very good summary of the language :).

u/areinet · 3 pointsr/javascript

My suggestion, go read Crockford's book JavaScript: The Good Parts and/or the JavaScript section of his blog. A lot of people have some really strong opinions on whether Crockford is right or not, but simply reading his book will explode your JS knowledge in a big way. Its a quick read and then you can start having your own opinions on Crockford.

Also, as someone else posted here, go build something.

u/theQuandary · 3 pointsr/javascript

Javascript: the good parts -- Amazon

Eloquent Javascript -- free ebook

Javascript Allonge -- free ebook

Eloquent Javascript is a great introduction to JS. The Good Parts teaches about what parts of JS to use and good coding practices (though some JS devs disagree with Crockford, every place I've worked that started implementing all his recommendations immediately saw reductions in code issues). Javascript Allonge is the greatest intro to functional JS that I've seen. These three will take you from beginner JS dev to intermediate JS dev. Practice will take you to advanced JS dev and reading lots of nuts and bolts blog posts will take you to JS expert.

u/DeadEyeDev · 3 pointsr/gamedev

Also, check out the book Javascript: The Good Parts to really up your game with javascript. I don't really do html5 games, but I've heard this book recommended enough by people I respect.

u/Zapurdead · 3 pointsr/cscareerquestions

Closures are actually a somewhat important concept in Javascript. If you don't understand them then one day you'll probably get some weird this bug working with callbacks and you'll waste more time than you need to trying to figure out what's going on.

This is just my personal experience, but I felt that when I had a Javascript interview coming up I would always take some time to review this book:
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?ie=UTF8&qid=1501136583&sr=8-1&keywords=javascript+the+good+parts

It's worth it to read in my opinion, it covers pretty much everything you would probably be asked in a Javascript interview, and it's very short.

It helps me a lot with Javascript stuff. The other stuff, like the Java stuff, you could probably just google it. There's a standard set of OOP questions that interviews just like to ask all the time.
http://java-questions.com/oops-interview-questions.html

u/Riobe · 3 pointsr/videos

So, everyone has different learning styles and there's no completely "best" way to learn something. Here's a couple suggestions on how I'd recommend starting:

  • The simplest starting point would be to follow an online tutorial. It's been too long since I learned my first bits of javascript, so I don't remember what I used, but after a bit of looking, this one looks decent: https://javascript.info/ EDIT: Like /u/HothMonster recommended, I've heard good things about CodeAcademy. A friend went their their javascript course and found it useful. Haven't done it myself, but worth a look too.
  • Are you the type that'd like a book to guide you through? There's one that I read and loved while I was learning: Javascript: The Good Parts. If you google it, there's a PDF in the top few results too, but I have no idea if that's legal or not.

    Using tutorials or a book, get a basic start going. Once you have a little bit of HTML/JS knowledge going so that you can make a index.html file and have it load a javascript file that does anything, like log to the console, then you're started. Go through a tutorial/book to get a bit more understanding and then.... build something.

    It's hard to choose a topic, but try to find something that you're interested in. Then work on making it. You'll learn an incredible amount by doing it. Don't try to master the language first, just make something with it. Then you can ask specific questions about the parts that you're having trouble with and it will help guide you through it and people will generally be willing to help someone that's working.

    Plus, getting help is easier when it's a specific use case that someone can help with vs. "Please teach me everything about this language" because even those of us that have worked with a language for quite a while often don't know all of it. :P
u/BesottedScot · 3 pointsr/Scotland

I think you're going to suffer too much with broad strokes. All of the things you've mentioned have their own usecases really. You should focus on one of them and learn it before deciding whether you want to try another.

Although, you can also just do 'X vs Y' for all of those things you've mentioned and see articles on the differences between them as well as what they actually do.

Before you start any of the learning on any of those things though, you should definitely take one or two JS courses. Code School, Code Academy, Udemy all have great courses on Javascript. A couple of books I'd definitely recommend are Clean Code and Javascript, the Good Parts, I'd say these are ubiquitious and essential reading for any developer looking to get better.

Less and Sass are for doing stylesheets better. They basically introduce programming concepts like functions and variables into CSS.

Gulp and Grunt are task runners. Tests, minifying, linting and live previews can all be done with them.

Angular and React are basically front end frameworks built with flavours of JS. They introduce OO concepts into javascript and the MVVM/MVC way of working for the front end. The are markedly different from how they do things.

With the other things, there's basically a wealth of information for them.

Needless to say, you have a lot of reading and practicing to do. Luckily these days there's lots of examples and documentation for every one of the things you've mentioned.

u/Chesh · 3 pointsr/javascript

It's a design mistake in the language itself, there are quite a few of them. I recommend Douglas Crockford's JavaScript: The Good Parts, he goes into a lot of good practice work-arounds for the pitfalls of the language.

u/hhustlin · 3 pointsr/javascript

Just out of curiosity, what's the perceived benefit of logging every page in your history as a QR code of all things?

As for language - Chrome extensions are JavaScript, so if that's what you want to do, learn that. If you're looking for the very basics, Codecadamy is a good place to start. Beyond that, you're on your own (but maybe pick up a copy of the Good Parts )

u/magenta_placenta · 3 pointsr/web_design

Pro JavaScript Design Patterns

http://www.amazon.com/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X

JavaScript Patterns

http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752/ref=sr_1_1?s=books&ie=UTF8&qid=1303912468&sr=1-1

High Performance JavaScript

http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X/ref=sr_1_3?s=books&ie=UTF8&qid=1303912468&sr=1-3

Object Oriented JavaScript

http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141/ref=sr_1_1?s=books&ie=UTF8&qid=1303912517&sr=1-1

JavaScript: The Good Parts

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_4?s=books&ie=UTF8&qid=1303912536&sr=1-4

Everyone loves to swing from Crockford's nuts, but I found this book a little hard to read. I lack a CS background and I fully admit I need to re-read this book as last time I read it was beginning of 2009

JavaScript: The Definitive Guide 6th Edition

http://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/0596805527/ref=sr_1_1?s=books&ie=UTF8&qid=1303912643&sr=1-1

I just ordered this yesterday, the 5th Edition is the book that really kicked it off for me back in 2005.

jQuery is cool and all (as are all the other libs) but you should try to learn core JavaScript as much as possible.

u/JohnaldTheRobot · 3 pointsr/web_design

To be honest you should learn JavaScript first before going on to jQuery.

O'Reilly books are very good programming books and highly reccomended. However if you know how to code a little in any language and you just need to know the basics then I reccomend "JavaScript: The Good Parts". I have this book and it's extremely useful.

If you want a nice introduction to jQuery I'd suggest the screencast on screencasts.org

Good luck on learning javascript :)

u/michaelp983 · 3 pointsr/javascript

I feel like this is a classic book for javascript programming. Even though it is very opinionated (parseInt), but none the less it is a great reference for quirky behavior of JS. Seconde watch this: http://www.youtube.com/watch?v=kXEgk1Hdze0 <-- Just a great list of really silly behavior of JS!

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?s=books&ie=UTF8&qid=1370623429&sr=1-1&keywords=the+good+parts

------
One last thing, make sure you review how CommonJS works: http://dailyjs.com/2010/10/18/modules/

u/Selesthiel · 2 pointsr/node

I can't possibly recommend Douglas Crockford's Javascript: The Good Parts enough. It's a quick read; I read through it in an afternoon. I've been doing professional node development for three years now, and I still reference The Good Parts.

Similar to what /u/AlexanderC89 said, there are high-level architectural and pattern differences between javascript and PHP. The key concepts, off the top of my head, that are most important to understand are:

  • Prototypal (js) vs Classical (php, c/c++) inheritance
  • Functions as first-class objects (and lambda functions)
  • Asynchronous/event-driven I/O model
  • Block scope (php, c) vs Function scope (and closures)
  • Variable hoisting
  • "==" vs. "===" and "falsy" values

    You can probably find good descriptions of all of these somewhere on the web, but I'd just as soon recommend reading The Good Parts. I'm not affiliated with Crockford or anything at all like that, quite simply just that The Good Parts is really that helpful.

    Honestly, I wouldn't sweat promises until you have a strong grasp of the callback model. They're important and very useful, no doubt. Its just that I've tried to introduce promises to a few colleagues whose understanding of the async callback model wasn't the strongest, and it really tripped them up. Once the callback model clicked for them, promises were a snap to pick up. YMMV.

    I can throw together some quick examples and descriptions for you, if you find that sort of thing helpful.

    (edit: formatting)
u/jimbolla · 2 pointsr/pittsburgh

Logic/match shouldn't really be an issue. To me, the main parts of JS are interacting with the page/DOM and keeping your code clean and organized. A couple of resources to look into:

  • JavaScript: The Good Parts for general JS good practices.
  • jQuery to handle simplifying many JS tasks and abstracting away some browser incompatibilities.

    I don't know where I'd start with teaching someone to code but if you had code that needed reviewing, I could probably help with that.
u/ducksauce · 2 pointsr/programming

That book is terrible. If you really want to learn javascript (versus completing mandatory coursework), check out this one:
http://www.amazon.com/exec/obidos/ASIN/0596517742/wrrrldwideweb

The author has a great site, too:
http://www.crockford.com/javascript/

u/nwilliams36 · 2 pointsr/learnprogramming

Javascript: The Good Parts

There are also quite a number of his presentations to conferences on Youtube. He is currently employed by Paypal and is writting a version of the web which is designed to be secure. He is calling it the Seif Project.

u/tangentsoft · 2 pointsr/programming

Although Lua does allow you to implement an OOP system yourself, that just leads to The Lisp Curse. Humans being humans, everyone will build their OOP system differently, so an expert in one augmented Lua dialect moving to another project with its own dialect loses their expertise.

A language with a mediocre OO system which is fixed in stone by the language definition is better than one flexible enough to let you define any OO system you like, from a training and community expertise standpoint.

You see echoes of this in Perl and JavaScript, too.

Like Lua, Perl also had an OO sidecar bolted onto it after it became popular. Because there is no one single way to do things, you get classic Perl OO users vs. the Moose people vs. those that go totally their own way, doing weird shit like blessing arrays.

In JavaScript, it's both better and worse than Lua or Perl. JavaScript can at least claim, with a straight face, that it is OO to the core. The problem is, that core has two different ways of manifesting: pure prototypal extensions of Object and such vs. the C++ inspired paintjob on top, all that business with new and constructors. The Scheme/Lisp-inspired flexibility of JavaScript lets you bring The Lisp Curse down on yourself again, because there's nothing telling you how you must implement your constructors or factory methods. In Douglas Crockford's lovely book on how to program in JavaScript with style and panache, there are three or four different ways to build up objects. Add to that the one your JS framework of choice probably gives you. Then of course you know best, so you ignore that and define a sixth style for your project. It becomes a tarpit.

I'm no hater of any of these languages. I happily use them all. It's important to realize, however, that there's something to be said for languages that nail things like OO down in the language definition.

u/OrneryFellow · 2 pointsr/javascript

I started out with going through the book Javascript: The Good Parts. It's fairly straight to the point and goes over the parts of Javascript that differs from other classical OOP languages pretty well. As the book title suggests, it doesn't go over everything in Javascript, but only the practical parts. Great short read.

u/Neurotrace · 2 pointsr/readablecode

Regardless of if the code is contrived, it's still a possibility. I wasn't saying that I couldn't figure out if it was an if statement or an assignment. I was saying that I can more quickly parse one over the other if you end all of your statements with a semicolon.

I said I don't agree with much of his stuff but Crockford has written entire books on JavaScript so disagreeing with much of it still leaves a whole lot to be taken in to account. As I'm sure you've heard from others, I would highly suggest reading The Good Parts to see what he's all about. Perhaps saying "much" was a bit strong. Really I only disagree with his idea of placing all of your variables at the top of a given scope.

How can you say that code statements don't flow one after the other like sentences? The very notion of programming is that steps are executed "programatically" i.e. one after the other (we could argue about asynchronous code but the reality is that async code just adds a level of variability in the line of execution).

I find semicolon-free code less readable because, again, the moment I see a semicolon my brain automatically says "that's the end of the statement." For example: I might write some jQuery like this

$('#really-cool-thing').css('color', '#FFF')
.css('background-color', '#000')
.attr('value', 'Awesome');

Because I always end with a semicolon I automatically know that this is a chain and I don't even have to look at the beginning of the line to check if we're acting on a new object. Without semicolons, I have to scan back to the beginning of the line, check to make sure there's only a period, then continue to read. It adds more time and forces me to load just the tiniest bit more complexity into my head. Why should I "allocate" some of my mental memory to checking for where semicolons are going to be inserted when I can just insert them myself and never even think about it?

Most C based languages (i.e. most programming languages are semicolon terminated or, in the very least, semicolon separated. So if you program in any of these regularly then typing them in becomes second nature. I literally don't even notice when I type a semicolon anymore.

If you have a background in languages like Python then I can see the anti-semicolon sentiment because while Python allows semicolons, it isn't considered "pythonic." Likewise, I would make the argument that although semicolons can be left out in JavaScript, it isn't considered "JavaScriptic" to do so.

Do whatever suits you best but I don't understand the idea of having to keep track of more things, no matter how small, in your head rather than covering your ass. In the case of the bootstrap code that I linked you to, it can also cause issues in minification if you don't use a minifier that puts in your semicolons for you. Finally, it does make your application a little bit slower because the parser has to read in the line break, attempt to read in the next statement, determine if it can be considered part of the previous statement, and if not rewind back and shove a semicolon in. But if you place it in explicitly then the interpreter reads it, automatically understands the statement has ended, and goes about its business.

u/SoftwareEngineur · 2 pointsr/javascript

You're probably going to get a myriad of reactions to this question, but usually the consensus is usually JavaScript: The Good Parts

u/yoqu · 2 pointsr/javascript

>At first I searched for a good guide for an average programmer, I found the [1] MDN JS Guide which is good, but I think not very good: At first I wasn't sure what is part of the language itself and what is only available at the HTML-DOM (they use a lot alert-dialogs - JS hasn't a Standard Library like Python or Java, has it?).

They use a lot of alert because it's the easiest possibility to show something for starters, you can however of course use console.log, console.warn and error. For the HTML DOM thing, well c'mon - at least try that examples in your console, will you? Just press [F12] or google for how to open the JS console for your browser.


>Is there a "JS Bible"? I know there is the tutorial for python ([2] click me) and as well there is the book/bible/reference for C (from dennis ritchie) and C++ (from Stroustrup). Does something like that exists for JS?

JavaScript: The Good Parts by Douglas Crockford


>Second Question: For my purposes, it is worth to use a Framework like jQuery? I'm using it right now, but I think it's not a big deal to code everything without using an 3rd-party framework.

I like to be able to swim, before I learn to drive a boat - and you? :)
Anyways, that depends - if you do this for clients, use jQuery, it's tested, on multiple browser, sure it has bugs, and plug ins should be reviewed by you before being used. jQuery helps to code less though, and has plenty of beginner questions already answered - just use it.

> Last Question: Atm I'm using Django as webframework and i'm very happy with it. But it looks like Node.js got lots of attention in the last couple of month, is mature enough to use it for real world problems?

It's "mature" enough yeah, but use what you need - not what is all the rage right now.

u/noprompt · 2 pointsr/javascript

In addition to the others mentioned, these are also well worth your time:

Eloquent JavaScript

JavaScrip: The Good Parts (This one is essential)

As far as functional programming goes, google "functional programming in javascript." There are several articles on the subject and you'll learn some very useful and interesting techniques. Using a functional style in JavaScript can be extremely rewarding and not to mention a lot of fun!

u/zzgzzpop · 2 pointsr/javascript

If you're picking up JavaScript as a first language, it might be a bit difficult. It's used so often for the web that you'll most likely be required to learn at least some HTML and CSS as well. But, if you're not discouraged by this there's a lot of resources out there.

The one stop shop that'll give you everything is MDN (https://developer.mozilla.org/en-US/docs/Web). Which has pretty much everything you'll need about JavaScript (https://developer.mozilla.org/en-US/docs/Web/JavaScript).

If you don't know anything about HTML or CSS you might want to at least go through the introductions before jumping over to JavaScript:
https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML
https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS

As for programs to use, to start, all you really need is a text editor (I recommend https://code.visualstudio.com/) and a browser. If you're using Chrome press F12 and that should bring up the developer console and type:

console.log("It is " + Date());

Congrats you just wrote JavaScript.

Once you feel more comfortable you'll definitely want to pick up JavaScript: The Good Parts (https://www.amazon.com/dp/0596517742).

u/ABrownApple · 2 pointsr/learnjavascript

Have not read but heard others recomend:
https://github.com/getify/You-Dont-Know-JS

I personally like:
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Because it covers a lot in very few pages.

u/ryanplant-au · 2 pointsr/learnprogramming
u/owale2 · 2 pointsr/brisbane

Get this book and read it to get a decent understanding of JavaScript:
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

It's probably the best out there... It's rather small for a book on a programming language, but you'll learn all the bits you need to know.

u/ngly · 2 pointsr/web_design

JavaScript books I'd recommend:

JS Good Parts. Short read but interesting and important concepts covered.
http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

Professional JavaScript for Web Developers. Covers every detail of JavaScript in web development. Huge book with about 900 pages of information. This covers all the technical details from syntax to core concepts.
http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691

I haven't read the one you linked, but have seen it around. It's probably good.

u/w_t · 2 pointsr/gis

For JS in general, I like JavaScript the Good Parts

And you have tons of options depending on what web mapping framework you go with...you might want to check out Leaflet. The API docs are pretty good, but here's a book:
Leaflet.js Essentials

I really like the Manning books, http://manning.com/
There's books on a variety of topics, including PostGIS, MongoDB, Node, and D3 for visualization stuff.

u/gin_and_toxic · 2 pointsr/webdev

Some highly recommended books:

u/8wardialer5 · 2 pointsr/node

Not focused on Node.js, but the following helped me a lot:

u/jjnguy · 2 pointsr/learnjavascript

I'm not a big learn by book person, but this book really helped me understand JavaScript. http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/eibjj · 2 pointsr/web_design

It's hard to say how marketable your JavaScript is. Have you done anything with it? Could you solve simple algorithmic problems using JavaScript?


I would first have a look at the Underscore library. It has all kinds of goodies, and lots of other libraries either depend on it, or borrow from it. Here is a link to the annotated source code: http://underscorejs.org/docs/underscore.html

Require.js is another important one: http://requirejs.org/

If you want to contrast various JavaScript MV* frameworks (like Backbone), have a look at TodoMVC: http://todomvc.com/

The annotated source code for Backbone can be found here: http://backbonejs.org/docs/backbone.html

You need to read this: JavaScript: The Good Parts

In fact, anything by the author Douglas Crockford is worth reading/watching IMO: Crockford on JavaScript, https://www.youtube.com/watch?v=v2ifWcnQs6M

u/oilshell · 2 pointsr/ProgrammingLanguages

Have you looked at the dialect defined in JavaScript: The Good Parts?

https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

This book is old now, but if you want minimality, it's still good! He defines a subset of JavaScript, and I believe he writes a complete front end in this subset.

I guess you are not trying to be compatible with JS. But I would love to see someone implement a compatible subset. That is, all the "insane" behavior throws errors instead of silently continuing execution.

u/porlov · 2 pointsr/javascript

> But co-writing with a book takes up a lot more time than co-writing with video.

If by co-writing you mean writing the examples from the book/video and making them work, well I never do that. I always read technical programming books as fiction and never try the examples. Sometimes I just return to particular parts in the books for reference, but that's it. For the practical part I do my own things. I don't have time to retype the examples from the books, my life is too short. I got plenty of needs that imply writing software to solve my own personal practical problems. If I think about it long enough, I always come up with some really small project that's (at least theoretically) possible to be made by an almost complete language newbie.

I don't know how useful my personal experience would prove to you, but here you go. My JavaScript journey started when I was living in a cave with no internet access and a very old computer with such a small amount of RAM that it could only run Opera. I found three books about JS on some old CD and picked the basics from them. Having a bit of prior programming experience helped, but I wouldn't overestimate that influence.

Here are the books:

https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/

https://www.amazon.com/JavaScript-Enlightenment-Cody-Lindley-2013-01-10/dp/B01FEKKCSA/

https://www.amazon.com/JavaScript-Bible-Danny-Goodman/dp/0764531883/

I found the first one most interesting and useful, the last one was good to use as reference and replacement for the lacking access to online searches.

As you can see, all of them are quite old (and maybe outdated already, since the JS ecosystem moves ahead so fast).

I'm pretty sure there are tons of newer books nowadays.

Very recently I was suggested to have a look at http://javascript.info/ but I didn't manage to get some time to have a closer look at it, so I can't comment on the content there.

HTH

u/Gropamming · 2 pointsr/learnprogramming

Sorry for getting back to this so late, it's been a long week.

  1. You will need a good understanding of HTML/CSS, mostly how to manipulate and traverse the DOM tree. Luckily, this is very simple and straightforward once you figure out how the pieces fit together. On top of that, Javascript does a great job of hiding the need to actually write HTML or CSS markup, though you should still understand how it works. The better you understand the pieces of the puzzle, the more interesting and creative graphics and visualizations you can create!

  2. The graphics are very easy to show off, seeing as they live on the web :) There are a ton of ways to host graphics, either on your own website, or on one of the many free online platforms like Github and CodePen.

  3. As far as preserving interaction outside of the web, I do not have any knowledge of how to do that with Javascript (not to say that it doesn't exist).

  4. As far as resources, I highly recommend reading Javascript: The Good Parts to understand how the language is put together, why it was put together that way, and how to take advantage of its unique style. It is a pretty short read. As far as learning visualizations, I learned most of my fundamentals from taking courses on Lynda, and then used good old Stack Overflow to figure out how to create the specific things I wanted to do in my visualizations. Other good sources for video tutorials are Pluralsight and sometimes Youtube.

  5. YES! That is the beautiful part of creating visualizations on the web, you can power them with any web technology. Most of my visualizations retrieve data from some web API and use that to build graphics or show an interactive dashboard, meaning they look different every time I load them up. This gives you a ton of freedom and flexibility to create graphics that are both pretty AND useful. It's very common to hook them up to databases to query and display data.

  6. As far as IDE's, I absolutely love Visual Studio Code if you have a Mac. It is VERY different from regular Visual Studio and has some great features like a built in terminal window, built in git support, a very lightweight directory structure, and a good community for 3rd party add-ons. It was built with Javascript in mind but I now use it for C++ and Python as well. If you run a windows, I use Sublime Text 2 which has many of the same features. If you want something with a bit more out of the box, Atom is a good IDE that lets you view your site as you build it and also deploys a small web server which is useful if you are not running your own.
u/whobutsb · 2 pointsr/javascript

Get your hands on Douglas Crockford's book "Javascript the Good Parts" (http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742).
That will help you get started with the language.

Here is a talk he did at Google:
http://www.youtube.com/watch?v=hQVTIJBZook

If your looking for some neat boundary pushing javascript check out the site: http://badassjs.com/

u/iDontDoMeth · 2 pointsr/learnprogramming

Jon Duckett, who wrote the HTML & CSS book you bought (which is the best in my opinion) also just released his JavaScript book, which I am excited to read. Once you get a grasp on it, I would read JavaScript The Good Parts, by Douglas Crockford, who works for ECMA and helped write the language.

u/SofaAssassin · 2 pointsr/cscareerquestions

If you're just getting into CS and programming at all, and you're interested in Javascript, I'd recommend learning Javascript itself first, before you decide to start using libraries and frameworks that may do a lot of special stuff and magic that will abstract away parts of the language from you. There are plenty of resources like Mozilla's tutorial and the relatively short Javascript: The Good Parts that you can learn from. Do CS-related exercises with what you learn. You can go to sites like Coursera/edX and do intro CS material and do the assignments/problems in the curricula, or do things like Project Euler or things from /r/dailyprogrammer.

After that I'd start looking at more of the stuff out there, like Node.js or React or Ember or whatever. I'm rather partial to React.js and RActive myself for front-end rendering, but I'd encourage you to read and experiment with many of the things out there, since each thing brings something different to the table.


---

Now for your question specifically...

I'm not much of a front-end person or Javascript developer, so I'm probably not the best person to ask. I last used jquery about 5 years ago, and at one point I also worked in the same company with some of the people who wrote You Might Not Need jquery. These days, I'd say to skip jquery for various reasons:

  • Modern browsers are just much better and if you don't have to support old browsers (I'm talking IE8 or older), jquery is probably unnecessary.
  • There are replacements for certain parts of jquery functionality, depending on what that functionality is
  • ES5/ES6 (through babeljs) can replace some of the functionality that jquery handled
  • React.js and more full-fledged frameworks exist - React.js and frameworks like Ember.js or AngularJS, which have components that manipulate the DOM, have become very popular and are basically jquery replacements.

u/creegs · 2 pointsr/cscareerquestions

There's good advice here. Did you master JavaScript on the way to CoffeeScript? If not, pick up Crockford's Javascript: The Good Parts - actually, either way, read that book if you haven't already.

If you know JS well, you should do a couple of side-projects in Meteor. It's an interesting framework that embraces "Reactive Programming".

Here's a few other things:

  • Node.JS
  • MongoDB
  • Redis
  • Memcache
  • Ruby (if you like CoffeeScript, this shouldn't be a massive leap)
  • jQuery/Backbone or Angular/SASS/Susy/Yeoman (if you want to do front-end stuff)

    Good luck!
u/YuleTideCamel · 2 pointsr/learnprogramming

Honestly I don't think there is a need for this since there are a few excellent javascript books. But they are hide to find among the many many crappy books out there.

JavaScript: The Good Parts is pretty much the most important Javascript out there. It basically shows all the quirks of the language and gives tips on what to avoid and best practices.

JavaScript Patterns continues and goes into more depth and covers more advanced usage.

High Performance JavaScript goes into great depths on how you can make your js code more efficient and fast.

u/drgath · 2 pointsr/webdev

If you want to stand out, learn how to program JavaScript without the use of jQuery. Learn about cross-browser DOM scripting, browser performance, security, and JS fundamentals (prototypes, closures, etc...). Some good books to get started are Pro JavaScript Techniques and JavaScript: The Good Parts

u/Neres28 · 2 pointsr/learnprogramming

He can be a little ranty, but I like JavaScript: The Good Parts

I warn you that JS isn't a "real" OO language though there are a number of fairly good libraries that attempt to make it more so, Prototype coming to mind. Have a look at Douglas Crockford's module pattern as a more JS-ee way of doing it.

u/rooktakesqueen · 2 pointsr/programming

Are you a beginner to programming, or have you been programming for a while in other languages and are just getting started with JS?

If you're a beginner to programming altogether, this is a good resource, but I'd also recommend some dead-tree books. I've heard good things about Javascript: The Good Parts, though I've never read it myself.

Edit: One thing to be careful of when you're just getting started, by the way: try not to focus too much on any single language and its features. You want a good solid base of fundamentals, you don't want to hyper-specialize from the start. Don't just learn Javascript, for example. Try Java and Clojure and C and Haskell too, and any other language you can get your hands on. They all have their own idioms and lend to certain styles of problem solving, it's good to be able to figure out which one is best for the task you're facing.

If you've done some coding before, and are branching out into JS as a new language, there's no better way than reading about it and then trying it out on your own. JSFiddle is a great resource for just playing around. You could try implementing solutions to Project Euler puzzles in JS. Or you could pick a pet project you want to work on that has some client-side behavior and implement it in HTML5/JS. Or server-side behavior and do it in node.js. Or you can find an open-source project using JS that you're interested in, and get involved there.

Edit: Also, Stack Overflow has dozens of JS-related questions answered every hour. Sometimes those answers come attached to a lot of useful information. Try browsing there, and if you have questions, ask them. It's a great resource.

u/jesstelford · 2 pointsr/dogecoin

Javascript has it's bad parts. But, once you look past those and see The Good Parts... https://i.imgur.com/sg017lt.gif

u/nawitus · 2 pointsr/Libertarian

Yes, PHP-like language would be worse. Most critique of JavaScript is stated without knowing the language much. I recommend reading this.

u/dhcole · 2 pointsr/IAmA

There are lots of ebooks and free websites, but mostly it's just practice. Once I got to a moderate level, I found this book to be very helpful: http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/lainproliant · 2 pointsr/Python

I had a great deal of luck with the book "Javascript: The Good Parts". It's a quick read and is aimed at people who are not new to programming.

O'Reilly Publishing: http://shop.oreilly.com/product/9780596517748.do

Amazon: https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/mrskitch · 2 pointsr/javascript

JavaScript is no longer considered a "toy language" and is become much more relevant and demanded due to server platforms that run it (node.js being the biggie).

You should really familiarize yourself with what's happening in the JS scene. To start, take a look at:

  • Bower
  • Grunt
  • Nodejs obviously

    If you're gearing towards UI:

  • Angular
  • Backbone
  • Ember

    Also, read:

  • Eloquent JavaScript
  • The Good Parts
  • Functional JavaScript

    I was never a Java developer, but was a PHP developer back in the day. Things like NPM and Node (for building, or writing back-ends) have made my life a hell of a lot easier and less "hackier". You can primarily concern yourself with just integration/work code instead of busy stuff, like copying crap over or adding another lib to your VCS system. Just add it as a dependency and you're off and going.

    That being said, JavaScript is really hard to get good at. There is no "standard" way of doing anything, and everything has it's benefits and drawbacks. You need to know which is better and why, and when to break the rules. It's quirks can be tool for powerful code, but you need to know why it is that way.

    If you think I'm joking, take a look at this rant.
u/brentonbrenton · 1 pointr/learnprogramming

> Javascript : The good parts.

This book is a great reference. Here's a link.

u/PhishGreenLantern · 1 pointr/javascript

A quick google search will turn up a PDF of it. I'm almost certain that it's a legit, free copy, but I'm not positive. You can get a used, physical copy for $9:

https://www.amazon.com/gp/offer-listing/0596517742/ref=dp_olp_used?ie=UTF8&condition=used

u/cuchoi · 1 pointr/web_design

Read "Javascript: The good part". Short and great book, all you need to know about JS. http://www.amazon.com/gp/product/0596517742/

u/pierotofy · 1 pointr/gis

To start, this line:

if radioanswer == qanswer{

Is not valid JS. You need to put parenthesis:

if (radioanswer == qanswer){

Then radioanswer should be assigned within the function block, not outside of it. Otherwise it will always have the same value.

Please, please do not try to improvise Javascript (even if you are not a developer by profession). You will fall into the many confusing pitfalls of the language. Find some time to read (at a minimum) https://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/ref=pd_bxgy_14_img_2?_encoding=UTF8&pd_rd_i=0596805527&pd_rd_r=5DC6HMEAZ6MCTJY2YYQQ&pd_rd_w=JasEw&pd_rd_wg=wBgln&psc=1&refRID=5DC6HMEAZ6MCTJY2YYQQ and https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?ie=UTF8&qid=1525662051&sr=8-1&keywords=javascript+the+good+parts

It will save you countless hours of troubleshooting.

u/nikoskatsos101 · 1 pointr/javascript

Start here https://github.com/getify/You-Dont-Know-JS/ , but don't forget to check https://www.amazon.com/_/dp/0596517742?tag=oreilly20-20

The first one will help you to get started and the second one will help you to build a strong base on what's happening and why.

u/sleepybychoice · 1 pointr/learnprogramming

Note: I haven't actually read either of these, but they do have good reviews on Amazon. :-)

u/SoBoredAtWork · 1 pointr/learnprogramming

If you're looking for best practices, check out "The Right Way" series of sites:

http://htmlcsstherightway.org/

http://jstherightway.com/

http://www.phptherightway.com/

For a JS best practices book, check out Javascript: The Good Parts

For interactive online tutorials, Code Acadamy is pretty cool and there are others like it.

And here's an advanced guide to HTML & CSS to learn more in-depth best practices.

Tip: stay away from W3Schools! There's a lot of bad info on the site.

edit(s): I didn't grammar correctly.

u/CharityBot_ · 1 pointr/test

Help charities by using this Amazon link:

Link 1: Supports The AbleGamers Foundation


=====
This comment was posted by CharityBot, a Reddit bot that helps raise money for charity. Learn how CharityBot works

u/piglet24 · 1 pointr/webdev

JavaScript: The Good Parts is one of if not the best JavaScript book money can buy. If you have a C background you should pick it up quickly - in the first couple pages it will help you set up a simple HTML page to help test some simple js on, and then get's into more serious stuff.

After that it really depends on what your objective is with web development. If you want to get into business, finance, etc. you should start looking into C#, Java, or maybe Ruby.

I know lots of people swear by SciPy which might appeal to the physics student in you.

u/ScopeChain · 1 pointr/javascript

no problem, i strongly recommend that your read javascript the good parts by Douglas Crockford who is considered the god of javascript, it's a short read which will clear a lot of confusion and teach you what a powerful and nice language js is

u/jbacon · 1 pointr/webdev

Well, you could obviously pay someone to create it for you. If Wordpress or other off the shelf CMS software doesn't cut it, then you're likely rolling your own solution.

I would recommend learning. Here's how to do it:

  • Get a good development environment. I love Webstorm for general web work - great code completion, and makes a lot of things easy. For Rails, I would recommend RubyMine. Those guys at JetBrains make some really kickass software, let me tell you.

  • Learn the basics of web development, and the roles of each technology involved. Use HTML to create templates for your pages, use your server-side backend to accept and provide content, use CSS to make it pretty, and JavaScript to make it dynamic.

  • Understand the difference between and limitations of client-side and server-side code, and use each appropriately.

  • Learn the tools. Pick a real technology stack and learn it, whether that be Ruby on Rails, LAMP, whatever you like. Doesn't matter - this is all about learning. Using jQuery will make your JavaScript life much easier, and try out SASS if you're feeling frisky.

  • Don't expect a good-looking, reliable site on your first try - it's going to take a lot of effort.

    GET BOOKS. Books are the best programming resources around, believe it or not:

  • The Pragmatic Programmer - The de facto programming best practices guide.
  • Javascript, the Good Parts - How to JavaScript, by JS guru Douglas Crockford. Not really a beginner book, but a great reference once you get a handle on JS.
  • Ruby on Rails 3 - Learn Rails by Example - This looked like a really nice beginner level intro to general web development and Rails.
u/honestlytrying · 1 pointr/golang

Yeah and it's probably not fair of me to dismiss JS before reading about The Good Parts. That said I just looked at TypeScript again. Looks interesting and has some IDE support. I'll keep it in mind next time JS makes me want to drink a Gin & Clorox just to make the hurting stop.

u/ryosen · 1 pointr/jquery

Depends on what you want to do with jQuery. If you are simply interested in the toolkit as an extension of JavaScript, the JQuery Cookbook or jQuery in Action are both fine. If you want to know the finer aspects of jQueryUI and how to customize it, then you'll want a book that focuses on that. If, however, you are interested in writing plugins, then I would suggest adding JavaScript: The Good Parts to the list.

u/mmmmm_pancakes · 1 pointr/ProgrammerHumor

You should be careful about ragging on JS - while it's sometimes fun, the loudest JS-haters are universally just ignorant or unskilled devs. Which, of course, are very common in webdev...

I'd recommend Crockford's Javascript: The Good Parts if you'd be interested in a more positive perspective.

u/Danielbaniel · 1 pointr/IWantToLearn

Best way to do it is to learn by doing. Bury yourself in a personal project and use Google as your best friend. I'm unsure of what type of code you are looking to write but if you are leaning towards Front End development and would rather read a book first, Javascript: The Good Parts was a good read.

u/Ob101010 · 1 pointr/learnjavascript

And if you look at the comments attached to that same thread youd see :

> "Good coding practice" should never be sufficient reason in itself. It amounts to "some guys on the internet said this is how my code should look".

And if you bothered to actually read Crockfords notes on this matter :

> All variables should be declared before used. JavaScript does not require this, but doing so makes the program easier to read and makes it easier to detect undeclared variables that may become implied globals. Implied global variables should never be used. Use of global variables should be minimized.

> The var statement should be the first statement in the function body.

> It is preferred that each variable be given its own line and comment. They should be listed in alphabetical order if possible.

Source : http://javascript.crockford.com/code.html#variable%20declarations

Youll see that he never says 'always using var is good coding practice'. He says to declare them before use (and I suggest giving them a value too), but nothing about requiring var or var being part of good practices. And why is this? Because traversing up the scope chain (or not) is a feature of the language, and not a bad one if you bother to watch his video or read his book.

Crockfords video (should be required watching for all javascript devs) His video : https://www.youtube.com/watch?v=hQVTIJBZook

And his book, Javascript the good parts

u/SharkyMarksworth · 1 pointr/web_design

I can code HTML5 and CSS3 pretty well, honestly it's really easy for me now. - Once you get the hang of them look at a couple of frameworks - I have used Bootstrap and Skeleton and putting them on a resume is an easy +1.

The biggest thing that has helped with Javascript for me is game development, it's really fun and you have to have a decent understanding of javascript to make a playable game, it also gives you an opportunity to work on a bigger project. (thousands of lines of code) So you can get a better idea of how the overall layout mechanics of Javascript work. - So I would recommend making some simple games using just HTML5 canvas and vanilla Javascript with no libraries.

Books I would Recommend --


  1. http://www.amazon.co.uk/HTML-CSS-Design-Build-Sites/dp/1118008189

  2. http://www.amazon.co.uk/JavaScript-JQuery-Interactive-Front-end-Development/dp/1118531647


  3. http://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

    Youtube Channels

  4. learn.codeAcademy - for Jquery, Modern tools professionals use
  5. PHPacademy - for PHP, and some other stuff
  6. DevTips
  7. Jesse Warden - ( this guy has a GREAT javascript series, I would start with that for Javascript)

u/w4nderlusty · 1 pointr/TrollXChromosomes

Some more learning tools:

  • Tuts+ has a number of great coding video tutorials, many of them free. Definitely worth a look.

  • If you like the code-as-you-go kind, check out Code School. It's $30us a month but the courses are more in depth than codecademy.

  • Book wise, Eloquent JavaScript is a good place to start (and its a free download!).

  • Id also recommend JavaScript Enlightenment for advanced beginners, and JavaScript the Good Parts for those with a bit more experience.

  • Another good beginner book is JavaScript & jQuery by Jon Duckett, it's got a great design and is much more illustrative than traditional books.

    edited to add links; formatting
u/jdauriemma · 1 pointr/learnjavascript
  1. Depending on the app you're building, certain libraries and frameworks will help you keep your code cleaner and your business logic more apparent.

  2. Useful and good are not the same. PHP is not good, but useful. jQuery is good and useful, and is a dependency of many libraries and frameworks. A foundational knowledge of jQuery is a must for web developers, IMO.

  3. You're talking a lot about what you're reading, but what are you writing? I'd say keep the books you have, learn git, start making projects that interest you, and put them on github. That said, this: http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 is a good book once you have an understanding of JS basics.

  4. Talk to developers. There's a lot of BS out there on blogs and social media from self-promoters and content aggregators. Go to meetups in your area and learn from the people doing what you want to do.
u/Rounddacorner · 1 pointr/webdev

Have you tried any books? Or are you more of a visual learner. I read this book and really helped me understand js patterns better. I first learned programmer in php, and now doing some javascript ( node.js ) with the express framework.

u/achen2345 · 1 pointr/javascript

Personally, I find I learn best from books but only for two narrow facets: theory and reference.

The books everybody recommends are:

  • Eloquent JavaScript - http://eloquentjavascript.net/
  • JavaScript: The Good Parts - https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

    That first one can be read online.

    Once you get past the how do I write code basic literacy stuff and really want to step up into architecture you might want to get a little bit of Lisp and Scheme. The fundamental concept to learn in this language is scope. In my experience computer science grads tend to learn things like C++ and Java or C# and work really hard to get really good at OOP. Those techniques of inheritance aren't quite so helpful in this language if you never learn this language's scope model. If you fall in love with the scope model you might find you don't need the OOP/inheritance stuff.

    When you are ready to interact with the web here is a quick guide I wrote to teach DOM access: http://prettydiff.com/guide/unrelated_dom.xhtml Could you let me know where this guide fails you so that I can improve it for other people?
u/N8Programs · 1 pointr/learnjavascript

Things have changed a lot! A good summary would be:

Front-End Frameworks: Robust libraries that make developing good-looking UIs easier and make your code more scalable. (ex: Vue, React)

No More Frames: Only the <iframe> tag remains. The use of frames is discouraged, and CSS flexbox (a responsive style that makes your site work for desktop and mobile if used correctly) is used.

Fancy New Paradigms: It is no longer encouraged to program javascript in traditional OOP styles with classes + inheritance. Instead, a paradigm called Functional Programming is encouraged. Functional Programming drifts away from classes and inheritance, and towards functions, and specifically, higher order functions. In addition, creating mutable variables in excess has fallen out of favor.

So, while a lot has changed, if you know Java 8, are familiar with Lambda Expressions + Closure, and ready to devote some time to JavaScript and the frontend, you'll be making near-professional to professional looking websites in around 6 months (at least, that is my experience). And even if you aren't, JavaScript isn't hard to learn. I would recommend the following books + websites:

MDN - Good JavaScript Resource + Tons of documentation. https://developer.mozilla.org/en-US/

Javascript: The Good Parts - https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 (Bit outdated)

How Javascript Works - https://howjavascriptworks.com/ (Recent)

Javascript: The Definitive Guide - https://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527 (Bit outdated)

u/justhamade · 1 pointr/learnprogramming

>But since JS is more optimized for client side execution and just being more popular for this...

Javascript is the ONLY language the is natively supported in all browsers. If you want to use an other language in the browser you will need to transpile it into javascript. Even if you did you a transpile like PyJS you would still need to understand how browsers work, the DOM and Browser Events.

Javascript, unfortunately, is a growing language, and is not the most popular language based on the stack overflow surveys. https://insights.stackoverflow.com/survey/2017#technology

One of the reasons that I think it has become so popular is that you can very quickly make something very powerful. The downside to JS IMO is that the language and community are still quite immature and it is evolving very fast.

One of the highest regarded JS book https://www.amazon.ca/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

So to answer your question, if you want to do web development knowing some javascript is a requirement, and you should learn it.

u/zokker13 · 1 pointr/node

I don't think there are any good books out there that are bound to node. There seem to be a few JS books worth noting but the only one I ever read was Javascript: The good Parts. It's a fine read but pure JS.

If you want to dig into nodejs just search for talk on youtube and begin to lurk in this sub. Sometimes you find great talks/reads that you'll adapt rather quickly.

The problem is that any book written will be outdated extremely fast.

u/eddyvanhelgen · 1 pointr/javascript

Books that helped me to get the hang of JS

John Resig's Secrets of the JavaScript Ninja and Douglas Crockford's JavaScript: The Good Parts are pretty much the only ones worth reading in my opinion.

Projects

The best thing would be to build something you want to use yourself. Maybe you try cordova and build a small app with the browser platform so that you can create a simple App that you can bring to your Smartphone.

More advise

Read a lot of code: TODO MVC is a good place to start, people try to write good code for this one because they want you to use their framework :-). The problem with the source code of many projects is that the JS ecosystem is in a constant flux and ES6 modules are skyrocketing right now. You may want to check out the jQuery source code - you can pretty much watch the evolution by looking at older versions of the source code and how it evolved.

If you feel really adventurous the NodeJS source code is a fun read - although it's a very big project that also got some C/C++ code sprinkled in - but that shouldn't be a problem for you :-).

I would advise you not to bother reading the Angular1 code for the time being, Angular2 maybe interesting but its written in Microsoft's TypeScript - which is a nice language on top of JS that is worth learning about.

u/molebert99 · 1 pointr/Frontend

Learn pure JavaScript. It will not only help when learning new frameworks but will also help you to realise that frameworks are not always necessary and by understanding them better, will not rely on them as a crutch.

From my perspective, these two books helped me "level up" from jQuery to full-blown JS developer:
https://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
https://www.amazon.co.uk/Learning-JavaScript-Design-Patterns-Osmani/dp/1449331815

I am also a member of Udemy, which has a great selection of courses to work through.

Once you understand JavaScript without frameworks, just pick up a framework and start playing with it. Do the tutorials or pick your own goal/application to build with it. I find I learn more than doing something rather than simply reading about it.

u/spencercooley · 1 pointr/javascript

I am self taught and I have to say that the best way to learn is to have a very clear idea of a simple project that you can realistically complete. I learned javascript with "JavaScript: the good parts", and I built a page with a deck of cards that shuffled when you press a button. I still have it on github https://github.com/SpencerCooley/poker_project.

Both books you mentioned are probably good, but the real learning happens when you are trying to accomplish a specific goal and get stuck on something.

"Javascript the Good Parts" is definitely good, very light and to the point.
http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/kson34 · 1 pointr/PHP

For PHP I would definately recommend PHP 5 Objects, Patterns and Practice. Pro PHP Refactoring is also pretty good. And the latest book on PHP Security is good too.

For javascript I would start with the Good Parts, go to Javascript Enlightenment and read what is available in EAP for Secrets of the Javascript Ninjas because although the book may never actually be finished what is there is worth 30 average javascript books.

u/namklabs · 1 pointr/Web_Development

The jQuery documentation is very, very helpful. Every piece of jQuery has example code and a user comment section to provide extra insight. Don't be afraid to check it out, even if you are an absolute beginner. I actually "learned" how to use jQuery before I learned how plain JavaScript works, so it makes for a good introduction to the language because of how easy it is to use. If you learn by doing, then it's a great place to start.

However, you must have a full understanding of JavaScript to get the most out of jQuery in the long run, so you should definitely look into learning JavaScript without jQuery when you are comfortable enough to do so.

I would recommend the text I used in college for learning JavaScript, but I've since learned that it has a 2-star rating on amazon.com and it is still very expensive. It did a good job of teaching a practical application of JavaScript for beginners, but it has a lot of typos that may trip you up if you do the practice examples, and for the price it really should be perfect. If you can find it for cheap, pick it up.

A cheaper alternative that I have not read is JavaScript Step by Step by Steve Suehring. Much cheaper than a college text and highly recommended. An introduction to getting a grasp on JavaScript is most definitely worth more than the 25 bucks you'll spend.

When you start to feel like you could do some damage (in a good way) with JavaScript, you should definitely check out JavaScript: The Good Parts. It will shed a whole new light on JavaScript and help you realize both how powerful and strange the language is. I don't know if your job duties or passion for programming would lead you this deep into JavaScript, but if your goal is enhancing your career, JavaScript is most definitely the next step in the world of web.

When people ask me what JavaScript is to a web developer, I tell them this: HTML makes up the bones of a website. CSS is the skin. JavaScript is the muscles that makes your website live and breathe. Learning it is essential!

Best of luck!

u/g1i1ch · 1 pointr/explainlikeimfive

I'm going to go against the grain here with my recommendation. I'm a guy who was in a similar position years ago. I've since transitioned from web development to game programming and have working knowledge of 7+ languages.

Dude, don't sweat these feelings you're having. You're just at a wall. We all reach different kinds of walls in this career and they're really the best thing ever. It means you're about to jump ahead in skill by at least 10x. You just got to find the trigger for it. Be patient and try different things. Go check out Udacity and do some courses on there. Also this is the time to start reading books. Not just any cheap book you find. Good books that will give you the perspective of an industry professional. Books like JavaScript: The Good Parts, Code Complete, The Pragmatic Programmer, or The Little Schemer. Also it doesn't matter what language the books are in to enjoy it. 98% of all programming languages are the same anyways, which you'll soon learn. For the most part, they just have moderately different ways and syntax to do the same thing.

I would recommend not switching platforms from the web. One of the most important skills guys like us can have is seeing where technology is heading and betting on the right horse. It's very clear that webapps are going to be even more important in the future. You can already make desktop apps with web technology naively in pretty much all major OSs now.

I say learn JavaScript front and back. Read JavaScript: The Good Parts and JavaScript: The Definitive Guide cover to cover. Once you learn JavaScript it'll be very easy to transition to any C-based language, which is most of them. In fact I credit JavasScript for giving me the basics to jump to just about any language comfortably and pick it up in a few weeks.

After that, learn a good server side language like Java, Python, or C#. (C# is in very high demand, and has many applications) Or learn all three and you'll be very well positioned career wise. Well, make sure to get some experience with SQL too for good measure.

Also if you want to have a good challenge instead of being bored on those easy things, like drawing shapes, why don't you try Udacity's fine WebGL course? Jumping in the deep end isn't bad as long as you don't expect it to be easy.

u/mobcat40 · 1 pointr/PHP

Sure, though I've also read people in your position are better at building apps with JS if they're new to it because things like PHP are completely different in how you start growing an app (classical vs prototypal inheritance) not to mention that if you also do PHP instead of just straight JS you're getting used to and learning 2 languages that are completely different in how you code. In either case you're right you have to learn JS anyway, here are the best resources after codeacademy basics stuff:

JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides):

http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/

JavaScript: The Good Parts:

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/

Programming JavaScript Applications: Robust Web Architecture with Node, HTML5, and Modern JS Libraries:

http://www.amazon.com/Programming-JavaScript-Applications-Architecture-Libraries/dp/1491950293/

A cool talk from last year of the Fluent conference (and the author of that last book) explaining how different something like PHP and JavaScript are and why JS doesn't deserve the bad rap it used to get (He's a pretty cool guy from Adobe and I got to talk to him last week about all of these things we're talking about right now and where web development is heading, and why JS as a single language for the web can work even better):

http://www.youtube.com/watch?v=lKCCZTUx0sI

This was a really cool overview on JS today, and you get to see Unreal Tournament and the Unreal 4 engine run in a web browser:

http://www.youtube.com/watch?v=aZqhRICne_M

u/rjcarr · 1 pointr/learnprogramming

I'd just teach from the book JavaScript: The Good Parts. It's a bit old but is still pretty good. I don't like some of the things about it but you could just take out the parts you don't like.

Here's a direct link to the book:

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

u/dkbot · 1 pointr/webdev

I found that this book was great for improving my knowledge of JavaScript to really jump to the next level in my JS expertise:
https://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

I found that after a few years my JS knowledge was still quite limited and it took me reading this book to really understand how little I knew.

It's very easy to fall into the jQuery trap as you have highlighted as well. I use jQuery in my workplace as I have no choice, but I find using things like OOP as well can really help when you start building larger scale applications.

My main advice would be to improve your knowledge on core JS and CSS and avoid being sucked into libraries / frameworks / toolsets, they will come and go whereas JS / CSS will always be around. Many developers burn through time just learning things like bower, webpack, sass, jasmine, react, react-flux etc etc. I tend to stay away from trends and learn only what's popular on the job market. I always find that if you understand JS / CSS, you often can pickup any other framework built on top of it. I also burned a lot of time learning Angular 1.x which I never ended up using (except for side projects), with Angular 2.0 coming out it made me realise I need to be very careful when investing time into something which might not exist a year from now, or at least not have a demand on the job market for.

u/yooman · 1 pointr/AskComputerScience

Specific questions will be more helpful, but some general good places to start for javascript:



A Javascript Primer for Meteor - https://www.discovermeteor.com/blog/javascript-for-meteor/

This is my favorite introductory document on Javascript as a language, even though it's geared toward building apps with the Meteor framework it applies mostly to the language itself and is a good read even if you don't plan to use Meteor.

Javascript: The Good Parts by Douglas Crockford - https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

Very good and to-the-point book by one of the best JS experts out there.

u/jcc333 · 0 pointsr/learnprogramming

Javascript is a hopeless morass of kludgey code masquerading as a working language, but here's a shot: read Javascript: the Good Parts by Douglas Crockford. Also note the following:

  • Javascript has first class functions, unlike java.
  • Javascript has prototypal inheritance, which will throw you for a heinous loop if you're enamored of classical inheritance.
  • Javascript arrays aren't arrays, they're dictionaries.
  • Any object in javascript is a dictionary with some additional sugar.
  • NEVER use the 'with' key word. It's ill-defined and has multiple possible valid interpretations.
  • Javascript has no linker, and as such has one global namespace, so it's a good idea to wrap the code in your files in js objects to fake modularity.
u/chateau86 · 0 pointsr/gatech

But CS1371 touched exactly none of these things. They should just fork all that into a new class. Maybe call it Matlab: The good parts or something.

u/jsprogrammer · -1 pointsr/programming

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

As long as you stick to the good parts Javascript is a pretty nice language that supports both functional and OO styles.

Once you use things that aren't the "good parts" then you are going to run into trouble.

u/terrapinbear · -2 pointsr/programming

Please don't ever separate the word javascript again. Javascript is not script-able Java. And why link a book to a youtube video? Why not Amazon? Or O'Reilly? Or even the author's web site?

u/sasquatch_tech · -2 pointsr/learnprogramming

Javascript is a "bad" language in that it has a lot of issues. https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742 is a thin book, and rightly so. That said, you should focus on learning Javascript and not Python. Javascript is primarily used in the browser, but you can build an entire application stack with it if you user Node.JS. I'm primarily a Java guy, but Javascript is the way I'd go starting out and trying to become a web developer. If you wanted a secondary language I would definitely learn Java, not Python. Straddling the realm of strongly, statically typed languages (Java) and weakly, dynamically typed languages (Javascript) gives you a broad range of understanding. Also Javascript tends to be much more functional in nature than Java which tends to be more imperative (though that is changing).

u/Mob_Of_One · -4 pointsr/javascript

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742

This book will save you MANY hours of pain.

JavaScript is not OO.

Good JavaScript is not imperative.

Good code period doesn't rely on mutating globals.

u/rodion_89 · -5 pointsr/javascript

Don't listen to jakelear, w3schools is an excellent resource for beginners.

That said, once you are on your feet and getting deeper into JavaScript check out these books. They are wonderfully useful and informative.

http://www.amazon.com/gp/product/0596517742
http://www.amazon.com/gp/product/0596805527
http://www.amazon.com/gp/product/193398869X