How it feels to learn JavaScript in 2016 - <AUTHOR> https://medium.com/@jjperezaguinaga/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f#.758uh588b <comment><USER2> Just a couple days I got into a conversation with my coworker about UI stuff. I had to test something against our dev UI. Last time I did UI work was back when having index.html, img/, css/ and js/ directories with maybe a script or two was the norm. I had to fucking run make and I still have no fucking idea what was going on when I ran make which compiled a bunch of shit. There was all this NPM shit going on (isn't NPM part of Node.js which is a server-side framework? WTF?). I got it working and promptly noped the fuck out that horror show.

The web is a giant fucking pile of dog shit in 2016.

<comment><USER3> I'm a content guy who knows enough web dev to be dangerous.

I made 3 manual edits to a css file to fix a couple of incorrect background colours in our web content the other day. I was a good boy and made a pull request for those same changes in the git repo.

Our developer explained that he doesn't actually edit the css file. He would have to work out the change in the hue (as a percent of the base colour) and update that in the sass file, then use gulp to compile a fresh version of the output css.

He said that this was a simple build process to get set up on my machine so I could do it myself in the future.

He uses a mac. I use windows.

4 hours later after hitting so many hurdles I finally got it working. I can't even recall all the issues, but do recall that I side stepped them all by moving to a particular version of npm which actually used a sane system for storing the dependencies.

With out that version of npm this simple build process required 15,000 files in my node_modules subdirectory in a structure so deep and convoluted Windows couldn't create them....

Of course now that I'm armed with the toolset to make these changes I've reverted to testing changes in chrome dev tools and emailing him requests.

<comment><USER4> a big problem with npm is, that a lot of package authors don't use the .npmignore [0] which leads to EVERYONE downloading your source/, test/ and docs/ folder even if only that one file in build/ is needed. That, combined with the micromodule mindset, leads to insanity

[0]: [https://docs.npmjs.com/misc/developers#keeping-files-out- of-...](https://docs.npmjs.com/misc/developers#keeping-files-out-of-your- package)

<comment><USER5> That's a very bad way of handling it. When will people learn that you can't rely on everyone being a good citizen? Is it really so hard to realize that you need to make your technology sane from the very beginning?

</comment></comment></comment></comment><comment><USER6> If you are doing a simple project, there is nothing wrong with just using jquery (or imho d3). If you know that your project is always going to be pretty simple or especially if you are learning.

I have been teaching a number of people javascript at my lab lately and I think its unwise to teach new javascripters using any of the modern tools or transpiling until someone runs into one the problems that those tools solve. Having been a javascript coder consistently from the jquery days until now, I am not pining for the simple old days of yore.

It can be hard to learn everything that goes into a big front end app these days but when used correctly all those tools are there for a reason.

<comment><USER7> This needs to be higher.

You shouldn't use any of these tools just because people tell you to. If you can't see what problem something solves, then start at a simpler/lower level of abstraction until you run into that problem, and can appreciate the tool that solves it.

Of course, this advice doesn't apply if you actually need to write a production app, and aren't just playing around for learning purposes :)

</comment></comment><comment><USER8> This is pretty much why I don't do front-end. I'm fully capable of it, but I just don't like keeping up with this flavor-of-the-week. It just doesn't feel like programming to me, or at least not the programming I enjoy.

Strangely, I see so many new developers rushing toward the front-end, which seems much more complicated in many ways than just building solid web API services, analyzing data, etc.

<comment><USER9> There is a money issue.

If you do keep up, you'll get amazing job offers.

If you manage to really be on the edge, you can give talks as well, expose yourself as a consultant.

That's much easier in JS than with Ruby, Python or whatever else.

<comment><USER8> Fair enough. I've hit a sweet spot now in having done Ruby for ~8 years, so I can get away with saying, "having someone else deal with the front end. I just want to talk about data".

The new problems I'm working to learn to solve are with ML, NLP, etc. I'd like to step away from web services completely soon, and just live completely with data.

<comment><USER10> I am curious, how did you transition into ml, nlp. I am thinking of transitioning to ml, as work is getting kind of boring for me, but most job requires at least a master in the relevant field. I am self studying right now, maybe going back for a master, but I felt I lack alot of necessary probability and linear algebra theorems. I can code svm, neural network from nothing. I understand basic markov chain, bayes network, but that is really just scratching the surface. Any recommendations?

<comment><USER11> The 2016 ml scene doesn't seem so different from the 2016 front-end wild west I gather from this thread. Unfortunately. Machine Learning is in rapid flux, the solid theory of svm and the like are getting abandoned for a lot of techniques that seems to work some times. Certainly some people have a very good intuition for what works, and how to make it scale, but there is no one authority and you have to keep constantly up to date.

</comment></comment></comment></comment></comment><comment><USER12> This was actually a didactic piece.

While criticizing the current state of affairs, it gives a nice overview of many of the emerging technologies and how they fit together, even if for some tasks it feels retarded to pull such an entangled mess of dependencies.

You can then go insane diving into any particular one :)

<comment><USER13> Being primarily a Java dev, it felt to me like half of this was critiquing the churn rate of using different tools (warranted) and the other half was lamenting the fact that people built tools to solve the common problems they have when developing in large teams (largely unwarranted). Most of those tools have direct equivalents in the Java ecosystem (and there is tool-churn in Java too, just slower).

Facebook, Google, large startups, and the others which are building these tools are doing so to solve the problems they experience in their teams' front-end dev processes. Ironing out the kinks in the code assembly line. And they are of course doing so in a path-dependent fashion: add tool N+1 to solve problem N+1 given the existing toolchain. The result is a lot of tools and a lot of context to imbibe at once, but it doesn't mean they are solving nonexistent problems. Just problems you don't have, or don't know you have, or don't have yet, or can afford to leave unmanaged when developing a small site with just a couple people.

<comment><USER14> Yes, it is called "Enterprising the sh __out of it ". And yes, Java (and C#/.Net) has a huge problem with that and Javascript is well on its way.

Large companies love to get cool haircuts and wear torn jeans and talk about building fast and being agile and yet, they continues to build frankenprojects.

<comment><USER13> I can't speak to other projects, but I know the additional pieces of tooling I add to my buildchain are there to automate tasks that are otherwise undocumented/uncaptured and thus easily forgotten (Joel Test, step 2). On a team of ~50 core committers and ~100 intermittent committers across the globe (which isn't that big compared to other teams), if it doesn't have a CI build running and passing regularly, it will eventually break and stay broken. Examples: code generation, database schema generation and checking, dependency compilation, building artifacts. Other pieces of tooling I add to orthogonalize and amortize common tasks, e.g. Dagger2, Immutables, AutoFactory.

Again, I'm not familiar with flavor-of-week web dev stacks and I'm not defending all of it, but there are clearly steady-state benefits to tooling, even if the initial setup often ends up being a maze because it isn't in the critical path of core developers.

I think there is huge benefit to be gained from projects considering the aggregate bootstrap effort required to get the whole stack running. But I still think this fragmented, modular approach, even with the downsides discussed in this thread, is better than the likely alternative: depending and waiting on a company like Microsoft to deliver a monolithic development environment for which a Product Manager has spent literally years crafting and honing the bootstrapping experience before release.

EDIT: wording

</comment></comment></comment></comment><comment><USER15> Cross-posting my comment from reddit:

I don't know about anyone else, but the problem I personally have with the crazy, messy JavaScript ecosystem is:

\- I am a relatively experienced amateur programmer (with limited [nine months] professional experience)

\- I can learn any new programming language, library, methodology, or whatever pretty easily

\- I don't have any formal experience using anything of this newfangled stuff; like the author of the article, my frontend experience involves plain ol HTML/CSS/JS, with a little jQuery to make things easier

\- nobody wants to hire me unless I have `n` years experience with newfangled language/framework/methodology `x`, `y`, and `z`

\- I don't have a CS degree

Unless you're a massive operation like Facebook or something... just give me a week to look through your website's codebase, I'll figure out how you guys do things and I'll start being productive before you know it. If you're using stuff that I've never used before, I'll learn it.

I _should_ be a _more_ attractive hire than someone who has `n` years of experience _only_ using `x`, `y`, or `z`, because the way I think about getting things done with computers isn't tied down to any one specific framework... but it seems that this isn't how hiring works in the industry right now... which is directly at odds with the rapidly-changing nature of web development!

As a result, I don't feel inclined to learn any of this new crap. What's the point? Apparently I should've learned it all `n` years ago, and it's too late now?

<comment><USER16> It sounds like your gripe isn't with the knowledge base, but with the people doing the hiring. The issues there are very real in that, if you're dealing with a non-trivial codebase, there's no way to tell whether someone with very little real world experience is a competent programmer or just "faking" until you've got them working on it for a few weeks, and even then they may not be worth the time you put into training them until a couple of months down the line. And the people in HR for most organisations don't have a clue how to tell the difference.

