Skip to content

Instantly share code, notes, and snippets.

@taesup
Last active May 1, 2021 18:46
Show Gist options
  • Save taesup/5c4b8922bada845b6af6d46d2562a3f2 to your computer and use it in GitHub Desktop.
Save taesup/5c4b8922bada845b6af6d46d2562a3f2 to your computer and use it in GitHub Desktop.
Exit Information

Podcasts

15 podcasts about JS

Books

The first set of books are highly recommended to start out with, the rest are more specific to certain situations and can be covered as needed, at your leisure.


https://github.com/chhantyal/influential-cs-books

http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

UI/UX Books

Packt Free Book a Day
Free Dev Book each day!

Links

Data Structures and General JS

Closures (credit: Bronson Avila, C23)

Algorithms

Data Algos

Data Algos in JS

Data Structures in JS

Performance

Web Perf

Design

Design Tips

Better Designed Websites

More Simple Web Design

Front End Wizard

Build better forms

30 Seconds of CSS

Interview Prep

Backend Interview Questions

Frontend Interview Questions

Data Structure and Algorithms

Interview Advice

Being a better programmer

Open Letter to less experienced developers

What do older programmers know that younger ones don't

Developer Roadmap

Knowledge Decay

This is a must read: Binary Stars

The Best Career Advice

Websites to keep up to date

HackerNews

Coding Questions Websites

Hackerrank

LeetCode

Youtube and videos

YouTube Channels

Chrome Developers Channel
HTTP 203 and Designer vs Developer are really good series of videos to keep your eye out for.

Computerphile

TheNewBoston (credit: Baseem Missaghi, C19)

Interview based

Mock Google Interview

Top Algorithms for Coding Interviews

Talks

(There is a good list of talks about JS to be found here) I would recommend anything by Douglas Crockford, Paul Irish, Ryan Dahl, Brenden Eich first. The rest can be specific to certain topics so pick and choose things that are interesting to you.

Blogs and people to follow

FreeCodeCamp

HackerNoon

Jeff Atwood - Co-founder of StackOverflow

Joel Spolsky - Co-founder of StackOverflow and founder of Trello

Chad Fowler : Check out his books section and follow on twitter

Martin Fowler : Founder of ThoughtWorks

TJ Holowaychuk - Creator of Express.js!

Paul Irish - Google Chrome Developer Relations team

Paul Lewis - Google Chrome Developer Relations team

Ilya Grigorik - Google Chrome Developer Relations team

Addy Osmani - Google Engineer on the Chrome Team

Jake Archibald - Google Chrome Developer Relations team

Douglas Crockford - Evangelist for JavaScript Language

Twitter

For some reason, all the developers tend to use Twitter and Blogs like Medium to get their thoughts and opinions out more so than anything else.

Rants

Ed Kim:

Try to learn one language in depth. What I mean by that is to learn it completely. Learn how the entire stack works. Learn how it's compiled to the microprocessor. Learn about the concurrency model it uses. Is it OOP? Imperitive? Functional Programming? Is it a statically type language or dynamically typed? What's the package management system it uses? What's the best practices? Who are the people to follow?

This make transitioning to another language much easier because the differences between languages is pretty small. Once you understand how to manipulate the data in one language, it's largely the same for all languages. Constructs such as for loops, arrays, hashes, etc are relatively the same across languages. Understanding the architectural differences between languages will be the single thing that differs between languages. (Static vs dynamically typed, single threaded vs multi-threaded, OOP vs functional vs imperative). Some languages will have quirks, python is whitespace based, Assembly is meant for the microprocessor specifically, LISP only has 3 methods (car, cdr, cons) but you could build anything from that, Haskell has only immuteable data, etc.

Ed Kim

The best way to become a better programmer is to write code. A. LOT. OF. CODE. Continue to build things that pique your interests, whether it's a desktop app with Electron or a new mobile app with React Native or Flutter, just keep building anything that interests you.

In between building things, spend a lot of time just reading code. If you use jQuery a lot, go read the source for jQuery. Or if you spend a lot time in Moment.js, Angular, React, lodash, or any other library you use often, go read up about how it works, then read the source code itself to see how developers with more experience than you built those concepts. Github and NPM are great places to start just reading how people turn concepts into code.

If you spend a lot of time learning about new (to you) concepts like Singleton patterns, or the Observer Pattern, you'll notice when they make sense to use in your own codebase. Reading about how other people have implemented these pattern give you a insight into the engineering challenges they've overcome to make these concept work in whatever language you're currently using.

Another good thing to keep up with is to build cool things that you've seen elsewhere. Did you see a cool animation on someone else's page? Try and recreate it yourself on your own page. There's a lot to learn in just trying to replicate other's work.

In the same vein, try to rebuild some functionality you've seen somewhere else. Never implemented a payment portal on a website? Build a demo website with Stripe built in and try to see if you can get test accounts to work. Never sent an email from the backend? Try and send a confirmation email whenever a test user creates an account. These will all be things you will be asked to write at some point in the future, if you can get ahead of it now, it'll be easier to implement when it's needed in your day job. Rip apart any application you can get your hands on and see if you can recreate small parts of it, or even the whole application yourself. Even if you don't get far, you'll still learn a lot along the way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment