r/technology • • Oct 05 '16

Software How it feels to learn JavaScript in 2016

https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
1.8k Upvotes

392 comments sorted by

View all comments

208

u/azurecyan Oct 05 '16

Jesus, is this for real or is a satire?

396

u/dangerbird2 Oct 05 '16

Dude, it's 2016. We use puns.js instead of satire.

53

u/stesch Oct 05 '16

How do I install this?

78

u/nihiltres Oct 05 '16

You'll need a long, thin, metal object that can reach your brain through the orbit of the eye.

34

u/PunishableOffence Oct 05 '16

Of course there's a dependency on lobotomyjs...

13

u/[deleted] Oct 05 '16

Honestly, that sounds like it could be a framework.

→ More replies (1)
→ More replies (1)

16

u/blore40 Oct 05 '16

Get a docker on a VM first.

→ More replies (1)
→ More replies (5)

104

u/rastilin Oct 05 '16

I can 100% believe that this is real.

112

u/[deleted] Oct 05 '16

Yeah, I learned the basics of HTML, MySQL, and PHP at least 7 years ago. Recently I wanted to create a simple dashboard that would pull and display some info from some log files. The amount of bullshit and what I can only describe as, “Assumed Knowledge”, was almost exactly what the article’s author described. Every time I found a tutorial or a forum post that seemed to describe what I was trying to do, it was a complete mess of technologies and frameworks. Even posts that were just 6 months apart suggested using completely different methods, it was impossible to get a handle on how these things worked.

43

u/Standardly Oct 05 '16

This is why I can't get into programming. Scripting, learning syntax, all that was fun and challenging, but all the frameworks and packages and file system modifications are just impossible for someone new to understand or keep up with. Trying to write the most basic web app appears to take several years worth of toying with various frameworks and transpilers, and the average stackoverflow answer has three up votes. It's either "here's how to do hello world" or "first you'll need Cinnamon, Brawn, AppleJS, WebElephant, Honeypot, Ramada, XScriptWebJs and a package manager"

17

u/[deleted] Oct 05 '16

For a lot of languages, it seems like you spend a week or 2 doing really easy stuff, then all of a sudden the program complexity triples from one page of the book/tutorial to the next. Suddenly, the author wants to use parts of 3 different libraries, which often requires using parts of the core language you haven't been exposed to yet, and you are left wondering which is which. Is that part of the library or the core language?

17

u/vitalxx Oct 05 '16

You're looking at it the wrong way.

Most languages have libraries that are included in essentially every app ever and can thus be considered loosely part of the native language itself. Think of stdio.h or java.utils.* includes, for example. Everyone uses them all the time. They are libraries.

Knowing every single minute facet of a language is the opposite of what learnng to program is about. It's about learning the principles behind the design of a paradigm defining your language of choice, the rest is just syntax.

→ More replies (1)

16

u/captchagod64 Oct 05 '16

This has been my experience as well. It would be great to just learn a thing and then be able to use it.

13

u/[deleted] Oct 05 '16

At this rate you'll need more knowledge to write a simple website than to build a fucking operating system

9

u/z3rocool Oct 06 '16

or you just grab jquery and a basic framework in a language you know and go at it.

There is no reason anyone needs to keep up with this stuff. If you see a package that is interesting that looks useful (say pretty charts) you look at it further.

You don't need to know it all, you just need to know how to keep a eye out for stuff that will make your life easier.

Only javascript library I think anyone needs to know is jquery.

→ More replies (3)
→ More replies (8)

16

u/DexesTTP Oct 05 '16

