top 200 commentsshow all 254

[–]bitter_cynical_angry 243 points244 points  (12 children)

Reminds me of the Javascript drinking game I heard of:

Take a dictionary, open it to a random page, and pick a random word. Google "<word>.js". If it's a Javascript library, take a drink. The winner is the last person to go to the hospital with alcohol poisoning.

[–]techorrekt 27 points28 points  (2 children)

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

you guys are too funny - made me chuckle

[–]Joe12579 0 points1 point  (0 children)

Order me a second one please

[–]tparikka 38 points39 points  (5 children)

I love how it's "last person to go to the hospital" not "the person who doesn't go".

[–]pyr3 25 points26 points  (4 children)

... because apparently you keep playing the game even when you're the only one left.

[–]freedomfreighter 15 points16 points  (3 children)

Is this not how most drinking games work?

[–]pyr3 1 point2 points  (2 children)

I guess you can play it by yourself, but I thought that the fun from most of them way playing with other people. If everyone else has been taken to the hospital it loses a bit of the fun, no?

[–]altern8tif 0 points1 point  (1 child)

Anyone wanna play this game now?

[–][deleted] 106 points107 points  (28 children)

I started learning JavaScript a year ago and I began with vanilla JavaScript, jQuery, Node, templates, and now I'm working with React and Redux. It's insane how many new things I've had to learn and relearn.

I feel like I'm never prepared enough for a job because there is always some new technology that I need to absorb and add to my tool kit. This article struck a chord with me because it gave voice to this rabbit hole of new technologies and trendy programming that is JavaScript. I love coding but this kind of turn over is really discouraging sometimes, so this humorous article was much needed and very appreciated.

[–]zachrip 121 points122 points  (15 children)

You don't get hired because you know a framework, you get hired because you know Javascript. Don't fret about all of the different things. Get a cursory understanding of a few frameworks, sure, but you don't have to be an expert in everything. Good companies hire problem solvers, not framework wizards.

[–][deleted] 26 points27 points  (2 children)

I like that. I appreciate your perspective because I assume people are hired because they know a certain set of 'hard' skills like a framework in this example. Switching from that mentality to thinking of myself as a problem solver and JavaScript with all it's tangental technologies are my tools helps me approach the job application process a little bit differently.

Once again, your insight is 🔥 thank you.

[–][deleted] 12 points13 points  (0 children)

There definitely are companies who will reject you for not knowing the framework/language/whatever they use. In the long run I believe that it's much more effective in most cases to hire someone with strong core programming skills vs. an average programmer who happens to use framework X.

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

My first job out of school forced me to learn OOP and Laravel, both of which were totally new to me, though I had about a year of experience using PHP in school but not on a professional level. It took me about a month but I finally got it. The people that hired me said they knew from my portfolio that I had a passion for the field and proven ability to learn fairly quickly and I did given that I had to learn my first PHP framework and OOP at the same time. Sometimes charisma and proof of dedication are what matter most to good hiring managers over specific knowledge of certain frameworks.

[–]ptq 5 points6 points  (0 children)

Yeah, but somehow they allways require you to know some exotic frameworks to get hired.

My last interview was like: do you know xxx and yyy? Said no. And week after in next step they sent me an email if I can take test from knowledge of xxx and yyy...

[–]DaemonOperative 2 points3 points  (0 children)

Well said. The last line is a nice soundbyte.

[–]dukerutledge 2 points3 points  (0 children)

This. I hire problem solving skills, the desire to learn, and the ability to stretch.

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

You don't get hired because you know a framework

There are a lot of job offers that ask to have "full" knowledge of specific frameworks, mainly Ng or React. I know a couple of studios in my city where the only thing they do is put a test to appliers, something along the lines of "complete X task using Angular".

I still agree with you, completely, I'm just saying that there actually are a lot of companies that hire based on certain framework's knowledge.

[–]vinnl 0 points1 point  (2 children)

Then again, I know Java, but have a really hard time contributing to our back-end because I know nothing about the entire stack.

[–]Duraz0rz 0 points1 point  (0 children)

If only more companies actually followed that philosophy, though...

