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 |