Skip to content

Study notes from sources listed in teachyourselfcs.com

License

Notifications You must be signed in to change notification settings

wattsjay/computer-science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Computer Science

Study notes from the books listed on Teach Yourself Computer Science. For the most part used as a basic structure that I then supplement with other sources.

Subjects

  • Programming: Structure and Interpretation of Computer Programs.
  • Computer Architecture: Computer Systems: A Programmer's Perspective.
  • Algorithms & Data Structures: The Algorithm Design Manual.
  • Math for CS: Mathematics for Computer Science.
  • Operating Systems: Operating Systems: Three Easy Pieces.
  • Computer Networking: Computer Networking: A Top-Down Approach.
  • Databases: Readings in Database Systems.
  • Languages and Compilers: Crafting Interpreters.
  • Distributed Systems: Designing Data Intensive Applications.

❗ = priority

Supplementary

  • Architecture: Clean Architecture: A Craftsman's Guide to Software Structure and Design.
  • Programming: Code Complete: A Practical Handbook of Software Construction.
  • OOP: Design Patterns: Elements of Reusable Object-Oriented Software.
  • Programming: Domain-Driven Design: Tackling Complexity in the Heart of Software.
  • Architecture: Patterns of Enterprise Application Architecture.
  • Programming: Clean Code: A Handbook of Agile Software Craftsmanship.

This book seems to get a lot of hate lately. I will proceed with caution but the bit of reading I have done has proven useful.

Rustlang for Examples

For code examples I have opted to use a low-level language over something like Javascript or Python. Using a high-level language to implement a linked-list for example feels counter-intuitive, and the language would not care about lower level details like memory management, which is a key point of this learning exercise.

When it comes to choosing a low-level language, I have chosen Rustlang over C for the following reasons:

  • Helpful compiler error messages which might function as a tutor.
  • Modern DX which gets less in the way of learning.
  • Expressive syntax.
  • Adoption in web. Many tools I have an interest in contributing to or making use of use Rust.

That all said, who knows, I might be wrong; this is a bit of an experiment. At the very least I can say that it excites me and that maybe is enough of a reason to use it.

About

Study notes from sources listed in teachyourselfcs.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published