Map of All the Computer Science Subfields - HedgeDoc
<center> # Map of All the Computer Science Subfields *Originally published 2016-05-26 on []( as a comment.* </center> There are hundreds of different roles related to computer science that don't directly involve programming. Here, I make an attempt to divide them up into a few major categories, wich a short description of each role. I listed some jobs twice because they can have the same title but be focused in one department or another. ## Infrastructure * [Sysadmin]( (managing, setting up, and [keeping systems running]( * Dev-ops (creating & using tools that devs use to manage systems) * Network Engineer (setting up, designing, and optimizing network infrastructures, TCP/IP, and other layers of the network stack) * Data Center Ops (they keep "the cloud" running) * Cable & Router Technicians (/r/cableporn) * Database Administrators (generally wizards) * Technical Support & Documentation (the incredibly tough bastards that actually deal with _ghasp_ users) ## Backend * Full stack engineers (a little bit of everything) * Backend Application Development (rails, django, node, etc.) * Project Management (not always a technical technical role) * Engineering Management (usually former developers get promoted to this job) * Software Architects (planning out features before they are coded) * API Design (designing the interfaces between systems) * Security & Pentesting * Distributed System Architects (dealing with [consistency, availability, partition tolerance](, timing, of large, globally-separated systems) * Database Administrators (managing, maintaining, sharding, and migrating data stores, different from infrastructure-focused DBAs in that they are also writing backend code which interacts with the stores) ## Frontend * Full Stack (a little bit of everything, but focused primarily on the pieces that support a frontend) * UX/UI Front end designers (photoshop, indesign, sketch, html & css, etc. only) * General front end web development (html, css, **and** js) * Single-page app development (mostly with JS frameworks, e.g. angular or [react]( * Quality Assurance & Testing (writing tests, doing human tests, making sure things work) ## Native * iOS, Android, Windows Mobile, etc. * Consumer-facing Windows Desktop, OS X Desktop, Linux app development * Enterprise software development (large, made-to-order applications for businesses) * IT administration & admin software design (often very system-specific, hence the Native category) * Software Architecture (similar to backend architecture, designing features before they are coded) ## Science and Theory * Scientific Research (loads of Matlab, R, and ipython and more) * "Pure Compsci/Pure Math" Research (with haskell, lisp, lots more) * Scientific Software Development (e.g. protein folding software) * Data science (matlab, r, ipython, scikit-learn, etc.) * Machine Learning (e.g. for [pagerank](, reverse image search, beer recommendation, used all over the place now) * Compiler & Language Design (not many jobs but very useful to learn, maybe mozilla foundation & rust?, and Guido certainly gets paid by Dropbox :) * OS Design (not just microsoft, windows, & linux, also qualcomm and lots of other telecoms hire [tens of thousands]( of engineers to write embedded and mobile OSs) * Compression (you can work for Hooli) ## Marketing This field has lots of overlap with data science. * Growth hacking/web scraping (selenium, beatifulsoup, phantomjs, scikit-learn, pattern, etc.) * Analytics (GA, mixpanel, optimizely etc. closely tied with marketing and SEO) * SEO & SEM (techniques to fuck with/obey search engines and convert $$ to visitors) * General Marketing Development (salesforce, analytics, content-design, and SEO) ## Hardware and Graphics * [Embedded Software]( (code that runs very close to the metal, e.g. the assembly code running your elevator) * Chip Design & Architecture (wizards) * Game development (very, very different from other kinds of programmers, questionably human) * Graphics software development (similar to gaming dev, in my experience, graphics people don't frequently switch to app dev or vice versa, I'd love to hear your comments) * 3D printing and machining coding * CGI & Animation (e.g. disney. pixar devs gave a talk about the wonders of cgi development at Pycon2015) --- ![]( I probably missed a few, feel free to suggest changes...

Recent posts:

Back to top