Live data from Hacker News

Ask HN: Experienced JavaScript programmers, what are your recommendations?

news.ycombinator.com

11–20 of 32 posts

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#11

Just don't do it. I totally regret I went for Javascript. I started with systems programming with C++ etc.. At some point some 5 years ago I made the unfortunate decision to go for Javascript. After 5 years I can now confidently say that programming in Javascript is not about what you are creating, it is about what ESxxx version you use, what framework you use, whether you're using Promises or whatever idea people co…

JS and C++ basically mirror each other in being old languages hindered by backwards compatibility.

C++ is the exact same way with a regular release schedule. You using old C++, C++ 11, C++14, C++ 17, you ready for 20? But if you know what you are doing that modern subset of the language is super nice....like JS.

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#12

Just don't do it. I totally regret I went for Javascript. I started with systems programming with C++ etc.. At some point some 5 years ago I made the unfortunate decision to go for Javascript. After 5 years I can now confidently say that programming in Javascript is not about what you are creating, it is about what ESxxx version you use, what framework you use, whether you're using Promises or whatever idea people co…

I'm puzzled that your efforts to pursue expertise in the JavaScript field have not met your expectations.

I set out on the same quest and expected great pain but instead have found enormous satisfaction and success in the JavaScript ecosystem.

Along with massive pain associated with build tools.

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#14
Hey there,

I'll start with the disclaimer, as lately HN comments have tendency of becoming toxic - everything I write is my personal opinion.

With that behind us I can start. I'll try to write this for someone who knows very little about JS, but knows her/his way around basic programming/cs.

Firstly I love JavaScript, I have been writing it for 10 years now, but there are bad parts of it as well.

Let's start with good stuff

* It is evolving in the right direction

* You can do a lot of things with it (web apps, games, mobile apps, server...)

* Materials for learning are everywhere

* It will be easy to find a job

Bad stuff

* It is moving at crazy to follow pace

* There are a lot of different ways of doing same things

* As it is very hip thing to do, there is a lot of bu___hit (beware of the hype train)

Learn plain javascript before moving to frameworks. Focus on ES6 and new stuff as it will make your life way easier.

* Someone already mentioned Dr. Axel Rauschmayer, pick any of his books - http://exploringjs.com/

* Another good one is You Dont Know JS - https://github.com/getify/You-Dont-Know-JS

Try to make small app on your own. You'll get into all sort of problems, but that's the fun part I guess. That will help you to understand what frameworks are trying to solve.

Then you can start learning one of the frameworks. React, Vue, Angular are all solid choices. My pick is React, as I know it best. Apply the same mindset as with learning plain JS. Try to write your own stuff on a small scale before importing huge libraries.

Good example is redux, everybody on the internet are screaming that you should always use it, but even Dan Abramov (author of redux) has great read - You might not need redux https://medium.com/@dan_abramov/you-might-not-need-redux-be4...

Try handling state yourself, then if you see that you need big guns, try redux. Same goes for any big library or technology.

So, buckle up, do it thoroughly and try to find fun in doing javascript. And the most important generic advice - do a real pet project instead of just blindly following tutorials.

This will take some time, and if you just want enough knowledge to lend a job, pick a framework, throw yourself into the deep end and swim your way out. This is something I wouldn't recommend but it works for some people.

Hope this helps, cheers! S

P.S.

Random JS talks I like

* Wat - Gary Bernhardt, 2012 https://www.destroyallsoftware.com/talks/wat It never fails to crack me up

* Live React: Hot Reloading with Time Travel - Dan Abramov, 2015 https://www.youtube.com/watch?v=xsSnOQynTHs Classic nowadays, it is a delight to watch Dan Abramov presenting, only thing missing is a mic drop at the end

* What the heck is the event loop anyway? - Philip Roberts, 2014 https://www.youtube.com/watch?v=8aGhZQkoFbQ This is a must watch for every js developer

EDIT: Sorry for the formatting, HN doesn't support markdown

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#16
My biggest recommendation is: form your own opinions and make your own informed decisions around tooling/frameworks/libraries and so on. Front-end development is very opinionated, there are a lot of egos flying around and everyone like a used car salesman wants to sell you something and tell you how great it is.

