Wednesday, June 02, 2010

Advice for an Engineer

A reader from Mexico asks 
I am a near-to-be graduate student from Computational Engineering. However, it wasn't what I expected from my career. I want to be a mathematician.

Computational complexity seems incredibly interesting, and I really want to take part in this amazing field. But because I'm an engineer I lack the basics to do any formal or proper research. I feel like I made the wrong career decision, even though I'm not bad at it and have a good job.

So, even though I'm behind on the math schedule, I really want to participate on some form of research. I'm unsure on how to proceed, though. I'm not versed enough in Math to be of real use and I don't feel like going back to school just yet.

What would you recommend on my position?
There are a number of computer scientists and even complexity theorists who started out in "the real world," realized it didn't feel fulfilling and went back to graduate school and on to successful research careers. It's not an easy road but it can be done.

If you are not ready or able to go back to school right away you should start exploring complexity on its own. Start reading a textbook (like Arora-Barak), read some lecture notes and when you are ready, try reading some of the latest papers in the field on ECCC and ArXiv and try to tackle some of their open questions. If it still excites you definitely consider graduate school. Worst case you'll end up back in industry and twenty years from now you don't want to regret choices not made today.


  1. He can always study computational logic ( and which is a master, and soon a PhD program, directed to computer scientist with strong emphasys on maths.

  2. First is he REALLY interested in computational complexity specifically or more generally in "mathematical fields which are close to computer science"? (e.g. algorithms, programming language theory, computability theory, machine learning theory, information theory, computational complexity theory, queuing theory, algorithmic game theory etc.)

    From his description sounds like he may not be too sure. So the first order of business is to see if you aren't more excited to study streaming algorithms or online algorithms or something.

  3. Transitioning to a new field is often easier if you can relate it to something you are already doing.

    e.g. if you are designing computer chips you can look at the optimization problem of how to optimally placing the components of the chip. This will naturally lead you to research the latest developments in optimization theory, which could lead to a study of approximation algorithms and computational complexity etc.

    The point is you are not just going in cold turkey, but you are leveraging something you already know about (computer chip design) so that you can be productive as you learn something new.

  4. It is hard for a person to say that he is interested in something without knowing what that thing is. I would suggest that he should first see he is really interested in complexity, wasting a few years of life is not a good thing.

    And being interested is not enough to be successful in a job.

  5. Well, I graduated from an engineering school (master's degree), but I got into the "R&D lab" during the last 2 years. Though the usual curriculum has its good share of language theory (from Chomsky hierarchy to parsing), the R&D curriculum had classes in computability, model theory and complexity. This came as a flash, and I decided to do another master's degree in logic and TCS. Now, I'm doing my PhD in complexity and language theory.

  6. I want to second Lance's advice: "try reading some of the latest papers in the field on ECCC and ArXiv".

    And in addition to reading the latest papers, it is also helpful (and fun) to search the arxiv for the earliest papers too.

    Here the arxiv's "Advanced Search" feature is your friend ... it includes an (experimental) full text option.

    Pick key words and phrases that interest you, and find out who was first to introduce them. Unsurprisingly, these early articles often provide the clearest explanations and motivations.

    This will provide you with a pretty solid understanding of where new ideas come from, and how they evolve.

    You will also discover strong gradients across disciplines. Try searching the arxiv server for the word "naturality" for example:

    - mathematics: 2302 uses
    - physics: 403
    - computer science: 59
    - nonlinear sciences: 6
    - quantitative biology: 0
    - quantitative finance: 0
    - statistics: 0

    Hmmm ... there's a pretty obvious opportunity to introduce explicit considerations of mathematical naturality to the literature of biology, finance, and statistics ...

    Deconstructing the literature in this way provides inspiration and pointers to unbounded trans-disciplinary research opportunities ... that's why (IMHO) there has never been a better time to be a young mathematician, scientist, or engineer.

  7. For inspiration: The great Uri Feige did his undergraduate degree in Electrical Engineering.

  8. For inspiration: The great Uri Feige did his undergraduate degree in Electrical Engineering.

    Hmmm ... come to think of it ... there are similarly inspirational moves too in the opposite direction ... from mathematics to engineering ... von Neumann for example worked the last 15 years of his life (in effect) as a systems engineer ... indeed as one of the world's first systems engineers.

    Perhaps we will see many more such confluent careers in the 21st century. For example, nowadays we are witnessing the confluence of the scientific discipline of biology, with the mathematical discipline of bioinformatics, giving birth to the engineering discipline of synthetic biology.

    It's a sobering reality, that on our increasingly hot planet, with a population of 6-going-on-10 billion people, that research-minded young folks have to look ahead to foresee disciplines and enterprises in which STEM-type jobs are going to be created on a global scale.

    The alternative scenario—in which abundant STEM-type jobs aren't created on a global scale—is unpleasantly dystopian to contemplate, and (perhaps) disturbingly close to being a reality already.

  9. Some concrete advice for the reader is to investigate the Erasmus Mundus Masters in Complex Systems Science ... or alternatively, Erasmus Mundus ALGANT: ALgebra, Geometry and Number Theory.

    Perhaps somewhere in the (vast) scope of Erasmus Mundus is just the opportunity that this young person is looking for?

    I would be very interested to read posts about peoples' early experiences/reactions to the general Erasmus Mundus program.

  10. This comment has been removed by the author.