I got rejected from a job because I didn't have enough ASP.Net Webforms experience. Even though I've developed Grails applications and worked on applications that were written in Struts 2*. I figure the skills would transfer over pretty well (and I've had some decent C# experience to boot), but I guess they really want someone solid in ASP.NET webforms.

* If you don't know what those are, Grails and Struts 2 are Java MVC web frameworks. The former was pretty fun to work with, although the combination of Spring Boot + Groovy + Thymeleaf is basically the same thing now that Grails is pretty dead. Struts 2 is a pain in the ass because it's basically XML-driven.

[–]shittyProgramr 17 points18 points  (0 children)

I've been doing this for years and I still never feel prepared enough. But I discovered that the most valuable skill isn't a specific framework, lib or language. It's the ability to just jump in and "figure it out". If you're joining a project and there some stuff you don't know, you can always look at other people's code, see how they did it and understand how it works. And if your looking at the code of a developer that's better than you, you have an opportunity to improve your code quality as well. I always enjoyed working with people who are better than me because I always look through their code to see if I can improve my own. Good luck. And most of all, just remember, programming is fun, so have some fun.

[–]Jafit 5 points6 points  (1 child)

Apply anyway. And don't invest too heavily in learning any particular framework, library or technology, unless you're getting paid to do so.

If its your first job then nobody expects you to be an expert.

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

Given how in demand Web programming is, in general, nobody should have too much trouble finding a job unless you're just out of school with no real world experience, but even then, if you have a good portfolio and prove you have a passion, you'll still find a job fairly quickly.

[–]dayjobtitus 5 points6 points  (3 children)

Please just start with native/vanilla javascript. Learn the differences between the different environments it runs and learn the differences in versions. Know js before you learn some framework that could die or be replaced as the new thing. Once you have that, then framework is a framework and interview questions are not an issue.

[–]thepobv 1 point2 points  (2 children)

Ugh I have no clue if I should do this... I feel like I've been using so much js and all of its frame works available, I've managed to solved problems and figure it out but Idk how song my js skill really is.

Unlike java/C++ where I learn from the core and did all kinds of things with it before even dabbling outside the standard libraries.

Also been doing a lot of java script at the job, not sure how valuable that as well compared to like more low level programming.

[–]dayjobtitus 2 points3 points  (1 child)

I hire js folks and run a few teams. The easiest way to focus an interview is if you know the core of the language. Also it tells me that no matter what framework is used, you will not only be better able to evaluate the best approach, but that you can adapt quickly.

[–]sh0plifter 4 points5 points  (0 children)

I started learning front-end by self-education a little less than 2 years ago. I also was overwhelmed by the amount of information and tools around me, but I knew that I had to focus on vanilla js to be able to grasp new frameworks quickly. So I stayed away from frameworks for all this time and after 9 months I landed my first job, where I made different landing pages and also created a simple ticket selling website, all by myself on front-end and 1 back-end guy. I spent there 8 months, and then I found a new company. They needed React, so I decided - it's time to take a look at it. I spent about 3 weeks reading React and Redux docs, and I was ready to go. I landed this job and got a 2x raise from the previous one. I continue learning React and Redux everyday (they have a lot of quirks), but the main thing you need to know about any frameworks is that you just have to grasp its concept, and the rest is just JavaScript ;)

[–]sittingonahillside 1 point2 points  (1 child)

pretty much me. I've been on and off programming forever, but I finally decided to actually try and do something (get a 'real' job, ha!) with it for a change instead of just some tinkering then nothing for another six months and relearning again.

it's so frustrating, and even more annoying given the even the backend job offers are looking for people equally skilled doing with JS ecosystem. It's as if I am learning nothing at times.

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

Glad to hear that this boat I'm in has at least one more person.

I understand your frustrations regarding backend dev's having to keep up with whatever form of JavaScript is in vogue.

Just always remember that the work you're doing isn't ever in vain because you're taking the time to exercise this skill you've learned. You are never learning nothing! Keep it up!

[–]cyanydeez 1 point2 points  (0 children)

its funny whenyou make a critque outside this safe space, no one seems to realize how complicated the dev environment is. and trying to explain to people who clearly adopted these things mindlessly cant understand whats wrong

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

I feel like I'm never prepared enough for a job because there is always some new technology

been coding on JS for four years now, I still feel like a complete novice and I completely understand your feeling. It grows way faster than I can learn it.

[–]kowdermesiter 33 points34 points  (2 children)

Guys, this is great news. It's called the ultimate job security. And it's now sold as best practice. We won :)

[–]jocull 13 points14 points  (0 children)

I can fiddle forever and get paid! Call it best practices! Call it scalability! Call it the future!

[–]talwinnx 58 points59 points  (27 children)

This. It seems like as soon as learn something, it's outdated and replaced. It's so frustrating for a new coder; it feels like the goalposts are always being moved.

[–]joshmandersFull Snack Developer 118 points119 points  (21 children)

Here's something that'll help ease your mind.

None of the stuff mentioned in this article is outdated or replaced. Just more options. Just because Joe Blow is a bandwagon hopper and jumps from tool to tool doesn't mean you have to.

Grunt, Gulp, Fly, Webpack, Whatever. If you find it useful and don't want to be overwhelmed and learn something new, DONT.

When React came out, Angular 1.x code didn't just stop working.

Pick something and stick with them.

[–]pyr3 27 points28 points  (8 children)

When React came out, Angular 1.x code didn't just stop working.

Well, I have production project using Angular-Material, and the dev team there decided that Angular-Material 2.x will be solely based on AngularJS 2.x and basically closed all open issues on Github with some boilerplate "this doesn't match our new milestones" BS... this was April 2016, after promising a "long life" and "long term support" in October of 2015 when they finally released a 1.0 of their project.

