Developers produced some really great resources for each other in 2017. After 8+ years reading and curating developer content, I thought it was about time that I compile an end-of-year list with the scores of resource links that I share on Twitter and Reddit throughout the year. I look through dozens of developer newsletters, subreddits, Medium publications, and HN each week — so I don’t miss much. Hope you find some gems you didn’t catch initially in 2017!
Search over 311 million rows of metadata about open source projects and the network of dependency data that connects them all in this easy-to-understand interface. In 2017 Library.io had its second open data release, so I’m including it even though the project didn’t originally start in 2017. You can use it to understand how various open source projects are used throughout an ecosystem.
GitHub made an awesome move by creating a page that finally answers this question many budding developers have: “What open source projects can I contribute to?” They’ve crunched and analyzed their data to determine which projects have a history and reputation for being welcoming to new open source contributors.
A really good perspective on how and why to write useful comments in code.
This is the kind of trivia from CS class that’s useful to know but asinine to make people memorize for technical interviews. Brush up on this stuff and see if it can help you improve your day-to-day code by showing you where deeper bugs and inefficiencies can occur.
{WARNING: Commenters have informed me that this site uses your computer to mine bitcoin when you visit. If you still want to check it out, install an extension like No Coin. Hopefully they can’t circumvent that yet.} Somebody had an excellent idea to scan over 40 million questions on Stack Overflow for any book references. Think of it as a data-driven popularity ranking for the best developer books.
Over 35 tools and resources for designing good RESTful APIs and keeping up with the API space. I collaborated with the author who built this list and I know that it is continually updated.
To anyone who likes this resource list so far — you need to check out the “Awesome” lists on GitHub if you’re not already aware of them. Start with Sindre Sorhus’s Awesome list of Awesome lists. Programming Talks is a GitHub “awesome list” of programming video presentations sorted by language. The author of the list seems to like more academic languages like Haskell, Python, and Clojure, since there’s a large list of talks for those languages, but all the main ones are well-represented.
This repo is a collection resources to help you learn how to build systems at scale. It also includes study materials for system design questions in technical interviews.
Although it’s only one chapter of an entire book on selecting technologies for your technology stack, it’s still a good article to help guide your mindset.
It’s the first update to the Red Book in over ten years. This collection of chapters includes opinionated takes on both classic and cutting-edge research in the field of data management.
Some unofficial but very good docs on how to use and understand the query optimizer in MySQL 8.0
If there’s one web performance resource you can’t miss from 2017, it’s Karolina Szczur’s collection of tactics for impactful performance improvements.
His stuff isn’t just about web performance, but if you develop in JS, you need to be reading Addy’s blog.
An attempt to simplify and focus the topic of web performance to make it more accessible for those who are overwhelmed by some of the complexities discussed in the community.
So much good advice for setting your front-end performance goals. I think there’ll be a new one soon since this one has been around for just over a year now. Not that I expect any huge differences.
It may not sound like the most riveting topic, but it’s actually very digestible and heavily bulleted. You’re going to need it if you want to check all the boxes on that Front End Performance Checklist.
Instantly loading everything — sounds pretty great. Hear about some JS performance strategies from Addy Osmani. It’s one of several excellent talks he gave in 2017.
One cunning web developer figured out how Google reduces its CSS bundle size and shows you how to do it yourself.
This resource isn’t a learn-JS-from-scratch cheatsheet. It’s more focused on the next step after basics — recognizing some of the things you might encounter in more modern JS codebases.
A curated collection of useful JavaScript snippets that you can understand in 30 seconds or less. Currently there are over 100.
It looks like Awesome Awesome Node.js is an attempt to gather all of the best list resources on Node.js, in addition to the existing Awesome Node.js repo. So meta…
A curated list of content that covers Node best practices.
This checklist for running Node.js in production is well-designed, using best practices gleaned from high ranking blog posts.
A nice primer that distills the five key concepts you need to grasp before starting to develop in React.
This React fundamentals course by Kent C. Dodds — A JS developer/speaker of PayPal fame — is now free forever.
Curated by ReactDOM: The ReactJS, React Native & GraphQL newsletter.
Also curated by ReactDOM.
Planning to start using JS modules? Start here.
Survive.js… an appropriate name when you think about all the churn in the JS space. There are also survive.js books on maintenance and React in addition to this webpack book, but there are plenty of resources on those topics, and I think the webpack book stands out among its competitors. Webpack is one of the most useful tools in the JS ecosytem you can learn.
Unlike the previous checklist on front-end performance, this one is focused on best practices for page structure and design. Plus, it’s an actual checklist with checkboxes. Fancy.
Here’s another useful website that helps you quickly determine if a particular browser supports a specific web standard.
freeCodeCamp has a lot of free resources on its YouTube and Medium pages. This resource is probably a good place to start if you want to get into web development or brush up on JS basics.
I know the internet is littered with Flexbox tutorials, but this one from 2017 has very helpful animated gifs to help you visualize the concepts while you read about them.
Wordpress continues to evolve, and with it — your security and performance maintenance need to evolve as well.
Inspired by Brian Leroux’s talk “WTFJS” at dotJS 2012, this list contains “funny and tricky” JavaScript examples that can teach you a lot about the language. I tried to end this section with something a little more entertaining!
You know when the Martin Fowler blog breaks down a topic, you need to start taking this shit seriously. Also, how have you not studied the new OWASP top 10 yet?
And here’s a good, simplified checklist to go with the “Basics” article above.
Here’s 12 unique games for improving your security skills. If you’ve been around the security community at all, you’ll know that games are a common tool for learning.
The collection of “awesome lists” for testing grew substantially in 2017. Here’s the basic primer that anyone new to testing in the software industry (or needing a refresher) should read.
Visual regression testing can be tricky to carry out. This list is not tailored to a specific role, so it’s useful for anyone in UX, testing, or development.
More teams need to use static analysis tools, and this curated list of static analysis tools, linters, and code quality checkers is a great place to start.
This could be a useful framework for discussing test strategy if your testing strategies aren’t already super-mature.
A funny, whimsical, and very readable guide to building a general deployment strategy that isn’t outdated and stupid.
This is an ebook in slideshare format outlining how to monitor the “golden signals” aka. important metrics of an app. Apparently a lot of people talk about the golden signals, but not how to monitor them.
Staging environments are considered a best practice, but why? This article gives you a lot of good reasons along with great general techniques and advice for running your own staging environment.
A lot of teams know they need UX and operational analytics for their apps, but they don’t know what specific metrics they need, and they might not know how to get them either. This article gives you the baseline analytics that every application development team should have, and it tells you how to get them.
This is a short article, but it’s useful if you’re starting to hire and use SREs for the first time.
There are tons of really good machine learning courses on the web now. Here’s a list that can help you sort through some of the noise.
A list of cheatsheets for popular ML and DL libraries.
Python is perhaps the most common programming language used for data science. While this book was published in late 2016, it became free online in 2017.
You’ve got plenty of resources here, but do you know how to land a data scienmce job? This guide gives you a good starting point (you have to register, but after that it’s free)
I collaborated with the author to build this data science resource list. It has all the best resources and courses from the last couple of years. There are also new resources in the comments since the article was published.
A curated guide to data visualization tools and resources.
Any topic turned into a periodic table is pretty cool in my book. This one organizes and defines the more granular practices of XP, Agile, Lean, and other work styles. You might find a few interesting tactics that you never knew about.
A list of organizations, conferences, actionable resources, and more related to improving diversity in tech. I think it’s a really important and often-overlooked or dismissed topic in our field, so I decided to write up two articles myself on hiring and keeping underrepresented team members.
This repository contains many interesting and inspiring employee handbooks and culture decks. Some of the companies include Netflix, Spotify, Valve, GitHub, and Google. I summarized the lessons from several of these culture decks and handbooks in an article last year. (The site was literally published in the same month that I wrote that article. Same idea at the same time.)
Developers and managers can benefit from learning mental models. They help us make better business and technical decisions.
Ever heard of public product road maps? Read about them here and see how they’re done.
2017 was the year of the “side hustle” (or at least the year where no one would shut up about it). So if you’re looking to market your own side project, there’s no better place to start than with this checklist.
Some of these strategies might seem like overkill or unnecessary work, but if you want to be sure that you’re making something that people actually want, then you need to be a little extreme sometimes.
Maybe your side hustle is to start a blog or community. This guide can help you get started with that.
Using data from their annual dev survey, Stack Overflow built a salary calculator web app that shows you typical salaries for your experience level, location, specific technologies, and education.
One blogger decided to take Hacker News’ weekly “Who’s Hiring” posts and count the requested skill keywords. It should give you a good look at the skills and stacks that startups are looking for right now.
A multi-article series by Itamar Turner-Trauring on how to live your best dev life. Lots of good “learning to learn” material, as well as productivity tips, career advice, and work/life balance advice.
I wrote an article in 2016 summarizing the widespread backlash against the “whiteboard interview”. This GitHub repo contains a list of companies that don’t do whiteboard interviews. It helps job seekers who don’t want to support companies that use these technical interview strategies.
Instead of counting the number of days someone’s been paid to write code and massaging that into a title, Randall Koutnik suggests an alternative way for looking at the trajectory of a developer’s career. In this talk, he describes three stages of a developer’s life that can help developers reconceptualize their own growth, and help managers understand a better way to promote developers.
If you want to see what developer resources I find in 2018, follow me on twitter: @mpron