Skip to content

alimahmoud7/study-progress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 

Repository files navigation

Progress towards my learning goals

In each folder, separated by year, are my notes, etc related to what I'm studying, doing, learning...

2018

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

Rules

  1. Always be working on one course.
  2. Add bonus objectives from bonus list as often as desired.
  3. All Assignments must be complete for course to be considered complete.

Full Guides

  1. p1xt-guides
  2. ossu

Python Edition Guide

-- 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

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.

Tier 1 - Non-Python frontend necessities for Web Development

Goal: Become Proficient with HTML, CSS and JavaScript, including the frontend framework/library of your choice plus D3.

Tier 2 - Python Basics

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.

Tier 3 - More Python and Basic CS

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).

Tier 4 - Wrap everything up and prep for interviews

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.

Project ideas

  • 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!

Book Suggestions

  • 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

Additional books can be found here

More Courses

pick and choose, no particular order

Helpful links

  • 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)

Bonus List

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

Follow me on Twitter - Hire me from LinkedIn

About

My self-learning progress 📚 💪 🚀

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published