Don't let anyone tell you Javascript is a mistake learning, because while it has its flaws so do many other languages. Learn the bad parts and then avoid them like you would any other language.

My front-end stack at the moment is:

- Webpack

- Aurelia Javascript framework

- VueJS

- Sass + Autoprefixer

As for posts, books and whatnot: those are constantly changing and being outdated, so I have no recommendations.

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#17
It could be a bit far fetched..

But I recommend skipping all frameworks and do a lot with native JS and learn the prototype chain.. this will make you understand a lot more about how JavaScript works and also how JS is attached to the DOM.

Frameworks change so often in JS world!

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#18
This post is entirely going to be based on questions that I would expect an experienced developer that I was interviewing to be able to have a conversation on. This is not a starting point for a beginner.

Understand the language and how it works on a deep level. If there's ever a question of "should this work?", read the spec for that feature - it's generally not that hard to understand.

Understand the runtime. What is an event loop? What's a macro task? A micro task? How does each work? How does all of this integrate with the DOM as far as what might cause a dropped frame, block rendering, etc..?

Understand the ideas behind the framework you're using. I'm not going to recommend an individual one to avoid framework wars, but most of them embrace virtual dom these days, so you should have a basic concept of what that is. Does it make applications faster? Does it make it developing easier?. Another common framework point is unidirectional data flow; why is unidirectional data flow considered a good thing these days? What were the downfalls of bidirectional data flow?

Understand API design and state boundaries. Using the example of a shopping cart, who owns what? Where is the state of the cart stored? An individual item price? Name? How do I add an item to the cart? You can design a cart that functions fantastically, but is completely un-testable if the API is designed wrong or there is not well defined boundaries on what components own what state.

That's a few things off the top of my head.

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#19

Just don't do it. I totally regret I went for Javascript. I started with systems programming with C++ etc.. At some point some 5 years ago I made the unfortunate decision to go for Javascript. After 5 years I can now confidently say that programming in Javascript is not about what you are creating, it is about what ESxxx version you use, what framework you use, whether you're using Promises or whatever idea people co…

Promises was so last week. This week we're using Observables... :ha, ha:

That said, I disagree that everything you learn is getting deprecated quickly. Sure, some things change 'on the cutting edge'. But, there are tons of existing applications--and even new development--not using that stuff.

The knowledge and concepts you learn will help you keep going.

Re: Ask HN: Experienced JavaScript programmers, what are your recommendations?

#20
Books (free):

- Javascript Patterns https://shichuan.github.io/javascript-patterns/: Good for wrapping your brain around scoping and how things flow in JS. It's a very nimble language. While you won't use every single one, internalizing their concepts are central to be efficient in wrangling JS and reading other's.

- Patterns For Large-Scale JavaScript Application Architecture https://addyosmani.com/largescalejavascript/

Docs / Articles:

- Callback functions: https://developer.mozilla.org/en-US/docs/Glossary/Callback_f... Absolutely mandatory.

- Currying: https://www.sitepoint.com/currying-in-functional-javascript/

- 'return this' for method chaining: https://schier.co/blog/2013/11/14/method-chaining-in-javascr...

Annotated Source:

(soak these in 10-20 minutes every day over a month or two)

- http://backbonejs.org/docs/backbone.html

- http://underscorejs.org/docs/underscore.html

Frameworks:

- None. Webpack 3 + jQuery + babel + pjax

Tips:

- The longer you hold off on a framework, the better. Focus on getting your stuff out the door, test coverage + CI feedback loop, core business data schemas, and trimming off technical debt. After a couple of iterations and months of stability, consider a/b testing a framework.

- Most libraries are still in ES5. Wrap your brain around ES5 is a sure thing. Not everyone is using newer JS features.

- In many programming languages in your webstack, you're likely going to be dealing with node for build utilities and compilation.

- Webpack, while it seems unintuitive at first, can be pretty nice once you get over the hump. It's like a miss of the old r.js configs and the declartive-ness of grunt.

- As a parting note, don't feel a necessity to buy into single page application and frameworks. They're a tremendous time sink and the ROI just isn't there.

Post reply on HN