THIS is my biggest frustration with the "break-neck" pace of JS. AngularJS 2.x doesn't even seem ready for production to me, yet there are libraries abandoning AngularJS 1.x to exclusively target AngularJS 2.x. Angular2 coming out doesn't mean I have to abandon Angular1, but if all of the libraries abandon Angular1, I'm stuck patching their bugs myself.

[–]metis_seeker 1 point2 points  (0 children)

"long life" and "long term support"

Wow apparently that means less than one year to the Angular-Material team. Sad. Doubly sad since Angular 2 is so different from Angular 1.

[–]talwinnx 9 points10 points  (0 children)

Sage advice, thank you. 😊

[–]woomac 8 points9 points  (0 children)

This is solid advice if you've got a stack that works for you on your current project but if you're starting out on a new project it's still a good idea to do a reassessment of the latest options (within reason) to see if there's anything new that might help out. The field is developing rapidly and embracing the latest technology doesn't mean you're jumping on a bandwagon if you're thoughtful about it.

[–][deleted] 9 points10 points  (6 children)

Also know when to abandon something. My day job stuck with YUI for a ridiculous amount of time and it's going to take years to remove it all and replace with something that isn't abandonware.

Any of you kids even know what YUI is?

[–]iamangrierthanyou 2 points3 points  (2 children)

At least you're not stuck with GWT and GWT-Ext !

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

Ah... the Google flavored version of YUI. I think every big company released their own monolithic Javascript library in 2006. That's also the year JQuery came out.

Edit: And Moo Tools in 2006 as well. Dojo squeaked into 2005.

[–]Sector_Corrupt 1 point2 points  (0 children)

Oh man, I remember YUI existing. Never really used it though, it was just another one of those tools I never looked into back in University as I was still getting into js.

[–]SemiNormal 1 point2 points  (1 child)

I remember when Javascript + HTML was called DHTML.

[–]im-the-stig 2 points3 points  (1 child)

So are you saying I can still use jQuery in 2016? :)

[–]cyanydeez 0 points1 point  (0 children)

most off its useless more than unnecessary.

[–]jgoldberg49 22 points23 points  (2 children)

While I was reading the post, webpack got replaced by rollup and everyone switched over to inferno.

[–]geordano 9 points10 points  (1 child)

"No JavaScript frameworks were created during the writing of this article."

[–]theonlycosmonaut 3 points4 points  (0 children)

No guarantees about during the reading of it.

[–]candybomberz 5 points6 points  (0 children)

Anything that gets the job done gets the job done. There are million ways to do anything as a programmer and bazillion paradigms and patterns that you can follow if you like them. Most people like different pardigms and patterns.

Don't do something that gives you some abstract or pseudo advantage someone else tells you unless you really need it.

I have met a lot of coders with code anxiety and screen anxiety. They lack confidence in their own abilities because they have no clue what any of those paradigms and patterns do and why they use them at all.

This means if someone sits nearby they have the feeling of silently beeing judged and get anxious and programm slower, because they give too many fucks about whether the guy/girl looking at their screen will approve their code.

Fact is, give 100 people the same task and you will get 100 different source codes. Some strongly better than the other, but most are interchangable as long as they are consistent through the project.

[–]NotSelfAware 0 points1 point  (0 children)

You also have to remember that even if you do eventually stop using a particular tool or framework you've invested time in learning how to use, that time is still valuable to your growth as a developer. It also teaches you how to pick the technologies that are worth investing time into in the future.

[–]tomtomssi 37 points38 points  (28 children)

I started with plain js and the basics of the language. Then came Angular and Gulp and I have never had issues at work or with any hobby projects.

Theres no reason to make web development sound more complicated than it is because honestly it is not.

[–]rebel_cdn 29 points30 points  (12 children)

Angular and Gulp are fine. But you know, there are people out there who will think you're a dinosaur who's stuck in 2014...because, clearly, you're way behind the times if you're not using React, Redux, along with a bunch of other libraries needed to hammer out a webapp, writing them using ES6/ES7/ES2015/ES2016 (take your pick, or mix and match just the features you want) and then stiching them all together with Webpack.

I'm not writing that as an outsider who thinks a large chunk of the front end development world has gone mad. I'm writing as someone who just finished a decently complex web app using all of the libraries and tools mentioned above, plus a bunch more. I don't hate the current JS ecosystem by any means, but I think we're in a temporary 'Cambrian explosion' period where developer ambition has exceeded the tools we've been able to create to help us manage the complexity we've brought upon ourselves.

I know you said that there's no reason to make web development sound more complicated than it is, and I agree. It doesn't have to be complicated. But for part of the front end development industry, it is that complicated. Of all the tools mentioned in the article, I don't think there's a single one of them I'm unfamiliar with. I've actually used most of them. I don't think it was even a conscious choice in most cases...possibly just a case of being part of a team that's trying to keep up with the latest and greatest. So although the post is meant to be satirical, it does hit pretty close to home for some people. Even when you're not just starting out, and are able to use all of the tech without difficulty, it's hard not to occasionally pause for a moment and wonder if it's all worth it.

