There are tons of great resources all over the internet. I've bookmarked hundreds of URLs and this page is my categorized collection of the references and free tools I've found to be helpful. If you're reading this and have something to add or find a dead link please send me a note. I'm continuing to add to this over time.
API Services | Career Management | Cloud Computing | Computer Science | Data Engineering | DataOps | Data Science | Datasets | Data Visualization | Programming | Software Development | Web Applications | Website Tools
Google Analytics Query Explorer
This tool lets you play with the Core Reporting API by building queries to get data from your Google Analytics views (profiles). You can use these queries with any of the client libraries to build your own tools.
GraphQL is a query language for your API, and a server-side runtime for executing queries by using a type system you define for your data. Learn about GraphQL, how it works, and how to use it in this series of articles.
How to design a RESTful API architecture from a human-language spec
A three-post series that teaches RESTful API design to solve users’ needs with simplicity, reliability, and performance.
API for accessing current weather data for any location including over 200,000 cities.
This free Chrome extension allows developers to explore, test, and build APIs using a powerful collaborative testing and development suite.
Categorizes different APIs scoured from the web which make their resources available for public consumption.
https://github.com/public-apis/public-apis | or | github.com/abhishekbanthia/Public-APIs
Enables developers to find, test, and manage API integrations from one place and provides real-time performance metrics.
Technical documentation for RESTful web services with references and language-specific examples.
What is a REST API?
Thorough overview on what REST APIs are and how to use them.
Career Management[return to top]
3 Data Career Paths Decoded
Helpful article that compares and contrasts the role of a data analyst vs. data scientist vs. data engineer.
CodeFights - Practice for Technical Interviews
Technical interviews are tough. CodeFights, which is best known as a competitive coding and skill-based recruiting platform, helps developers practice for these interviews through a free platform that offers study topics and practice questions.
Data Flair Interview Questions
Frequently asked interview questions, by category. Each question is accompanied by answers shared by industry experts.
Through firsthand experience working with data across organizations, tools, and industries a group of professionals have uncovered a better way to develop and deliver analytics through an emerging practice called DataOps.
This repository contains a set of charts demonstrating different paths to take and technologies to adopt in order to become a front-end, back-end, or dev-ops engineer. While it seems a bit overwhelming in the beginning, it is a useful guide for what’s possible and needed in this fast-changing industry. The repo gets updated every year to reflect changes in the ecosystem.
A Computer Science portal for geeks. It contains computer science and programming articles, quizzes, and practice/competitive programming questions. It also has a large database of company-specific interview questions.
Free portfolio site that allows developers to easily feature projects from their GitHub repositories.
Google Cloud Certification - Data Engineer
A Google Certified Professional - Data Engineer enables data-driven decision making by collecting, transforming, and visualizing data. To earn this certification you must pass the in-person exam. This webpage offers a collection of useful training resources and reference materials aimed at achieving this certification.
At some point in your professional coding career, you’re going to feel stupid when you forgot some simple term. Hackterms is a crowdsourced dictionary of coding terms and serves as a sort of wiki for coding language. Programming is full of jargon and self-inflicted nomenclature wounds. Hackterms helps by returning plain-speak explanations for these.
IBM Certified Data Engineer - Big Data
This certification is intended for big data engineers. To attain IBM Certified Big Data Engineer status, candidates must pass one test.
Learn and Practice on almost all coding interview questions asked historically and get referred to the best tech companies.
Free practice programming interview questions. Interview Cake helps you prep for interviews to land offers from your dream companies.
Interviewing.io is a platform where people can practice technical interviewing anonymously with engineers from top companies.
Learn To Code
Programming and computer science are becoming more popular than ever. As a result, there are an increasingly huge number of resources and tutorials being produced for beginners who want to learn to code, ranging from books to online tutorials to interactive websites to massive open online courses (MOOCS). This can be overwhelming for beginners – there are almost too many resources available, and it’s difficult to figure out where to start. This page offers a curated list of resources for both new developers and developers looking to advance their skills and learn a new language/framework.
Mastering SQL Queries
Practice easy, medium, and hard SQL interview questions.
Practice mock interviews and coding questions online, with peers, for free. Great practice for preparing for interviews and ultimately landing your dream tech job.
Undoubtedly you’ve heard about the skills gap challenges in the U.S. economy. Using select data from LinkedIn and [email protected]’s proprietary analysis, the [email protected] Skills Index takes a look at supply vs. demand around specific skill sets across top industries and provides actionable recommendations for getting up to speed.
For developers, this site offers public technical tests and practice interview questions. If you score well you can get free certificates to display on your online profiles.
Things You Need to Know in a Programming Interview
This article cover general tips on how you, the interviewee, can impress your interviewer during a coding session and land your dream job.
Cloud Computing[return to top]
AWS Explained: The Basics
A nice introductory primer for getting started in AWS and cloud computing in general.
AWS Tutorial for Beginners
AWS (Amazon Web Service) is a cloud computing platform that enables users to access on demand computing services like database storage, virtual cloud server, etc. This online course will give an in-depth knowledge on EC2 instance as well as useful strategy on how to build and modify instance for your own applications.
Computer Science[return to top]
Big-O Notation Cheat Sheet
This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science.
Coding Interview University
At a time where technology is outpacing the ability of many universities to update their course curriculum, many aspiring software engineers are seeking alternative forms of the education required to get a job. This is a popular complete computer science multi-month study plan to become a software engineer.
Great collection of resources for exploring different careers in tech.
CS Algorithm Notes
Set of CS lecture notes, which you can use to teach yourself algorithms.
CS Playground React
Intro to Computer Science Terminology
A complex definition: Computer Science is the study of information technology, processes, and their interactions with the world.
Teach Yourself Computer Science
If you’re a self-taught engineer or bootcamp grad, you owe it to yourself to learn computer science. This guide offers the nine subjects you should learn with the best book or video lecture series for each subject. Ideally this list can be revisited throughout your career.
Data Engineering[return to top]
7 Steps to Understanding NoSQL Databases
The term NoSQL has come to be synonymous with schema-less, non-relational data storage schemes. NoSQL is an umbrella term, one which encompasses a number of different technologies. This article provides newcomers an overview of NoSQL technologies and architectures it includes.
Airflow for Beginners
Introduced by Airbnb, Airflow is a platform to schedule and monitor data pipelines. This article overviews the basic setup to run Airflow including an example use-case.
Around Data Engineering
This actively-maintained GitHub repository details the never-ending journey of learning around data engineering and machine learning.
Awesome Data Engineering
A curated list of data engineering tools for software developers.
Beginner’s Guide to Big Data Terminology
Walkthrough on some of the common lingo of big data, such as DaaS and Neural Networking.
Complete Data Engineer’s Vocabulary
Comprehensive A-Z list of different data engineering concepts and technologies with brief summaries and embedded links to learn more information.
Conduktor is the ultimate Apache Kafka desktop client for performing regular Kafka administration and development tasks.
Data Engineering Cookbook
The Data Engineering Cookbook (124 pages) - Mastering The Plumbing Of Data Science - Andreas Kretz.
Free multi-platform database tool for developers, SQL programmers, database administrators, and analysts. Supports all popular databases: MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Derby, etc.
How to Become a Data Engineer
This article outlines helpful considerations if you’re interested in pursuing a career as a data engineer such as required skills, typical responsibilities, and career outlook.
Introduction to Apache Airflow
Apache Airflow is hot right now and if you’re interested in learning about it from a high-level, this a nice ‘intro’ guide.
Kafka for Beginners
Apache Kafka is used for enabling communication between producers and consumers using message-based topics. Apache Kafka is a fast, scalable, fault-tolerant, publish-subscribe messaging system.
A nice intro guide on what these are and why they are used.
Working with some messy address or name data? It helps to split each one into separate components. Parserator is a framework for making parsers using natural language processing (NLP) methods.
Self-Study List for Data Engineers and Aspiring Data Architects
With the explosion of “Big Data” over the last few years, the need for people who know how to build and manage data-pipelines has grown. This article takes a look at the sought after job skills for these areas and how you can go about learning these.
SQL vs NoSQL — What is better for you?
Important considerations when choosing a relational (SQL) or non-relational (NoSQL) data structure for your project architecture.
SqlDBM - SQL Database Modeler
SqlDBM offers you an easy, convenient way to design your database absolutely anywhere on any browser, working away without need for any extra database engine or database modelling tools or apps.
Stream Processing 101: From SQL to Streaming SQL in 10 Minutes
We have entered an era where competitive advantage comes from analyzing, understanding, and responding to an organization’s data. When doing this, time is of the essence, and speed will decide the winners and losers. This blog post introduces technologies we can use for stream processing.
Three Questions to Help You Prepare for a Data Engineering Interview
Data engineering requires a combination of knowledge, from data warehousing to programming, in order to ensure the data systems are designed well and are as automated as possible. The question is: How do you prepare for an interview for a data engineering position?
Transactional vs. Analytical Processing
Good cross-comparison between OLTP and OLAP systems.
What Does a Data Engineer / Data Architect Do?
This post explores the path of becoming a data engineer / big data architect.
What Is Big Data?
Analyzing lots of data is only part of what makes big data analytics different from previous data analytics. This article delves into what those other aspects are.
What Is ETL?
ETL is shorthand for the extraction, transformation, and loading process used in most data movement operations. This article provides a nice overview for those wanting to understand the basics around these phases.
DataOps[return to top]
Dataframe - The GitHub for Data
Dataframe is a collaborative knowledge-base for data workers. It’s a single source of truth for data context, automatically mapped from your favorite data tools. And it serves as the productivity layer that enables true data democratization in an organizational setting.
Data Science[return to top]
Best Practices for ML Engineering
This guide is intended to help those with a basic knowledge of machine learning get the benefit of best practices in machine learning. If you have taken a class in machine learning, built, or worked on a machine-learned model, then you have the necessary background to read this document.
Data Mining in Python: A Guide
Data mining is the process of discovering predictive information from the analysis of large databases. This guide provides an example-filled introduction to data mining using Python, one of the most widely used data mining tools - from cleaning and data organization to applying machine learning algorithms.
Dolt for Data Version Control
Dolt is the true Git for data experience in a SQL database, providing version control for schema and cell-wise for data, all optimized for collaboration. With Dolt, you can view a human-readable diff of the data you received last time versus the data you received this time. You can easily see updates you did not expect and fix the problem before you deploy the new data.
Foundations of Machine Learning
This training course offered through Bloomberg covers a wide variety of topics in machine learning and statistical modeling. The primary goal of the class is to help participants gain a deep understanding of the concepts, techniques and mathematical frameworks used by experts in machine learning. It is designed to make valuable machine learning skills more accessible to individuals with a strong math background, including software developers, experimental scientists, engineers, and financial professionals.
Handy Python Libraries for Formatting and Cleaning Data
Data scientists spend a lot of time cleaning messy data. This is a list of Python libraries that help make data more orderly and legible - from styling DataFrames to anonymizing datasets.
Offers a means of learning data science through both public and private competitions.
This website looks like its design hasn’t changed since the 90s, but it is home to lots of great content on business analytics, big data, data mining, and data science.
R or Python for Data Science?
This is a nice blog post on opendatascience.com that digs into the differences/advantages of using either R or Python for performing data science tasks.
Regular expressions are extremely useful in extracting information from text such as code, log files, spreadsheets, or even documents. This site offers an interactive tutorial and practice exercises to help you learn them.
Open source R packages that allow access to data repositories and provide programmatic access to a variety of scientific data and other real-time metrics of scholarly impact.
TensorFlow is a machine learning library that underlies many of Google’s products. With this playground site, you can tinker with a neural network right in your browser.
Datasets[return to top]
Appen AI Resource Center
Collection of free, downloadable, and categorized datasets that have been created and curated for teams working on world-class AI applications.
This GitHub repo contains a list of a topic-centric public data sources in high quality. They are collected and tidied from blogs, answers, and user responses.
AWS Registry of Open Data
This registry exists to help people discover and share datasets that are publicly available via AWS resources.
Data.World: The Social Network for Data People
Discover and share cool data, connect with interesting people, and work together to solve problems faster. Users can find and use a vast array of high-quality open data.
Google Dataset Search
Free tool for searching over 25 million publicly available datasets. The search tool includes filters to limit results based on their license (free or paid), format (csv, images, etc), and update time. The results also include descriptions of the dataset’s contents as well as author citations.
Google’s My Activity Page
This portal reveals everything Google knows about you - every search you’ve made, the apps you’ve used, the videos you’ve watched, and everything in between. Visit to see how your data is being collected, modify activity settings, and delete data that you prefer not retained.
Data Visualization[return to top]
Google Data Studio
Free product lets you connect to all your marketing data and turn that data into beautiful, informative reports that are easy to understand, share, and fully customizable.
Programming[return to top]
A curated list of delightful VS Code packages and resources.
Beginner’s Resources to Learn Programming Languages
This blog post details some important programming languages and offers numerous links for learning more about each.
A curated collection of tutorials and free learning resources for learning to code in new languages.
Free site lets you share your code with others in CodeEnv online environments. Good for teaching, prototyping, and sharing fiddles.
CodeProject: Diving in OOP
Comprehensive article that covers almost every OOP (object-oriented programming) concept in detail with C# examples.
Offers programming problems and lessons for challenging yourself to get to become a better coder.
Offers sandbox environments for developers to play around with and modify live sample code for all kinds of languages. It’s also easy to share or demonstrate solutions to problems.
Gitignore: A Collection of .gitignore Templates
This repository is exactly what the name suggests: a collection of useful .gitignore templates. For every new project you set up as a GitHub repository, it becomes mandatory to have a .gitignore file to filter what gets uploaded. The repo contains templates for almost any language or framework.
Google’s Go Language
This article represents a nice primer on the differentiating features of Google’s Go language (Golang) and its tools, including its extremely lightweight concurrency.
HackerEarth is a network of top developers across the world. Developers participate in online coding challenges and hackathons, solve problems and discover the best jobs.
Join over 2 million developers in solving code challenges on HackerRank, one of the best ways to prepare for programming interviews.
Java Beginner’s Guide: Part 1 of 3
Great series of posts that will help you either learn or brush up on Java programming concepts in a simple and effective way.
Code faster in Python with intelligent snippets - Kite is a plugin for your IDE that uses machine learning to give you useful code completions for Python.
Learn Code The Hard Way
Learn Code The Hard Way courses are an effective system for learning the basics of computer programming, designed specifically for complete beginners.
Learn to Code From Home
Learning to code can be daunting, but you can do it at your own pace from the comfort of your own home. Thanks to dedicated programmers who have put time and energy into creating free online walkthroughs and guides to various programming languages, there are plenty of free resources right at your fingertips that offer hands-on activities and general overviews for beginner coding projects and advanced tasks.
Level up your coding skills and quickly land a job. This is a good place to expand your knowledge and get prepared for your next interview.
Real Python: Python Tutorials
Learn Python online: Python tutorials for developers of all skill levels, Python books and courses, Python news, code examples, articles, and more.
Rosetta Code Programming Tasks
Offers over 800 problems that can be solved through programming in different languages. Great for practice.
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.
Python Challenge is a game in which each level can be solved by a bit of (Python) programming. It’s a good way to practice through solving riddles.
Software Literacy: Programming Learning Guide
Programmers have to know how to work within systems and networks, using different programming languages to create and adapt software that helps their employers get things done. This post offers helpful links to online tutorials and tools for learning how to code in some of the most popular programming languages.
SQL Cheat Sheet
In this guide, you’ll find a useful cheat sheet that documents some of the more commonly used elements of SQL, and even a few of the less common.
Topcoder is a company that administers contests in computer programming, through which prize money can be won. Competition aside, this site also offers regular challenges and matches through which you can learn new skills and hone skills you already have.
Understanding Go Pointers
This post is for programmers coming to Go who are unfamiliar with the idea of pointers or a pointer type in Go. It also digs deeper into the concept of computer memory (RAM) and how memory location is accessed through your code.
A huge selection of cheat sheets for almost any current programming language and other technologies.
Software Development[return to top]
30 Best Practices for Software Development and Testing
Some good suggested software engineering principles and testing best practices that might help save you time and headaches.
50 Tips for Improving Your Software Development Game
This post compiles the most illustrative advice and recurring tips from blogs/forums around the topic of being a great programmer. These are organized into five themes that emerged. A great reference for developers looking for ideas around self-improvement.
Draw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams.
ExtendsClass provides developer tools directly usable in a browser, such as disposal syntax validators, code formatters, testers, HTTP clients, mock servers, and SQLite browsers.
Git Branching Model
This post outlines a development model for git branching strategy and release management.
This page tries to collect the libraries for the queueing systems (job, messaging, etc.) that are widely popular and have a successful record of running on (big) production systems.
Helping you make more informed decisions about the software you use. Libraries.io indexes data from a growing number of projects from numerous package managers. The ‘dependency tree’ that emerges is the core of the services that are provided.
Read the Docs
Read the Docs simplifies software documentation by automating building, versioning, and hosting of your docs for you.
StackShare provides online software for displaying and sharing your technology stack, which is made up of the software that you use. It’s an online community that features comparisons, ratings, reviews, recommendations, and discussions of the best software tools and software infrastructure services.
The Twelve-Factor App
In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service (SaaS). The twelve-factor app is a methodology for building SaaS apps that can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).
Web Applications[return to top]
The Djanjo Book
Free online book offers comprehensive Python Django Tutorials, easy to understand Django documentation, the Model-View-Controller (MVC) design pattern, and more.
PythonAnywhere makes it easy to create and run Python programs in the cloud. You can write your programs in a web-based editor or just run a console session from any modern web browser. There’s storage space on our servers, and you can preserve your session state and access it from anywhere, with no need to pay for, or configure, your own server.
Python Web Frameworks
This report surveys 30 Python web frameworks that have more than 1,000 monthly downloads and provides a deeper look into six of the most widely used. Also provides general overview of web application frameworks and what they do.
What is Microservices Architecture?
Microservice architecture, or simply microservices, is a distinctive method of developing software systems that tries to focus on building single-function modules with well-defined interfaces and operations. The trend has grown popular in recent years as Enterprises look to become more Agile and move towards a DevOps and continuous testing. Microservices can help create scalable, testable software that can be delivered weekly, not yearly.
Website Tools[return to top]
Font Awesome makes it easy to add vector icons and social logos to your website.
Google Design: Resizer
An interactive viewer to see and test how digital products respond to material design breakpoints across desktop, mobile, and tablet.
How To Use GitHub Pages To Make Websites
Step-by-step tutorial to getting started with building a website hosted on Github Pages.
How to Host Your Static Site with HTTPS on GitHub Pages and CloudFlare
While GitHub offers free static website hosting and custom domain support, it is currently not possible to configure HTTPS for custom domains directly through GitHub Pages. This is where CloudFlare comes in.
Lighthouse is an open-source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, and more.
Mobile Website Speed Testing Tool
Another great Google product. Find out how well your site works across mobile and desktop devices by simply entering the URL.
Static Site Generators
A leaderboard of the top open-source static site generators based on Github stars.
Free online tool that grades any website against key metrics such as performance, mobile readiness, SEO, and security.
Who Is Hosting This
Allows a user to simply enter the domain name of any site and instantly uncover the identity of the company that is hosting the site.