This is where I collect resources for programming. Links are organized by category. Please let me know if you have a recommendation for something I should add to this page!

General References

W3Schools.com ~ My go-to resource when I have a question about syntax or just generally how to do something. Offers extensive tutorials (with embedded practice code editors) on HTML, CSS, JavaScript, Python, C++, Java, SQL, XML, and myriad other languages and frameworks.

ASCII table and codes ~ Complete table of the 256 ASCII characters, including codes, names, descriptions, and Windows keyboard shortcuts. Also offers quick reference lists for certain categories and a brief history of ASCII.

List of Unicode characters ~ Brace yourself, because there are over 100,000 of them! But this Wikipedia page is very well organized by category and block, and offers tables with glyphs, unicode values, descriptions, and extensive links for getting sucked into a Wikipedia black hole. (Ever wanted to create a table or chart using only Unicode characters? Now’s your chance to learn how.)

Cheat-Sheets.org ~ In their words, “All cheat sheets, round-ups, quick reference cards, quick reference guides and quick reference sheets in one page. The only one you need.” Browse alphabetically by language or framework name.

NIST Dictionary of Algorithms and Data Structures ~ Did your professor mention a structure or method for solving a problem, and you have no idea what they were talking about? Look no further. You can browse this dictionary alphabetically or use the search capabilities.

IDEs & More

Repl.it ~ I like to call this “the Google Docs of the programming world.” This web-based IDE is a great way to write, debug, run, share, and collaborate on coding. Supports all major languages, and lots of niche languages as well. Requires a free account to use.

Jupyter Notebook ~ A web application that can be used to write and share code, text, images, and more. I’d recommend checking out the RealPython tutorial to get started using it!

Python

Python.org ~ Python’s home. Mostly go here to download Python.

Reference

W3Schools.com ~ My go-to resource when I have a question about syntax or just generally how to do something. Offers extensive tutorials (with interactive, editable examples!). Also has a great NumPy tutorial (NumPy is a Python library for arrays, data, linear algebra, etc.).

Python Tutor ~ Code visualizer that walks you through the code execution step-by-step, with diagrams showing how the parts of a program interact.

Real Python ~ Well-organized, practical, easy-to-follow tutorials with lots of functional code embedded in each lesson. Each tutorial walks you through details that others miss, like installing the libraries you’ll need, saving your work at regular intervals, and picking apart new code to make sense of it.

Python Documentation ~ The official Python “manual”. I recommend spending most of your time in the Language Reference, the guide to syntax and structure, and taking advantage of the search feature! Their introductory tutorial isn’t bad, either.

Textbooks/Classes

The Hitchhiker’s Guide to Python ~ Accessible, extensive, and occasionally snarky, this is a great handbook for getting started and developing good coding practices.

Invent with Python ~ An excellent series of fun and practical introductory Python books, which you can read online for free!

Python for Everybody ~ A free textbook and accompanying course to get started programming in Python.

Web Development

W3Schools.com ~ My go-to resource when I have a question about syntax or just generally how to do something. Offers extensive tutorials (with interactive, editable examples!) on HTML, CSS, JavaScript, and so much more.

Mozilla Developers Network ~ They have a great introduction to web development for beginners, as well as a bunch of references and tutorials for intermediate or expert developers.

WAVE Web Accessibility Evaluation Tool ~ Enter a webpage url to instantly get an extensive report of the page’s accessibility: structure, color contrast, image alt text, and much more.

Images, Graphics & Colors

Processing ~ A language for visual/graphic programming. Designed as an introductory programming language, it’s still fairly powerful and versatile. Best, though it was originally designed using Java-like syntax, it’s now been “translated” into JavaScript (p5.js) and Python (Processing.py).

HTML Color Names on W3Schools ~ An interactive palette of all the SVG color names, labeled with HEX values as well. Click on a color name to see if that color plays well with others.

HTML Color Picker on W3Schools ~ Get an in-depth profile of any color: how it looks with black or white text; its SVG, HEX, RGB, and HSL values; lighter and darker variants; and other related colors (in terms of HSL).

Another Color Picker ~ This one offers a lovely interface with sliders; color values in HEX, RGB, HSL, and CMYK; options for automatically generating different color harmonies; and a spot to “collect” colors and build a palette.

Adobe Color Wheel ~ To be honest, this one isn’t as useful for programming as the others, but it’s so attractive and fun to play with that I had to include it! Also has tools for choosing color combos that are accessible for people with visual impairments.

SQL

W3Schools.com ~ Robust tutorials and reference for SQL. Can be used as a learning platform (follow the tutorials in sequence) or a reference.

SQLZOO ~ Designed as a beginner tutorial for SQL, but thorough enough to be useful for review or reference as well. (You can also mouse over the “Reference” link in the left sidebar to see a list of syntax concepts.)

Other Languages & Frameworks

Scratch ~ A modular beginner programming language to create games and animations. Great for kids who aren’t quite ready to start coding yet, or for programmers who want a break from all the typing and serious stuff.

Processing ~ A language for visual/graphic programming. Designed as an introductory programming language, it’s still fairly powerful and versatile. Best, though it was originally designed using Java-like syntax, it’s now been “translated” into JavaScript (p5.js) and Python (Processing.py).