https://github.com/jodaz/speedstudy
Path to a (mostly free) self-taught education.
https://github.com/jodaz/speedstudy
study-plan
Last synced: 7 months ago
JSON representation
Path to a (mostly free) self-taught education.
- Host: GitHub
- URL: https://github.com/jodaz/speedstudy
- Owner: jodaz
- License: mit
- Created: 2018-01-05T05:34:32.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-06-26T13:51:31.000Z (over 7 years ago)
- Last Synced: 2025-01-13T06:06:44.295Z (9 months ago)
- Topics: study-plan
- Homepage:
- Size: 86.9 KB
- Stars: 32
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 2018 - 2020 Study plan
The aims of these years is to have a deep understanding of Web development while building projects along the way, get a good foundation in Math, Algorithms and Data Structures, and enough preparation to get a job on the field.
- [Progress](progress.md)
- [The rules](faq.md#the-rules)
- [Part One - Getting Job Ready](#Part-One---Getting-Job-Ready)
- [Tier 0 - Prep](#tier-0---prep)
- [Tier 1 - Intro to Programming](#tier-1---intro-to-programming)
- [Tier 2 - Add Complexity](#tier-2---add-complexity)
- [Tier 3 - Practice](#tier-3---practice)
- [Tier 4 - Wrap everything up and prep for interviews](#tier-4---wrap-everything-up-and-prep-for-interviews)
- [Part Two - Depth dive into Computer Science.](#Part-Two---Depth-dive-into-Computer-Science.)
- [Math](#math)
- [Algorithms & Data Structures](#algorithms-and-data-structures)
- [Programming](#Programming)
- [Resources](resources.md)
- [Bonus List](progress.md#bonus-list)
- [Frequently Asked Questions](faq.md)
---## Part One - Getting Job Ready
### Tier 0 - Prep
**Goal**:Be comfortable with git by midway through Tier 1, and comfortable with Precalculus by midway through Tier 2._Anything in Tier 0 can be studied before beginning Tier 1, or alongside the rest of the guide as you progress through the other Tiers._
- [ ] [JavaScript Interview Prep](https://www.hackerrank.com/chingu-challenge-9-javascript-prep). Sign up for this now and work through it alongside the rest of the plan.
- [ ] Read up on [Gulp](http://gulpjs.com/) and try to incorporate it in your workflow
- [ ] Read up on [Mocha](https://mochajs.org/) and try to incorporate it in your workflow
- [ ] Read [Project Specification Documents](http://www.pixelearth.net/pages/project-specification) and get in the habit of including every bit of information it details that makes sense for a project in the README.md or other supporting documentation for your projects
- [x] Course: [Try Git](https://try.github.io/levels/1/challenges/1) and/or How to not f-up your local files with Git [part1](https://medium.com/@francesco.agnoletto/how-to-not-f-up-your-local-files-with-git-part-1-e0756c88fd3c), [part2](https://medium.com/@francesco.agnoletto/how-to-not-f-up-your-local-files-with-git-part-2-fc4e243be02a) and [part 3](https://medium.com/chingu/how-to-not-f-up-your-local-files-with-git-part-3-bf03b27b6e64)
- [ ] Read: [A successful Git branching model](http://nvie.com/posts/a-successful-git-branching-model/)
- [ ] **DOING** Read: [The Ten Rules of a Zen Programmer](https://www.zenprogrammer.org/en/10-rules-of-a-zen-programmer.html)
- [ ] Read: [What Every Programmer Should Know About SEO](https://katemats.com/what-every-programmer-should-know-about-seo/)
- [ ] Book: [The Pragmatic Programmer](https://pragprog.com/book/tpp/the-pragmatic-programmer) _this is a must-read_### Tier 1 - Intro to Programming
**Goal:** Become Proficient with HTML, CSS and JavaScript._You should be able to get the FreeCodeCamp Frontend Certification after this tier_
- [ ] **DOING** Book: ~~[You Don't Know JS: Up & Going](https://github.com/getify/You-Dont-Know-JS/blob/master/up%20&%20going/README.md#you-dont-know-js-up--going)~~ or [Eloquent JavaScript](https://eloquentjavascript.net/)
- [ ] **FROZED** Course - [CS50](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x) on edX
- [x] Book: [You Don't Know JS: Scope & Closures](https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20&%20closures/README.md#you-dont-know-js-scope--closures)
- [x] Course: [Learn to Code HTML & CSS](http://learn.shayhowe.com/html-css/)
- [x] Project: Pick a template from [here](https://freebiesbug.com/psd-freebies/website-template/), [here](http://www.free-css.com/free-css-templates) or [here](http://www.os-templates.com/free-website-templates) and implement the frontend of a website with it as your inspiration (do not use its assets)
- [ ] **DOING** Book: [You Don't Know JS: this & Object Prototypes](https://github.com/getify/You-Dont-Know-JS/blob/master/this%20&%20object%20prototypes/README.md#you-dont-know-js-this--object-prototypes)
- [ ] **DOING** Project: [CSS Zen Garden](http://www.csszengarden.com/) - implement your own CSS design for the competition
- [ ] Course: [Programming for the Web with JavaScript](https://www.edx.org/course/programming-web-javascript-pennx-sd4x)
- [x] Project: Pick a template from [here](https://freebiesbug.com/psd-freebies/website-template/), [here](http://www.free-css.com/free-css-templates) or [here](http://www.os-templates.com/free-website-templates) and implement the frontend of a website with it as your inspiration (do not use its assets)
- [ ] Book: [DOM Enlightenment](http://domenlightenment.com/)
- [ ] Project: Henceforth, finish one FreeCodeCamp Frontend Project every 7 to 10 days.
- [ ] Book: [You Don't Know JS: Types & Grammar](https://github.com/getify/You-Dont-Know-JS/blob/master/types%20&%20grammar/README.md#you-dont-know-js-types--grammar)
- [ ] Project: Pick a template from [here](https://freebiesbug.com/psd-freebies/website-template/), [here](http://www.free-css.com/free-css-templates) or [here](http://www.os-templates.com/free-website-templates) and implement the frontend of a website with it as your inspiration (do not use its assets)
- [ ] Book: [You Don't Know JS: Async & Performance](https://github.com/getify/You-Dont-Know-JS/blob/master/async%20&%20performance/README.md#you-dont-know-js-async--performance)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose.
- [ ] Course: [Learn to Code Advanced HTML & CSS](http://learn.shayhowe.com/advanced-html-css/)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose.
- [ ] Course: [Getting Sassy with CSS](http://www.sassshop.com/#/) or [Sass](http://sass-lang.com/guide), or both _why not?_
- [ ] Project: [100 Days of CSS](https://100dayscss.com/), scroll to the bottom of that page, beginning with #001, recreate the images, in CodePen. Start the first one now and set a goal of finishing as many as you can by the end of Tier 3. (Intent: Build a presence on CodePen as a proficient HTML/(S)CSS developer to add another online body of work alongside your growing GitHub profile.)
- [ ] Book: [You Don't Know JS: ES6 & Beyond](https://github.com/getify/You-Dont-Know-JS/blob/master/es6%20&%20beyond/README.md#you-dont-know-js-es6--beyond)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose.### Tier 2 - Add Complexity
**Goal:** Become familiar with D3.js and Node.js to strengthen your proficiency with JavaScript by exploring how it's used in a Full Stack application._During this tier you should get the FreeCodeCamp Data Visualization Certification. Also, from now on this you'll Depth dive into Computer Science._
- [ ] Course: [Software Architecture & Design](https://www.udacity.com/course/software-architecture-design--ud821)
- [ ] **FROZED** Course: [Databases](https://lagunita.stanford.edu/courses/Home/Databases/Engineering/about)
- [ ] Course: [Data Visualization and D3.js](https://www.udacity.com/course/data-visualization-and-d3js--ud507)
- [ ] Course: [M101JS: MongoDB for Node.js Developers](https://university.mongodb.com/courses/M101JS/about) on MongoDB University (Sign up at the start of the Tier and then take the course when it becomes available)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose.
- [ ] Project: Clone [this Admin template](http://rubix410.sketchpixy.com/ltr/dashboard) using React, Angular, or Vue
- [ ] Book: [JavaScript Allongé, the "Six" Edition](https://leanpub.com/javascriptallongesix)
- [ ] Project: Clone [this](https://creativemarket.com/ikonome/686585-Material-Resume-Blue/screenshots/#screenshot2) online resume template
- [ ] Project: Do a one week Speedrun of the FreeCodeCamp Backend Projects, finishing as many as you can in 7 days.
- [ ] Book: [JavaScript Design Patterns](https://addyosmani.com/resources/essentialjsdesignpatterns/book/)
- [ ] Project: Do [Javascript30](https://javascript30.com/)
- [ ] Project: Clone [this](https://blackrockdigital.github.io/startbootstrap-clean-blog/) blog template - note that there are multiple pages
- [ ] Project: Revisit [CSS Zen Garden](http://www.csszengarden.com/) - and implement a new design
- [ ] Project: Clone Twitter using Node.js on the backend, and your frontend framework/library of choice. Include all basic features: signup/login/logout, follow user, search, tweet, like/retweet, home page with stream of recent tweets.### Tier 3 - Practice
**Goal:** Practice Frontend Development in greater depth and continue studying JavaScript, ensuring you understand the algorithms and data structures you're likely to encounter in interviews (and on the job)._During this tier you should get the FreeCodeCamp Backend Certification. Being the hardest tier, you should combine the projects carefully with the topics covered during the part two from of this guide._
- [ ] Project: Read these resources on [how to contribute to Open Source](resources.md/#open-source-contributions-resources) - and make two contributions to open source projects (of your choice) by the end of this Tier.
- [ ] Book: [Open Data Structures](http://www.aupress.ca/books/120226/ebook/99Z_Morin_2013-Open_Data_Structures.pdf).
- [ ] Project: Finish all classic puzzles on [CodinGame](https://www.codingame.com/training) from easy through hard by the end of the Tier.
- [ ] Project: Clone Medium. Include: create account, create post, publish post, edit post, add topic to post, follow user, follow topic, cheer for post, and home page with feed of recent posts, followed users, and followed topics.
- [ ] Project: Pick a template from [here](https://freebiesbug.com/psd-freebies/website-template/), [here](http://www.free-css.com/free-css-templates) or [here](http://www.os-templates.com/free-website-templates) and implement the frontend of a website with it as your inspiration (do not use its assets)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose. Consider building it as a Chrome Extension, Mobile, or Electron App
- [ ] Project: Pick a template from [here](https://freebiesbug.com/psd-freebies/website-template/), [here](http://www.free-css.com/free-css-templates) or [here](http://www.os-templates.com/free-website-templates) and implement the frontend of a website with it as your inspiration (do not use its assets)
- [ ] Project: Select an API from [Todd Motto's API List](https://github.com/toddmotto/public-apis) and build a frontend-only application powered by data fetched from the API you chose. Consider building it as a Chrome Extension, Mobile, or Electron App
- [ ] Project: Full stack project of your choice (ideas: clone Facebook, Reddit, Netflix, Slack) - Consider building it as a Chrome Extension, Mobile, or Electron App.
- [ ] Project: Full stack project of your choice (make it grand) - or do a one month Speedrun of the FreeCodeCamp Projects.### Tier 4 - Wrap everything up and prep for interviews
**Goal:** Interview with confidence._By the end of this tier, you should have completed at least 50% of the part two_
- [ ] Project: Finish any questions you have remaining from [JavaScript Interview Prep](https://www.hackerrank.com/chingu-challenge-9-javascript-prep)
- [ ] Project: Finish any of [100 Days of CSS](https://100dayscss.com/) you have yet to complete.
- [ ] Project: Create and polish your Portfolio site. and your portfolio.
- [ ] Project: Create and polish your Resume/CV.
- [ ] Project: [Cracking the Coding Interview](https://www.hackerrank.com/domains/tutorials/cracking-the-coding-interview) on HackerRank
- [ ] Project: Continue honing your skills as you interview. Prioritize contributing to open source.
---## Part Two - Depth dive into Computer Science
### Math
- [ ] Book: [College Algebra](https://openstax.org/details/books/college-algebra)
- [ ] Course: [Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)
- [ ] Book: [Precalculus](https://openstax.org/details/books/precalculus)
- [ ] Course: [Mathematics for Computer Science](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm)### Algorithms and Data Structures
- [x] Read [Algorithms and Flowcharts](http://www.academia.edu/7857144/ALGORITHMS_AND_FLOWCHARTS) and then familiarize yourself with [Pencil](https://pencil.evolus.vn/) ... start flowcharting complex portions of your code logic as part of your documentation
- [ ] Book: Introduction to Algorithms by CLRS or [Algorithms](http://www.cse.iitd.ernet.in/~naveen/courses/CSL630/alpdf) by DPV
- [ ] Course: [Skiena's Algorithms Lectures - 2012](http://www3.cs.stonybrook.edu/~algorith/video-lectures/). Also in [Youtube](https://www.youtube.com/watch?v=ZFjhkohHdAA&list=PLOtl7M3yp-DV69F32zdK7YJcNXpTunF2b&index=1)
- [ ] Project: Complete all algorithms from FreeCodeCamp while working through the study plan, whenever you can and with at least one other language in addition to Javascript.
- [ ] Book: [Algorithm Design](http://www.aupress.ca/books/120226/ebook/99Z_Morin_2013-Open_Data_Structures.pdf) by Jon K., Eva T.
- [ ] Project: Complete all challenges from the [Code Jam Qualification Round 2015](https://code.google.com/codejam/contest/6224486/dashboard). Consider using another language besides of Javascript.
- [ ] Project: Finish all the Classic Puzzles from [Coding Game](https://www.codingame.com/)### Programming
_From soft-medium to advace topics_
**_This part is mostly personalized as I already have experience with Python and C++_**
- [ ] Book: [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/)
- [ ] Project: Complete or redo any of the backend projects from FCC with Python as the backend language
- [ ] Read: [The Debugging Mindset](https://queue.acm.org/detail.cfm?id=3068754)
- [ ] Read: [What every programmer should know about memory](https://lwn.net/Articles/250967/)
- [ ] Book: [Sams Teach Yourself C++ in One Hour a Day](https://www.informit.com/store/c-plus-plus-in-one-hour-a-day-sams-teach-yourself-9780789757746)
- [ ] Project: Complete or redo any of the backend projects from FCC with C++ as the backend language
- [ ] Book: [The Rust Programming Language](https://doc.rust-lang.org/book/)
- [ ] Project: Complete or redo any of the backend projects from FCC with Rust as the backend language
- [ ] Course: [Software Development Courses](https://www.edx.org/micromasters/software-development)
- [ ] Course: [Compilers](https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/about)
- [ ] Book: [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://www.gitbook.com/book/drboolean/mostly-adequate-guide/details)
- [x] Course: [Introduction to Software Product Management](https://www.coursera.org/learn/introduction-to-software-product-management/)
- [ ] Course: [Software Processes and Agile Practices](https://www.coursera.org/learn/software-processes-and-agile-practices/)
- [ ] Course: [Client Needs and Software Requirements](https://www.coursera.org/learn/client-needs-and-software-requirements)
- [ ] Course: [Agile Planning for Software Products](https://www.coursera.org/learn/agile-planning-for-software-products)
- [ ] Course: [Reviews & Metrics for Software Improvements](https://www.coursera.org/learn/reviews-and-metrics-for-software-improvements)
- [ ] Course: [Software Product Management Capstone](https://www.coursera.org/learn/software-product-management-capstone)**Sidenote**: Obviously, this isn't perfect. It is mostly an outgoing project.