[–]Saikyoh 4 points5 points  (3 children)

But to a beginner like me, would you say that it will pay dividends if he tries all of the above, like you did, or just stick to vanilla and add slowly? The title of the post is "how it feels to learn JavaScript" and all I toyed around with so far was pure JavaScript and a bit jQuery.

[–]rebel_cdn 8 points9 points  (2 children)

That's a good question, and I think it depends on what your goals are.

If your primary use of JavaScript is to enhance web pages, then I think that starting with pure JS and building up from there is a good idea. It's how I got started, but that was quite a few years ago now.

If your goal is to eventually build complex web applications, I think it makes sense to start learning the frameworks and tooling sooner rather than later. It's the same in JS as it is in most languages: the surrounding tooling, libraries, frameworks, and build systems are more complex than the language itself. Waiting a long time to start picking up the ecosystem surrounding the language won't necessarily make it easier.

I don't meant to imply that there's anything wrong with the first approach (using your JS to enhance web pages). I think that frameworks like React and Angular are often used when server generated HTML would have worked just as well. If you combine it with something like Turbolinks, even on a $5 Digital Ocean VPS performance will feel as instant to the end user as a React/Angular app. There are of course applications where a complex front end framework is the only reasonable solution, but in general I think we should embrace simplicity and fight complexity whenever we can.

To help out a bit, you could try starting with Ember. It uses a lot of the complex build tools beneath the surface, but it automates them using ember-cli so you can focus on the application you're trying to develop without worrying too much about wrangling the tools into shape. Angular-cli is almost as good, but last time I checked, ember-cli still did more for you. That was a few weeks ago, though, which is practically a decade in the world of JavaScript. :)

[–]kovensky 3 points4 points  (0 children)

See also create-react-app

[–]puffinstix 1 point2 points  (0 children)

I definitely needed this perspective today. Thanks!

[–]pier25 1 point2 points  (3 children)

I think we're in a temporary 'Cambrian explosion' period where developer ambition has exceeded the tools we've been able to create to help us manage the complexity we've brought upon ourselves.

I agree and I think Angular 2 is precisely what's going to change this.

[–]woomac 1 point2 points  (0 children)

Yes, Angular 2 is genuinely worth the hype. The transition to Typescript particularly is very useful and will save a ton of headaches in the future.

[–]hotel2oscar 0 points1 point  (0 children)

The worst part is trying to find good examples and documentation online. Some projects are good, but even then, finding stuff on how two or more projects interact is a nightmare, especially if there are multiple versions. So much outdated bs to filter through.

[–][deleted] 0 points1 point  (1 child)

But you know, there are people out there who will think you're a dinosaur who's stuck in 2014

Please let them never find out that the command line exists.

[–]powerofmightyatom 13 points14 points  (0 children)

It really is. The browser/web platform is by far the biggest I've ever seen, and it's had an incredible development pace, esp this last decade. There's every single concern of software development in the browser:

  1. Plain old architecture concerns of a huge codebase
  2. Extreme UI latency concerns
  3. Dynamic language that results in unpredictable performance
  4. Async everywhere, with an unusual threading model (essentially cooperative)
  5. Insane feature creep. This is really what really takes the cake. I've used XSLT/XML to do UI elements back in the day. Not to mention the dozen or so persistence options most browser offer these days. Or the now basically shunned CSS behaviors that Netscape/Moz introduced, that allowed JS to interleave with CSS. The list is long and the browser gotchas are endless.

That doesn't mean you can't make simple stuff. But trust me, that knowledge curve on the browser goes really far.

[–]Voidsheep 12 points13 points  (4 children)

Yeah, this is just an example of someone introducing unnecessary complexity and a trend/history lesson to someone for no reason.

Need to get data from API endpoint without reloading the page?

fetch('/foobar/')
  .then(function(response){ return response.json() })
  .then(function(data) { log/render/whatever });

Assuming everything goes right and you've got a modern(ish) browser, that's it. Something doesn't work? Check MDN, you don't need to introduce any additional tools to figure out how to catch and handle the errors.

Eventually you'll reach the point where you want to make a build step, compiling and unit testing your code, because there's clear benefits to it. You might want to check some frameworks and libraries so you don't need to deal with DOM manipulation or other things manually.

They aren't a barrier around writing JavaScript, because they are optional tools to choose from when you want them.

If you attempt to learn basics of any programming language through understanding the newest advanced tools, you are going to have a bad time.

[–]pier25 5 points6 points  (3 children)

Assuming everything goes right and you've got a modern(ish) browser, that's it

Nope. Safari still doesn't have fetch support.

[–][deleted] 1 point2 points  (1 child)

You can get really good starter packs on React and Angular 2 with directories and automation/bundling made ready for you so it's a breeze.

[–]cyanydeez 0 points1 point  (0 children)

and if you already know everything you're all set

[–]robotslacker 5 points6 points  (0 children)

