A collection of resources for Software Engineers.

Starting Out

Overview

ACM’s CS Curricula
An internationally recognized curricula published every decade.
Software Engineering Body of Knowledge (SWEBOK)
Covers the technical and business skills required of a professional Software Engineer.

Hard Skills

Learn X in Y minutes
A great place for a quick overview of a language.
The Missing Semester of Your CS Education
Review of required technical sophistication.
Vim Cheat Sheet
A cheat sheet for Vim.

Learn to Program

How to Design Programs (HTDP)
A great introduction to programming. Frankly it should be required for High School
HTDP - Istanbul Bilgi University
A companion course to HTDP.
Stanford Engineering Everywhere
Covers 80% of the ACM’s CS Curricula (2013).
Programmer Competency Matrix
A good overview of skills for a programmer.
How to Debug
A great article on debugging in 12 steps.

Career Development

Advice

A Forty-Year Career
A great article on how to have a successful career in tech.

Interview Preparation

LeetCode
Reviews data structures and algorithms. It is a great place to practice for code interviews.
OtherBranch Problem
A great example of a coding problem.

Job Boards

HN: Who is Hiring?
A monthly thread on Hacker News where companies post job listings.

Exploration

Hacker News
A great place for interesting discussion. It has a “Ask HN: Who is hiring?” discussion every month.
Paul Graham’s Website
A great collection of essays.
Operating Systems: Three Easy Pieces
A great (open-source) text on Operating Systems.

Tools

Artistic Style
Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.
Doxygen
Doxygen is the de facto standard tool for generating documentation from annotated C++ sources.