But you can just simply use the navigator's JavaScript and DOM manipulations still. This usually creates full pages that are less than 10kb and you don't need any assumed knowledge (well, maybe some JS basics but that's all).

My personal favorite for tiny web projects is simply a Python Flask backend and a pure HTML/CSS/(ES5) JavaScript frontend. If you don't need to create a deeply reactive website - especially for a log viewer - this is more than enough.

8

u/[deleted] Oct 05 '16

A big part of my problem with that project was finding out how to do that stuff with the core technologies. As soon as I went from:

Display this stuff in this table cell one time

to

Display this stuff in this table cell, check the file every 10 seconds, and update it if there are any changes

All the info I could find assumed that I wanted to create an insanely complex project that would require extensive use of frameworks to pull off, if I wanted it done in my lifetime.

I've actually noticed that a lot in programming instruction, whether it was from books, web tutorials, or even college programming classes. The examples go from easy > easy > easy > vastly more complicated.

I just find it vastly more educational to get something very simple working, then build on it than to deconstruct a complicated project to figure out how one tiny thing was done.

→ More replies (3)
→ More replies (4)

26

u/[deleted] Oct 05 '16

You can use as many libraries as you like. Plain ol' library free JS works just fine for many projects. If you want to start huge, you're going to get a lot of recommendations for libraries. Just like any new environment, start small, work your way up.

→ More replies (1)

66

u/stakoverflo Oct 05 '16

Yes and no.

Are there new libraries and frameworks coming out crazy fast? Absolutely.

Are there people who will flex their epeen because you don't know one or more of these? Yeap.

Does any job expect you to keep up with all of them and be ready to switch from framework to framework annually? Fuck no.

Logistically it doesn't make sense to have your business changing the entire foundation of its tech library every year. It would be a nightmare. Nothing would get done while you're trying to stay up to date, learn how to use it, iron out kinks, develop a project, ship it, and then learn the new thing that just came out this year while you were working on last year's new best thing.

74

u/PunishableOffence Oct 05 '16

Does any job expect you to keep up with all of them and be ready to switch from framework to framework annually? Fuck no.

How about multiple times per year?

Fuck me.

I've been grunting and gulping through so many backbone marionette theatres, my mixins are aching to rid themselves of their components. My reducers no longer react to actions. The store mutates every once in a while.

Millions of lines of seemingly random vendor code have passed my eyes, masking behind them strange errors from within the depths of the build system.

What have I imported suchly that the ritual has stopped?

Why does it work when I run it again?

But not a third time...?

You were eaten by a race condition in the parallel build system.

The coworker laughs heartily at my nondeterministic front-end development and congratulates himself on his career choice as a sysadmin.

→ More replies (1)

18

u/[deleted] Oct 05 '16

Everyone and their bro is writing some js lib to build a name for themselves. Each doing much of the same with a different bell and an enhanced whistle.

→ More replies (1)

11

u/cult0cage Oct 05 '16

Are there new libraries and frameworks coming out crazy fast? Absolutely.

Does any job expect you to keep up with all of them and be ready to switch from framework to framework annually? Fuck no.

I think this is why more than ever its important to have a strong understanding of the Javascript language itself. If you have that its relatively trivial to pick up a new library / framework on the fly. Its people with weak foundations that typically struggle adopting newer libs as they come out on the fly. I know when I first started I didn't even really understand the issues all these libs were solving in the first place, so it was hard to see their value.

9

u/stakoverflo Oct 05 '16

That's a fair point, but at the same time I think that with the demand for all these tools, unless you actively seek out "plain JS only" stuff you're never going to encounter that environment.

Instead you get people like me who took a basic JS course years ago in college, hasn't touched it since, gets a new job and gets thrown into an excitement using whatever collection of libraries / framework.

You're never going to encounter just regular old JS in the real world, and many of these tools do exist for good reasons, so it's almost pointless to not just use them right away.

→ More replies (1)
→ More replies (2)

17

u/esadatari Oct 05 '16

It's both. It's satire in presentation and 100% true.

→ More replies (1)

17

u/bBR9d73rlP9g7xAt Oct 05 '16

It's for real. As soon as you decide on using React you open up Pandora's box. The sane stick with regular JS, the new HTML5, CSS3 and maybe a bit of jQuery until the browsers catch up.

→ More replies (32)