Fancy Topics, Week 3
As the title of this week suggested, the bulk of this week’s contents were pretty technical, complicated and fascinating at the same time; in other words, fancy!
I’d like to start with the topic that grabbed my attention the most: Machine Learning. Although it has become more or less of a buzzword nowadays, thrown at any technology that is even remotely hard to understand, the ideas behind the actual ML algorithms are actually ridiculously easy. Simple rules working on a large scale can create extremely complex behavior, even to the point where we can start replicating our own brain’s behavior (or at the very least a couple of neurons). I’ve taken in the past a few shots at ML, however it always has been quite superficial, I hope this series of videos helped me to get a better grasp of the fundamentals in order to take yet another shot, this time a little bit more prepared than the last.
The talks on the more social side this week were focused in big ideals and dreams. We had talks that asked us to question the dogma and the status quo (both as a society and within ourselves), and reflect how many things in the past that were considered done and good have actually become obsolete as the years have passed. One of the most insightful ideas from this week was the commitment to get 10 times better rather than 10% better. This can be quickly understood with the fact that no one gets excited by getting a little bit better, that Isn’t human nature, and while we must understand that 10x is usually not going to happen even with our best efforts (superhumans don’t exist sadly), it’s the mere excitement and motivation of trying to make something radically better, of giving our best, that actually gets radical results. So, while we might not get 10 times better, with the rights attitude we can easily get twice as better. It sounds like magic, but it’s the believe that we have it within ourselves and towards the world that makes that magic world. It’s always good to be reminded to remain hopeful and do our best; imagining you are 95 years old looking back at yourself, while grim, was actually quite an impactful reminder to make this point stick out.
Coming back to the more technical side, this week we also learned a lot about Test Driven Development (TDD), its offspring, variations and key concepts. As someone who has never used this methodology (and has suffered the consequences of doing so), this topic was extremely interesting, though I believe I still need to grasp better the concepts in practice. Let me explain: while the theory is quite reasonable to understand and the arguments for its use are almost as common sense as it can be, I really struggled actually applying these concepts in a real application. This week we developed a Movie Recommender using a big data set of reviews, and while that wasn’t exactly easy to do, I ended up learning more Java concepts than I had ever done before. The main issue I had with this exercise was that I realized I was really struggling to set up the environment for the test to run correctly, to understand how each test worked and to think of ways to actually develop these tests myself. I really value the theory these lectures brought me and the experience the exercise let me realize where I’m struggling, I hope to continue using these concepts in order to cement these techniques on my day-to-day practice.
On even fancier topics, we touched upon quantum physics and computing. While extremely interesting and a good ration as food for thought, it pains me to say that I really can’t grasp these concepts further than the understanding of qbits and the double slit experiment. I would like to get a better grasp on these ideas and theories; however, I feel like I might be missing some previous context or knowledge to really get this topic, though I’m not sure where I might start informing myself.
On other fancy topics, though not as abstract, we also learned about the text editor Vim and the git version control system. As for Vim, this is the first time I’ve ever used it though not the first time I’ve ever heard of it; all I can say is, I see the reasons why people use it and defend it, even then, I might be a bit hesitant to actually adopt it, as it is such a radical change. As for git, I’ve always had a sort of mystic understanding of it, as in I don’t really get what I’m doing but eventually I get it to push what I intended to push. This lecture was actually really helpful to dissolve some of the doubts and misunderstandings I had regarding the whole process, and while I’ll still rely on the Desktop version to get me out of trouble, I’ll try to get more comfortable with the CLI version.
Finally, as a note for last week, we kind of, sort of, really didn’t communicate effectively as a team, and as such we goofed on the Google Code Jam delivery. This week we corrected our path and started working and communicating better as a team. The difference is actually a bit radical, kind of scary even how fast it happened. But, as they say, we learn from our mistakes, and while there really isn’t an excuse for what happened, I truly believe this served as a warning for the better. We also learned Scala, so there’s that.