My Goals as a Software Developer

This is a list of things I'd like to learn more about as I grow as a software developer. This is not a checklist. Because there is always more to learn, I would never feel comfortable checking something off.

Topics

  • General

    • Binary/hex Notation

    • Boolean Logic

  • Data Structures

    • Arrays

    • Strings

    • Linked Lists

    • Hash Tables

    • Stacks

    • Queues

    • Trees

      • Binary Tree

      • Binary Search Tree

      • Heap

    • Graphs

    • Matrices

    • Tries

  • Algorithms

    • Sorting

      • Selection Sort

      • Bubble Sort

      • Insertion Sort

      • Merge Sort

      • Quick Sort

      • Shell Sort

    • Searching

      • Linear Search

      • Binary Search

      • Breadth First Search

      • Depth First Search

    • Graph Algorithms

      • Dijkstra's Algorithm

    • Tree Traversal

      • Inorder

      • Preorder

      • Postorder

  • Design Patterns

    • Singleton

    • Factory Method

    • Strategy

    • Observer

    • Adapter

    • State

    • Command

  • Concepts

    • Greedy Algorithms

    • Dynamic Programming

    • Divide and Conquer

    • Recursion

    • Threading

    • Testing

    • Scalability

    • Programming Languages

    • Concurrency

    • Finite state machines

  • Databases

  • Tooling

    • Version Control

    • Debuggers

    • Issue Tracking

    • Continuous integration

    • Compilers

    • Assemblers

    • Linkers

    • Make utilities

    • Emulators/Virtualizers

  • Operating Systems

    • Kernels

    • Filesystems

    • Networking

    • Security

    • Memory management

    • Multiprocessing

Reading List

Currently Reading

Read

Plan to Read

Reference Materials

Last updated