8 ms·
I am also a computer science assistant professor like Cal Newport so I can relate to what he is trying to say here. An academic paper in computer science usual
by rweba 14y ago
I am also a computer science assistant professor like Cal Newport so I can relate to what he is trying to say here.
An academic paper in computer science usually consists of applying a well defined "technique" to a well defined "problem." For example
applying "Support Vector Machines" to "Text Classification" or applying "Expert Systems" to "Medical Diagnosis" or
applying "Particle Filters" to "Robot localization"
The crux of what Newport is referring to is that in practice, many(most?) academic researchers don't deeply learn new techniques that are outside of their immediate research agenda after leaving grad school. They will certainly be AWARE of new techniques and might learn their high level ideas but they won't really learn them deeply enough to be able to improve them or use them in a non-trivial way. It is much much easier to continue exploiting and building upon the techniques they have already mastered than to invest several painful months(years?) to master completely new techniques.
So what Newport is suggesting that you should stop applying your current methods that are easy and very productive for you and make a substantial investment of time and energy to master the latest techniques - even if you don't exactly know how you're going to apply them
A programming analogy: If you're a C++ programmer, stop doing C++ projects and spend at least 3 months until you're an expert in Python. If you're a Python programmer, stop writing Python and invest several months in becoming an expert in Go. (the analogy is not perfect because mastering a new language is probably a bit easier and more fun than the kind of things Newport is talking about)
Here are a couple of thoughts I had on this:
(1) How applicable is this idea outside of academic research? For example, in academia there is a big reward for being the FIRST person to apply a given technique to a certain problem, but outside of research being the 2nd or 3rd person to do something can be just fine. (See: Friendster, MySpace, Facebook). So maybe you can afford to wait until someone has shown a great application of a new technique and only then jump in and try to exploit it.
(2) An opposing but also convincing idea is that it is better to focus your efforts in one area to avoid spreading yourself too thin. Such focus allows you to gain "comparative advantage" and to easily do things that are difficult for people who don't have your deep experience. In other words, it is better to spend your efforts trying to become the world's greatest Python hacker than to jump on the bandwagon of every new programming language that comes out and ending up as a "Jack of all trades, master of none."
My conclusion: I do think it is worthwhile to challenge yourself not to just stick to what you already know (which in my personal experience is VERY easy to do especially if you find that you're very productive using what you know). But you also have to be selective. Life is too short to try to be a master of everything. And there is great value in gaining a very deep expertise in a particular topic or technique.
- npsimons 14y ago(2) An opposing but also convincing idea is that it is better to focus your efforts in one area to avoid spreading yourself too thin. Such focus allows you to gain "comparative advantage" and to easily do things that are difficult for people who don't have your deep experience. In other words, it is better to spend your efforts trying to become the world's greatest Python hacker than to jump on the bandwagon of every new programming language that comes out and ending up as a "Jack of all trades, master of none." My conclusion: I do think it is worthwhile to challenge yourself not to just stick to what you already know (which in my personal experience is VERY easy to do especially if you find that you're very productive using what you know). But you also have to be selective. Life is too short to try to be a master of everything. And there is great value in gaining a very deep expertise in a particular topic or technique. I've come to the conclusion that, if possible, it's best to be a "jack of all trades, master of one". It may take longer, or you may never truly attain mastery, but being flexible and not just willing, but eager to push yourself to learn new and different things is always a good thing. If nothing else, find something you enjoy enough to get enough skill in to pay the bills and then play with other things in your spare time. This is particularly interesting to me, because while I find I could become obsessed with something enough to attain deep mastery, I find there are so many awesome things to learn and play with that I don't want to miss out on them. This could explain why I didn't go to grad school (and go on to become a professor, a once dream of mine) and haven't founded my own startup, but instead prefer to languish at a 7-4 day job with the government and sample everything from robotics to music to cooking to search and rescue in my spare time. To be sure, I still push myself at the job (it's funny you specifically mention C++ and Python: I'm finishing up Coplien's Advanced C++ while delving back into Python for the robotics as well as smartphone/tablet programming, and Go has also piqued my interest). The one limiting factor to try and keep me focused is that I try to keep my learning to tools that are open source, so as not to suffer from lockin and platform obsolescence. Plus there's the technical superiority of open source software in general.
- slurgfest 14y agoYou might have difficulty focusing (or a preference not to) but with a day job and so many other interests, you would get a lot of benefit from focusing your programming efforts, because the left over time is so limited. Which one is the most viable way out of 'languishing'?