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 dual main goals are to A) study algorithms in depth and B) study web development.

Progress

Current Course: Introduction to Computer Science and Programming in Python
Courses Completed: 0
Total Points earned: 1100

Date Finished Activity Points Links
01-22-2018 Book 200 The Ask and the Answer
01-22-2018 Book 200 The Wide, Wide Sea
WIP Course 500 Introduction to Computer Science and Programming in Python
01-24-2018 Book 200 YDKJS: Up & Going

MITOCW Computer Science

MITOCW Mathematics

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.

Bonus List

Activity Points for completing Activity type
Basic Project 100 project
Substantial Project 200 project
Large Project 300 project
Gigantic Project 400 project
Book 200 foundation
Tutorial site (Udemy/Pluralsight/Egghead/Treehouse/etc) course 100 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
Blog Post on any topic 15 communication
Blog Post Tutorial 40 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

Project ideas

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

Books to read (pick and choose, no particular order)

Algorithms Texts

  • Algorithms in a Nutshell
  • Data Structures and Algorithms Made Easy
  • A Common Sense Guide to Data Structures and Algorithms
  • Algorithms Iluminated Part 1
  • Algorithms Part 1
  • Algorithms Part 2
  • An Introduction to the Analysis of Algorithms
  • Algorithms in C Parts 1-4
  • Algorithms in C Part 5
  • Algorithms in C++ Parts 1-4
  • Algorithms in C++ Part 5
  • Learning JavaScript Data Structures and Algorithms
  • Problem Solving in Data Structures and Algorithms using C++
  • Data Structures and Algorithms with Python
  • Data Structures and Algorithms with JavaScript
  • Think Data Structures
  • Computational Probability
  • Graphs Algorithms and Optimization
  • Mobile Applications Development with Android: Technologies and Algorithms
  • Algorithmic Game Theory
  • Twenty Lectures on Algorithmic Game Theory
  • Currently in Progress - Grokking Algorithms
  • Unsupervised Learning Algorithms
  • Elementary Functions: Algorithms and Implementation
  • Algorithms and Networking for Computer Games
  • Algorithms: A functional programming approach
  • Data Structure Practice for Collegiate Programming Contests
  • The Colossal Book of Mathematics
  • Analytic Combinatorics
  • Everyday Data Structures

Programming Texts

  • 21st Century C: : C Tips from the New School
  • Advanced Programming in the UNIX Environment
  • C Interfaces and Implementations
  • Expert C Programming: Deep C Secrets
  • Programming in C
  • The C Programming Language
  • C: From Theory to Practice
  • Pointers in C
  • Shell Programming in Unix, Linux, and OSX
  • Build Your Own Lisp.
  • C++ Coding Standards
  • C++ Concurrency In Action
  • Effective C++
  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
  • Effective STL
  • Exceptional C++
  • More Exceptional C++
  • Exceptional C++ Style
  • Modern C++ Design
  • C++ Template Metaprogramming
  • C++ Templates: the Complete Guide
  • C++ Concurrency in Action
  • Advanced Metaprogramming in Classic C++
  • The C++ Standard Library
  • Programming: Principles and Practice Using C++
  • C++ Programming: Program Design including Data Structures
  • Introducing Go
  • Go Systems Programming
  • Functional Reactive Programming
  • Developing Web Apps with Haskell and Yesod
  • Haskell Design Patterns
  • Learn You a Haskell for Great Good
  • Parallel and Concurrent Programming in Haskell
  • Real World Haskell
  • Android Programming - The Big Nerd Ranch Guide
  • Computer Science: An Interdisciplinary Approach
  • Core Java
  • Effective Java
  • Hello, Android
  • Java Concurrency in Practice
  • Professional Android
  • Thinking In Java
  • Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript
  • JavaScript Allonge
  • JavaScript Patterns: Build Better Applications with Coding and Design Patterns
  • Secrets of the JavaScript Ninja
  • YDKJS
  • Fluent Python: Clear, Concise, and Effective Programming
  • Python Cookbook
  • The Hitchhiker's Guide to Python
  • Computer Science Distilled
  • Fortran for Scientists and Engineers

Software Engineering Texts

  • Code Complete: A Practical Handbook of Software Construction
  • The Pragmatic Programmer: From Journeyman to Master
  • The Mythical Man-Month
  • Refactoring: Improving the Design of Existing Code
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • Introduction to Algorithms
  • Patterns of Enterprise Application Architecture
  • Peopleware: Productive Projects and Teams
  • Working Effectively with Legacy Code
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • Code: The Hidden Language of Computer Hardware and Software
  • Domain-Driven Design: Tackling Complexity in the Heart of Software
  • Head First Design Patterns
  • Structure and Interpretation of Computer Programs
  • Programming Pearls
  • Coders at Work: Reflections on the Craft of Programming
  • The C Programming Language
  • The Art of Computer Programming
  • Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
  • Rapid Development: Taming Wild Software Schedules
  • Agile Software Development, Principles, Patterns, and Practices
  • The Design of Everyday Things: Revised and Expanded Edition
  • Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability
  • Gödel, Escher, Bach: An Eternal Golden Braid
  • The Clean Coder: A Code of Conduct for Professional Programmers
  • User Stories Applied: For Agile Software Development
  • Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  • Release It!: Design and Deploy Production-Ready Software
  • The Passionate Programmer: Creating a Remarkable Career in Software Development
  • About Face: The Essentials of Interaction Design
  • Designing Web Usabillity
  • A Pattern Language: Towns, Buildings, ruction (Center for Environmental Structure)
  • The Visual Display of Quantitative Information
  • Extreme Programming Explained: Embrace Change
  • Smalltalk Best Practice Patterns
  • Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
  • Refactoring to Patterns
  • Agile Estimating and Planning
  • Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
  • Cracking the Coding Interview: 189 Programming Questions and Solutions
  • Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
  • Pragmatic Thinking and Learning: Refactor Your Wetware
  • The Art of Agile Development
  • Soft Skills: The software developer's life manual
  • Succeeding with Agile: Software Development Using Scrum
  • Growing Object-Oriented Software, Guided by Tests
  • Java Concurrency in Practice
  • Software Estimation: Demystifying the Black Art (Developer Best Practices)
  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
  • Algorithms
  • Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
  • Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
  • Rework
  • Cracking the IT Architect Interview
  • Coding Interview Questions

Programming Texts

  • Currently in Progress - Book of Proofs

Literature

  • The Ask and the Answer
  • The Wide, Wide Sea