View on GitHub

reading-notes

Reading notes for Codefellows Coding

The command line:

The command line is a text based interface to the system. You receive feedback as you type your commands. You can navigate through the entire file system just using the command line.

Basic navigation:

We have access through the entire file system (as long as we have the right permissions) through the command line. Commands such as ls and pwd give us information on what is in the current folder or what’s the location of the folder itself in our filesystem. We can go to a folder using the cd command. The . dot references the current folder. We can jump to the parent folder using the .. along with cd. Overall, once you practice enough, navigating using the command line is easy and even quicker than using the GUI.

More about files:

Everything is a file regardless of what OS you are using. Some common file extensions are .exe, .txt, and .png. Linux is case sensitive and will see files with uppercase and lowercase differently even if they spell the same thing. Some folders have hidden files. You can use the -a command when opening a folder to see every single file within.

Manual Pages

The manual pages are a set of pages that explain every command available in your system including what they do, the specifics of how you run them and what command line arguments they accept. You can get manual pages for many commands using man followed by the command you want instructions for.

File manipulation:

You can create and modify files and their names using the command line. Some common modifications you can make are mkdir to create a new folder, touch to create a new file. When using touch you need to specify the file extension it is. You can remove folders as well using rmdir or copy them using cp.

Growth Mindset:

The first article titled “Upgrade your technical skills with deliberate practice”. This article points to the fact that we can do something for a long time and not get any better as far as skills are concerned. We as programmers need to push ourselves through solving difficult problems and seek challenges to hone our skills. We should practice deliberately rather than stick to what we know. The article gives an example about the best pianists drilling through the most difficult parts of their music rather than just playing. In short, we should go beyond our comfort zone!

The TED Talk from Carol Dweck was incredibly powerful! I, myself suffer from taking tests as a challenge to my intelligence instead of opportunities to develop my skills further. I believe that many of us are taught the fixed mindset Carol speaks about in her presentation. Instead, we should develop a growth mindset and fully engage in the learning process. I personally love the strategy of replacing failing grades with “not-yet” even thought it might not be practical for every course or every school. Instead, we can modify our self talk to process academic shortcomings as opportunities to improve instead of failure.

The TED Talk on “Grit” from Angela Lee Duckworth was amazing as well. I guess I consider it a spin-off from Dr. Dweck’s growth mindset theory. We as humans have several types of intelligence that may or may not be measured in our current school system. IQ is a good indicator or someone’s intelligence level, but it is definitely the only one. I strongly believe that IQ alone is far from an indicator of success. Grit may be more closely related to real-life intelligence than IQ. Grit has to do with our ability to stand back up when we get knocked down (academically and in the real-world).

Alain de Botton starts his talk by painting the picture of how our society tends to see success and failure. This TED Talk was very enlightening as I believe this is very applicable to our situation in Code-Fellows. We will not get every subject by heart and we might even fail at some tasks. We need to be kind to ourselves as we cannot possibly be successful at everything. I want to become good at identifying at my own ideas of success and how to become kinder to myself when I don’t achieve something the first time.

The podcast from Drs. Sarah really depicted how I feel sometimes. I’ve suffered from imposter syndrome in key points in my life (especially while learning to code). I believe that the tech sector has the “perception innate of brilliance” which amplifies the imposter syndrome. We tend to perceive that the field is full of brilliant people who effortlessly get it. When we feel like we have to really put effort in our learning, imposter syndrome tends to set in. This syndrome is an obstacle to success and it might even make us quit. The hosts went on to poke fun of themselves in real world situations when they felt like impostors.

We can treat our own imposter syndrome by identifying the negative thoughts as what they are. We can breathe and meditate while acknowledging that these thoughts are only our perception of our current reality rather than reality itself. Free writing is another technique depicted by Drs. Sarah. Writing down positive reaffirmations can be healing and it serves to remind us who we are and the fact that struggle is temporary. Overall, I could identify similar situations in my own life.

Sources:

https://web.archive.org/web/20160616225417/http://www.happybearsoftware.com/upgrade-your-technical-skills-with-deliberate-practice

https://www.ted.com/talks/carol_dweck_the_power_of_believing_that_you_can_improve/up-next?language=en

https://www.ted.com/talks/angela_lee_duckworth_grit_the_power_of_passion_and_perseverance/up-next

https://www.ted.com/talks/alain_de_botton_a_kinder_gentler_philosophy_of_success/up-next

https://soundcloud.com/drssarahcare/self-care-with-drs-sarah-impostor-syndrome-part-i

Pain vs Suffering:

Pain is needed for us to grow! This article mentions how the next 10 weeks will be painful (that part is not exciting) as it will push us mentally, physically, and even emotionally. We grow through pain and the lack of it could even mean we are stagnant. Suffering on the other hand is pain without a higher goal. Sometimes we experience pain, but we mistake it as suffering. I’ve been previously guilty of this and I really hope my mindset stay focused throughout this course.

A beginner’s guide to Big O:

Big O notation is used in Computer Science to describe the performance or complexity of an algorithm. While I don’t fully understand the Big O notation, I believe it is the worst case scenario when dealing with memory use. We can use it to evaluate different data structures and make better programming decisions with it. The data structures we chose actually matter when it comes to performance!

Sources:

https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation

https://www.codenewbie.org/basecs/8