Here are the key qualifications for successful research in software technology.
- be really excited about your project
- be ok working hard
- be persistent (get back up and continue when things don’t work out as planned because true research rarely works out as planned)
- be fearless (e.g., be ok hacking a virtual machine, a compiler, a kernel, or implementing a complex algorithm)
- have a small child’s attitude (to want to understand and learn about everything they encounter)
- have an engineer’s attitude (not to take the first solution that comes to mind, but to look at the key alternatives)
- have a researcher’s attitude (to want to truly understand something, and to not be satisfied with the first best explanation)
- be able to focus (to ignore the many other cool things one could also do)
- like to write (prospectus, proposal, dissertation, and papers)
- like to read (books, papers, papers, papers)
- want to look at the simple and obvious before exploring the complicated
- derive pleasure from coming up with a logical and clear argument or explanation
- like to present (at conferences, or in class)
- like to convince others using sound arguments
Credits: Foundations of Dynamic Analysis Group at the University of Lugano.