Week 4 @ Formation (Week 22 of journey)! Binary Search Tree

Today, we learned about Binary Search Tree. This tree has at most 2 child nodes. The root node is the starting or head node. All things hail from the root node. I learn some new words such as stacks and queues. I learned how to find the height of a binary search tree, recursively and also iteratively. Now, I do not remember the code, because I do not focus on remembering code, but I do study the concepts and try to remember the concepts. I honestly enjoy the Binary Search Tree so far, I love the drawings they use to visualize this data structure! Hahahaha.... I have a lot more of learning to do on BST. I also won the Rising Tide Award at Formation, voted by his peers. What can I say? Formation kicks ass. I just was raised with the motto, if you ain't helping anyone, you ain't living. I try to help in the best way I can when I can. That's what Engineering is all about, I love team sports. I created a study group, me and my fellow Aaron. We like to solve problems, get stuck on problems, and strategize together as a unit. I am honored to be partnered next to some very intelligent folks. That's all today, I will update my learnings tomorrow.

Tuesday, I reviewed Binary Search Tree, I read and wrote the code to find the height for a BST. I also practiced studying code for Bubble Sort and Selection Sort algorithms. I am trying to remember the concepts in my head, and tell myself the steps I need to take in order to get these algorithms going. I really enjoy doing this, I am triyng to make a connection to these concepts when I solve problems. I got lucky today and was able to sit in on a session and watch Vinit, the GOAT from Uber, solve some coding problems that other Fellows posted in the Officer Hours sessions. Vinit is a Senior Engineer who is really really skilled in teaching these concepts to us young bloods. He showed us how to find the height of a BST using DFS and BFS with stacks and queues. He also helped us solve a really difficult problem that Formation gives us, where we create a function called Highest Skill Overlap, and we have to find the Fellow with the highest skill rating. We watched Vinit use a hash table with fluency. I also studied some Data Sturctures and Algorithms on MIT's Open Course Ware. I have a 1 on 1 with a fellow James, we will try to solve a problem in Python. We will start in 15 mins, after that, I will get some rest and return tomorrow.

Wednesday, I had 5 tasks, they were all extremely difficult for me, and I loved that, because I took my time with each problem, and tried my best to grasp the concepts, algorithms and thinking process. I really enjoy that about coding, it's the euphoric part for me, writing the code has a even better feeling, but I have to get better at it. Writing code from an aglorithm vs memorization feels magical. I learned the Fisher-Yates shuffle algo, and it's so amazingly powerful. It shuffles an array asymptotically optimally. Donald Knuth wrote about it, in his book the Art of Programming, which I am scared to pick up and try to read, I mean if it was difficult for Bill Gates, then I have no chance, because Bill is a hell of a reader! But yea, shuffling an array feels like a VERY good tool to have in the toolbox, that Fisher-Yates is a keeper! I also worked on 'Valid Anagram', 'Rectangle Overlap', 'Backspace String Compare', and 'Reverse Vowels of String', they all were tough! Callous the mind! WHEWWWWW BABYYY!!!

Thursday, I failed my assessments on Array Basics and Hash Structures, and it really motivated me to understand the concepts better. This has been the mental battle, but I am starting to see what's going on and doing much better at my sessions, but I still have a ton of work to do, but it's the best journey!

Friday, I learned how to Find the Kth Element in the Fiboncaci Sequence. I, once again, failed my Hash Table Speed Drill and my String Speed Drill. We get x amount of time to solve x amount of problems, but at my pace, I am optimistic that I will get there soon. I am not rushing, but trying to be smart about my approach. I am still using my Pomodoro's which maximizes my Time Management, and I do not overlearn or crunch. I am using a deliberate practice and using a learning method where I try to teach the concepts to my wife or children or anyone that I can, my Fellowship is good for this week in and week out. With this formula, in time I will make small gains, as I am now, and throughout the rest of my career. I understand we are small beasts in a big tech sphere.

Saturday, I started doing the LeetCode DS Study Plan for 14 days, it's been really cool to use and I sat and tried to really learn and comprehend their entire platform, and it's top notch for me, the dicussions, the many different things that you can learn, are endless for me or anyone trying to improve their problem solving skills. I have not been able to take my MIT Open Course Ware classes, but I can't wait to resume. The class is going into the second lecture, and it's on Data Structures and it's taught by a child genius Erik DeMaine, who is a real brain! I am so lucky to learn from him, and watch his video on the topic. I have some tasks to complete at Formation, and I am starting that now, I will do this deep until the night, problem solve, which I love doing, with music on.... and try to grasp some things from afar! Oh yea, I had a Coding Drill on a Saturday, I was so pumped all week (boring nerd that I am). It was a GREAT session with a really good mentor that I had before from Microsoft, his name was Kevin. The others did not attend, so it was me and Thamayanthi from my Formation study group. We worked on Recursion with Arrays. We sovled two problems, and I got to see Thamayanthi code her answer in Java! I have a Java story, that I will tell another time.
My Saturday night Roadmap, Week 4!

Comments