javascript
or, the "good" part. 😜 or, who are we kidding, it’s actually TypeScript these days.

tl;dr

  • libraries of interest

JS TS for newbies

despite the image at the top of this section, i javascript typescript so hard (tbh, typescript has taken over!). i’ve been coding in it since the 90’s and it’s only gotten better over the years.

if you’re absolutely new to JS, start here at the Mozilla Developer Network (or MDN). they’re the people that make Firefox and have the best reference guides for JS. in general though this guide assumes you’ve got a base understanding of JS so go forth and mess around with the language as much as you can before moving on to the rest of the more complicated stuff.

playgrounds

an easy way to get started is by checking out some of these tools that let you play around with the language. another great way is to a project that you like and checking out it’s code. view the source, luke!
  • CodeSandbox: lets you mess around with a React app in real-time.
  • CodePen: a social development environment for front-end designers and developers.
  • node’s REPL: most coding environments provide something called a REPL which lets you mess around with the code on the command line. just type in node on your command line and you should be able to try out some random code.
  • Glitch: friendly community to learn and play around with code.
  • RunKit: much like node’s REPL but online with some fancy UI.
  • npm sandboxing: you can take any package from npm and play around with it to see what it does:
mkdir sandbox
cd sandbox
npm init -y       # create an npm project. -y means use defaults
npm install --save <package name>

developer tools

to be able to use JS effectively, you’ll need to have a set of tools to give you visibility into what’s happening and fiddle with your code. this is the absolute best way to learn. read the section on Chrome DevTools to learn how those tools can help you.

react + (facebook) friends

let’s get something straight: vanilla JS is something you absolutely should know. you need to understand the underlying principles and fundamentals of the frameworks you’ll be using so that you can effectively use them.

that being said, practically speaking, you won’t be writing vanilla JS a lot of the time and a well-chosen suite of frameworks will help immensely in your quest. a lot of the best of breed frameworks have come from a Cambrian explosion emanating from Facebook’s developer team. Google has tried through many, many, iterations to provide compelling alternatives but we should have seen the downward trend with frameworks ever since they started with the ill-conceived GWT. (i say this with love, y’all, since i used to work at Google. their contributions to browser tech and tools are amazing, but their frameworks have always been lagging.)

React

the way to write your application these days. if there’s one place to make sure you devour all the documentation, it’s here. go through the tutorials and starter guides (using create-next-app, mentioned in a section of its own below, is also a good leg-up.)