
30-Day Vanilla JavaScript Coding Challenge - reimertz
https://javascript30.com/
======
johnomarkid
No frameworks, no boilerplate - this is a great idea. I've seen too many
junior developers go straight into learning React/Redux, or using bootstrap,
or plugging in some library like velocity.js. It's often easier, more
efficient, and more maintainable to use plain javascript with web APIs.

~~~
JustSomeNobody
To their credit, the not so junior developers are constantly telling them that
they HAVE to learn React.

Pick any Javascript forum on the internet, even HN comments, if you'd like.
The common comment is "Just use React".

~~~
egeozcan
Not to mention the influx of medium posts telling them if they specialize on
one single framework, they can get a job after a few months of training.

The interesting thing is they are not lying: You'll get a job which will last
until the new library de jour arrives.

Maybe this is how the job market answers the high demand. I personally have no
idea.

~~~
6DM
I mean, they'll at least have the job until the project is finished. You're
boss probably won't care if another framework comes out. Then there's all of
the legacy applications that will need support. There's an entire market for
that. In the meantime you can learn something new :)

~~~
wwweston
>> In the meantime you can learn something new :)

The problem I've come to have with this as I get older is... I realize that I
have a limited amount of time to learn new things. I still love doing it, but
if possible, I'd rather spend that effort on learning portable, enduring, and
broadly applicable things than ephemeral arcana involved in learning to do
essentially the same thing a different/"modern" way. New learning should be
for new capabilities, a better quality of insight, and real advantages.

~~~
6DM
Oh yeah, I definitely get that. My main point is there's no reason to be
outright afraid when a new framework arrives. I would argue there's even time
to let it mature and see if it's actually worth learning.

------
acrynx
This is just awesome, thanks a lot to the author!

Doing it right now. Great selection of exercises, great videos and it's loads
of fun!

What's the name of the song playing in the beginning of each video?

EDIT: This made me realize how much browsers have improved over the years and
how much you can actually do with just HTML5, CSS3, ES6 and browser APIs
today.

Really helps you take a step back and see your daily use of frameworks and
libraries like React, Redux etc. in a different light.

I definitely learned something from this.

~~~
felixthehat
The music is by The Divided, he mentioned it in this tweet
[https://twitter.com/wesbos/status/806925026377207808](https://twitter.com/wesbos/status/806925026377207808)

~~~
acrynx
Great, thanks :)

~~~
wesbos
GNARLY!

~~~
acrynx
Pretty damn awesome, indeed!

------
pvdebbe
Nightmare level: code should be compatible with both IE6 and Firefox 50

~~~
userbinator
That reminds me of how the demoscene has a JavaScript demo category now, which
usually targets the latest browser(s) with all the new JS features. It also
has the usual native demos on the latest PC, and retro demos on platforms like
the Atari, C64, and ZX Spectrum. Perhaps it should also have a "retro browser"
category for IE6, Firefox 2.x, and the like.

...but I feel that someone would just find an exploit in JS, break out of the
sandbox, and use that to run a native demo instead.

~~~
skrebbel
the common demoscene platforms and filesize limits bring limits that make the
coding fun, exciting, challenging.

IE6 seems to me like an arbitrary limit that just makes life horrible without
much gain. i don't think sceners are going to target retro browsers soon.

~~~
pvdebbe
...or if they do target something retro, maybe Netscape Navigator or similar
icon. IE6 is maybe infamous, not very nostalgic in any way.

------
reimertz
Such a neat idea to introduce web technologies(or anything).

1\. hand people an idea that is easy and funny yet complex.

2\. give them the tools to be able to do it.

3\. make them do it

4\. repeat 1-3 thirty times

This is how I learn things and argue that it is the most efficient way to
learn something for certain people.

~~~
jagermo
For me as well. I get bored pretty quickly if it is just theory. I look
forward to these courses over the holidays.

------
tjbarbour
Having fun with this, day 1

[http://htmlpreview.github.io/?https://github.com/tjbarbour/J...](http://htmlpreview.github.io/?https://github.com/tjbarbour/JavaScript30/blob/master/01%20-%20JavaScript%20Drum%20Kit/index-
START.html)