So they make up a bunch of gatekeeper requirements that allow them to filter out anyone that doesn't fit the mold early in the process. They're still likely to find someone who can do the work this way even if it means throwing out a decent percentage of other candidates.

It's messed up, but it's kind of where the lack of technical knowledge in HR, and the need to avoid any potential lawsuits have left us.

<comment><USER15> This has been my exact experience. I just had a week of phone calls and emails about a very promising, well-paying frontend job opportunity. All of them were with no-technical-knowledge buzzwordy HR types who were very friendly and assured me that my resume and portfolio were great, and that I would be a good fit for the job. The whole thing ended with a phone call that went something like:

"Hi, so, your resume says you have nine months of experience?"

"Well yes, but I have countless personal projects under my belt, I designed and built game engines with teams of students..."

"Yes, but this position requires four years of professional experience."

"Well I still think I'd be a great fit for your company, I have experience with the specific technology stack you use, you can ask my previous employer..."

"Yes, but this position requires four years of experience, so, I'm sorry, but you don't meet the qualifications."

"Oh. Okay, thanks, bye."

Another story:

I got a call about a job I'd applied to. The guy on the phone said I looked like a promising candidate, but my resume didn't list the start and end dates of my previous job (nine months total), as I'd accidentally sent an old version of my resume. I emailed the correct version of my resume, and nearly immediately got an email back, saying, and I quote:

"Needed 1+Years of Experience so if you can change the duration time"