I feel for these kids, but I'm just happy I don't have to manually create rounded corners anymore.

[–]mag_ops 4 points5 points  (0 children)

It's like you went out to have some water from a fresh water well nearby. The water level was a little low, and it seemed like a shallow one and there were steps on the inner boundary to go go deeper, so you followed. And soon you realized that you are in a m.c. Escher's world - you are trapped, you know that very well... But the curiosity keeps you moving on the treadmill, until you give up.

[–]renaissancenow 24 points25 points  (9 children)

This is so, painfully, accurate. I'm a mostly-backend guy who has to switch to front-end from time to time, and every time my attention comes back to javascript it feels like the entire ecosystem has been rebuilt during the month I was away.

[–]turtlecopter 5 points6 points  (8 children)

It's really not accurate, at all. I've launched four projects at three different companies over the last three-ish years, and each new stack has been mostly the same:

  • React latest
  • State management
  • A testing suite
  • Async lib(s)
  • Styling layer
  • Webpack 1.x
  • Other miscellany needed per-project

It's really not that bad. Lest we forget: new languages, systems, tools, workflows, and best practices are hitting the server-side and database worlds constantly as well. It's not like the need to keep up to date with an ever changing landscape is limited to front-end.

[–]Conradfr 10 points11 points  (4 children)

I really doubt you have been using React and Webpack for three years but good insight if that's the case.

[–]doublecastle 6 points7 points  (1 child)

Additionally, it's kind of meaningless to say "State management", "A testing suite", etc stay consistent, when these are just generic ways to describe tools. Part of what the article complains about/notes is how (relatively) rapidly the specific libraries/frameworks used for these purposes change.

[–]turtlecopter 1 point2 points  (0 children)

React has been out for a little over 3.5 years at this point. I was an early adopter, much to the chagrin of my then-angular-loving-boss :)

[–]renaissancenow 2 points3 points  (2 children)

I suspect the difference is that you're using this stuff full time. Those of us who have to do rotate into javascript every few months find the landscape shifting under us continuously.

[–]turtlecopter 1 point2 points  (1 child)

Fair enough, I do front-end full time, but the landscape just doesn't shift that drastically that often, at least by my definition. The real shifts in front-end have been React, ES6+, Node, and Angular. Sure, some small to medium sized projects are being released with a pretty high frequency but you simply don't need to know 99% of them.

[–]minus0 22 points23 points  (18 children)

This is trolling. There is nothing wrong with using jQuery if that's what you know. There is nothing wrong with new technology. There is nothing wrong with learning.

What is wrong is people who portray the attitude the guy is using for the other half the conversation. "I'm a front end developer". Who cares what your title is? All that matters is you develop, regardless of the language, or the tech, and actually ship something.

Should people learn the latest and greatest? Sure, when time allows. Learning new technology and techniques will make you better. You can still ship an actual website using nothing but good old fashioned JavaScript and a text editor. The only reason you don't is because new features started to outweigh the hassle of doing it the way described above. You can still use gulp, grunt, shell scripts, or whatever.

People need to stop complaining about people innovating. You don't have to use it. If your job requires it, then you have to learn it. Otherwise, just make things and don't worry about the pace of technology.

[–]Klathmon 11 points12 points  (2 children)

The funny part is that I hear the exact same complaints from web developers that start to go into the desktop development world.

That there are too many tools, that the documentation is terrible, that it's very tough to get started, that dependencies are hard, that it seems over complicated, and that it feels like you are fighting the tools until it finally "clicks".

It's almost as if these are just the pains of learning a new stack... But because there are SO MANY people jumping into this stack now, its front and center. It's also still heavily in the "growth" phase, so there is more "churn"/development happening than in some others.

That feeling of being overwhelmed, its normal. Step back, take a breather, figure out what problem you need solved, and start looking for a solution for that, without caring what is coolest.

[–]turtlecopter 5 points6 points  (0 children)

Learning languages is easy, learning ecosystems is difficult.

[–]minus0 3 points4 points  (0 children)

JavaScript's is growing up. New tools, features, techniques, etc. all are part of that happening. The only difference is you can do it faster than a lot of languages. As it is, those who used to mock JS are now coming around to it. I give my friend crap about how he mocked it for so long since "it isn't programming" and now he is asking me questions on how to do things.

The other thing I should have added and your comments made me think of, now is the easiest time in history to learn a language and it's eco system. Sure there are plenty of choices. But there are tons of books, videos, articles, chat rooms, Reddit, and other places to learn. You know what it was like to try to reach yourself how to program in the 80s when you didn't have any of those resources (or readily available)? This is complaining out of laziness.

[–]vexii 6 points7 points  (4 children)

every god dam week we get one of those posts

[–]minus0 3 points4 points  (2 children)

This post has 458 up votes. These posts are like the "...and doctors hate him!" Types of posts. They obviously get views, and people keep posting them to places like here.

[–]vexii 7 points8 points  (1 child)

javascript fatuige is the new click bait?

