Day 77: REST and Software Architecture???

I split my time between two study tracks today. I continued reading through the “Technical Questions” section of the book, “Cracking the Coding Interview” (CTCI) by Gayle Laakmann McDowell. The other half of my time was used to read some of the material for the Node.js section of the “Full Stack JavaScript” development course from The Odin Project. Things are getting a bit difficult with CTCI but I am trying to keep up the balance and not favor the purely backend material instead.

The challenge CTCI is that the writing style is hard to follow. I don’t know if I am out of practice but a lot of the explanations in the book are kind of difficult to understand. It feels like a few extra sentences would bring a lot of clarity but are missing. I had to re-read the code examples a few times to understand what was being referred to in the descriptive sentences that followed. Maybe this was one of the reasons I struggled before. The book might not be written in a style that fits my comfort level or preferences. The only positive, is that because I am taking an exposure first approach, I am not so hung up on the little things that I am struggling to understand. I know I will come back and read through the material again so it feels less stressful.

In contrast to that, my backend development studies are getting interesting. I had never really read too deeply into Representation State Transfer (REST). I only ever knew that is was used with API development. I have been provided some reading material on the topic by the course. I need to setup my notes for the topic and then I can really start to make progress. Apparently REST is a software architecture style. I don’t really know much about software architecture styles so getting exposed to some more information about software architecture is a huge plus. I really do believe that I will slowly be able to map out this whole software engineering space if I keep up with my notes.

Step by step I can find success and improvement in this field!

TLDR;

Okay, so here are the highlights of what I did:

  • Data Structures and Algorithms (DSA) -> Continued reading through the book “Cracking the Coding Interview” by Gayle Laakmann McDowell again. Going through the technical interview section. Read through some examples on how to progress from brute force solutions to refined solutions using the B.U.D. method. The B.U.D. method stands for “Bottlenecks”, “Unnecessary work”, and “Duplicated work”.
  • Backend -> Continued going through the material on API development with Node.js from The Odin Project’s backend development course. Started reading the provided materials on REST.


Goal For Round 8 of the #100DaysofCode Challenge

This is my eighth round of the “#100daysofcode” challenge. I will be continuing my work from round five, six, and seven into round eight. I was working through the book “Cracking the Coding Interview” by Gayle Laakmann McDowell. My goal was to become more familiar with algorithms and data structures. This goal was derived from my goal to better understand operating systems and key programs that I use in the terminal regularly e.g. Git. This goal was in turn derived from my desire to better understand the fundamental tools used for coding outside of popular GUIs. This in turn was derived from my desire to be a better back-end developer.

I am currently putting a pause on the algorithm work to build some backend/full stack projects. I primarily want to improve my skills with the back-end from an implementation perspective. I have improved tremendously in terminal and CLI skills but I lost focus due to how abstract the algorithm concepts got. I wanted to work on things that were more tangible until I can get to a position where I could directly benefit from improving my algorithm skills and theoretical knowledge. So that’s the focus right now. Build my backend skills and prove my full stack capabilities by building some dope projects.

Again, I still have no idea if my path is correct but I am walking down this road anyways. Worst case scenario I learn a whole bunch of stuff that will help me out on my own personal projects. Best case scenario I actually become one of those unicorn developers that go on to start a billion dollar company… You never know LOL.