Back to Home

My Reflections - Sprint One

Command Line Primer

In a couple of sentences, how would you describe the command line in plain English? Can you think of an analogy for it?

The command line is a way for you to communicate with the computer in its language. Asking it to help you do the things that you want to do with the information that is available on your computer or one that you are able to retrieve/create at that moment.

It is affectively like trying speaking to a deaf person, you learn how to use sign language in order to be able to communicate in a way that they will understand.

Did you stick to the timebox guidelines? If not, what change would you make next time?

No. A lot of time was spent on the initial Workshop video and worked through the same process from there. Less time was needed to do further research and practicing with other resources.

Name 5 commands you used, and what they do

ls – list directory content in the file which you are current in (or root if starting off with)

cd "name of directory" – changing directory. This only moves in to the directory chosen while "cd" moves it back to parent/root directory

mkdir – creating a new directory in the parent or child files that you are currently on

cat – output content of the file that is being worked on (.txt .html) in text form on the terminal

touch – creating a file that doesn't already exist

rm –r – remotely deleting the files from the directory without opening a new window

Did you learn anything unexpected?

Um…. How about the whole thing? I have used terminal before to make changes to files or agreements that was already on the computer (like taking the place of root and agreeing to xcode terms of use in order to use Git for example) but I didn't know that so much could actually be done without opening so many windows! And uploading it onto GitHub remotely? Super cool.

Version Control with Git

Whats the difference between git and GitHub?

Git is a SCM or source code manager that keeps track of the history of your work so that you can refer back to it at a later stage. Basically a very organized helper who keeps track of what you’ve done and reminds you of it when you ask.

GitHub is a space for collaborating your work with the help of Git to track its progress. It is a DVCS or Distributed Version Control System, which gives any client (or you) the ability to mirror the repository or the work that you and your colleagues have committed so far to the project that you are working on. It is affectively a service that you subscribe to in order to systematically collaborate lots of work without overwriting or stepping on anyone’s toes. Also acts like a cloud system for back ups and storage

Can you think of an analogy to describe them?

Git is your secretary and GitHub is the place you work along side others on the same project. Everything is in the same place and you can see what everyone is doing. There is a supervisor (master) who checks and approve all your work before a final proposal in submitted.

Do you think you would still remember the difference a week from now if you didn't revisit the material?

Absolutely! Seeing as we will definitely be working on Git and GitHub throughout the course it would be hard to forget.

Did you stick to the timebox suggestions? If not, why not?

No because I was making changes to my terminal at the same time. Had I not done that it would have actually taken less time than the 30mins allocated.

Install and Explore Git

What is a GitHub work flow?

To my understanding, GitHub workflow is the process by which a project can be worked on my many people at any stage of the process at the same time while bing able to share what they are working on and live update the master/project at anytime without 3rd part intermediaries like emails. Using and utilising branches in order to work on the same thing or something that is different to what you are doing right now without disrupting the final product progress.

What did you notice about your own learning? What did you do when you were confused or blocked?

I learned better by doing and seeing rather than just watching. Videos are often paused and replayed while searches were made in order to reference work and try something different. It was easier to learn by seeing how it works and what you were doing wrong then fixing it to get the outcome that I wanted. I would google the things that I did not understand and try it again and again until it worked.

Is there anything you'd do differently if you were to repeat the learning exploration again?

I would not have watched all 7 tutorials back to back… too much information without any means to actually apply. A lot of listening and not a lot of practicing. I would have tried to find a place where Git can be practiced with examples and divided each of the stages of the online course by doing the things its teaching me until I fully understood what I was doing before moving on. Hoping that it will solidify my understanding faster than feeling like I don't know enough at the time.

Track and Commit Primer!

How would you describe stage and commit to your non-tech-savvy friend?

Its like doing a jigsaw puzzle with lots of people, most people find the corners and frame pieces first (working stage) then a picture is taken to keep a record of where you are just in case you stop for lunch (staged) then you come back to it and each work on a small section at a time until you are happy that this is all you can do for now, take another picture just in case you have to stop for the day (staged again) then if you or one of your friends had to leave early you can stick the picture of the work in progress on your facebook group so you can keep track of what you’ve done and the progress. Then you can go back to it and work on it together until you have finished it to a point where you want to share it with the world! and post it on your facebook with lots of smileys faces saying something like "look what I did!"

Branch, Pull, Merge

What is Master?

Master is a default branch that Git creates to represent the main body of work/head of project. Most of the time the master generally is a working form/code of the project. It is the main branch of the production code.

Why create a Branch?

A branch can be used to create a parallel “tunnel” of the existing code/project that you can work on along side and test out new concepts or bug fix without making and physical change to the main branch. Once the branch has been conceptualised and photo types created then it can be shared with the team for further development if needed. Once the project undergone by the branch is centrally approved for change in the Main branch, a pull requested can be submitted for review and the branch can then be merged with the original or main branch as a final product (or to move on to further development down the line).

Do the concepts introduced feel intuitive or difficult to understand?

