Ph.D. or Professional Programmer? | Henrik Warne's blog
Narrow problems vs. broad problems. A researcher typically studies a very narrow problem. For example: what is the optimal congestion control strategy given a certain arrival distribution and goodness criteria? While these are important to study and understand, I am more interested in the broad problem of "what makes software successful". In the telephone switch example, it must perform acceptably well in many dimensions in order to be successful. It must have enough capacity, it must not crash, it must be easily configurable, it must be easy to trouble shoot etc. Congestion control is one part of many, but a rudimentary solution is probably good enough.
I realized that I enjoy the challenge of working on large software system that must work acceptably in every dimension, rather than studying a very narrow problem in detail.
Thrill of having users. I only discovered the importance of having users once I started the Ph.D. program. Doing research on a problem of my own choosing, without anybody eagerly awaiting the result really paled compared to the excitement of working on a system with lots of users. The features I added and bugs I fixed had an immediate impact on lots of people, and I really missed that feeling.
Value of options. Since I had worked in industry before starting the Ph.D. program, I knew what the alternative was. My sense is that most people who do a Ph.D. do it immediately after getting their M.Sc. This means they don't know what it is like working in the non-academic world. In most cases that probably doesn't matter, but sometimes it is important to know what you are missing.
Conclusion
Read full article from Ph.D. or Professional Programmer? | Henrik Warne's blog
No comments:
Post a Comment