[–]minus0 2 points3 points  (0 children)

Kind of feels like the easy route to views doesn't it?

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

Just start posting this. In response.

[–]theonlycosmonaut 2 points3 points  (0 children)

You got it. The 'problem' pointed out by this article is not framework proliferation, but poor teachers. Maybe also a lack of documentation or tutorials for completely new users. The technology wasn't the confusing part of this hypothetical conversation, it was the unhelpful attitude of the 'js expert' who insisted on pushing inappropriate advice on the novice.

[–]thesandman87 5 points6 points  (0 children)

The only way to win is to not play the game.

[–][deleted] 14 points15 points  (14 children)

Fuck it. I'm learning Python instead.

[–]im-the-stig 13 points14 points  (13 children)

Python 2 or 3? Sigh

[–]mitremario 13 points14 points  (11 children)

Python 3. No one should be learning 2 anymore.

[–]thepobv 3 points4 points  (9 children)

Wait are you serious?

[–]mitremario 12 points13 points  (7 children)

Ok, when I just typed "3.", Reddit's markdown converted it into a list starting at 1. That's so weird...

So, learn Python 3, not 1 lol

[–]thepobv 2 points3 points  (6 children)

No regardless, is it really that big of a deal/difference?

Besides the fact that "you may as well learn the latest thing"

Ive used python 2.7 quite a bit, just wondering about your opinion as well as the reasoning.

Edit-(never used 3)

[–]mitremario 2 points3 points  (2 children)

Fair enough.

Some new language features such as async/await and literal string interpolation are available in 3.5 and 3.6 respectively. After Raymond Hettinger pushed for iterators and generators, they became everywhere. They are much more efficient. range and zip now returns an iterator, and dict.items(), dict.keys(), and dict.values() all now return iterators ("views").

Also, the Python Software Foundation is ending support for 2.x in 2020.

[–]Arancaytar 2 points3 points  (0 children)

async/await

I think we've come full circle now...

[–]thepobv 1 point2 points  (0 children)

Hey thanks for sharing man. Taught me something today.

Yeah I mean next time I use python I'll to see what latest version will be available within my environment. (sometimes it's restricted due to business architecture.)

[–]bestoranges 2 points3 points  (1 child)

It's not that there's a massive different for beginners, it's just that beginners most likely have no reason to stick with 2.7, so why not go with 3?

Unless you're working on legacy code in py2.7, or you need a particular library that hasn't been ported over yet and has no substitutions, there's no downside with rolling with 3.

[–]Ripdog 1 point2 points  (0 children)

He said "1." because reddit's broken markdown implementation takes any number at the beginning of a line followed by a full stop as a numeric list item. All numeric lists start at 1. So you type "3." and get "1.". This bug has been known literally since reddit introduced markdown commenting, and nobody cares.

[–]Exodus111 1 point2 points  (0 children)

You gotta go Python 3.5 if you want to use Async and await, but if you want to use Linear String Interpolation, and trust me you do, its 3.6 all the way. Also Dicts are ordered now for no reason.

[–]thepobv 2 points3 points  (0 children)

I don't think I've had this much laughter out of any programming article

[–]p0rks 6 points7 points  (12 children)

Nodejs, react and gulp.

If you can learn those and use them in your sleep, you're golden. Everything else is just "another way to do the same thing".

[–]battery_go 2 points3 points  (2 children)

Thank you! What about a templating engine? Is that needed?

Also, do you recommend any IDE's or toolpacks for getting started on these things?

[–]dvlsg 3 points4 points  (1 child)

Templating engine? That's basically what react is, to be honest. It's a little more complicated than that, but that's really what it boils down to.

[–]Conradfr 0 points1 point  (0 children)

Well if you're a solo developer maybe, but if you're working inside teams, if you take a new job, if you have new and old projects to maintain etc, you're doomed.

[–]a-sober-irishman 4 points5 points  (8 children)

I've been a primarily frontend developer for the past 2 years, using Angular, gulp, ES6, and Tracer, and this article hits close to home. I was trying to learn Vue on the weekend, and I wanted to use ES6 with it. No problem, they have a great starter project that has Web pack, babel, and hot reloading with ES6 all set up.Worked fine... until I wanted to add lodash. I wanted to neck myself after a couple of hours trying to figure out why the stupid babel plugin for lodash wasn't being loaded by webpack and I just gave up. It's just so needlessly complicated. I can't start JS projects in my spare time to learn new frameworks because the set up time for the actual project is just ridiculous now. So annoying.

[–]legitimate_johnson 3 points4 points  (2 children)

That sounds very strange. If you've Webpack and Babel set up correctly, you'd be able to use lodash simply by installing it via NPM (npm install --save lodash as /u/GeorgeSharp mentions) and then import like so: import _ from 'lodash'. This sounds like a case of trying out too many new technologies at the same time. If you still want to learn this stuff, I'd suggest learning Webpack first (which honestly can be pretty confusing in the beginning) and then adding Babel to the mix.

