This will be an unusual introduction to business and accounting. One targeted at future developers. We will start with you, because business starts with you. Let's understand many concepts of the business world by understanding how to use your computing environment in the most optimal way for you. This means understanding operating systems, shells, and customization options. We will be reflecting on efficiency, productivity and automation. Working our way up to the market, where you need to position yourself as a developer and compete with others. Building your personal profiles and understanding collaborative systems like Git and Github is key. Building and maintaining your digital identity by sharing learning and projects will help foster your personal development. Reflecting on this journey means looking at accounting and budgeting your personal business/brand. Join us for the most unusual journey into the business world. It all starts with you.
- Lecture: CS concepts (60min):
- Hands-on: C Programming Practice (60min) and OS customization (60 min)
- [] Understand the low levels of your operating system and how to program them in C
- [] Know and use modern command-line tools
- [] Setup and maintain your personal development environment
As part of the course you will pick and conduct a personal automation project and write a blog about it. You will start using the C Programming language and get a low-level headstart into programming.
Join the C Language Track on Exercism to put your knowledge into practice. We will discuss exercises from Exercism every week: exercism.io
- The Internal Language of Computers
- Combinatorial Logic
- Computer Anatomy
- Computer Architecture
- Communications Breakdown
- Organizing Data
- Language Processing
- The Web Browser
- Application and System Programming
- Shortcuts and Approximations
- Deadlocks and Race Conditions
- Security
- Machine Intelligence
- Real-World Considerations
- Booting an operating system
- Computer Components and Architecture
- The Linux Environment
- Shell Commands
- Text Editors
Tutorial: OS Install and Prompt customization with dotfiles
- The C programming environment
- Variables and Data Types
- Making Decisions
Tutorial:
- Loops
- Arrays
- Strings and Text
Tutorial:
- Pointers
- Structuring Programs with Functions
- Essential IO
Tutorial:
- structs
- files
- preprocessing and debugging
Tutorial:
Tutorial: Monitoring processes and performance
Tutorial:
- Linux directory structure
- Inode structure
- File permissions
- Soft and hard links
Tutorial: Creating directory level development environments
- Memory Layout
- Environment Variables
- Kernel support processes
- Process creation
- Signals
Tutorial: Pipes, STDIN, STDOUT, STDERR
- Ownership, Borrowing and the Dangers of Sharing
- Introduction to network programming
- Install ZSH: https://gist.github.com/derhuerst/12a1558a4b408b3b2b6e
- Check with
bash echo $SHELL
- Customize with OH MY ZSH: https://ohmyz.sh
- Configuration and Dotfiles: https://medium.com/@webprolific/getting-started-with-dotfiles-43c3602fd789
- VIM Tutorial
- Neovim Kickstart: https://www.youtube.com/watch?v=stqUbv-5u2s
- Vim Tutorial: https://web.archive.org/web/20210801233614/https://danielmiessler.com/study/vim/
- Neovim and Lunarvim
- fzf (fuzzy finder)
- grep/rg (ripgrep)
- gh
- jq
- curl
- awk
- sed
- Git and Github: https://dev.to/colocodes/learn-how-to-use-git-and-github-in-a-team-like-a-pro-2dk7
- Using Git Branches: https://www.nobledesktop.com/learn/git/git-branches
- Checkout: Reverting to Previous or Other Versions: https://www.gitkraken.com/learn/git/problems/git-checkout-commit
- Create Pull Request (PR): https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github and https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests
- A PR Review Process in gh
- Resolve Merge Conflicts: https://www.simplilearn.com/tutorials/git-tutorial/merge-conflicts-in-git
- Comparing Branches with Git Worktree
- Create Github Pages Blog: pages.github.com
- Latex
- Transform Markdown into any Document with the Universal Document Converter: https://pandoc.org
- https://tonyfinn.com/blog/nix-from-first-principles-flake-edition/
- https://docs.replit.com/tutorials/python/build-with-nix
- Containerize your development using docker: (1): https://fastapi.tiangolo.com/deployment/docker/ (2): https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-container-image.html
- Understanding the nixos approach: (1): https://ghedam.at/24353/tutorial-getting-started-with-home-manager-for-nix (2): https://alexpearce.me/2021/07/managing-dotfiles-with-nix/
- Docker + Nix: https://thewagner.net/blog/2021/02/25/building-container-images-with-nix/
- Reach out: Create blog on Github Pages.
- Hands-on: Write at least 4 blog posts (1000 words each) on a self-chosen operating systems automation project
- Iterate: Make sure there is at least one week between each post, try and engage as many classmates as possible to use and feedback on your automation and blog content.
- Reflect: Feedback on both Automation Projects should be as specific as possible and in the form of Pull Requests.
- TJ de Vries: https://github.com/tjdevries
- Mitchell Hashimoto: https://mitchellh.com/writing
- Martin Heinz: https://martinheinz.dev/
- Chris Chuarulli: https://github.com/ChristianChiarulli#updates
- Simon Willison: https://simonwillison.net/
- Susie Lu: https://susielu.com/data-viz
- Chris Morgan: https://chrismorgan.info/blog/
- Suggest more bloggers you like :-)