Hacker News new | ask | show | jobs
by chrisweekly 2953 days ago
Go "T-shaped". In other words, be a "jack of [some] trades, master of [a few]".

Specifically, you almost have to choose modern JavaScript -- because you will need it on virtually any real project (it's everywhere), and you've already got the enterprise-y server-side covered. Don't get pigeonholed into backend-only, non-JS roles. Despite all the haters, es6+ is powerful and expressive.

You'll want to suppress your OO habits though, and embrace FP as much as possible.

Maybe get there by way of ClojureScript if you're up for it. Good luck! Have fun!

3 comments

> virtually any real project (it's everywhere)

That's a bit of an overestimation to say the least. E.g., I work at a trading firm and we use all kinds of languages for all kinds of purposes on all kinds of weird platforms, but JS is not one of them (I don't think we use Java much either, because why would you, this day and age).

'Any real web project' would be more correct. Not everyone cares about web projects though (same as not everyone cares about non-web projects, as you've pointed out).

Maybe not in a trading firm, but Java is still heavily used across tech/enterprise companies. I used to work for a IB which used Java heavily and so do Spotify, Amazon, Google.
Strongly agree. I would take "any real web project" a bit farther & argue it's only for the time being. While WebAssembly won't kill JavaScript it is slowly creating a world where you can pick a different language if you want for front end web development. Monopolies are bad & it'll be great when this one no longer exists, for JS devs & everyone.
"I don't think we use Java much either": may I know what your trading firm uses?
Depends on the type of task and the target platform — C#, C++ and Python to name a few.

And, of course, VHDL (in certain projects)...

99% chance it's C++, that's what essentially all trading firms use.
Yeah, all of the trading systems I've worked with have been in C++. At a previous employer, they had initially written their entire stack in Java. But, performance was an issue, as was cost (this was back Java still belonged to Sun and they were running Solaris on Sun hardware). Right before I joined, they had rewritten most of the java components in C++ and were in the process of moving off of Sun hardware & Solaris in favor of Intel & Linux. Front end stuff was mostly C++/MFC on Windows, later was C#/WPF. Perl & Python were both heavily used there, as well.
T-shaped is excellent advice but there is something to be said for “paint drip shaped” skills too: imagine a thick line of white paint on a wall and how it drips down unevenly. Some of the drips/skills are very long, some are short, and most of the paint is that wide beam.

In relation to the OP then, being a master of an area is valuable, but so is knowledge of a few others in some depth and a lot of other areas at a much shallower depth.

I'd been hunting for this 'paint drip skills' for a while now. I finally found it again. It's from Kent Beck [0] (plus HN thread [1]) where as I kept on assuming it was from Paul Graham.

[0]: https://www.facebook.com/notes/kent-beck/paint-drip-people/1...

[1]: https://news.ycombinator.com/item?id=12226242

No doubt JavaScript is useful but I've been a professional game developer turned VR developer for 18 years without ever needing it in my career. I have friends who went into embedded development who are even less likely to need it.

I could get by just fine professionally knowing C++ and later C# plus a bit of assembly (more so in the past) along with HLSL/Cg for graphics programming. The other languages I've learned have been for my own interest / education and that's included only a very minimal amount of JavaScript.