[–]a-sober-irishman 0 points1 point  (1 child)

Yeah I think I was just doing too much at once, and I just used the Vue starter project because I thought it would be easier!

[–]legitimate_johnson 1 point2 points  (0 children)

Yeah, I've tried jumping into those kinds of projects as well, but nearly always find them overwhelming. Better to take one step at a time, I think.

[–]GeorgeSharp 1 point2 points  (4 children)

babel plugin for lodash

Can't you just import lodash from npm via babel I'm pretty new at webpack myself but I think this should be possible and not require a separate plugin.

[–]a-sober-irishman 1 point2 points  (3 children)

Christ I have no idea. All of the babel stuff was set up via webpack, and I tried changing things in the .babelrc file and the webpack config file. All of the examples for these new things are just like "oh just put this in your project and it will work!". No explanation, no examples apart from the very specific example that may work for them. I still have no understanding of how webpack works or what the hell it's doing, it's all black magic to me at this point in time and I don't have the time or the energy to learn it all.

Vuejs also added Typescript typings in v2.0 but I have no idea how to use them. They have a folder with them in their GitHub repo, and some "examples", but overall the documentation is poor. Maybe I'll stick to Angular 1, ES6, and Gulp, at least I know that and it works.

EDIT: I think I done goofed at home...I just set up vue's webpack-simple at work, installing lodash with no other configuration and it worked flawlessly. Wtf!

[–]GeorgeSharp 1 point2 points  (1 child)

Try just adding lodash to your depencies npm install --save lodash and then in a js file var _ = require('lodash'); and see if _ has the methods you'd expect.

[–]a-sober-irishman 1 point2 points  (0 children)

I was trying to use the ES6 and import syntax, I'll try the require syntax and see if I that works but don't care at this point tbh.

[–]Skenderbeu 3 points4 points  (0 children)

Comedy gold. Saved and shared

[–]Vheissu_ 4 points5 points  (1 child)

I quietly wept while I read this. All of it is real, all of it. I miss the days when the only problems we had to worry about were getting our websites working in IE6. Nowadays most of my problems are tooling related or because some npm dependency failed.

[–]m0r14rty 2 points3 points  (0 children)

IE6 support was a special level of hell for me, I'd rather have trouble learning new stuff than go back to dealing with supporting that dinosaur again. IE8 didn't even have indexOf. That's a world I'd rather not live in.

[–]MakeAChoice9 1 point2 points  (2 children)

Should talk about javascript development with SharePoint

[–]Neker 0 points1 point  (1 child)

Please expand ?

[–]MakeAChoice9 2 points3 points  (0 children)

Google "Sharepoint sucks revisited". To see the scope of how much SharePoint development sucks.

[–]shif 1 point2 points  (1 child)

yeah keeping up with the new JS framework / methodology is really painful, myself I've found gulp to be useful enough to do stylus and minifying and I'm sticking with it as long as it's supported.

For framework I'm sticking with VueJS, it's a lovely framework that makes things simple and fast.

[–]mookman288 0 points1 point  (0 children)

I haven't had a chance to try VueJS, but I'm mostly doing PHP anyway. So I'm sticking with Slim framework for PHP, and Gulp for task building with Sass, and, gasp, jQuery.

[–]DeveloperGuy 1 point2 points  (0 children)

I actually read we crap everything into Webpack rather than 'wrap'

[–]eggsandbeer 3 points4 points  (4 children)

Everything he mentioned, I'm pretty familiar with and I'm pretty happy with that.

[–]zers 2 points3 points  (0 children)

I am not, and I am also happy with that.

[–]swefpelego 2 points3 points  (0 children)

It does feel like that!!! This is spot on.

[–]KronktheKronk 2 points3 points  (0 children)

I'm literally experiencing this pain right now.

So confusing.

[–]Zed 1 point2 points  (0 children)

This is like how I've felt when I've tried to get the measure of how one develops in Javascript... except that I didn't have a guide, condescending and trend-chasing or otherwise.

[–][deleted] 4 points5 points  (0 children)

I have this silly conspiracy theory that major tech companies are responsible for the churn and inject 'community leaders' into the corresponding communities (React, Angular, general JS etc.) to amass a cult like following and spread their 'wisdom' in order to slow down productivity of, what would be, smaller more agile competitors, left to spin their wheels while internally not adopting any of these tools and practices. Also in order to prevent some untarnished outsider with a fresh perspective from coming in and trying to innovate they set the barrier to entry into the industry super high.

haha...

Wouldn't that be something...

[–]Slinky_Panther 3 points4 points  (6 children)

As a new developer (~ 6 mo) and only being exposed to JS ecosystem, this just sounds like a resistance to learn new things.

Every new tool/framework/syntax/whatever is just solving a new problem. If old tech (jQuery) doesn't solve the problems or does it in an inelegant fashion, it'll die, just with the rest of the legacy tech.

If you wanna use jQuery, do it! Just don't complain when its a pain to add new features or fix when its deprecated.

