Welcome to the Code and Coffee syllabi colleciton. This set of documents are designed for people with computer science backgrounds to map out their careers in different software development career paths.
If you have any recommendations, suggestions, or errors you want fixed, please create an issue in the issues tab of the GitHub repository page.
In general there are 6 sections to these documents:
- Prerequisites - What you should be able to do before getting serious with the relevant career path
- Core Fundamentals - What you’d expect any professional in the selected career to know
- Recommended - Skills that are good to have for the selected career, especially if you want to get into the big 3 (Amazon, Facebook, and Google)
- Specialization - Branches of the relevant career you can specialize in to be more marketable
- Getting the Job - Tips to get that first insert career choice here job
- Career Advice - Tips for people after they start their careers in the selected field
There are a couple of disciplines to consider in this document:
- Marketability is what we care about. We care about the skills/tools that will help people to get a job, not necessarily the “best” tools. For example: Mongo has a bit of a reputation. It ranges from “it’s fine”, to “it was spawned from the deepest trenches of hell”. We decided to put it over Couch or Cassandra for the document database section even though they have arguably better reputations because Mongo is in higher demand.
- The more important a skill/tool, the clearer it should be on the syllabus. Bad example: saying “Learn Linux”. Learning Linux can mean anything from playing around with the CLI or making changes to the Linux kernel repro. Good example: saying “Read the UNIX and Linux System Administration Handbook”. This is a very clear and tangible goal that not only defines what you need to know but also how well you need to know it.
- When there is more than way to do something, recommend the most marketable one and offer the others as alternative.
- Technologies wax and wane so when deciding to include something ask yourself “Will this still be marketable 1 year from now”. If the answer is yes, include it.
- No nerd wars in these documents please. The answer to vim vs emacs is vim, emacs, or nano.