Skip to content

Personal study plan for teaching myself computer science and software engineering

Notifications You must be signed in to change notification settings

brandonpeebles/CS_and_SWE_study_plan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 

Repository files navigation

Study Plan: Software Engineering / Computer Science

Owner: Brandon Peebles banner_logo Image from https://www.clipartkey.com/view/ohhmhm_computer-science-and-engineering-computer-science-icon-circle/

What is this?

This living document is my study plan for computer science and software engineering topics. Given my previous experience in analytics/operations plus education in industrial & systems engineering, it’s been tailored to specifically fill my own knowledge gaps and prepare me for a role in software engineering. It outlines what I’m covering (in roughly the order I plan to cover it) as well as serves as a way to track my progress. I will be focusing on core computer science topics/concepts, full-stack JavaScript web development, and Python.


Outline:

  • Harvard CS50x: Introduction to Computer Science link
  • freeCodeCamp (my Full Stack development certification)
    • Responsive Web Design
    • JavaScript Algorithms and Data Structures
    • Front End Libraries (Bootstrap, jQuery, Sass, React, Redux)
    • Data Visualization (D3, JSON APIs and Ajax)
    • APIs and Microservices (Npm, Node, Express, MongoDB, Mongoose)
    • Information Security and Quality Assurance (HelmetJS, QA and Testing with Chai, Advanced Node & Express)
  • Overview of Operating Systems:
  • Overview of Computer Processing & Architecture:
  • Crash Course: Computer Science - 41 videos: (in progress) Really great overview video series about computer science history, computer architecture, languages, internet, and more.
  • Data Structures & Algorithms: (in progress) Combined study using the following resources
    • Data Structures & Algorithms in Python (book)
    • Data Structures & Algorithms in Python (course)
    • Coding Interview University: Learn and practice implementations of the following. Outline presented --> see detailed view in appendix below, adapted from the Coding Interview University repo created by John Washam (link)
      • Algorithmic Complexity / Big-O / Asymptotic Analysis
      • Basic Data Structures
        • Arrays
        • Linked Lists
        • Stack
        • Queue
        • Hash tables
      • Binary Search
      • Bitwise Operations
      • Trees
        • General knowledge & Background
        • Binary Search Trees: BSTs
        • Heap / Prioritity Queue / Binary Heap
        • Balanced Search Trees (general concept + implementation of method to check if it is balanced)
        • Traversals: preorder, inorder, postorder, BFS, DFS
      • Sorting
        • Selection
        • Insertion
        • Heapsort
        • Quicksort
        • Merge sort
      • Graphs
        • Directed
        • Undirected
        • Adjacency Matrix
        • Adjacency List
        • Traversals: BFS, DFS
  • Other Topics (when I have time): Outline presented --> see detailed view in appendix below, adapted from the Coding Interview University repo created by John Washam (link)
    • Recursion
    • Dynamic Programming
    • Combinatorics (n choose k) & Probability
    • NP, NP-Complete and Approximation Algorithms
    • Testing
    • Scheduling
    • String searching & manipulation
    • Tries
    • Floating Point Numbers
    • Unicode
    • Endianness
    • Networking
    • Compilers
    • Emacs and vi(m)
    • Unix command line tools (read book in Other Resources)
    • Messaging, Serialization, and Qeueing Systems

To be prioritized:

Other resources:

  • Books
    • Learning Python: Powerful Object Oriented Programming 5th Edition
    • The UNIX Programming Environment
    • The C Programming Language 2nd Edition
    • Cracking the Coding Interview 6th Edition
  • Websites

Appendix:

Detailed view of some of the content (to be) covered to supplement above outline

First section is again adapted directly from the Coding Interview University repo created by John Washam (link). I've included it below so I can check things off as I go.

Algorithmic complexity / Big-O / Asymptotic analysis

Data Structures

More Knowledge

Trees

Sorting

As a summary, here is a visual representation of 15 sorting algorithms. If you need more detail on this subject, see "Sorting" section in Additional Detail on Some Subjects

Graphs

Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.

Even More Knowledge


Final Review

This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
It's nice if you want a refresher often.

About

Personal study plan for teaching myself computer science and software engineering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published