| Git |
Basic commans like git add and git commit |
How to resolve merge conflicts |
Branching and collaboration concepts |
| GitHub |
Used for collaborative programming and documentation |
Intergrating git and github |
Managing and documentating changes through Git |
| Terminal |
Basic commands like cd, ls, and pwd |
Accessing advanced features |
scripting with commands and creating files |
| IDE |
Platforms like VS Code |
use features like debugging through IDE |
integrating with version control systems |
| text editors |
Basic knowledge of certain platforms |
How it is used through git and github |
using text editors for documentation of code |
| file system |
Basic operations and directory structures |
How to operate and manage file permissions |
store references and other features along with Git |
| bash |
Simple bash scripts and conditionals |
Using loops and handling errors |
Accessing bash scripting while working on remote server |
| abstraction |
Basic understanding of abstraction in programming |
how to apply abstractions in designing software tools/systems |
learning the difference between software and hardware abstractions |
| programming languages |
Decent in python, java, and C++ |
learn more functional programming paradigms |
Learned how to incorpate different ides for different languages |
| git workflows |
Basic features like branching |
Learning different types of workflows |
creating my own workflows and actions through git/github |
| git branches |
Creating and merging branches |
How to resolve merge conflicts |
resolve merge conflicts with basic plumbing commands |
| bash redirects |
basic input/output redirections |
Not really sure |
applying these redirects to copy and transfer file content |
| merge conflicts |
Recognizing what causes merge conflicts |
how to avoid merge conflicts as little as possible |
How to resolve and strategize for merge conflicts |
| documentation |
Creating comments in files |
creating documentation with tools |
The importance of documentation |
| bash scripting |
Writing scripts for tasks |
Creating bash scripts for error handling |
working on scripting to integrate with other tools |
| developer tools |
Tools like version control and debugging tools |
Understand and exploring more advanced tools |
the unix philosophy of the simple designing of software tools |
| networking |
Ip addresses and understanding http |
looking through network protocols |
understanding and use of networking for working on projects(remote servers) |
| ssh |
Basic understanding of how coders optimize ssh |
intergrating ssh keys through git |
Ssh configurations |
| ssh keys |
how they are used by developers |
the importance of ssh keys |
how to create my own ssh key for configuration |
| compiling |
how to compile source code |
how to use compile code and transfer the content |
worked with compiled code through several IDES |
| linking |
Understand the linking process |
what it's purpsoe is for |
working with shared libraries |
| building |
the process of building |
The importance of building |
understanding how to start designing/building software tools |
| number systems |
Certain systems like hexadecimals |
exploring other number systems |
coverting other number systems with their mathematical properties |
| machine representation |
how data is represented through binary |
looking through floating-point representation |
the impact of this representation on data storage and transfer |
| integers |
performing operation on integer data types |
using larger precision integers |
learned different integer representations in different languages |
| floating point |
recoginize floating-point representation |
handling errors for better performance in software concepts |
how to convert number systems into floating point representations |
| logic gates |
basic logic gate operations |
combinations of gates for logical circuits |
looking a sequential logic gates through a developer sense |
| ALU |
basic structure and operations of alu |
using alus for certain tasks |
how they are used for CPUS |
| binary operations |
the symbols to determine binary operation |
apply these concepts for data management and other tasks |
perform bitwise operations |
| memory |
Basic concepts like RAM and ROM |
Understanding the process of memory |
know the difference of virtual and physical memory |
| cache |
purpose of cache memory |
optimizing code for efficiency |
exploring cache design procedures |
| registers |
CPU registers and their roles |
Exploring different types of registers |
looking at registers and their relations with computers |
| clocks |
the role of clocks in computer systems |
execution calculations |
measuring clock speed in a developer sense |