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.