Intuitive, as this is similar to Google Docs concept where each person can be working on their individual parts of the essay locally (on their own) then they can upload their part online to the main document for others to peer review and give feedback before the final project is ready to be submitted and printed off.

GitHub Fork & Clone

What are some examples of when you would fork?

For example, I saw a code online for a cool new app that helps people keep track of their wish list on a shopping site but noticed that there is no way of checking when you added it. I decide that I would add a code that includes the time stamp for this app. I then fork (copy orginal code) to my local computer and open a GitHub repo of my own for me to work on it. I can make changes as it's master and edit the code directly, or get side tracked and add some more cool features with a branch along side my master additions. Then if I think this is super awesome, it works and it would totally improve user experience, I'll submit a pull request and write something like "this might help people prioritise their wishes!".

Write your own step-by-step fork and clone instructions. Describe what you did.

Step by step to fork and clone:

  1. Create local directory on my computer using mkdir Dev-Academy
  2. Go into my directory using cd dev-academy (not case sensitive apparently)
  3. Go to the origin repositiory and click fork
  4. Choose Destination (which account I wanted it in), in my case fai-songprasit
  5. It automatically opens the forked repo in your current destination repo so copy the enw clone link
  6. On Terminal/iTerm type in git clone "clone_link"
  7. once completed while still ine dev-academy directory type in ls to list all files
  8. make sure that the file is there and go into it to see content via cd "foundations"/"name of file"
  9. Yay it's all there! 'Victory dance'.
  10. Make changes to the file I wanted "my-reflection-sprint-1"
  11. Check git status
  12. Add Git tracking via git add "file name"
  13. Commit via git commit -m "my message"
  14. Upload onto GitHub via git push origin master

Did you have any moments where it all clicked? What clicked?

It was when I realised that I had been forking from the wrong origin (pardon me while I giggle as I never thought I'd ever have to say that outside of hospitality) that it made more sense as to what I was suppose to do. It was nice to be able to put all the theory and the command line practices into actual tangable action. It was very satisfying.

Setup Repo & Create Blog

Reflect on this activity. When did you feel frustrated?

I didn't feel frustrated at all as I feel that I was adequately prepared to use what I have learnt so far to produce the expected outcome.

If you didn't already know that this is the way websites are made; was it what you pictured? How does the reality of this process differ from your preconceptions?

It was easier than expected but around about what I had imagined a start up page would look like. I mean everyone my age remembered BEBO and dial-up right? Although the web page currently reminds me of an Error 404 page of an old website, bare and minimal, but looking at it makes me a little excted as to what I will be leaning to do next inorder to fill it out.

Thinking like a programmer

Describe the process for solving problems

The resource available on foundations outlines the process in detail bit ultimately I've come to understand steps to problem solving as:

  1. Build habits - creating an environment for myself that gets me motivated to do the things I set out to do that day. Coding or no (but hopefully always yes)
  2. Undertsand - Understand exactly what is being asked
  3. Plan - crate a framework for you to follow or be guided by. Like writting an essay there is an intro, body and conclusion. It is the same with any project.
  4. Divide - Split the work into smaller problems to be solved one at a time, preferrable in chronological order but one you can get back to if you are stuck on it for too long
  5. Get Unstuck - get a second opinion, get a perspective, have a break, look at it again, try again. All of those thing until it works. If all else fails? Start again.
  6. Refractor - See if there is any way to improve your solution, make it more efficent, have less redundant lines, use less words to get to the point.
  7. Reflect - Think about what you have done so far, what you had a problem with and what you have learned from your experience and hope that you can improve the next time you do somthing similar.
  8. Practice - Everyone learns better by doing, all the time, repeat the same motion. It's like exercising. if you never go running you'll never be able to run 10km, start small, do it often and build up your fitness and tolerance.

Will you follow that process? How?

Definitely. With determination and creating benefitial habits. Its ok to not get it right the first time. I believe that hard work will always trump any challenge as long as you dont give up and have the drive and patience to get better. It doesn't have to be quickly. Any improvement is a personal win and that is how I have survived so far.

What did you learn about flipped classroom?

Flipped classroom is a model where students are given the core information and practices to do outside of class in order to prepare for the class. The class itself is more about applying what you have studied in a controlled setting where there is support should you need it. Mostly the class actually focuses on student centred learning and self-learning. Giving students the ability to do project based collaborative work with teacher assistance.

Introduce yourself

What was it like trying to summarise yourself to a group of strangers?

It is something I am used to doing so i did not find it hard. I often self reflect and TRY to learn from my mistakes. Its one of my limitations actually. My policy in life has always been if they are brave enough to ask, then I am brave enough to answer sincerely.

Could you feel your ego? Were you self conscious?

I was a little self concious as I tend to like doing these things in person so that I can gauge the room and whether or not I'm sharing too much. I can feel a sense of pride in my words as I feel that I was able to confidently share with others about who I am and who I want to be. That doesn't exactly stop me me shaking everytime I talk about myself though.