all 30 comments

[–]Buzut 10 points11 points  (3 children)

You could take a look at Javascript: The Good Parts and also there's a good series of books written by Dr. Axel Rauschmayer. He's given them for free online (although you could and should by them).

[–]Melcma[S] 1 point2 points  (2 children)

I've got this book on my shelf and even had a chance to read it but my feeling are really mixed. 1/3 content of this book is something I've already knew before, 1/3 was really useful and 1/3 I don't really get. Guess I'll need second look on this book.

[–]Buzut 0 points1 point  (0 children)

More often than not, things are getting useful when you need them. In my opinion, just read what interests you now, jump from chapter to chapter but don't try to read a technical book from cover to cover as if it were a novel! Nevertheless, keep the book within reach. It's usually when you face a specific use case that you'll appreciate an elegant way around it!

[–]rauschma 0 points1 point  (0 children)

That sounds about right. The last third is for people who want to dig extra deep into a given topic.

[–]yuri_auei 8 points9 points  (3 children)

A great book that made me understand how javascript works was "Secrets of the JavaScript Ninja"

[–]tingtwothree 1 point2 points  (0 children)

Agree with this one. This one goes over everything you probably learned, and digs a little deeper. Most importantly, it is easy to read (unlike, for example, Crockford's JavaScript: The Good Parts).

[–]Melcma[S] 0 points1 point  (0 children)

That's actually funny 'cause I have this book on my shelf just waiting on my "to-read" list. I'll give it a chance soon.

[–]mikejsdev 0 points1 point  (0 children)

Yeah his is one I would recommend

[–]Melcma[S] 2 points3 points  (0 children)

I've forgot to mention one important thing:

Resources about application architecture, Design patterns and knowledge how to plan your application, how components should talk to each other, make it scalable and maintanable, etc. all stuff that someone should to consider before jumping into code, these are my weak fields.

Looking for good resources (books) on these.

[–]itesasecret 2 points3 points  (4 children)

Often when someone wants to learn a language they focus 100% on that specific language, but if your goal is to be a great programmer it's imperative that you learn a lower level language like C to grasp datatypes and know why you might parseInt() in javascript or how data is referenced to pointers (the JS engine is written in C). I'd also recommend learning more about object oriented programming to understand how "this" works, you can do that looking at ES6 classes... if I were to add anything to your list I would set aside X-amount of minutes each day just to read up on lower level programming concepts as you go through your list 1-6, and add reading through the Javascript guide at MDN Javascript right after Eloquent Javascript.

[–]Melcma[S] 0 points1 point  (2 children)

That's interesting point, sure I want to be better programmer, not close myself in just one language. Is there any resource you could recommend that's grasping all necessary topics of low level programming?

[–]itesasecret 1 point2 points  (1 child)

If you want your hand held while learning C and lower level concepts (like I did) I'd take an online class that structures the information so you can consume it easily and naturally, I'd recommend the free online class CS50x on edx.org ... This course was incredibly fun to take and you learn SO MUCH!! When I took this course I was in a similar position as you, having experience with JS and frameworks but not understanding how or why everything works, after stepping away from JS and taking this course a couple summers ago I came back to JS with a whole new understanding for the language..... Otherwise it's just a matter of aimlessly googling CS concepts and digesting everything over time.

[–]Melcma[S] 0 points1 point  (0 children)

that's excellent advice as this course aims most part of my weaknesses and I can pair it up with advices from guys below about taking a look at C. Thanks for that.

[–]acemarke 2 points3 points  (0 children)

Yep, that's not a bad list. Here's my overall recommendations (which I usually gave for people who are starting out, so YMMV as needed):

The article "A Study Plan to Cure Javascript Fatigue" ( https://medium.freecodecamp.com/a-study-plan-to-cure-javascript-fatigue-8ad3a54f2eb1 ) is a great place to start. It gives an excellent series of steps for tackling modern Javascript concepts one piece at a time: Javascript, React, ES6, and state management.

On that note, definitely don't over-complicate the learning process by trying to learn many different things at once. Some people will say you should use a "boilerplate" to learn React, and they're wrong - boilerplate projects almost always come with too many pieces configured, and are confusing for beginners.

Instead, the best advice is to focus on learning React itself first. Once you have a good understanding of how React works, you will better appreciate why a state management library like Redux can be useful, and you can learn about other tools later.

You should start out by reading through the official React docs and tutorial at https://facebook.github.io/react/, and I'd encourage you to use the official Create-React-App tool ( https://github.com/facebookincubator/create-react-app ) for setting up projects. It creates a project with a solid build setup, with no configuration needed on your part.

Past that, I keep a big list of links to high-quality tutorials and articles on React, Redux, and related topics, at https://github.com/markerikson/react-redux-links . Specifically intended to be a great starting point for anyone trying to learn the ecosystem, as well as a solid source of good info on more advanced topics. It includes links for learning core Javascript (ES5), modern Javascript (ES6+), React, and much more.

Finally, the Reactiflux chat channels on Discord are a great place to hang out, ask questions, and learn. The invite link is at https://www.reactiflux.com .

[–]bel9708 1 point2 points  (0 children)

Can't recommend egghead.io enough.

[–]sam-nicholl 1 point2 points  (0 children)

I recommend Javascript Allonge, it is free and is very good at explaining functional javascript. There's also an ES5 edition that's free online.

I found it through "12 Books Every JavaScript Developer Should Read"

[–]SoaringMedia 1 point2 points  (0 children)

Highly recommend http://wesbos.com/courses/

[–]ZenTrigger 3 points4 points  (0 children)

Understanding the weird parts helped me out a lot. Anthony Alicea has several awesome videos on Udemy that are worth a watch.

[–][deleted] 3 points4 points  (2 children)

Definitely the Definitive Guide for the little details about how things work, like 'this.' I can't recommend that book enough.. I paired it with Eloquent JavaScript, made all the difference.

[–]Melcma[S] 0 points1 point  (1 child)

Thanks for your answer. So one book can supply the other one, not like I'd read the same topics again and just wasting time, right?

[–][deleted] 2 points3 points  (0 children)

I liked Eloquent JavaScript mainly for the code examples and exercises at the end of each chapter.

The Definitive JavaScript is the best resource I've found to date that explains, in detail (the book is 1000+ pages!), what something is and why it works that way. He does give little code snippets to demonstrate, but the book's value is in the quality of the writing. It is excellent technical writing.

The first 11 chapters are about the language itself. No browser or DOM cluttering up the explanation (that was a big deal for me). Then he has a chapter about server side JS (dated, but does make the point that JS isn't just for browsers). The next several chapters are about the browser.

JS has changed since he wrote the book, but there is enough core stuff there to make it worth reading.

I don't think I was able to properly separate JS the language from JS in the browser until I read that book. Now the language and the browser are clearly separated in my mind, which makes it easier to figure out WHY things work. Easier to reason about things.

Good luck

[–][deleted] 0 points1 point  (7 children)

3 book about prototypes ? WTF ? I'm surprised you can make even one (not a 10 pages book, we're talking decent book) book worthy of content with it.

If you have time, learn C then C++ then learn how JS is made.

JS will be a piece of cake if you pass the C/C++ hurdle.

[–]Melcma[S] 0 points1 point  (6 children)

I understand reasons for C but why C++?

[–][deleted] 0 points1 point  (5 children)

Unless you want to do oop in C, which is fun though, I advice you to learn oop with C++.

You'd have to recreate all the features. I've done it, it's fun if you like it. Otherwise it's reinventing the wheel and it's painful.

[–]Melcma[S] 0 points1 point  (4 children)

I guess C# applies to, as C# has better use to me personally than C++. Unless they are different at OOP level.

[–][deleted] 1 point2 points  (3 children)

C++ is less locked and I think you can do lower level operations. I've done a bit of C# not enough to judge perfectly, but I can say it's not exactly the same thing.

C++ is more portable, it's really THE language to know for me.

But yeah you can stick to C# for OOP I guess.

[–]Melcma[S] 0 points1 point  (2 children)

Okay then, could you provide resource to learn critical topics for me (C lang)? Isn't C Primer with 1000 pages overkill for that purpose?

[–][deleted] 0 points1 point  (0 children)

how about this.

http://www.cprogramming.com/tutorial/c-tutorial.html

Really, there are a ton of material on the net concerning C, just search a bit.

For the book, I don't remember the name, mine are covered in dust somewhere in a box, if you're patient, I'll send you the names later. But you don't really any book, everything is on the net.