A collection of the best resources for programming, web development, computer science and more.
DISCLAIMER: it is worth mentioning that a portion of resources (mainly courses and books) included have affiliate links or items mentioned are projects I have built that I directly benefit from their sale or use.
Books
- Clean Architecture - by applying universal rules of software architecture, you can dramatically improve developer productivity throughout the life of any software system. Now, building upon the success of his best-selling books Clean Code and The Clean Coder, legendary software craftsman Robert C. Martin (“Uncle Bob”) reveals those rules and helps you apply them.
- Clean Code: A Handbook of Agile Software Craftsmanship - even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
- Code Complete - widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade.
- Cracking the Coding Interview - learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.
- The Clean Coder - this book is packed with practical advice–about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
- The Complete Software Developer's Career Guide - early in his software developer career, John Sonmez discovered that technical knowledge alone isn't enough to break through to the next income level - developers need "soft skills" like the ability to learn new technologies just in time, communicate clearly with management and consulting clients, negotiate a fair hourly rate, and unite teammates and coworkers in working toward a common goal.
- The Pragmatic Programmer - Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.
- The Mythical Man-Month: Essays on Software Engineering - Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects.
- Soft Skills: The software developer's life manual - Soft Skills: The software developer's life manual is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics.
- HTML and CSS: Design and Build Websites - Introduces HTML and CSS in a way that makes them accessible to everyone―hobbyists, students, and professionals―and it’s full-color throughout. Utilizes information graphics and lifestyle photography to explain the topics in a simple way that is engaging.
- Head First Design Patterns: A Brain-Friendly Guide - At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software.
- Grokking Algorithms: An illustrated guide for programmers and other curious people - Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence.
- A Smarter Way to Learn JavaScript. The new tech-assisted approach that requires half the effort - Learning JavaScript is hell because of two problems. I remove the problems, and you start having fun. The first problem is retention. You remember only ten or twenty percent of what you read. That spells failure. To become fluent in a computer language, you have to retain pretty much everything.
- Code: The Hidden Language of Computer Hardware and Software - What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.
- Eloquent JavaScript: A Modern Introduction to Programming - JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.
Courses
- The 100 Front End Interview Questions Challenge - By the end of the course you'll be able to pass a front end technical screen covering the fundamentals of front end web development HTML, CSS, and JavaScript. We also will dive into interview prep, cultural questions, and general HR screening questions.
- 100 Algorithms Challenge - Technical interviews are the filter between good and great developers. At least that is how the industry sees it. In this course we will up your problem solving ability and speed with 100 algorithm problems and solutions.
- Harvard CS50 An introduction to the intellectual enterprises of computer science and the art of programming by Harvard University.
Sites
Sites - Coding Platforms
- FreeCodeCamp - Learn to code. Build projects. Earn certifications. Since 2014, more than 40,000 freeCodeCamp.org graduates have gotten jobs at tech companies including
- Scrimba - Our mind-blowing learning experience makes it easier than ever to grow your coding skills. So pick a course, start learning, and give your career the boost it deserves.
- CodeCombat - CodeCombat is a game-based computer science program where students type real code and see their characters react in real time.
- SoloLearn - Join the largest community of mobile code learners today.
- Coding Game - At CodinGame, our goal is to let programmers keep on improving their coding skills by solving the World's most challenging problems, learn new concepts, and get inspired by the best developers.
- The Odin Project - The Odin Project is one of those "What I wish I had when I was learning" resources. Not everyone has access to a computer science education or the funds to attend an intensive coding school and neither of those is right for everyone anyway. This project is designed to fill in the gap for people who are trying to hack it on their own but still want a high quality education.
- Bento - Bento's mission is to make technology education and opportunity available to all. Bento is a technology education company focused on educating and empowering the next generation of self-taught developers.
Sites - Algorithm Platforms
- AlgoExpert - If you want to ace the tech interview, being well-versed in all common data structures and popular problem-solving methods is paramount. With 85 questions spanning 14 categories and 5 difficulty levels, we've got you covered.
- HackerRank - Join Over 7 million developers, practice coding skills, prepare for interviews, and get hired.
- LeetCode - LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.
- Code Signal - formerly CodeFights a grate Algorithm site with a beautiful UI.
- Code Wars - Codewars is a collective effort by its users. They are creators - authoring kata to teach various techniques, solving kata with solutions that enlighten others, and commenting with constructive feedback. The leaders among them moderate the content and community.
- Exercism - Level up your programming skills with 3,173 exercises across 51 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever.
- Project Euler - Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
- Code Chef - CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming, and programming contests. At CodeChef we work hard to revive the geek in you by hosting a programming contest at the start of the month and two smaller programming challenges at the middle and end of the month. We also aim to have training sessions and discussions related to algorithms, binary search, technicalities like array size and the likes.
- Coderbyte - Coderbyte is a web application built to help you practice programming and improve your coding skills. We offer a collection of code challenges and web development courses that can help you prepare for upcoming job interviews. The coding challenges range in difficulty and they can all be completed straight in our online editor.
- Edabit - We're like Duolingo for learning to code. When learning to code, most people get stuck on the "bridge" between memorizing syntax and understanding the logic that makes it all work.
- Pramp - Join thousands of professionals practicing live mock interviews & interview questions online, with peers, for free. We help you prep & land your dream tech job.
Sites - Course Sites
- SkillShare - SkillShare has a ton of free courses and access to tens of thousands of paid courses all for the low price of $10 a month.
- Udemy - The leading global marketplace for learning and instruction. By connecting students all over the world to the best instructors, Udemy is helping individuals reach their goals and pursue their dreams
- Thinkster - a better way to learn. Learn how real apps are built, from scratch, using the latest frameworks.
- Frontend Masters - Advance Your Skills with In-Depth, Modern Front-End Engineering Courses
- EggHead - egghead is a group of working web development professionals and open source contributors that provide you with concise, information dense video courses on the best tools in the industry.
- Laracasts - Push your web development skills to the next level, through expert screencasts on Laravel, Vue, and so much more.
- Udacity - Our mission is to power careers through tech education. We partner with leading technology companies to learn how technology is transforming industries, and teach the critical tech skills that companies are looking for in their workforce.
- Khan Academy - Khan Academy offers practice exercises, instructional videos, and a personalized learning dashboard that empower learners to study at their own pace in and outside of the classroom. We tackle math, science, computer programming, history, art history, economics, and more.
- Codecourse - Rather than just teach theory, we focus on real code to inspire your next project. Learning shouldn't be boring, so let's have some fun.
- JavaScript 30 - 30 Day Vanilla JS Coding Challenge. Build 30 things in 30 days with 30 tutorials. No Frameworks. No Compilers. No Libraries. No Boilerplate.
- Flexbox Froggy - Welcome to Flexbox Froggy, a game where you help Froggy and friends by writing CSS code!
Sites - Career & Job Sites
- WayUp - is the industry leader for college students and recent grads to get hired.
- NovoResume - Novorésumé began in 2014 when Andrei, Cristian, and Stefan noticed a common problem among several of their contacts. Despite having extensive work experience and impressive skill sets, these individuals didn’t know how to showcase their talents with a professional resume and cover letter. Sensing an opportunity to help others with their job search, the three of them joined forces in exploring possible solutions as part of a university project.
- Glassdoor - Search millions of jobs and get the inside scoop on companies with employee reviews, personalized salary tools, and more.
- AngelList - Apply privately to 130,000+ tech & startup jobs with one application. See salary and equity upfront.
- U.S. Bureau of Labor Statistics - The U.S. Bureau of Labor Statistics provides a selection of useful reports on employment statistics and 10-year forecasts. Use them to determine if the career you’ve chosen is experiencing — or is likely to experience — a talent shortage. If so, you can expect a higher starting salary or more appealing perks if your skills match up with employers’ needs.
- PayScale - WHAT AM I WORTH? What your skills are worth in the market is constantly changing.
- Salary - Understand your worth and plan your next career move with easy-to-use tools.
Sites - Documentation
- W3Schools - W3Schools is optimized for learning, testing, and training. Examples might be simplified to improve reading and basic understanding.
- Mozilla - MDN's mission is simple: to provide developers with the information they need to easily build projects on the open Web. If it's an open technology exposed to the Web, we want to document it.
- Stack Overflow - Founded in 2008, Stack Overflow is the largest, most trusted online community for anyone that codes to learn, share their knowledge, and build their careers. More than 50 million unique visitors come to Stack Overflow each month to help solve coding problems, develop new skills, and find job opportunities.
- DevDocs - Fast, offline, and free documentation browser for developers. Search 100+ docs in one web app.
Sites - Freelance & Contract Work
- Upwork - To connect businesses with great talent to work without limits.
- Toptal - Toptal is an exclusive network of the top freelance software developers, designers, finance experts, product managers, and project managers in the world.
- Craigslist - Small web dev projects and web sites can be picked up pretty easily in the jobs or gigs section.
Sites - Style & Component Libraries
- Bootstrap - Bootstrap is an open source toolkit for developing with HTML, CSS, and JS. Quickly prototype your ideas or build your entire app with our Sass variables and mixins, responsive grid system, extensive prebuilt components, and powerful plugins built on jQuery.
- Materialize - Materialize is a modern responsive CSS framework based on Material Design by Google.
- Bulma - Bulma is a free, open source CSS framework based on Flexbox and built with Sass. It's 100% responsive, fully modular, and available for free.
- UIkit - A lightweight and modular front-end framework for developing fast and powerful web interfaces.
- Pure.css - A set of small, responsive CSS modules that you can use in every web project.
Sites - Hackathons
- AngelHack - The world's most diverse hacker community, driving innovation of tech products through developer programs.
- Major League Hacking - The official collegiate hackathon league. .
Sites - Community
- Meetup - Find Meetups so you can do more of what matters to you. Or create your own group and meet people near you who share your interests.
- Code.org - Code.org® is a nonprofit dedicated to expanding access to computer science in schools and increasing participation by women and underrepresented minorities.
- Girl Develop It - Girl Develop It is a nonprofit organization that exists to provide affordable and judgment-free opportunities for women interested in learning web and software development. Through in-person classes and community support, Girl Develop It helps women of diverse backgrounds achieve their technology goals and build confidence in their careers and their every day lives.
Sites - Code Playgrounds
- JSFiddle - Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
- Codepen - CodePen is an online community for testing and showcasing user-created HTML, CSS and JavaScript code snippets. It functions as an online code editor and open-source learning environment, where developers can create code snippets, called "pens," and test them.
- StackBlitz - Code the Future. In Your Browser. Create, edit & deploy fullstack apps — in just one click.
- Repl.it - Powerful and simple online compiler, IDE, interpreter, and REPL. Code, compile, and run code in 50+ programming languages.
Sites - Tools
- Trello - Whether it’s for work, a side project or even the next family vacation, Trello helps your team stay organized.
- Slack - Slack replaces email inside your company. Discuss, collaborate, share — work is better without the inbox.
- Github - We’re supporting a community where more than 40 million* people learn, share, and work together to build software.
- Hyper Terminal - The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards. In the beginning, our focus will be primarily around speed, stability and the development of the correct API for extension authors.
- f.lux - f.lux fixes this: it makes the color of your computer's display adapt to the time of day, warm at night and like sunlight during the day.
- Postman - Postman is the only complete API development environment. Today we have 8 million developers and over 400K companies using our comprehensive set of built-in tools to support every stage of the API lifecycle.
- Insomnia - Insomnia is a cross-platform GraphQL and REST client, available for Mac, Windows, and Linux.
- GitKraken - Unleash GitKraken! Three legendary developer productivity tools: the Git GUI Client for Windows/Mac/Linux development.
Sites - Misc
- Autonomous - the goto place for automated standing desks, treadmills and everything dev furniture related.
- Unsplash - The internet’s source of freely usable images.
- Humble Bundle - although known for their games. Now adays EBook bundles around web development are becoming increasingly popular.
Wireframes and Mockups
- InVision - InVision is the digital product design platform used to make the world's best customer experiences.
- Balsamiq - Balsamiq is the company behind Balsamiq Wireframes, the industry standard low-fidelity wireframing tool.
- Figma - A better way to design. Design, prototype, and gather feedback all in one place with Figma.
- Sketch - Sketch is a design toolkit built to help you create your best work — from your earliest ideas, through to final artwork.
Package Managers
- Yarn - Yarn caches every package it downloads so it never needs to download it again.
- npm - We're npm, Inc., the company behind Node package manager, the npm Registry, and npm CLI. We offer those to the community for free, but our day job is building and selling useful tools for developers like you.
Text Editors
- VSCode Text Editor - Code editing. Redefined. Free. Built on open source. Runs everywhere.
- Atom - Teletype for Atom makes collaborating on code just as easy as it is to code alone, right from your editor.
- Sublime - Sublime Text is a sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance.
- Notepad++ - Notepad++ is a free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.
- Vim - Vim is a highly configurable text editor for efficiently creating and changing any kind of text. It is included as "vi" with most UNIX systems and with Apple OS X.
Blogs
- Program with Erik - Erik is a two time author, YouTuber, Podcastor an much more. His blog includes tutorials, rantings and musings on software development, with a focus on JavaScript, Ember.js, Vue.js and Node.js.
- Overreacted - Dan Abramov's `I explain with words and code.`
- CSS-Tricks - Daily articles about CSS, HTML, JavaScript, and all things related to web design and development.
- David Walsh - A blog featuring tutorials about JavaScript, HTML5, AJAX, PHP, CSS, WordPress, and everything else development.
Podcasts
- Self-Taught or Not - Self-Taught or Not covers the do's and don'ts of software development, hosted by Dylan Israel & Erik Hanchett. New episodes every Monday!
- Tech Jr. - Lee Warrick and Edwin Otero explore what it's like to break into the Tech field as junior developers as well as how to stay up-to-date on new technology.
- The 6 Figure Dev - interviews developers to dive deep in their experiences, how to increase your income, and dive deep into their guests projects.
- FreeCodeCamp - The official podcast of the freeCodeCamp open source community. Learn to code with free online courses, programming projects, and interview preparation for developer jobs.
- Real Talk JavaScript - Dive into JavaScript and Web development stories with hosts John Papa, Ward Bell, and Dan Wahlin. Sponsored by Nrwl.io A weekly podcast where we tackle the challenges facing Web developers today and invite expert guests on the show to share ktheir experience solving concrete problems while building real Web applications.
- The Vanilla JS Podcast - A show about JavaScript for people who hate the complexity of modern front‑end web development, hosted by Chris Ferdinandi.
- EggHead.io Developer Chats - Humans talking about the business of building software, constant learning, and balancing it with everyday life.
- Syntax.fm - A Tasty Treats Podcast for Web Developers by Wes Bos & Scott Tolinski.
- Front End Happy Hour - A podcast featuring a panel of Software Engineers from Netflix, Twitch, Atlassian & Airbnb talking over drinks about all things Front End development.
- CodeNewbie - CodeNewbie Podcast Stories from people on their coding journey.
Facebook Groups
- Code, Tech & Caffeine - Coding noobs to senior devs to those just interested in technology this group is for you. This group is devoted to sharing helpful and interesting items in software and technology.
- Hackathon Hackers - This is the all-inclusive hackathons group.
- Hacking and Coding Tutorials - A closed group for technical enthusiasts interesting in hacking and coding. A place to openly discuss and share ideas and ask for help from real and certified hackers and programmers.
- Programming Jokes - 1000+ Jokes Only Programmers Will Get
- I Love Programming - Welcome to one of the most popular Facebook page related to programming :) Here we share best tutorials, news, YouTube videos and memes related to programming.
VSCode Extensions
- Live Server - Launch a development local Server with live reload feature for static & dynamic pages.
- Settings Sync - Synchronize Settings, Snippets, Themes, File Icons, Launch, Keybindings, Workspaces and Extensions Across Multiple Machines Using GitHub Gist.
- Bracket Pair Colorizer - A customizable extension for colorizing matching brackets.
- Quokka - Live Scratchpad for JavaScript.
- Live Share - Real-time collaborative development from the comfort of your favorite tools.
- Code Spell Checker - Spelling checker for source code.
- Prettier - Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
- Auto Rename Tag - Automatically rename paired HTML/XML tag, same as Visual Studio IDE does.
- ESLint - The extension uses the ESLint library installed in the opened workspace folder. If the folder doesn't provide one the extension looks for a global install version. If you haven't installed ESLint either locally or globally do so by running npm install eslint in the workspace folder for a local install or npm install -g eslint for a global install.
- EditorConfig - This plugin attempts to override user/workspace settings with settings found in .editorconfig files. No additional or vscode-specific files are required. As with any EditorConfig plugin, if root=true is not specified, EditorConfig will continue to look for an .editorconfig file outside of the project.
- Browser Preview - Browser Preview for VS Code enables you to open a real browser preview inside your editor that you can debug. Browser Preview is powered by Chrome Headless, and works by starting a headless Chrome instance in a new process.
- Chrome Debugger - Debug your JavaScript code in the Chrome browser, or any other target that supports the Chrome Debugger protocol.
- REST Client - REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.
- Import Cost - This extension will display inline in the editor the size of the imported package. The extension utilizes webpack with babili-webpack-plugin in order to detect the imported size.
- Code Metrics - Computes complexity in TypeScript / JavaScript / Lua files.
Conferences
- DevFest - DevFests are community-led developer events hosted by Google Developer Groups around the globe. GDGs are focused on community building and learning about Google’s technologies.
- NG-CONF - World's Original Angular Conference.
- AngelHack - The world's most diverse hacker community, driving innovation of tech products through developer programs.
Reddit Subreddits
- Learn Programming - A subreddit for all questions related to programming in any language.
- Daily Programmer - 3 Programming Challenges a week!
- WebDev - A community dedicated to all things web development: both front-end and back-end.
- JavaScript - All about the JavaScript programming language!
- Coding - Welcome to r/coding
Chrome Extensions
- Lightshot - Simple and convenient screenshot tool. Select an area, edit your screenshot and upload it to the server.
- JSON Formatter - Makes JSON easy to read. Open source.
- Form Filler - Fill all inputs in a page with dummy data.
- Wappalyzer - Wappalyzer is a cross-platform utility that uncovers the technologies used on websites. It detects content management systems, ecommerce platforms, web frameworks, server software, analytics tools and many more.
- Web Developer Checklist - For web developers who wants to make sure they follow best practices. This extension allows you to very easily discover problem areas in your website.
- IE Tab - Display web pages using IE within Chrome. Use Java, Silverlight, ActiveX, Sharepoint, and more. A "Top 10" extension since 2009!
- Lighthouse - Lighthouse is an open-source, automated tool for improving the performance, quality, and correctness of your web apps.
- Web Developer - The Web Developer extension adds a toolbar button to the browser with various web developer tools.