In each folder, separated by year, are my notes, etc related to what I'm studying, doing, learning...
My main goals are to
- be proficient with Python and JavaScript
- build good projects
- contribute to an open source project
- increase my network of communications
- Always be working on one course.
- Add bonus objectives from bonus list as often as desired.
- All Assignments must be complete for course to be considered complete.
-- This guide I choosed from p1xt-guides
Check the general FAQ, FAQ for this guide
Work through these courses, read the books listed below, and frequently supplement with "bonus activities" listed below.
- Tier 0 - prep
- Tier 1 - Non-Python frontend necessities for Web Development
- Tier 2 - Python Basics
- Tier 3 - More Python and Basic CS
- Tier 4 - Wrap everything up and prep for interviews
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.
- Book: College Algebra or Course: College Algebra and Problem Solving or thorough knowledge of Algebra.
- Book: Precalculus or Course: Precalculus or Khan Academy or thorough knowledge of Precalculus
- Course: Try Git and/or How to not f-up your local files with Git part1, part2 and part 3
Goal: Become Proficient with HTML, CSS and JavaScript, including the frontend framework/library of your choice plus D3.
- Book: You Don't Know JS: Up & Going
- Book: You Don't Know JS: Scope & Closures
- Course: Learn to Code HTML & CSS
- Project: Pick a template from here, here or here and implement the frontend of a website with it as your inspiration (do not use its assets)
- Book: You Don't Know JS: this & Object Prototypes
- Course - Programming for the Web with JavaScript
- Project: Pick a template from here, here or here and implement the frontend of a website with it as your inspiration (do not use its assets)
- Book: You Don't Know JS: Types & Grammar
- Book: You Don't Know JS: Async & Performance
- Project: Select an API from Todd Motto's API List and build a frontend-only application powered by data fetched from the API you chose.
- Course: Learn to Code Advanced HTML & CSS
- Book: You Don't Know JS: ES6 & Beyond
- Course: Data Visualization and D3.js
- Project - Clone this Admin template using React, Angular, or Vue
- Book: JavaScript Allongé, the "Six" Edition
- Project: Select an API from Todd Motto's API List and build a frontend-only application powered by data fetched from the API you chose.
- Book: JavaScript Design Patterns
- Project: Clone this online resume template
- Project: Do a one week Speedrun of the FreeCodeCamp Projects, finishing as many as you can in seven days.
Goal: Become familiar with Python, MongoDB, and the Flask or Django framework and begin building proficiency with creating full stack web applications with Python on the backend.
- Challenge: Python Interview Prep on Hackerrank. Sign up now and work problems alongside the guide as you progress.
- Course: MongoDB for Developers - note: this course is only intermittently offered, sign up at the start of the Tier, then proceed to the other courses and return to this one when it's in session
- Course: Introduction to Computer Science and Programming Using Python
- Study: The Flask User Guide or the Django documentation - pick based on which is more prevalent in your area, which you personally prefer, or any other criteria you choose, but pick one and study it thoroughly. Do the tutorials, read it all, learn testing, auth, databases, all of it.
- Project: Clone Twitter using Python 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.
- Course: Single Variable Calculus
- Project: participate in one Bot Programming competition.
- Book: Think Python
- Study: The pytest testing tool read the docs thoroughly, experiment with the examples and become proficient with pytest (including unittest and nose).
- Project: participate in one Bot Programming competition.
- 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: Do a one week Speedrun of the FreeCodeCamp Projects, finishing as many as you can in seven days.
Goal: Learn Python to a deeper level, ensuring you understand the algorithms and data structures you're likely to encounter in interviews (and on the job).
- Project: Finish all classic puzzles on CodinGame from easy through hard by the end of the Tier.
- Course: Introduction to Computational Thinking and Data Science
- Project: Your choice - Clone Netflix, Slack, Reddit, or Facebook (or a comparably involved site of your choosing). The clone should be functional and include all basic features.
- Course: Mathematics for Computer Science
- Course: Introduction to Algorithms (requires book purchase) or Book - Open Data Structures
- Project: participate in one Bot Programming competition.
- Course: Intro to Machine Learning
- Project: Titanic: Machine Learning from Disaster
- Course: Database Mini-Courses - take all mini-courses
- Project: Your choice - Clone Netflix, Slack, Reddit, or Facebook (or a comparably involved site of your choosing). The clone should be functional and include all basic features.
- Project: Create a Portfolio highlighting your best work.
- Project: House Prices: Advanced Regression Techniques
- Project: Do a one month Speedrun of the FreeCodeCamp Projects, finishing as many as you can in 30 days.
Goal: Interview with confidence.
- Project: Finish any questions you have remaining from Python Interview Prep
- Project: Refine and polish your Portfolio.
- Project: Create and polish your Resume/CV.
- Project: Cracking the Coding Interview on HackerRank
- Project: Continue honing your skills as you interview. Participate in more bot competitions on CodinGame, participate in competitions on Kaggle, contribute to open source JavaScript or Python projects, work on side projects that illustrate your frontend skill.
- Speedrun / Practice on Fullstack Web Development
- Speedrun / Practice on Algorithms and Data Structures
- Online Blog
- USB Clone Daemon
- Read How to Contribute to Open Source - and make two contributions to open source projects (of your choice)
- Pick a template from [here], [here], or [here] and implement the frontend of a website with it as your inspiration (do not use its assets)
- Complete any 5 projects from 100 Days of CSS.
- Select an API from Todd Motto's API List and build a frontend-only application powered by data fetched from the API you chose.
- Complete a CSS theme for CSS Zen Garden
- Clone your favorite non-trivial website such as: Medium, Twitter, Slack, Netflix, Reddit.
- Clone a video game such as: Breakout, Tetris, Pacman, Super Mario Bros, Zelda, Final Fantasy.
- Complete any project on The Odin Project or FreeCodeCamp.
- Clone your favorite browser extension, or create one you wish existed.
- Clone your favorite mobile app, or create one you wish existed.
- Any project you want to build - the above are all just ideas for if you're stuck for an idea - really, just build what you want!
- Code Complete: A Practical Handbook of Software Construction
- Clean Code: A Handbook of Agile Software Craftsmanship
- Working Effectively with Legacy Code
- Head First Design Patterns
- Writing Secure Code Second Edition OR Threat Modeling
- Google Style Guides:
- For Python
- For JavaScript
- For C++
- For HTML/CSS
- Article: Read Project Specification Documents 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
- Article: Read Algorithms and Flowcharts and then familiarize yourself with Pencil ... start flowcharting complex portions of your code logic as part of your documentation
- Beginner's Guide to SEO
Additional books can be found here
pick and choose, no particular order
-
Udacity:
- [1-2-2018] Google Developer Challenge Scholarship: Mobile Web covers Offline Web Applications and ES6 - JavaScript Improved
- One Million Arab Coders Program: Data Analysis Track
- Full Stack Nanodegree Extracurricular
- [31-8-2018] Mobile Web Specialist Nanodegree
- Part 1: Building Accessible and Responsive Web Apps:
- Responsive Web Design Fundamentals
- Responsive Images
- Web Accessibility
- Project: Restaurant Reviews App—Stage One
- Part 2: Building Offline Capable Web Apps:
- Asynchronous JavaScript Requests
- ES6 JavaScript Improved
- Offline Web Applications
- Web Tooling and Automation
- Project: Restaurant Reviews App—Stage Two
- Part 3: Building Performant Web Apps:
- Client Server Communication
- Browser Rendering Optimization
- Project: Restaurant Reviews App—Stage Three
- Part 1: Building Accessible and Responsive Web Apps:
- [24-1-2018] JavaScript Promises
- Software Testing
- Software Debugging
- Linear Algebra Refresher Course
- Intro to Statistics
- Intro to Inferential Statistics
- Intro to Descriptive Statistics
- Intro to Data Science, Intro to Data Analysis
- Intro to Machine Learning
- Intro to Artificial Intelligence
-
Coursera:
- Building Web Applications in PHP
- Full Stack Web Development on Coursera
- Google IT Support Professional Certificate
- Python for Everybody Specialization
- Machine Learning - Andrew Ng
- Cybersecurity Specialization
- Learn to Program: The Fundamentals
- Learn to Program: Crafting Quality Code
- Learning How to Learn or check Rwaq version
- Internet History, Technology, and Security
-
edX:
-
Stanford Online:
-
MIT OpenCourseWare:
- Course: Introduction to Probability and Statistics
- Course: Linear Algebra
-
MongoDB University:
- M101JS: MongoDB for Node.js Developers on MongoDB University
-
Pluralsight:
-
FutureLearn:
-
Google Search Education:
-
Youtube:
- Arabic Channels: Abdullah Almehmadi, Muhammed Essa, Elzero Web School
- English Channels: Eli the Computer Guy, Corey Schafer, sentdex, thenewboston
-
Full Paths:
- surge.sh
- heroku
- Glitch
- MDN
- YDKJS
- For when you need assets/ideas
- Official Docs
- MDN Learn web development
- MDN HTML - for exploring all that HTML has to offer
- MDN CSS- for exploring all that CSS has to offer
- MDN JavaScript- for exploring all that JavaScript has to offer
- Flask - Python microframework
- Django - Python framework
- Sass - supercharged CSS, for more check Getting Sassy with CSS
- Node.js - should be your primary reference for building backend projects
- Express - an excellent framework to accompany Node.js on the backend
- MongoDB - for storing data
- Mongoose - access to MongoDB from Node.js made easy(er)
- Passport.js - remember this link when you have to setup a login system
- D3 - for creating awesome graphs and charts
- AngularJS - option for creating single page apps on the frontend
- Angular - option for creating single page apps on the frontend
- React - option for creating single page apps on the frontend
- Vue - option for creating single page apps on the frontend
- Redux - for managing state in a single page app
- Mocha - venture into testing
- Karma - venture into testing
- Jest - venture into testing
- Webpack - module bundler for use in your build process (so you can minify your HTML/CSS/JavaScript among other things and deliver an optimized build to production)
- Babel - makes the new JavaScript work on old browsers (or node versions for that matter)
- Gulp - for automating your workflow
- ESLint - for helping to keep your code clean
- Prettier - more help keeping your code clean
- Travis - continuous deployment (how to trigger a build/deploy whenever you commit your changes via git)
Activity | Points for completing | Activity type |
---|---|---|
Basic Project | 100 | project |
Substantial Project | 200 | project |
Large Project | 300 | project |
Gigantic Project | 400 | project |
Official Docs (part) | 50 | foundation |
Official Docs (total) | 300 | foundation |
Duolingo or MosaLingua (1 level) | 100 | foundation |
Book | 200 | foundation |
Tutorial site (Udemy/Pluralsight/Egghead/Treehouse/etc) course | 250 | foundation |
University level course (Coursera/edX/MITOCW/etc) | 500 | foundation |
Physical Activity (30 minutes) | 10 | foundation |
Musical Instrument Practice (30 minutes) | 10 | foundation |
Khan Academy (30 minutes) | 10 | foundation |
Analytics Vidhya Competition | 50 | data-science |
Crowd Analytix Competition | 50 | data-science |
Kaggle Competition | 50 | data-science |
Driven Data Competition | 50 | data-science |
Design Competition | 50 | design |
Blog Post on any topic | 15 | communication |
Blog Post Tutorial | 40 | communication |
Practice writing skills (30 minutes) | 10 | communication |
Video Tutorial | 50 | communication |
Open Source PR | 50 | communication |
Module to npm | 200 | communication |
Team Up for a project | 100 | communication |
Diary entry | 5 | communication |
CodeWars (10 problems) | 50 | algorithms |
CodinGame (1 Tier) | 100 | algorithms |
CodinGame (1 Bot Competition) | 20 | algorithms |
HackerRank (10 problems) | 50 | algorithms |
Google Code Jam (1 round from past contest) | 100 | algorithms |