~~~
nkozyra
Probably just the drummer in me, but it's driving me nuts that there isn't
something like this:

<audio class="closedhihate" data-key="83" data-stop="audio.openhihat"
src="sounds/hihat.wav"></audio>

~~~
tjbarbour
haha! Fork it ;)

------
a12k
This is great! Some of the frameworks/libraries are great, but not always.
I've been systematically pulling unnecessary libraries out of plugins for use
in my own projects. Here's one I just did, where I pulled jQuery out of the
plugin:

[https://a12k.io/reallysimpleweather](https://a12k.io/reallysimpleweather)

------
TimMeade
As ones who has done Wes's React and Redux course, we have found him to be one
of the best instructors out there. He seems to grasp how to teach and not just
show by example. All levels seems to get a lot form his work. Funny also...
Kudos and highly recommended.

~~~
wesbos
Thanks Tim - glad you have been enjoying my teaching style - means a lot to
me!

------
kasparsklavins
Obligatory
[http://youmightnotneedjquery.com/](http://youmightnotneedjquery.com/)
Although its more aimed at library devs.

~~~
eswat
and [https://github.com/you-dont-need/You-Dont-Need-Lodash-
Unders...](https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore)

------
joeax
Every junior developer should start out learning nothing but HTML+CSS+JS. It's
so beneficial to understand the quirks and gotchas of these three and how they
interact, to really appreciate how these technologies evolved.

I have a young son who's coding on code.org and Scratch, and I'd love to get
him into pure web development. Kudos to Wes Bos for setting this up.

------
toxican
Hoping this is just a one time issue, but in the first tutorial:

>const keys = document.querySelectorAll('.key');

is provided, but it will trigger an error in the console. As far as the video
is concerned this is part of the final code. However, if you look at the
starter files, there's a final version of the the code and that line has
changed to:

>const keys = Array.from(document.querySelectorAll('.key'));

Which of course works fine. Kind of inconvenient to have to turn to the the
source files to learn how to do it right from a video. It may be possible that
I just missed a video annotation, which is completely possible given my
approach to these kinds of things (code while I watch).

~~~
sscotth
Browsers recently added `forEach` methods to NodeLists. Make sure you are
using the latest version of your browser. Array.from(...) may make it work
with somewhat older browsers.

[https://developer.mozilla.org/en-
US/docs/Web/API/NodeList](https://developer.mozilla.org/en-
US/docs/Web/API/NodeList)

------
pkkim
Great course! I'm using it right now and it's some nice hands-on practice.

One nitpick: In video 14 about references vs copies, around 2:20, you say,
"`team` is not the array, `team` is just a reference to the original array,
which is `players`." It's a little ambiguous but to me it sounds like you're
saying that the variable `players` is somehow special and different from the
variable `team`, as if it's not just another reference to an underlying array.
This seems like it could confuse newbies.

------
rendall
I attempted to sign up using Internet Explorer 11 and got a bug that prevented
it. Furthermore, the submit button says [Join 19,175]. LOL.

~~~
rasz_pl
using Internet Explorer is the real LOL

~~~
baldfat
I don't like Internet Explorer either but a website should support all the
major players. Edge is surprisingly my daily Window Browser if it isn't my
computer.

------
agumonkey
Who else really only strive on challenge of this sort ?

------
singularity2001
Doesn't work in Firefox with FB... blocked

------
alexhakawy
wow love it

------
clifanatic
Next month - 30 days of web coding using only vanilla C! Day 1: write a web
browser!

(I kid, this is awesome)

------
vegabook
This scientific programmer (python/R/C) thanks you for an amazing resource. I
have been looking to augment my Python knowledge with a new, faster scripting
language. Lua(jit) was my first choice, but JS is so fast these days, and is
so strong on visualization, that it is now supplanting Lua for me as first
choice. But the JS ecosystem is so vast, so full of "offshoot dialects"
(jquery, coffeescript, ES6, Typescript, not to mention all the frameworks)
that it is quite daunting for a beginner. This therefore is _exactly_ what I
was looking for. You've just spoken for my Christmas break!

------
the_cat_kittles
i guess that is how i learned javascript too, except those projects were paid
_sunglasses guy emoji_

