Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dtsdwarak/cs_prep

Guide to CS Engineering and Interview Prep
https://github.com/dtsdwarak/cs_prep

algorithm algorithms algorithms-and-data-structures computer-science cs-prep interview system-design

Last synced: 22 days ago
JSON representation

Guide to CS Engineering and Interview Prep

Awesome Lists containing this project

README

        

# CS Prep Guide

This guide aims to help you scale from zero to infinity for a career in domains related to Computer Science in general and Software Development in particular. I'd highly encourage you to read [this](https://captnemo.in/blog/2015/10/12/get-better-at-software-development/) as well - as an introduction to getting better.

>Be curious. Read widely. Try new things. What people call intelligence just boils down to curiosity - Aaron Swartz

## Table of Contents

- [1. Computer Science Curriculum](#1-computer-science-curriculum)
* [Stuff for the curious](#stuff-for-the-curious)
- [2. Technical Books to Read](#2-technical-books-to-read)
* [The essentials](#the-essentials)
* [Optional Alternative](#optional-alternative)
- [3. Programming/Interview](#3-programming-interview)
- [4. Free Side Project Ideas](#4-free-side-project-ideas)
* [Open Source Projects](#open-source-projects)
- [5. Building Profile/Knowledge](#5-building-profile-knowledge)
- [Similar Guides](#similar-guides)
- [LICENSE](#license)

## 1. Computer Science Curriculum

Courses below helps you cover the very basics of CS.

* [Google's CS Career and Technical Developement Guide](https://www.google.com/about/careers/students/guide-to-technical-development.html)
Consists list of MOOC Courses and Resources for a career in CS
* [Open University](https://github.com/open-source-society/computer-science)
List of free online MOOC courses that you might take up to gain your free education in Computer Science
* [TeachYourSelfCS](https://teachyourselfcs.com/) **[RECOMMENDED]**
Best CS curriculum to start ground up.

### Stuff for the curious

* [Computer Science Field Guide](http://csfieldguide.org.nz/)
* [CS Handbook](http://www.thecshandbook.com/)
* [Computer Science from the Bottom Up](http://www.bottomupcs.com/)
* [Open Data Structures](http://opendatastructures.org/)
* [List of Awesome Courses](https://github.com/prakhar1989/awesome-courses)

## 2. Technical Books to Read

### The essentials

* [Fred Brooks' The Mythical Man-Month](https://www.goodreads.com/book/show/13629.The_Mythical_Man_Month)
* [Donald Knuth's The Art of Computer Programming](https://www.goodreads.com/book/show/9410434-the-art-of-computer-programming-volumes-1-4a-boxed-set)
* [Structure and Interpretation of Computer Programs](https://www.goodreads.com/book/show/43713.Structure_and_Interpretation_of_Computer_Program)

### Optional Alternative
You can also cover a list as given here. Thanks to [Abhay Rana](https://captnemo.in/).

* [List by CodingHorror](https://blog.codinghorror.com/recommended-reading-for-developers/)
* [Find some here as well](http://hackershelf.com/browse/)
* [A LONG LIST OF FREE EBOOKS](https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md)
* [blog.dwarak.in - CS Book List](https://blog.dwarak.in/2018/11/24/CS-Book-List/)
* [blog.dwarak.in - Recommended Readings for CS Graduate](https://blog.dwarak.in/2020/12/13/Recommended-Readings-For-CS-Graduate/)

## 3. Programming/Interview

Reference for [Interview Prep Guide](./INTERVIEW_PREP.md)

## 4. Read CS Papers

1. [The Morning Paper](https://blog.acolyer.org/) - This is no longer active. But contains a good repo of papers though.
2. [Micah Lerner](https://www.micahlerner.com/)
3. [Metadata - Murat Demirbas](https://muratbuffalo.blogspot.com/)
3. [Arxiv.org](https://arxiv.org/)

## 5. Free Side Project Ideas

* [From @karan](https://github.com/karan/Projects)
* [My own side project list](https://docs.google.com/document/d/1QEdIOuvvJN5LIQapNcEIXhGLUGrgfFQp585wu33I5oQ/edit?usp=sharing)
* [Side project list from HN](https://news.ycombinator.com/item?id=23290536)

### Open Source Projects

Some Open Source projects where you can start contributing. How to start? [Read this](https://blog.newrelic.com/2014/05/05/open-source_gettingstarted/).

* [From Github](https://github.com/explore)
* [A list of organizations from GSOC](https://developers.google.com/open-source/gsoc/2016/organizations)

## 6. Building Profile/Knowledge

Here is a list of [best engineering blogs](http://www.nicolabortignon.com/startup-reading-list/) that you may want to follow.

Some great engineering channels that you can follow

* ![Youtube Icon](assets/youtube.png) [Hussein Nasser](https://www.youtube.com/@hnasr) **[Great Podcast About Systems Design & Backend Engineering]**
* ![Youtube Icon](assets/youtube.png) [Asli Engineering by Arpit Bhayani](https://www.youtube.com/@AsliEngineering)
* ![Youtube Icon](assets/youtube.png) [The Geek Narrator](https://www.youtube.com/@TheGeekNarrator)

Aside from the above,

* Create a Twitter account and follow good lists.
* Create a StackOverFlow account and answer as many questions as possible - explore and learn.
* Listen to podcasts. Some of my personal favourites [here](https://blog.dwarak.in/2015/07/13/Best-Podcasts-On-Web/).
* You might also want to follow [HackerNews](https://news.ycombinator.com), [Lobsters](https://lobste.rs) for explosure. Or get everything at [Coven](http://www.coven.link).
* Talk and present in meetups/conferences. A list of best developer conferences [here](https://news.ycombinator.com/item?id=10831730).
* **Stay Humble. Don't be an ass!**

---

## Similar Guides

[Interview](https://github.com/andreis/interview) by [@andreis](https://github.com/andreis/)

---

## LICENSE

Content licensed under [MIT](https://opensource.org/licenses/MIT).