Tech Reflections of learning

Sprint 1


Command Line

There is quite a bit to remember and I get stuck wasting time on little things that I want to learn how to do but can't clearly find the answer. An example of this would be trying how to figure out how to open a file form the command line (i.e. this reflections journal) and I got stuck. It's important form me to move away from my need to try and undersdantn everyting otherwise I will waste time fretting about the small stuff. It's better to stick to the learning philosophy of "just in time" as opposed the "just in case" that I seem to gravitate too.
I would describe the Command Line as the bridge. Like how a ship on the ocean has a bridge where the captain sits to act a central point or hub to control the functions and operations of the vessel (i.e. the engine and electrical rooms of ship).


8 Commands and what they do

  1. cd: stands for change directory and drills down to the named directory.
  2. ls: stands for list and names all the folders or files in a directory.
  3. mkdir: stands for make directory and creates a file or folder.
  4. cat: lists the contents of a file in the terminal.
  5. pwd: stands for print working directory and shows where you are in the terminal.
  6. rm(file) / rm -r(directory): stands for remove and deletes things from the directory.
  7. touch: creates files.
  8. mv: stands for move and you can use it to move where the files are and also to rename them.

I don't think I learnt anything unexpected here - this is all so new to me so everything is unexpected (and exciting). Actually some cool things I am picking up on is the general navigation of the computer by using the keyboard only. Tab and the windows key is great for navigating apps and controly and it is helpful for creating a new browswer tab in brave. Also I have found control/S to save work helpful.


Git and Github

The differnce between GIT and GITHUB is that GIT is a software (short for global information tracker) and GITHUB is a service that is built on GIT. An analogy to describe them is that GIT is electircity and that GITHUB is the heater that uses the electircity to warm a home. Another analogy would be that GIT is Gold and that GITHUB could be viewed as piece of jewllery. GIT is the form and GITHUB is a utilisation of that form. I think that I would remember the difference a week from now, particularly if I can remember that GIT stands for Global Information Tracker and is a software. I did not stick to the timebox suggestions as I felt that there was so much more I could have leart by spending more time in the learning and less time reflecting. This was because I took some notes that I could refer back to later. I did better than I would usually do (having a tendency to go down rabbit-holes) as I did stick to the overall time allocation for this section.


Version Control with Git

Git workflow is the process of creating, cloning, editing and submitting files and directories withing the GIT software. It works by using the termnial to do the and the commiting the work or changes to GIThub for the storage and accessibility for others. To be honest there was a lot of information to take in with this lesson and my brain is feeling well exercised. I was confused when there was the request to create an html file and I wasn't sure where or how to do this, althouts I stuck to the 20 minutes of trying to figure it out rule and got there in the end. I quite enjoy these processes and the small snippents of satisfaction when things works as they are meant to. Because of this I maybe took longer than I should have as I re-did some things and just practiced the some of the processes (like changing file names and moving files etc) for reps and familirisation. I just downloaded a cheat sheet for all of the commands as there was quite a few to recall. I'm not sure if I would do much differently if I had to do this again. I was thorough but did not waste time and feel everything I did was a help in building my fundamental programming skill-set.


Stage and Commit

If I was to describe what stage and commit was to my non-tech-savy friend, I would tell them that the stage (or index) in the analogy of a production factory has the stage being the despatch area when some goods are ready to be sent to a customer, and that the commit is the courier collecting the goods (i.e. when the leave the factory) and are now billable.


Branch, Pull and Merger

The main is the main trunk of a git repo - it is the most prisitine and safe version that other versions (branches) are to be created from. We create branches as it is important to have a safe space to build new things (and make errors along the way) that doesn't cause problems to the most up to date and prisitnie version (being the Main).

These concepts do feel intuitive as they are just common sense. The fact that I can visualise the concpet by imaginging the structure of a tree and that the terminology is associated with the tree also makes in extra common sense. It's a practical and logical concept.


Github Clone and Fork

We would fork when we are wanting to develop a project that furthers on from the code of another open-source repository. This means that we have our own snaphot version of the code to develop without hgaving to worry about the repercusions in making errors to the original. Forking also means that we can debug problems without needing certain levels of permissions within the source repo.

I felt that things clicked easier for me with the forking part of the lesson. For me it feels more seemless to have a copied version that is completely separate compared to the branches and mergers of the previous lesson.