These days I have been consumed by the notion of making myself antifragile. This particular term arises from one of the Taleb’s book.
I have been studying Computer Vision and Machine Learning out of enthusiasm since I was in my third year in my undergrad college at IIT Varanasi. I made it my life and studied hard despite having my majors being in Electrical Engineering (which has very less connection with that at least there). Via that I was able to make into Google Summer of Code 2 times. Not only that, I was also able to make my way to the University of Minnesota for my Masters. It is a pretty nice school and I am right now enjoying my studies here.
But you must understand that I never had any exposure to Computer Science in general and the only reason why I was able to make my way till here was the side projects that I used to do out of enthusiasm. So the moment I came here, I took the Machine Learning and the Matrix theory course. I also joined the Robotics lab and started working on a project with the lab head. Everything was going well and I was getting more proficient in Machine Learning and Computer Vision … the topics that I really loved. But at the same time I realized I have completely zero knowledge about Systems. I don’t even know what a database is! Except writing code in Matlab, there is not much coding I did in my coursework. Then came the time when people started applying for internships. To get a good internship, you got to study data structures and algorithms. I have no idea about any of these! What kind of Masters I am hoping to do by knowing only Computer Vision and Machine Learning without having done a single class of systems or Algorithms. I was not at all confident about clearing a interview too. For I used to think that I am made for CV and ML and anything other than that is harmful for it will distract me from my real passion. In this way I was trying to make stories and feed it in my head to justify my decision of not studying for my interviews since it is not CV or ML.
I made myself super dependent on one and only one thing as if my life depends on it and once it is gone … I am nothing.
Right at that time I came across this book and the things that I read in that really changed my thinking. It is true that a person needs to master certain set of skills (as the best in the trade) but it doesn’t mean he should not be knowledgeable about the other things. One must not aim to be fragile. Fragile means if things go vary, it would be destroyed instantly. It is brittle. We need to be flexible. I swung my choice of courses for the next semester and took the Compilers course. I learnt Ruby on Rails to understand what front end development means. I also audited 2 other courses. One as the undergrad Operating Systems and undergrad Internet Programming. The last course that I took for the Grad level is Sensing and Estimation in Robotics. I have increased the dimension of my learning to manifold times. I fail regularly and it takes time to get the concepts in my head sometimes but still my gut says that I doing the right thing.
I am good in ML and CV and it will remain in my nerves but by taking all these courses and doing some extra work I feel as if I am really understanding the Computer Science field in a much better way.