
Ask HN: Would you prioritize learning WebGL as an aspiring junior developer? - HamwakHall
Hi HN,<p>I recently graduated from a full stack JavaScript bootcamp in New York. I know that bootcamp grads are sometimes received less-than-warmly on here, so I just want to preface by saying that I didn&#x27;t change careers because I think that it&#x27;s an easy way to make a bunch of money, and I don&#x27;t expect to be competing with people with formal degrees in CS. I have a degree in an unrelated field, discovered that I love programming a couple years ago, and attended a bootcamp because making a curriculum from online materials was a laborious process.<p>Now that I&#x27;m finished with the bootcamp, I&#x27;ve been filling in some gaps in my education, tidying up projects, poking into contributing to open source projects, looking for work, and learning technologies that either seem to be in high demand or that I find interesting. As you might imagine, this is a lot of stuff, and I&#x27;ve been feeling uncertain about what I should be prioritizing.<p>In particular, I&#x27;ve been noticing a surprising amount of positions indicating that applicants should be familiar with things related to 3D graphics—WebGL libraries like three.js or Babylon.js, sometimes even Unity. I find this stuff super interesting, but didn&#x27;t expect to see it in these job descriptions and have little personal experience with it. I&#x27;d be happy to put some time into learning it, but only if that time is going to be well-spent re: short-term employability. If you were in my shoes, would you be learning WebGL? If so, what resources would you be using?<p>Secondly, more broadly, what would you be studying in general in my position? I understand that in my position I should probably mostly be focused on front-end positions. For those positions, should I just be drilling down into JS and leaving other languages for the future? What would you do?<p>Thanks for reading!
======
blister
I've been a professional engineer for over 15 years now and have been working
in the games and simulations space for about 5.

My advice to you: only focus on it if you really love it. The pay is (most of
the time) not as good as what you'd get writing CRUD apps in the enterprise
space.

The other concern is, WebGL is a really niche topic inside an already niche
field. As someone that does a significant amount of games and simulations
work, WebGL is still far too low-level to be of any real business use. Even
with the expectation that things will improve in the next few years, you'll
still mostly likely get the most bang for your buck using a game engine like
Unity and letting it manage the "compilation" to WebGL.

If you're really passionate about games, learn a game engine and start
building games. The "game" space is a really weird subset of CS disciplines
and it'll help to get familiar with the entire production pipeline (coding,
art, animation, behaviors, etc).

If you were really ridiculously passionate about low-level 3d programming,
you'd either A) not be asking us for advice, or B) too busy playing with it to
ask for advice. :)

With all that said, I'd love to talk to you about this industry and point you
in the right direction if you're curious. My email address is in my profile if
you want to know more.

~~~
HamwakHall
Thanks for your thoughts! And for your offer to talk—I'll absolutely take you
up on that.

------
itamarst
1\. Nothing wrong with wanting to make money.

2\. "Formal degree in CS" doesn't mean someone will be better than you. It
might, it might not, depends on the job. Often it has no relation to actual
job requirements.

A job skill that will serve you well no matter what you do: learning new
things quickly. So instead of deep diving into one thing, maybe spend some
time building a few small things with a bunch of interesting technologies.
(Other comment about knowing basics is correct: knowing core technology is
important prerequisite, do that first if you're not there yet).

Then you can tell employers "yes, I'm inexperienced, but look, I can learn
fast, here's proof." You're pretty much never going to know the _whole_ tech
stack at a new job, so that matters a lot.

Another thing to focus on: learning how to build robust code (i.e. testing,
both manual and automated). It's not exciting or flashy, but being able to say
"and I can make sure my code actually works, and here's how" is worth a lot to
smarter employers (though not all employers).

~~~
HamwakHall
Yeah, sorry, didn't mean to come off like I was denigrating other bootcampers
for wanting to make money. Just meant that I didn't get into developing for
the gold rush—that I care about the work itself.

And thanks for the advice! Building small things sounds good; I should set
some goalposts for myself to that end.

------
davismwfl
WebGL is not a skill I'd put high on your list. Really knowing Javascript and
learning how to be productive is far more important. WebGL IMO is still niche
to specific use cases and doesn't have a broad appeal, so the positions you
are seeing are likely a microcosm of the overall job market.

If you want to be employable, study and know javascript, know your front end
stuff solid. Don't worry about knowing lots of different technologies, know a
few key things really well, like Javascript, html and CSS, with those alone
you have good employability. Each company will have their favorite framework
and you'll work with it, so knowing how to come up to speed on Angular, or
Ember or choose your flavor is more important then knowing them initially. And
the core ability to do that is being solid in the basics.

Good luck!

------
deepaksurti
_GL is one area where just using a high level library is not going to help you
master it. If you intend to use it as a black box, well you can use anything
that wraps_ GL in your domain of choice (games, simulation etc).

However, what I have seen is that knowing the low level _GL stuff is really
important when you get stuck and have to debug your way out. Write your own
shaders etc. Most recently I figured my way out of a tricky skeletal animation
problem only because I knew the low level details as well.

My recommendation: Work through this book: [1]

I even wrote a scene graph in CL while working through this book and after
learning SceneKit(iOS, macOS 3d framework). So I am backing up what I am
suggesting:[2]

If you want to be in the graphics field in the long run, better know the low
level stuff. This is just my 2$ thought. YMMV. And as @blister suggests, he is
right that you need to pick the graphics domain as it is niche as compared to
Web programming and the pay will be on the lesser side comparatively,
especially if you are starting off.

My email is in my profile, feel free to reach out if you need any help from me
in learning _GL.

[1]
[https://capnramses.github.io/opengl/](https://capnramses.github.io/opengl/)
[2] [https://gitlab.com/cl-3d-graphics/cl-
scene](https://gitlab.com/cl-3d-graphics/cl-scene)

------
jstewartmobile
The branded technologies change with the breeze. This is not progress, or an
emergent property of progress so much as it is by design (but that is a
completely different conversation).

The best investment of your time is in the fundamentals; the things that don't
change or change very slowly:

    
    
                      Stats: Useful in both data science and machine learning
                 Algorithms: Duh
      Differential Geometry: must-have if you're a graphics/games guy
              Discrete Math: Good stuff for dealing with machines that process things in bits.
             Linear Algebra: Comes in handy in so many different problem domains.
          Ethernet + TCP/IP: It's not going anywhere.
      Hardware/Architecture: Still running a von Neumann architecture last I checked. Things go 
                             much more smoothly when you know what the physical limitations 
                             and bottlenecks are before you start coding.
    

If you go all-in on WebGL and get a job, keep an eye out for the next new
hotness, because you will officially be on the treadmill then.

------
MayorOfMonkeys
I'm seeing a dramatic up-tick in companies wanting WebGL content to be built,
either in-house or externally. WebVR is only going to accelerate this trend.
So, sure, picking up skills around WebGL content creation should be a safe bet
but avoid learning WebGL at a low level. Tools like PlayCanvas are there to
help you get excellent results in a fraction of the time - you're much better
off learning that.

------
dyeje
What positions are you looking at where you're seeing WebGL and Unity
frequently?

~~~
HamwakHall
Jobs at design firms, 'creative studios,' those sorts of things. WebGL more
than Unity, but definitely both. Part of it seems to be the result of a big
VR/AR push, going off of the job descriptions. This is all inference, though.