After a few minutes of consideration, I edited my resume to change the end date of my previous job to be one year from the start date, saved it as a separate copy, attached it, and sent it back. The guy immediately replied asking me to verify that the 50k starting salary would work for me. (Before anyone says 50k is too low, rent is due and I'm desperate.) This was just last week and I haven't heard back since but this is the most promising opportunity I've been able to find after months of searching.

\---

The thing is, I don't even _want_ to do frontend web development. I want to work in game development, but apparently to get a start doing _that_ professionally, I need professional programming experience on my resume to look good because those positions are so competitive. Okay, fine, I can do web development, front- or backend, I thought. That'll be great for padding out my resume, and, y'know, paying rent. But it turns out that landing one of these jobs is also really difficult!

What frustrates me about all of this is not so much my own position, but about the future of the industry. As time goes on, I think we're going to see more and more people take the path I took of learning stuff on their own instead of at college. Formal CS education is far from useless, but if this stuff's all available for free online, people are going to download it, play around with it, and learn how to use it... it just seems crazy to me that companies are hiring just-out-of-college CS graduates over people who have made a ton of stuff on their own over the years.

<comment><USER17> Two things:

 _All of them were with no-technical-knowledge buzzwordy HR types who were very friendly and assured me that my resume and portfolio were great_

I don't inherently agree that this is how it should be. I do understand that businesses want to minimize risks (don't hire bad employees for 6 months) while saving time (don't interview them in the first place). One of the easiest ways to achieve the latter is by having minimum requirements.

The rebuttal to that is always having a good interview process that measures the candidate on a personal level while also getting a feel for their technical prowess. This is another problem. Some people think all-day interviews are perfect for this. Others want to show up for an hour or two, white board something relevant, and call it a day. Some want take home project. Others demand that potential employers pay them if they're so keen on giving a take home project.

I don't think there is a silver bullet. I think there are objectively better ways than other when evaluating talent such as being flexible. For example, a new graduate will almost never have 2 years of professional experience. A new graduate may have an impressive GitHub profile filled with _completed_ , demo- able projects alongside contributions to other people's projects. While not a direct substitute, this is a damn good indicator.

No one can seem to agree on the entire process though, so we're stuck with HR Henry and his checklist.

 _(Before anyone says 50k is too low, rent is due and I 'm desperate.)_

Depending on your location, $50k can be plenty, Where I live, $50k is great salary for a single person. Also, pay isn't the only thing that makes a job worthwhile. My starting salary was competitive, but definitely at the lower end. The work/life balance, however, came slightly before salary.

</comment></comment></comment></comment><comment><USER18> I couldn't get through the entire thing. Even knowing that it's a fun/sarcastic piece of writing, the portrayed pain is all too real, as someone just starting to dive into the front-end.

In all honesty, can I still use jQuery for new projects without issues in 2016? Is there a real reason not to?

<comment><USER19> Yes, you can. No, there's no real reason not to.

But honestly, I'd go with React if you can. The reason is, if the app starts taking off, and you end up with a team maintaining your app, you're much less likely to end up with an unmaintainable mess in two years than if you use just jQuery.

All applications, especially websites want frameworks. The framework is essentially a way to organize the massive amount of complexity boiled in. If you just roll with libraries, then you end up cobbling together a framework on top of it. You will then have to maintain this framework. This is fine when it's just you, it will coalesce into a bunch of conventions that's fairly easy for you to reason about.

But once you start involving others, then you're going to see your nice conventions get rekd like a bull in a china shop. Not everybody sees problems the same way you do.

If you pick the framework beforehand, then you don't need to maintain it, you can let the nice people at Facebook / Google do it for you. And whenever you finally get others involved, they're limited in the amount of architectural damage they can do because they have to stick to the conventions of the framework.

<comment><USER20> I agree - I think React is simple enough that there's no reason not to besides the overhead of JSX preprocessing (which I suppose isn't required but I would definitely recommend). It really is more of a library than a framework, which is great for starting out because there are fewer concepts to understand. Then when you start adding more people and your application gets more complicated and you need to manage your data flow in a more consistent way, you can add something like Redux after the fact incrementally. As long as you don't let components become too large, refactoring isn't too difficult.

<comment><USER21> React isn't _that_ simple. You still have all the package manager/transpiler/build baggage. You still sacrifice pages that aren't blank if javascript is disabled of fails and all the potential SEO/accessibility costs of that.

And you suddenly end up with great globs of javascript in a page that might not need it.

<comment><USER20> None of those things has anything to do with the inherent simplicity of the library itself.

<comment><USER21> Out of the two simplicities one has an actual impact on usage.

<comment><USER20> I guess what I really meant to say is that you could levy the exact same concerns on many other libraries / frameworks. None of that is specific to React.

I guess I was also assuming that if the OP was considering using React in the first place, that they were doing more with jQuery than just minor interactivity improvements. But I suppose your concerns are valid if that assumption isn't true. I'm thinking app, not blog.

<comment><USER21> Maybe he was but I do worry that anyone new to front-end is being pushed towards frameworks rather than being told to start with the simplest approach possible.

I saw a comment from someone a few weeks ago who knew angular but had never used jQuery. I was rather baffled how that had come to pass!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> It continually shocks me how much whining developers do about sometimes having to learn new things. The requirements for continued education are shockingly low (read: non-existent) in our industry, compared to other, similar intellectual/white collar industries - doctors in California are legally required to do 50 hours of CME/2 years, lawyers in California are legally required to do 25 hours of CLE/3 years, and those are both fairly standard. There are a tremendous amount of jobs out there that won't require you to learn anything new, ever, if you don't want to (think of how many thousand brain-dead Java jobs are out there). There are plenty more that will require you to learn one or two new things (any of the hundreds of consultancies and companies that picked a fairly standardized stack and work with it all the time). And then there is a tiny subset of companies that are actively working with new tech and trying new things, and a tiny subset of people actually using all of those new things. Whining about how "it's too complicated!" because someone somewhere provided you with some new programming tools for free because they thought those tools were useful and cool is an ugly look for a profession that's so prone to patting itself on the back while loudly proclaiming how forward-thinking it is.

<comment><USER23> Learning in other industries is offered in institutional settings as part of the profession.

Learning in the dev world consists of aimlessly screwing around with an undocumented, unsupported, glitchy web/server stack for many many hours unpaid after you've already spent 40 hours that week putting bread on the table.

The whining has less to do with the "learning" and more to do with the yak- shaving part of it torturing us endlessly in the off-hours. And, unlike in medicine and law, there is precious little professionally-written, detailed, helpful literature to help us along the way. There's just "quick install" and then a command/api reference. That is... not up to the level at which medicine and law have their industry practices & standards documented.

</comment></comment><comment><USER24> I'm in a weird position where I like JavaScript and Node but dislike frontend (or at least I am disliking it more and more).

With Node, I can get quite far with just a couple of dependencies that install quickly. I don't need transpilation unless I want to use TypeScript or PureScript and I can target any version I want. I find it very fun to mess around with Node and a bunch of little modules.

I am slowly "transferring" back to server-rended pages using Node or Elixir. Probably not good for my employment (even in NYC most JS jobs are frontend), but whatever.

If I was learning JS right now and didn't care about employment I'd just learn Node (which just means learning JS really) and experiment with stuff.

<comment><USER25> JavaScript, admittedly, has a few more quicks than the average language but I quite like it. I know a lot of people who also feel the same way. (And as many how, of course, hate JS.)

It still feels to me like we're in the early days of node and the dev infrastructure for "modern" sites. Hopefully, things stabilize soon(ish).

</comment></comment><comment><USER26> Reminds me of "starting Rails today is like starting to watch a soap opera in the 7th season"

[http://words.steveklabnik.com/rails-has-two-default- stacks](http://words.steveklabnik.com/rails-has-two-default-stacks)

Be thankful, at least it's not 2013, the new-js-framework-on-the-front-page- of-HN-every-day era.

<comment><USER27> yeah many old-timer rails folks will say skip rails and use Phoenix instead lol.. for concurrency and all.

</comment></comment><comment><USER28> I've found using Babel / React / transpile tool-chain is actually fairly impossible to use for the majority of developers. I've given up on it several times in favor of plain-ole-javascript and jQuery.

The amount of time it takes to ramp-up on the technical knowledge isn't insurmountable. The main issue is bloat in both code size and dependency chain instability. On a slow connection, you might find yourself battling against your tool chain for half the day. In the case you actually hit a code problem with the underlying technologies, it's going to be hours if not days searching Github for the patched version of the module. If you actually are able to path the specific dependency, it will probably break something else.

I do have hope though. We are starting to see a lot of really cool Babel / React components and projects. I think with a bit more time, we'll get stability in the eco-system as there are less deltas to the underlaying code dependencies and the browser vendors catch up with ES7 features.

</comment><comment><USER29> Like a lot of 21-year-olds, javascript has gotten big and strong, but its brain hasn't finished developing yet. It hasn't figured out what it wants to do with its life. It engages in binge drinking a little more than is healthy. It's sowing its wild oats. Didn't we all when we were 21 (or didn't we wish we did)? It has 3000 Facebook friends. Last year it had a best friend, but now it's hanging out with someone else and doesn't even talk to that other one any more. It's kind of preoccupied with being cool and popular. Young adults can be very self-conscious and anxiety-ridden. Constantly checking its status on social media ("OMG, I wonder what I look like on iOS 10?") probably isn't helping things. Still, it's really smart and helpful and has a lot of talent. Give it time. Cut it some slack. It will find its way, make something of itself, and make you proud. You'll see.

</comment><comment> at-fates-hands You also have to keep in mind a few things:

1 - I've never referred to myself as an "engineer" since I don't see myself as one, nor do I have an engineering degree. This includes the fact I do not have a four year CS degree either.

2 - Front end development has now split. Being a web "designer" means you know HTML5, CSS3 which includes LESS, SASS, PostCSS and other CSS pre-procssors

3 - Being a web "developer" means you're more likely to be a Javscript developer. Meaning you're familiar with Angular, Backbone (I know its soooo 2014 isn't it?), React and other JS frameworks. Every interview I've done in the past two years has almost exclusively focused on JS and how well I know standard JS. Closures, inheritance, debugging, etc. Nobody cares if you know much else other than that.

<comment><USER30> Where are you interviewing? All I get is Angular and React questions for interviews where I stated up-front to the initial contact that I'm no expert on either and have tended to stay focused on core technology developments when studying on my own time.

</comment></comment><comment><USER31> Loosely related: "The S stands for Simple"

[http://harmful.cat-v.org/software/xml/soap/simple](http://harmful.cat-v.org/software/xml/soap/simple)

<comment><USER32> This is insightful. Of course, the OP is consciously playing off the earlier app-deployment spoof ([https://circleci.com/blog/its-the- future/](https://circleci.com/blog/its-the-future/)).

But this earlier spoof may well be based, intentionally or not, on the SOAP piece you linked -- which was a hit on HN 7 years ago ([https://news.ycombinator.com/item?id=2079631](https://news.ycombinator.com/item?id=2079631)).

Thus prompting the observation and related question: These three areas - front-end, deployment, RPC - seem to have engendered a churn in standard approaches, and a corresponding cultish devotion to certain toolkits -- leaving them open for satire. But yet, there is also a need for a guru to explain WTF to do, because a lot of practitioners need to get these jobs done.

So, what is the deeper parallel between the areas? E.g., a lot of corporate resources suddenly poured into these problems, and everyone is funded to come up with, and promote, their own solution?

</comment></comment><comment><USER33> As a person who has to build a relatively simple webapp from time to time, it's tiresome. I usually take a look around - what's trendy. It results into lost night, since I learn that everything requires two times more stuff than six months ago.

In the end I go with vanilla JavaScript and whatever new APIs I can use and polyfill.

No, wait. I made a webapp with React. While occasionally seeing Flux and friends mentioned, I was strong. I went with vanilla ReactJS.

I mean, those web stacks just get obsolete too soon. Your super tuned gulp setup will be obsolete in a year or two. What will you do then? Re-learn all new things?

It seems to me that there is a frontend development stack bubble coming. When I had to change bootstrap's base font size, I had to download and learn awful amounts of stuff. Which is on my machine. And I will never use it again.

</comment><comment><USER34> If you are sick of javascript on the front end, but don't want to give up the fancy-pants UI, you could do worse than my library, intercooler, which lets you add AJAX to your app with a few HTML attributes.

[http://intercoolerjs.org](http://intercoolerjs.org)

Make REST work the way it was intended, supports CSS transitions, request indicators, etc.

Good little library that eliminates a lot of complexity for web apps that don't need all this junk (most of them.)

<comment><USER35> Just saw intercooler referenced in a post a couple days ago and took a look. It does look refreshingly simple to get started.

I've got a basic app with JSON end points already created. I was going to give VUE a go but after looking at intercooler I'm going to create an alternate set of /IC/* URLS and send out HTML instead. I'll soon see how it works for this task.

<comment><USER36> _Just saw intercooler referenced in a post a couple days ago and took a look. It does look refreshingly simple to get started._

Aaaaaand...we've come full-circle now:

 _Intercooler depends on JQuery, version 1.10.0 or higher._

:-)

<comment><USER35> _> Intercooler depends on JQuery, version 1.10.0 or higher._

I don't have any real problems with jQuery being in the mix for intercooler. Even with that, jQuery appears to be an underlying library used for convenience rather than a library an intercooler coder would have to know and code against.

I do appreciate the irony when taken in context with the original article though.

</comment></comment></comment></comment><comment><USER37> "It's 2016 man, no one uses jQuery anymore, it ends up in a bunch of spaghetti code. Everyone knows that."

I prefer "jQuery soup."

</comment><comment><USER38> And to think that I went into web dev precisely to avoid dealing with complex build chains and horrible UI libraries...

<comment><USER39> That's because when you started, all of the complexity was in the back-end; this has moved to the front-end, with backends becoming simpler and more focused on providing data.

<comment><USER38> The overall complexity was still order of magnitude smaller. There were no transpilers, shims, or complicated multi-step builds, and I knew every single library I was using.

</comment></comment></comment><comment> vladimir-y Article title is absolutely not correct, front-end developer is supposed to build an entire UI and corresponding client-side logic, not just write some abstract JavaScript code, code itself is nothing. So it's not about write JS code, but about building maintainable and scalable applications.

All that stuff is actually required to build something maintainable, especially modules. React is not a silver bullet, but nowadays SPA and components approach should be familiar for any front-end developer. I like Typescript was mentioned there.

</comment><comment><USER40> I guess I'm behind the times in that I still use jQuery. Is it really worthwhile to go through everything described in this article to create a simple filterable table?

<comment><USER41> Yes, it's definitely worthwhile moving past jQuery, but no you don't have to do everything described in this article. There's a lightweight framework called Mithril that when used with MSX will give you the feel of React, i.e. the state of your app flows in a straightforward way from the state of your objects, rather than from a series of imperative jQuery operations.

Just start with this example and customize to what you want to do:

[https://github.com/insin/msx/blob/master/demo/index.html](https://github.com/insin/msx/blob/master/demo/index.html)

<comment><USER42> This comment is kind of ironic, isn't it? OP asked whether he has to use a framework (albeit a seemingly-complicated one) and you suggest another framework for him to use. Not saying you're wrong, or anything. I just found it kind of funny.

<comment><USER41> What comment are you referring to where someone asks whether he has to use a framework? The comment I'm answering is this one:

 _I guess I 'm behind the times in that I still use jQuery. Is it really worthwhile to go through everything described in this article to create a simple filterable table?_

There's a vast difference between everything described in this article and using _a_ framework.

</comment></comment></comment></comment><comment><USER43> Wow. 140+ comments and nobody mentioned the Python 3 jab :)

Seriously now, I gave up front-end stuff when it began requiring me to use Node to bundle files together, and find it terrifying to see Yeoman used as a code generator for non-JS runtimes and frameworks... building software atop quicksand (be it frameworks or libraries) that shift every week is insane, and it feels like the modern day version of just-in-time job security.

My use of thumb these days is to not use more JavaScript than what I can read in one sitting, unless a) it's D3 or a similar single-purpose library and b) I get a Docker container to run npm and all its funk inside that I NEVER have to look inside of.

My dream is that JavaScript dies and that the industry moves to something like Elm, ClojureScript or TypeScript, with a functional and/or hard typed approach.

</comment><comment><USER44> This makes me think of a sentence I read years ago: "We love to fight complexity with complexity."

I think whoever said this referred to the various IPC methods on Windows, but I do not remember for sure. Seems like some things never change.

</comment><comment><USER45> Reminds me of [https://circleci.com/blog/its-the- future/](https://circleci.com/blog/its-the-future/)

<comment><USER46> FTA

       The following is inspired by the article "It's the future" from Circle CI.
       You can read the original here (https://circleci.com/blog/its-the-future/).

</comment></comment><comment><USER47> This was spot on for me as a hobbyist who has returned to JS after a hiatus of roughly 3 years. On the one hand, it's exciting to see JS evolving into a sophisticated language with dozens of new constructs specced out. On the other hand, as a casual enthusiast I feel trapped between using a small subset of the features available, or wrestling with a tangle of temporary crutches while implementations catch up with the new standards.

</comment><comment><USER48> It's bad enough the facts on the ground make it a virtual impossibility to circumvent JS altogether. The best we can do is always wearing gloves when handling it and to never write it manually.

JS, for the oversimplified thing it is, is just systematically overextended with the loads it has to carry now. No framework on earth will make that go away. And neither will ES6.

</comment><comment><USER46> See also: [https://medium.com/@boopathi/it-s-the- future-7a4207e028c2](https://medium.com/@boopathi/it-s-the- future-7a4207e028c2)

<comment><USER49> I knew I'd read this somewhere before!

</comment></comment><comment><USER50> I know the irony of introducing a new tool in the comments of this particular blogpost, but a while back I decided to completely ditch javascript and go the clojurescript route. I've been super happy ever since.

The syntax is stable, clojure is extremly well designed, the ecosystem a lot clearer and tools - well you have lein as the main one and that's about it. On top of clojure, you get google closure for free and can optimize the hell out of it with advanced mode compilation out of the box.

And that's the 'vanilla' experience! No separate library required! You can still interface with normal js and npm modules of course but you find yourself using npm install a lot less.

All major tools have cljs wrappers that are just a joy to use (looking at reagent (react), re-frame (redux), om (react+graphql)

</comment><comment><USER51> Some parts of the article go too far (developers finding their own ways to make things, continuously), but common idea of using Babel and writing in modern JS is prevalent - because you have to use a bundler to concatenate source code and import dependencies. But using a bundler feels like a compile step - and it's so easy and desirable to add another step and enable modern JavaScript ES2016+ in your web app. And this part is now a standard de-facto, but some people use make, others gulp, I happy with npm run or just bash scripts. But common idea of bundling and JS compiling holds true for all developers.

Actually, not yet completely solved problems in terms of consensus how to do things stay here: delay loading (login form/admin panel/main app code or features separation), component assets dependencies, modular CSS, and, of course, frontend and server side architectures with CycleJS, Elm, SAM, Redux, Angular 2 as candidates but those yet have unsolved problems: either work slow (and making simple app's size more than 1 MB zipped) or you have to write some boilerplate of source code lines. And comparing side there, of course, ability to componentise infinitely and hierarchically. And for accessing data GraphQL emerges as hot modern technology. And a lot of other cool things to keep tracking every day... It never stops, growing larger and allowing to reuse all third-party dependencies (beside of components - every team mostly prefers writing their own, because those play better with their chosen software architecture) and constantly rewriting your own source code.

</comment><comment><USER52> Web development is _very_ volatile.

It is also a discipline that lowered its entry barrier a lot, and now coding camps are producing a deluge of graduates, all of them attracted by the promise of a 6 figure salary.

Even if pessimistically only 10% of them are good, they graduate every 14 weeks compared to 208 weeks for a CS graduate.

As of 2016, learning JavaScript might be very profitable, but I wonder for how much longer.

</comment><comment><USER53> I have no patience for this kind of article.

Here is the fundamental essence of the article that drives me nuts: the assertion that the reason someone would move to one of these new technologies is because "it's trendy" or "everyone is doing it", "or angular is so 2015", "it's for hipsters". This is the standard mantra of old people everywhere who are too old to learn new stuff.

If the guy would have taken the time to learn the purpose of these tools, their pros and cons, and why one would choose to use them or not use them, that would be interesting. But that would take a bit more time. And actually learning something new.

While I emphasize with old people who feel the world is moving too fast (I am one of them), I have no tolerance for the basic anti-logic of the article: the assumption that new technology only exists because of trendy hipsters who just like change for the sake of change. This logic only exists to soothe the mind of old people who don't want to learn new things.

</comment><comment><USER54> I don't use ES6 because of the cool kids, but because it makes some Javascript things more tolerable.

One constructive thing that I would like to add is that the "You don't know JS" book series has really taught me a lot about the common pitfalls of JavaScript. Since then my JS stress levels have been reduced dramatically!

</comment><comment><USER55> Hilarious article, but seriously, can somebody tell me where I should begin learning all of this stuff?

What are the 2 or 3 top-priority things I should get started with, if I have experience with Django/HTML/JQuery, and want to expand into more advanced frontend programming?

<comment><USER56> Have you looked into stateless React + Redux? These libraries are interesting in their suggestions for app architecture, and their api's are minimal.

One day perhaps React and Redux will be replaced by something else, but I think the strategy of a GUI functional layer consuming a stream of events is here to stay, and I wouldn't be surprised if it spread to native app design.

</comment></comment><comment><USER57> The last time I touch JS was probably many years ago, while learning web development in the university.

I mostly write desktop+native mobile apps, and without doubt my JS skill is very rusty :(

Any suggestions how to catch up with JS trend nowadays? JS for web dev is pretty much unavoidable, right?

</comment><comment><USER58> Psst... Meteor solves the entire build process for you... you can use React with it now... it integrates with npm now... you can use Apollo with it to connect to any type of database...

</comment><comment><USER59> This article is very good and sums up very well a feeling that a lot of us is having right now. However, i think that title is throwing an error, as the article is not about learning JavaScript, but, only about learning Front End. I wrote a little about it here:

[https://medium.com/@DiegoZoracKy/stop-blaming-on- javascript-...](https://medium.com/@DiegoZoracKy/stop-blaming-on-javascript- when-all-you-want-is-to-talk-about-front-end-73ff19fef861)

</comment><comment><USER60> My advice would be to pick one tech stack that is prevailing in the market and master it. Once you master one you will see similar concepts been largely repeated in other frameworks.

</comment><comment><USER61> Takeaway: use Elm.

</comment><comment><USER25> Slightly related, but if you're helping someone start out learning to code, it's worth reading this:

[http://pgbovine.net/programmers-talking-to- beginners.htm](http://pgbovine.net/programmers-talking-to-beginners.htm)

You don't _need_ react to build a cool site in 2016, but if you're dead set on that, then this piece is a good intro to the set of questions that arise!

</comment><comment><USER62> This is what happens when management gives up and turns IT to developers. And I believe that happened when accountants took over because of Sarbanes Oxley. The accountants had no idea what they where getting into. Then the Tech Bubble happened and $$$ filled their eyes. Developers became GODs and now... This happened.

</comment><comment><USER27> I'm looking into react, and I fix things in legacy code, but that's still mostly jquery, or native js. But backend I just get things done.. I much prefer working on teams where there are 'specialists' who do all the frontend and I just give them an API to feed into it.

</comment><comment><USER63> I wrote a post that might help anyone feeling overwhelmed about all the things to learn:

What Not to Learn [http://gedd.ski/post/what-not-to- learn/](http://gedd.ski/post/what-not-to-learn/)

</comment><comment><USER64> I couldn't help but yell "Third Base!" at the end of this. [https://en.wikipedia.org/wiki/Who%27s_on_First%3F](https://en.wikipedia.org/wiki/Who%27s_on_First%3F)

</comment><comment><USER65> I'm getting away with npm, webpack, typescript, babel and react (with jsx) with some lo-dash.

Never learned browserify, barely grunt and bower, happily forgot thorough knowledge of gulp. Actively pushed out all of the awfulness of angular.

</comment><comment><USER66> Ok, So I have only ever done backends and some android stuff,and been trying to learn building UIs. It's been hard. This post finally cleared some of the confusions I had but was afraid to ask.

<comment><USER67> I'm a (mostly backend) web dev, and I've been trying to get a simple Android app up and running - it's definitely more challenging than I'm used to.

</comment></comment><comment><USER68> I was moving from Full Stack to Backend/DevOps without even noticing, in the last six months. At least with this post I can now admit it to my self and explain why to others on LinkedIn.

</comment><comment><USER69> > Oh, like Bower!

> Oh, like Angular!

IMHO if you know about those you pretty much most of the terminology the "js guy" is using, personally speaking i know Angular haven't used yet bower in any project.

<comment><USER70> If you used Bower and Angular in 2011 and disappeared for 5 years, then nearly all of the stuff that the "js guy" talks about would be new to you.

</comment></comment><comment><USER71> This has to be one of my favorite HN posts of the year.

</comment><comment><USER72> This encapsulates my experience learning angular 2 and react these past two years. Lol

</comment><comment><USER30> Our industry has been overrun by resume-bullet-point silicon-valley-framework- coddling noobs/whores. I have always prided myself on staying up on the latest in core web technology. It's the reason I know what a !@#$ing tragic waste most of these idiotic frameworks are.

jQuery had the DOM covered and is in fact now redundant itself and could be managed with a much, much lighter lib that spends a lot less time normalizing assuming you're dropping support for browsers even Microsoft no longer covers.

LESS and SASS were good for vars and should have stopped there. Standard browser support is finally in the works for that. But you certainly don't need both and for FFS you're just making an unmaintainable styling mess using all of the other features, especially (noob, please), nesting which needlessly adds to selector count like nobody's business.

We do NOT need to ASP/JSPify the DOM. Keeping content/structure code separated from the behavior code was the reason proper front end devs were running circles around Java/ASP.net devs. What the fucking fuck is the point of adding your own custom tags to HTML, which already had a perfectly serviceable approach to binding behavior to it? Or creating an XML-like syntax you mix/match directly with your JS?

Silicon valley noobs, please. I had lazy loading scrollable tables that could handle 50,000+ lines of data back when Google Docs was choking on 2,800. This shit is not hard. Stop wining and spend the time you apply to learning frameworks with next to no core technology understanding to actually learning the technology you have before you start adding pointless layers that solve nothing on top of what's already there and you'll be shocked at how not-hard it can really be.

Or let's not. Let's load a massive freaking ridiculous CSS and JS library by the Twitter devs, because, yes, surely they know through their work with a site that essentially boils down to a single text area, a great deal about handling complex layout and UI concerns.

AMD for a web app? Okay, I can see it, certainly for non-trivial SPAs , which NOT EVERY SITE NEEDS TO BE. But first, how complicated is this web app? If not-very, why were people struggling with linking scripts in the right order? Why did they need to link so many damn things to get the job done in the first place?

And FFS, it's just "data-binding." Calling it "Two-way" is redundant and makes you sound like a jackass who doesn't know what the fuck is actually happening. And it's just a pattern. And not a very hard one to implement.

MVC and MV? are great. Really, whatever the fuck keeps data separated from an app layer from your DOM-handling is fantastic. Frameworks that make it easy to follow such patterns in a way that all developers can become familiar with are great too. But sweet JavaScript Jesus why won't they just stop there?

We used to laugh at Java developers. What the fuck are we doing to ourselves? Why haven't I gotten an honest to god core web technology or native JavaScript question at an interview in like 3 years? We have indeed, ruined JavaScript.

Thanks a lot assholes.

</comment><comment><USER53> That article could have been shorted to: I'm old.

</comment><comment><USER73> My comment from the medium post:

I think the key takeaway here is: a) requirements suck always, b) figure out what the real problem is that needs to be solved, c) fashion your solution to the unique needs and culture of the team you are a part of.

Computers are hard.

I've been specializing in front end stuff for 4 years and it still took me a month to master the react ecosystem. It's better than anything that came before it though by a landslide.

People whine a lot expecting everything to be easy. There is a laundry list of classic cognitive distortions present in these types of articles.

If this is literally your only requirement and no new features will ever be added: "create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server".

Which I highly doubt, but let's go with that premise. What you'd really want is to be step back and look at the needs of the app. The real needs are websockets for real time, and a way to tail the oplog of the database you are using to get the latest data pushed without needing to have the websocket proxy you'll setup poll on the server side.

The front end implementation is fairly irrelevant here, IF nothing ever changes ( yeah right ).

If that is truly the case ( it's not, believe me ), then just use a jquery datatable plugin which updates it's data when new websocket data comes in. That's like 100 lines of code, done.

If you're using mongo it's not too hard server side because you tail the oplog, the way meteor does. If you're using something else you might have to poll server side to get the new data, which is honestly the hardest part of this problem. The front end of this is not the issue frankly based on the requirements presented.

This is IF this is all a one off project that never changes and will never need new features or bugfixes.

If it ever needs to be changed, you do benefit a lot from using more modern technologies so instead of a lump of jquery spaghetti you have clean component api boundaries which can be easily unit tested and modified in isolation without breaking other areas of the app.

Every situation is different.

As presented, this is more of a server side problem than a front end problem. What data stores are you using, how are you going to get that data in real time, how are you going to set up a web socket server, how are you going to scale said web socket server etc.

I think that blog post comes off as attacking the wrong problem and complaining that computers are hard. It doesn't appear the requirements were clearly understood and evaluated. Picking the right tool for the job is really a thing. Dogma is dangerous in software for sure. On that point, I agree.

</comment><comment><USER74> If you stay on the surface and follow trends you will think front end web development is insanity inducing. But if you go deeper, develop your own thinking and deep patterns you will realize that the web platform is doing just fine and is progressing better than most languages/platforms out there.

</comment><comment><USER75> one thing i disagree with is how functional programming concepts are equated to all the bullshit javascript ecosystem has grown to be.

<comment><USER76> I didn't think they were equated. I got rather a sense of exasperation that javascript includes them at all.</comment></comment>


New York eyes 'textalyzer' to bust drivers using phones - <AUTHOR> https://phys.org/news/2017-07-york-eyes-textalyzer-drivers.html <comment><USER2> This is a gross violation of the 4th Amendment

Twelve people died over several years in crashes related to phone use while driving.

Twelve.

And the state of New York think every cop should be able to get a forensic copy of every driver's phone because of it?

No.

No.

No.

That's ridiculously unconstitutional.

<comment><AUTHOR> I agree. I'm not cool with the idea of some hardware device being plugged into my own, with no idea what the device even does, or records.</comment></comment>


Bangladesh Bank hackers compromised SWIFT software, warning issued - <AUTHOR> http://www.reuters.com/article/us-usa-nyfed-bangladesh-malware-exclusiv-idUSKCN0XM0DR <comment><USER2> Related analysis: [https://news.ycombinator.com/item?id=11563690](https://news.ycombinator.com/item?id=11563690)</comment>


Offshore Wind-Power Prices Are Plunging - <AUTHOR> https://www.bloomberg.com/news/articles/2019-09-12/iberdrola-sees-u-k-offshore-wind-price-fall-below-subsidies <comment><USER2> [http://archive.is/2caG4](http://archive.is/2caG4)</comment>


Paul Bocuse, Celebrated French Chef, Dies at 91 - <AUTHOR> https://www.nytimes.com/2018/01/20/obituaries/paul-bocuse-dead.html <comment><USER2> I very clearly remember eating there for my twelfth birthday. Absolutely mind- blowing in every possible way. I still remember the cheese cart as if it was yesterday. The food was excellent and the service was... I don't know how to put it. An anecdote may be clearer: at one point I dropped my fork on the floor, as sometimes happens where you're a kid. Well I didn't have time to bend down to pick it up because a waiter had run over and grabbed it before me. About 5 or 10 seconds later he returned with a clean fork, set on a cushion, itself carried on a large silver plate. So there you go, as far as I'm concerned a well deserved reputation and a sad day for french cuisine.

Edit: just to clarify, that this was 27 years ago and I haven't returned since.

<comment><USER3> Not to take away from your story, but every single restaurant I have ever been in my life does this - if a waiter sees something drop on the floor, they'll bring you a new set. This is an expectation and not the exception when you go to any sit down restaurant.

<comment><USER4> I don't believe the point of the antedote was that they brought him a replacement piece of silverware.

<comment><USER3> I understood the point that the service was excellent. All I am saying is that bringing a new set of silverware is very common.

<comment><USER5> I really dont know how someone could read that story and think the point he was trying to make was "i'm impressed that this restaurant brought me new silverware".

</comment></comment></comment></comment></comment><comment><USER6> What I like about him is that he was upset about this this super small dish that you pay at a really expensive price. He used to say "La nouvelle cuisine, c'était rien dans l'assiette, tout dans l'addition". What means: the new cooking, it's nothing in your plate, everything in the check.

If you like great food, you should come try it traditional french food in Lyon, in the kind of restaurants we call "Bouchons" ([https://en.wikipedia.org/wiki/Lyonnaise_cuisine](https://en.wikipedia.org/wiki/Lyonnaise_cuisine))

Some restaurants I recommend for not crazy price: Le musée, Leon de lyon

<comment><USER7> That's a very sad & true fact. I had a family dinner at a one Michelin star restaurant, and while everything was really good, I have a hard time recognising what I ate as a meal because of the quantity. The basic point of a meal is to be satiated, so I don't see the point of eating (very) good stuff for that price if I need to eat something else two hours after.

<comment><USER8> It probably depends on the restaurant and the person. I'm nearly two hundred pounds and active and I've eaten at a half dozen Michelin 3-stars, with meals usually lasting 3-4 hours. Never left feeling hungry.

<comment><USER9> For me it's not about leaving hungry, but more about having an actual taste of the food you're eating. For example I've eaten at 42 grams which was a fantastic 2-star in Chicago but I can't really remember any dish as they were just a few bites each. On the other hand Anglo in London is still a tasting menu but each dish is larger which let you appreciate what you're eating more.

</comment></comment></comment></comment><comment><USER10> Remarkable: Bocuse died in the same room above his restaurant in which he was born.

</comment><comment><USER11> Last September, I scored a table at the Restaurant Saisons of the Institut Paul Bocuse. The meal blew my mind. It was an explosion of tastes (and colors!). Without question it was the best meal I ever had -- and I had the luck to eat in various Michelin star restaurants before. They can't hold a candle.

</comment><comment><USER12> Bon appetit: [http://www.youtube.com/watch?v=7WYb- UDN22w&t=7m50s](http://www.youtube.com/watch?v=7WYb-UDN22w&t=7m50s)

</comment><comment><USER13> There's a good Parts Unknown episode (with Anthony Bourdain) that introduced me to Bocuse. Recommended watching..

<comment><USER14> Here he's interviewed about that episode. Bourdain calls that meal his favorite and likens Bocuse to Mohammad Ali for the impact he had.

[https://www.youtube.com/v/hV6h8tvDgTg?start=0&end=80](https://www.youtube.com/v/hV6h8tvDgTg?start=0&end=80)

</comment></comment><comment><USER15> Incidentally Gualtiero Marchesi, which is the Italian symmetrical, also died a few weeks ago.

</comment><comment><USER16> "God is already famous, but that doesn't stop the preacher from ringing the church bells every morning."

Great quote.

</comment><comment><USER17> I have to admit that the 6 months I spent living in Lyon were not all that enjoyable for me, for a myriad of reasons. But the food... no complaints there. I never stumped up the money to go for a starred establishment, but the various Bouchons I did go to were fantastic. Also, lots of sushi. Not sure why.

One thing I learned about the city from quite early on was just how huge a figure this man was. I spent the first month there in an AirBnB across the road from the marketplace that bore his name. A Mexican friend of mine, also a chef, would not stop raving about the time he had spent living there and what this man could do. A huge loss for Lyon, but what he's left them with will be of benefit for years to come.

</comment><comment><USER18> Nice series of videos about him cooking [https://www.youtube.com/watch?v=2AR5Oviezvg](https://www.youtube.com/watch?v=2AR5Oviezvg)

</comment><comment><USER19> This is #1 on HackerNews? Why?

<comment><USER20> Because being a hacker is about obsessively working to know all there is about a given subject and become better in a chosen craft. Bocuse was cooking hacker.

<comment><USER20> I forgot to mention - he was also a teacher of his craft and that counts too.</comment></comment></comment>


Delta forces AwardWallet to discontinue support of Delta's SkyMiles program - <AUTHOR> http://awardwallet.com/forum/viewtopic.php?f=16&t=2697

<comment><USER2> apparently this is not new. last year American Airlines did something similar with AwardWallet: [http://awardwallet.com/forum/viewtopic.php?f=16&t=1567](http://awardwallet.com/forum/viewtopic.php?f=16&t=1567)</comment>


Is The Silicon Valley Talent Shortage Getting Worse? - <AUTHOR> http://techcrunch.com/2010/11/09/arms-race/ <comment><USER2> Running Hackers and Founders Silicon Valley, I get asked all the time if I know of people who are looking for work, and startups are having to work increasingly hard to hire. A few months ago, I was offered a $5k referral bonus for a Python/Django engineer. ( That's not the business I want to be in, btw. And it's not why I do H&F. )

There's easily been 100 startups getting angel money in the Valley in the last 5 months. And, if all of those are looking for 2-3 RoR/PyDjango/JQuery/iOS devs, that means startups alone are competing for 300 engineers. And, that's not mentioning Yelp, LinkedIn, Twitter, Facebook, Zynga, Google. The Valley could easily accomodate 1000 new engineers in the next 6 months.

From what I've seen of the Hackers and Founders NYC scene, the situation is similar, except startups have to compete for engineering talent with finance companies, which pay a lot better than your average startup.

What does that mean? Founders, always be hiring. Devs, our value as an engineer is going up. Founders, build on more productive languages/platforms. Dev, consider joining a startup as an angel investment where you're pouring in time and effort instead of cash. So, interview a lot, and join carefully.

<comment><USER3> I suppose by the mathematical nature of the situation, people and their social graph end up at one of the two "equilibria". 1) either they know a bunch of people who can't find any good people to hire, or 2) they know a bunch of smart people who work at crappy jobs they'd love to leave.

I have a group of friends (from University of Florida) who mostly graduated just before the west coast was really recruiting there. One works at HP doing server stuff, but that's about as "far" as they got. Another one is the smartest dude at his job at bigco where he puts out fires of bad devs every day, cleaning up $20,000 contracting messes with one SQL query that no one there thought could be written.

To these people, trying to get a "cool" job is borderline impossible because, first, they don't know anyone (their social graph converged the wrong way), and second the combination of being far-away and having to blindly email resumes into the blackhole that is domain.com/apply is just plain discouraging (not to mention ineffective).

I don't know of a good solution to this problem, but if anyone is willing to relocate some of these people, I might be able to refer some really smart people ;)

<comment><USER4> The best advice I can give to people looking for a "cool" job in the valley is to simply move there and get to know people. If they aren't willing to take that admittedly risky step (almost a rite of passage) then the valley might not be the best fit for them. From what everything on this thread is saying, this is a great time to do it.

</comment></comment></comment><comment><USER5> I have a theory that the dot-com bust in 2000 and the outsourcing/offshoring hype in 2004ish basically wiped out two generations of computer science students. I graduated in 2004 and I remember the number of students in my major decreased dramatically between my freshman and sophomore year (some of that is the usual engineering major attrition, but I didn't see nearly the same decline as my friends in electrical/mechanical/etc). A coworker who graduated in 2007 told me his friends kept telling him to change his major "because all the jobs are going to India anyway." Meanwhile, the exact opposite thing happened. Growth on the web continues to explode and the demand for skill workers to support that growth continues to climb. Could this by why the shortage seems especially pronounced?

<comment><USER6> Could be. For hard numbers, the dot.com/fiber-telecom bust caused MIT's EECS enrollment to crash from 400 students per class, a number that had been stable for more than 2 decades, to less than 200. It's now gotten a bit better (a bit over 200), but no one expects a return to the glory days. As I recall reading somewhere recently, overall nationally the effect was the same, from 20,000 to 10,000 majors annually granted.

I'd also add one big factor: despite the poo-pooing by some of age discrimination, it's very real and when your parents or friends of your parents tell you from _harsh_ experience that your career will be over when you reach 35-40 years of age, you listen if you have any sense.

Of course, now the name of the game is to get a good starting job, period. I suspect that has more than a little to do with the slight recent upturn.

</comment></comment><comment><USER7> The valley?? The real story of talent drought is in New York City. Recently there has been a gigantic explosion of startups with lots of funding, but _very_ few great engineers available.

As CEO of a just-funded tech startup, I am budgeting ~70% of my time to personally recruit a Lead Developer and Senior Software Engineer (despite having a technical background myself).

<comment><USER8> It could be because you are not paying enough. NYC is an expensive and unpleasant place to live for some people, esp. if they are from other cities in the US.

<comment><USER9> Yeah this was the problem I ran into when I was being recruited by a few companies in NYC a few years ago. I live in Boston but they weren't willing or able to help me relocate and weren't willing to pay me anything close to what I could make at another job here in Boston.

</comment></comment></comment><comment><USER10> The national unemployment rate is over 9% while Silicon Valley is fighting tooth-and-claw to hire. What's wrong with this picture?

Software engineering is technical, sure, but it's not _that_ hard -- if some of the idiots I've worked with in the past could hold down jobs, then anyone can. Which dying industries should we be looking at to fill the gaps in the software industry?

<comment><USER11> I have never met anyone who was not technical and then became a coder.

In pre-2000 dot.com you could've gotten a job with a word 'Internet' on your resume, but nowadays you should at least know decent coding.

<comment><USER2> Mind you, I was programming Basic when I was 7, but I left it behind for years. I went back to school for software engineering when I was 33. I've been working as an ER/Critical Care nurse for 18 years.

I'm currently bootstrapping a search engine for economic/financial news at <http://Newsley.com>. (alpha of search is here: <http://newsley.com/search> )

<comment><USER12> Your tagging is pretty cool. How'd you figure out for each tag whether it was a person, country, city, etc.? Did you just look them each up on Wikipedia? E.g. [http://newsley.com/articles/eu-threatens-to-block-chinese- bi...](http://newsley.com/articles/eu-threatens-to-block-chinese-bids-for- public-contracts/24095)

<comment><USER2> It's a semantic web api from Reuters: <http://www.opencalais.com/>

Frankly, it's amazing. There's a sandbox where you can play with it here: <http://viewer.opencalais.com/> Copy and past a couple paragraphs of text into the text box, and you can see some of what the api can do.

</comment></comment></comment></comment></comment><comment><USER13> As someone who has been an early engineer (sixth employee at two and ninth at most current) at a couple of startups, watching the current talent situation is interesting. Companies are definitely hiring with smaller or more agile companies being more proactive about the diversity of people the bring in. Some of the larger networking/software firms are continuing to stick to their laundry lists.

I enjoy seeing the plethora of dmaller startups and the ideas and enthusiasm they bring. Things definitely have a different feel than dotcom bubble one. I hope that this job recovery is longer and more sustained.

For me, it is an interesting crossroad - having a house and marital responsibilities, do I jump on someone else's startup bandwagon again, try and get an idea funded (knowing angels, etc) or go the big company route to give personal time to flesh out ideas.

There certainly are options out there.

</comment><comment><USER14> As a programmer it's always fun to be in a good job market. However, I do get a bit concerned about bubbles when things get overheated like this. I suppose the best one can do is save for the downturn and build up some great experience for when the market inevitably gets tougher and the rounds of layoffs start.

<comment><USER15> Bubble? Overheated? Aren't we recovering from a broader downturn? Or are you suggesting that we're in the 3rd or 4th quadrant of the VC investment-ease curve (~2000, ~2007)?

<comment><USER16> The federal reserve is printing almost $1 trillion in "easy money" that will be lent out to businesses at close to 0% interest rates. Don't fool yourself into thinking that this money won't end up creating a bubble somewhere. It might not be a tech bubble, but it very well could be.

</comment></comment></comment><comment><USER17> Companies need to start taking on the virtual office model and start hiring developers from remote cities and even countries, you miss out on the social interaction of an office but good developers tend to get more done quicker when they can work from home and with flexible hours.

</comment><comment><USER18> If startups branched out from Silicon Valley more often, new technological epicenters would form, alleviating the shortage.

<comment><USER19> Right... like the talent shortage is any better in Boston. We've been trying to hire a Ruby on Rails developer for nearly 6 months: Everyone is happily employed, or doing their own startup.

<comment><USER20> Have you tried increasing the salary offering, or advertising the position on the website itself?

</comment></comment></comment><comment><USER21> So how do I benefit back from Europe?

<comment><USER2> The engineer shortage will spread. It's hitting SV and NYC first, but give it a year or two, and you'll see it as well.

</comment></comment><comment><AUTHOR> Is it time for this soon-to-be computer science grad to move to the Valley? Is this a good or a bad thing for new grads?

<comment><USER22> If you're looking for a first job then probably yes.

Quality of life for a young, single male in the Valley is pretty low though. After 10 years in the Bay Area I'm moving to NYC where women actually exist.

<comment><USER23> 'Sunnymale'; 'Man Jose'. (Well /I/ laughed when I heard them :) )

</comment></comment></comment><comment><USER24> Looking for a developer with startup exp?

I am a developer with startup experience and skill in Ruby, JS, and frontend technologies. I have 6+ years experience and a BA from UC Berkeley. I created a post related to this: <http://news.ycombinator.com/item?id=1786901>

<comment><USER25> If you haven't already, check out Authentic Jobs--they appear to have a number of remote jobs listed with your skillset:

<http://www.authenticjobs.com/>

Good luck with your search.

<comment><USER24> Thx. Authentic Jobs looks useful. I am currently employed at wellknownstartup.com and looking for a change. Thanks for the tip.

</comment></comment></comment><comment><USER4> I had emails from 7 different recruiters today so people are definitely hiring experienced developers right now.

</comment><comment><USER26> I've noticed a surge in contacts from recruiters, almost daily now from linkedin asking if I'm looking. Last year was a very different story.

</comment><comment><USER27> This article seems to imply that "acqui-hires" are a tool to bring in great engineers, but I feel like Facebook and others are after great entrepreneurs.

Perhaps the final sentence should be changed to: "Now might be a good time to leave school and start a company."

</comment><comment><USER28> I was contemplating moving to the US to join a startup, but getting a visa is pretty hard, isn't it? I can get a 3 month traveler's/business visa. Then there are work permits, etc, right?

So currently, I'm just working on my own project.

</comment><comment><USER29> There is no pipeline. I see lots of comments about how entry level developers are useless. No one wants to train the next gen of developers, so companies are fighting over a smaller and smaller pool of people.

The only way to get any experience seems to be to start your own company. Which is great for the person who goes off and does it, but not smart for the company trying to hire them.

If employers don't want to waste money investing in entry-level positions, why waste it investing in someone who has made it clear they want to work for themselves?

Pay less, train more.

</comment><comment><USER30> The developers I know are mostly trying to be founder level at a startup. I actually feel sorry every time I run into a company trying to hire a Rails developer because I feel their pain.

What's the solution for you companies desperate to hire? In my opinion, your outlook on equity needs to change. It's regular practice to offer a "rock star" developer 0.25% of your pre-diluted shares when you have $2M dollars in the bank. I've had this debate a number of times with arrogant founders and been told how that's just the way it is - investors this, B round that, $1B exit blah. Fine - but your offer is not appealing to me. I can make $100K+/year consulting part time, usually with a small equity stake, plus have a founder share of my own startup. Why would I take $100k plus 0.1% to work 12 hours a day at your startup?

Offer several percent, maybe 10% if you don't have a product yet. Get a few good people committed to your company on the inside. This is particularly true if you are very early or have a less "cool" startup. You are going to wallow in crappy developer misery and your product will fail if you don't have awesome techs who are TRULY dedicated to your vision.

<comment><USER31> "What's the solution for you companies desperate to hire?"

How about looking abroad? I know, it's fraught with perils, but as someone from "abroad" from the U.S. point of view, it needn't be that bad.

And your dollars will go a LONG way in hiring top talent (of course, you need someone local or whom you trust to choose the top talent. 90% of the local programmers are crappy too!).

<comment><USER16> You can't hire an H1B unless you are willing to document that you were unable to find local talent that had the required skill set. HR departments usually work around this by wording the job requirement in such a way that only their hand-picked H1B applicant has every exact skill. "Oh, you need a Python/Django/Ruby/Java guy with 2 years .NET? I just happen to have a resume with that exact skill set in front of me; so strange that we wrote the job opening like that...<wink wink>"

Expect to pay about $10-20K extra just to hire an H1B because of all of this extra paperwork and documentation, as well as hope he wins the H1B lottery.

<comment><USER6> WRT to the lottery: it hasn't been so competitive lately: [http://en.wikipedia.org/wiki/H-1B_visa#Quotas_and_changes_in...](http://en.wikipedia.org/wiki/H-1B_visa#Quotas_and_changes_in_quotas)

E.g. (note that the fun begins on April 1):

FY 2009, quota used up in 7 days before beginning the lottery (and as you allude to, this sort of thing used to be the norm).

FY 2010, quota not used up until December 21, 2009.

FY 2011, quota projected to used up right about now.

</comment></comment></comment></comment><comment><USER30> I'm an RoR/Java/etc developer/entrepreneur. I get recruited heavily 2-3 times a week, and yet half my non-tech friends (which comprises most of my friends) are under-employed or jobless. That dichotomy is disturbing and very difficult personally to deal with. Here I am making 10 times what the employed ones make hourly, while talking about making millions on a startup. I try to encourage them to get some product or internet marketing skills, generally to no avail.

Even so, I feel that web development is a commodity and that to stay ahead I need to develop a better design and product background.

<comment><USER32> I suggest you try to add some high achievers to your circle of friends. People who are successful in the way you you dream of becoming.

If your current group of friends are not interested in actually working hard to make those dreams a reality, there's a very real danger they will inadvertently poison your own chances of success.

<comment><USER33> He's not exaggerating the market there for people of other skillsets.

Fresh new young people trained in other professions are having a very hard time of it as their more experienced peers in industry are taking the entry level positions rather than nothing at all.

Now his friends might be unmotivated tools, have the wrong skillset for the area in which they live, or any number of things, but the economy is hard for some highly trained people even these days.

</comment></comment></comment><comment><USER34> Definitely been seeing a serious uptick in hiring around here -- and I've been on and off the job market for over a year. Things were looking up last Spring (around the time I picked up my current consulting gig) but things are noticeably better now.

I should point out that in normal, 'healthy' years, November is a time of declining job openings. Companies generally wait until January for budgets to turn around, etc. Not this year, though.</comment>


Lego Antikythera Mechanism (video) - <AUTHOR> http://www.youtube.com/watch?v=RLPVCJjTNgk&feature=player_embedded

<comment><USER2> Submitted recently:

<http://news.ycombinator.com/item?id=1990493>

<http://news.ycombinator.com/item?id=1988818>

For more Antikythera items see here:

<http://searchyc.com/submissions/Antikythera?sort=by_date>

There are lots of them, many including lengthy discussions.

<comment><AUTHOR> Thanks. I usually rely on HN's algorithm to find if it was submited or not. Doesn't really work on youtube though. Was not my intention to repost things.</comment></comment>


The Secrets of Bezos: How Amazon Became the Everything Store - <AUTHOR> http://www.businessweek.com/articles/2013-10-10/jeff-bezos-and-the-age-of-amazon-excerpt-from-the-everything-store-by-brad-stone

<comment><USER2> This profile of Bezos sounds a lot like the Bezos Steve Yegge wrote about here [https://plus.google.com/112678702228711889851/posts/eVeouesv...](https://plus.google.com/112678702228711889851/posts/eVeouesvaVX) and here [https://plus.google.com/110981030061712822816/posts/AaygmbzV...](https://plus.google.com/110981030061712822816/posts/AaygmbzVeRq)

From the article:

 _"He had no background in control theory, no background in operating systems," Jones says. "He only had minimum experience in the distribution centers and never spent weeks and months out on the line." But Bezos laid out his argument on the whiteboard, and "every stinking thing he put down was correct and true," Jones says. "It would be easier to stomach if we could prove he was wrong, but we couldn't. That was a typical interaction with Jeff. He had this unbelievable ability to be incredibly intelligent about things he had nothing to do with, and he was totally ruthless about communicating it."_

And from Steve's second post:

 _Trust me folks, I saw this happen time and again, for years. Jeff Bezos has all these incredibly intelligent, experienced domain experts surrounding him at huge meetings, and on a daily basis he thinks of shit that they never saw coming. It's a guaranteed facepalm fest._

Steve's posts give a much better account, though, since the control theory guy doesn't say what the argument was about, and why Jeff was right. Steve goes on to desribe his presentation to Jeff on what an engineer should know, how he hacked the presentation to make it intersesting for Jeff by removing enough from the presentation that Jeff had to mentally fill in the gaps, and what Jeff pointed out that Steve didn't add (machine learning or data mining).

A CEO that appears to know everything is a common theme in large founder- controlled companies:

Steve Jobs: [http://www.businessweek.com/magazine/eric-schmidt-on- steve-j...](http://www.businessweek.com/magazine/eric-schmidt-on-steve- jobs-10062011.html)

Bill Gates: [http://www.joelonsoftware.com/items/2006/06/16.html](http://www.joelonsoftware.com/items/2006/06/16.html)

Stephen Wolfram: [http://www.stephenwolfram.com/publications/starting-long- ter...](http://www.stephenwolfram.com/publications/starting-long-term- company/) Start at "I insist on really understanding everything." (Wolfram Research isn't a large company but that appears to be partially by choice)

James J. Hill (railroad magnate): [http://books.google.com/books?id=1itXgy8gAHYC&lpg=PP1&dq=jam...](http://books.google.com/books?id=1itXgy8gAHYC&lpg=PP1&dq=james%20hill%20detail&pg=PP1#v=onepage&q=detail&f=false)

</comment><comment><USER3> Am I the only one that felt uncomfortable at how this journalist felt the need to make his biological dad aware that his long-lost son is Jeff Bezos? Not appropriate at all, and completely unnecessary involvement in their private lives.

<comment><USER4> The public needs to know! /s

(But seriously, if we as a culture are going to insist upon a look into celebrities' lives, I'd rather it be someone of value, who made something real, that benefited humankind, instead of Snooki or Honey Boo Boo.)

</comment></comment><comment><USER5> If i'm buying something online, chances are regardless if the price is the same (usually its cheaper), i'll get it through Amazon. Partly because I have prime, but also because I know these guys will guarantee every part of the transaction is quick, and flawless.

But if they start making mistakes, moving to someone else is pretty easy. I think they realize there's no lock in (well right now...)

<comment><USER6> I signed up for Prime the day it was introduced, and a sizable portion of my income gets dumped onto Amazon. I would think that there are a sizable number of people like us who pay a small premium for the convenience, quality and selection. I don't think they've ever stated publicly if they make money on Prime customers (ie I buy a ton, but they have to take a bath when I two-day ship mouthwash).

Prime, until recently, was a fun way to have very large items next-day aired to you (lawnmowers, sheds, etc) for $3.99. They recently wised up to that, but I always wondered why they let that slip in the first place.

<comment><USER7> I don't have the source handy, but I recall they said that that something like 99% of direct prime fee goes to paying for the video content.

Where they make there money is in the shift in purchasing habits. Prime users spend something like eight times as much money as non prime users. They make their money back because of the large increase of purchase. Overall, the net something like $3/year/prime user.

<comment><USER6> That makes sense. It's funny because their Prime VOD selection still isn't comparable to Netflix, so I never use it.

Their likely too busy making money hand over fist on EC2.

</comment></comment></comment></comment><comment><USER8> _When Bezos's lieutenants learned of Wal-Mart's counterbid, they ratcheted up the pressure, telling the Quidsi founders that "sensei" was such a furious competitor that he would drive diaper prices to zero if they sold to Bentonville._

That's a heavy level of competitiveness!

</comment><comment><USER9> I've soured a bit on Amazon. The algorithmic price fluctuations are my number one complaint. I used to love them because it was a no brainer. Sure I could surf around and find a slightly cheaper price, but Amazon has my card info, ships quick and back up their products. Now with the price fluctuations I feel obligated to check the price history on camelcamelcamel, surf around to see if it a good price. Basically now I have to think about it. I've also waffled on buying something for a while, make the decision only to find the price has gone up. I end up not buying or buying from someone else even though the price might be slightly higher just out of pure annoyance.

Then there is prime. Prime is great as long as you are a member. If not you are second class citizen. It used to be that the cheapest shipping option and now free shipping has an unspoken social contract. Give me a great rate (or free) and I accept the gamble that it might show up in two days or take the listed maximum of 9 days. The last few orders through Amazon I have watched the order sit there for three of four days at the fulfillment center to make sure it arrives in the five to nine day range for free shipping.

Then there are the merchants. There is sleaze all over the place here, especially in used books, but the fulfilled by amazon merchants are the worst. I can buy the same item from amazon or from a merchant with prices that are slightly cheaper, the same price, slightly more expensive, or an order of magnitude more expensive (literally, check the highest price next time you are shopping on amazon) from the same fulfillment center? WTF.

I still use Amazon but I would really like good competition here. I have had good luck with some of the big box stores online shopping. Similar prices and 5 to 9 day free shipping that shows up in three.

<comment><USER6> I would love to see someone compete with Amazon, but who on Earth can? I think most of their strength comes from their ridiculously good infrastructure; both technological and the $14bn they just spent on new warehouses.

Who the heck can compete with that? The only one in a position to (that I can think of) is Walmart, and I don't think their track record is very good thus far.

Although I can't find the source, I remember Amazon being referred to as the "world's largest charity" or some-such, because Bezos could give a heck about short term profits, and always push for the long-term gain. They're slowly taking over the world @.@.

Apologies. Just musing.

</comment></comment><comment><USER10> Above all, the brand credibility goes a long way... In a far-west like the Web is, where rip-offs happen all the time, people tend to choose those few services that prove them selves worthy of their trust... JustFab was discussed here just a few days ago...

</comment><comment><USER11> Even though Bezos changed the environment for online shopping he has yet to be profitable at Amazon. Which is a shame really. I think he deserves more especially with the contribution he's made to the online scape.

</comment><comment><USER12> I still wonder if they can ever become a profitable everything store.

<comment><USER13> It's been estimated that their entire lifetime profit is about equal to their tax discount (lower price due to not having to collect and pay state and local tax) - makes one wonder what Bezos's genius is other than taking advantage of a tax loophole - and one which may very well go away in the future.

<comment><USER14> There's an argument that Bezos is forgoing short-term profits by re-investing those into growing the business (expanding into AWS, marketplaces, Zappos, Kindle, streaming media, etc, etc) and into aggressively competing on price to not leave much excess oxygen in the room for competitors.

That's very different from the potential profit profile if Amazon were seeking to maximize near-term profit as opposed to maximizing near-term growth, with the expectation that that maximizes long-term profit.

<comment><USER13> If Amazon loses it's tax exempt status in all jurisdictions it may well also lose profitability - the long term plan of cornering an unprofitable market is still unprofitable.

<comment><USER14> Amazon has no tax exempt status.

It merely has no obligation in most jurisdictions to collect sales tax on behalf of the local taxing jurisdiction. Those purchases aren't tax-exempt; it's just that it's the buyer's problem to comply, not Amazon's problem to comply. That many buyers "forget" to comply does not make them exempt. (And Amazon is not exempt, rather they never had an obligation in the first place.)

<comment><USER13> This could easily change if laws are passed requiring a online retailers like a Amazon to collect such taxes. The absence of such a requirement now gives Amazon a de facto tax exempt status.</comment></comment></comment></comment></comment></comment>