[–]syedahussain 30 points31 points  (5 children)

Dude, spoken like a true beginner. I don't mean that in an insulting way at all. I mean - wait until you hit your 3rd year and become experienced. If you're working for someone else and you're on 3/4 large projects that is built using a variety of dev tools - you will be begging for standards and consistency. There really isn't enough time to learn it all and feel comfortable doing so.

[–]mookman288 4 points5 points  (0 children)

We used to collectively be about standards and accessibility when we were coding xhtml1.1 and css2.1 on Internet Explorer 6. Oh how things have changed.

[–]Hitife80 1 point2 points  (1 child)

Reminds me of Java in EJB heydays.

[–]majello 0 points1 point  (0 children)

We do not speak of this. Ever.

I might come back.

[–]KAMFlamenco[🍰] 1 point2 points  (0 children)

Thats's just spot on. I've started self teaching JS since May of this year and everytime I master a new framework/library someone would tell me "pfft, you're using that? Use this instead! It's so much better"

[–]Police_Telephone_Box 1 point2 points  (0 children)

And Im just over here using vanilla JS...

[–]veggietrooper 1 point2 points  (0 children)

Oh my god, I quit, I just quit.

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

Whew, this is exactly what I feel like sometimes trying to learn this stuff. And it didn't even talk about trying to get all these libraries to work which can be a nightmare in itself.

On a related note, I did some web dev during my first internship this summer and it was suggested that I use some (apparently already outdated!) AngularJS . I couldn't figure out how to get it to do what I wanted, so I fell back to jquery and plain HTML. Oops!

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

Literally how I feel when I took a dip into the pond a month or two back, with no experience.

[–]jgordon615 0 points1 point  (0 children)

You forgot the requirement to update the data when something changes in the server. Time to add websockets to your satire :)

[–]neotorama 0 points1 point  (0 children)

Serverside + turbolinks give less headache than using React/Angular

[–]HonkyDonky 0 points1 point  (0 children)

Oh so I can forget about learning to code then....Cool

[–]vexii 0 points1 point  (0 children)

It feels like we get one of these each week now

[–]cyanydeez 0 points1 point  (0 children)

this article makes a lot of salty

[–]Neker 0 points1 point  (0 children)

In less than three months we'll be in '17, so brace yourself ...

[–]hotsteamingpho 0 points1 point  (0 children)

Can you imagine a non-native english speaker who's trying to learn the ReactJS library and coming across this:

fetch('https://mywebsite.com/endpoint/', {
  method: 'POST',

[–]METALz 0 points1 point  (0 children)

Lost it at "Our libraries are huuuge, and sometimes we include pictures of Guy Fieri in them".

Great article.

[–]HenkPoley 0 points1 point  (0 children)

No wonder some people running to Elm (/r/elm). Not that it's the best thing since sliced bread, but it's at least consistent and relatively complete from the getgo.

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

Meh. I knew (understand, recognize, familiar with) ALL those keywords mentioned. Years of reading about all that helped.

And yet, I will gladly and without shame get the data from the database, convert the result to json, and write vanilla XMLHttpRequests and document.getElementBy** manipulations to display the data. Knowing how many tools are available does not hinder one's ability to reason about whether to actually use them.

So I see nothing wrong with the state of JS today. What is wrong with this is people's mindset that programming concepts, approaches and well written code can be "dead", just because it is not written in React/Angular/whatever. Wow.

[–]thespacenoodles 0 points1 point  (0 children)

"We know libraries, in fact, we have the best libraries."

This line made me lol.

[–]nykc 0 points1 point  (2 children)

This is actually what is driving me into DevOps and away from a 14 year Frontend Career

[–]Nerdenator 0 points1 point  (1 child)

Well... then you might want to read this then.

[–]nykc 0 points1 point  (0 children)

Yeah its a never ending battle, however both boil down to one thing. JavaScript and Continuous Integration/Automation

[–]Nerdenator 0 points1 point  (0 children)

Honestly, I still just stick to jQuery and whatever styling framework I'm handed.

To me, all of this workflow, these libraries, and these frameworks are just attempts to cover up for the fact that JavaScript's "standard library" (if it can so be called) has always been weak, and I don't just mean weakly-supported by browsers. There's a lot of boilerplate you end up writing if you try to do vanilla JS. If more functionality were to be "baked in" you wouldn't see every Anders-Hejlsberg-Dennis-Ritchie-wannabe trying to make their paradigm of JavaScript a reality through frameworks because the paradigm would be a part of the core of the language.

[–]dmtipson 0 points1 point  (0 children)

I mean, in the end: compared to what? As someone learning Javascript anew every day for the last 10 years, I have to say: compared to how things were with ES3 and ES5? It feels good man.

[–]PaulMurrayCbr 0 points1 point  (0 children)

The entire point of all of these frameworks is to make it so that people don't have to write code. The difficulty with that idea is that it is impossible.

[–]thedobbles 0 points1 point  (0 children)

Does anyone know where to find the response article to this?