
How to leave academia (for science PhDs) - yummyfajitas
http://www.chrisstucchio.com/blog/2012/leaving_academia.html
======
sunahsuh
I recently left my PhD program too (I'm "mastering out" in local parlance ;))
and what this post doesn't address is what I found to be the hardest part:
making a decision to leave a world where people that leave are construed as a
failures (note: contrary to my expectation, I've only received support in my
decision from my awesome and anomalous department.) (Also, I should note that
I left a software industry job to do the PhD so I knew I shouldn't have
difficulty finding a job.)

For anyone who wants to take the leap but is afraid or unsure, I offer some
words that were incredibly helpful for me from some of fantastic friends. To
quote my amazing advisor from his response to my "I'm leaving" email:

'We had a Head of Department at Lancaster who used to stomp around the
corridors moaning - "I've just lost another student to industry. He's got a
great job, has a starting salary bigger than mine, is working on a fabulous
project with better resources than we have. In what mad world is this judged
as a failure?"'

And another colleague, who's currently a junior professor: 'You know, most
Ph.D.ers are smart and successful people. Hence they have a difficulty in
saying “This is not for me”. They instead say “I’ve been successful all my
life, and I finished everything I started, so I should finish this as well”.
By saying that, they choose to hang in there for many years in a depressed
state.

Sometimes, the most courageous thing and the best thing to do is to quit when
you know you would rather work in another capacity, or when you know you don’t
want to work in academia. I congratulate you on your decision and I hope the
best for you. ( In case you later decide to come back to academia, it will be
waiting for you, so I would not worry about it.)'

Best of luck, those of you that are struggling with the decision. If you're
anything like me, if you decide to leave you'll feel better than you have in
years =)

~~~
arethuza
"to leave a world where people that leave are construed as a failures"

That was very much the view when I left - is it a view that is particularly
common in the UK?

~~~
sunahsuh
I can't speak to that, except what my British advisor said =)

------
telemachos
> Also, if your degree is in English, the best I can do is point you here
> (link to Starbucks job page).

I know it's supposed to be funny (i.e., it's "just a joke") and I grant I may
be sensitive since I have a BA in Comparative Literature (a graduating class
of 1 in my major) and a PhD in Classics, but this came across as completely
obnoxious and unnecessary. Don't know anything about Humanities? Fine. Don't
talk about them.

Still, thanks for the link to Software Carpentry. I didn't know the site, and
it looks like a good place to point people for introductory material on the
shell, make, and so on.

~~~
oskarth
Slightly offtopic question: I re-read Odysseus a couple of weeks ago and was
wondering about the name Telemachos. My rudimentary knowledge of etymology
tells me that he's a "far away man". Given your username and the fact that you
have a PhD in classics: what's your opinion of how the name/etymology of the
character relates to the role that Telemachos plays in the epic?

Obviously he's far away when Odysseus is out and about, but he's quite present
in the beginning and end. It seems like there's more to it than that.

(For those who don't remember / haven't read it, Telemachos is the only son of
Odysseus in the epic. He's pretty much a younger copy of Odysseus.)

~~~
jules
tele = far

machos = battle

Perhaps it means that he was far away from the battle or it means that he
battles from afar? The latter would seem a better fit for Odysseus himself.

~~~
telemachos
You said it much more succinctly than I did. He "battles from afar" - that is
with a bow - hits it on the head. It would not have been so unusual for a son
to be named for an excellence of his father.

------
kentonwhite
I received my PhD (Physics) in 1999 and went directly to industry. At that
time I saw industry as a well paid post doc. My intention was to work a few
years and then seek an academic position.

In 2001 I had an offer from a top engineering school in Canada to join their
faculty. And I said no.

Academia attracted me with the promise of intellectual freedom -- the ability
to work on what ever problems I wanted to. This is a lie. To be successful in
Academia, one needs to pick a narrow field and become the biggest expert in
the smallest space. Neils Bohr described this as knowing more and more about
less an less until you know absolutely everything about nothing.

In Industry I can move around to whatever problems fascinate me most. I've
worked in Optical Componetns, designing video games, and now what I call
computational sociology on social networks. My pattern has been to work in a
field of about five years until I've built up the expertise I desire to have,
then move on to a completely different field.

For those recently dropping out of academia or considering dropping out, you
know in your heart it is the right choice. Don't worry about what people in
that little club think. A decade from now they will be looking at you. With
envy because you are free to work on the most exciting and interesting
problems while they are stuck in the same shrinking field for the last ten
years.

~~~
kmm
I'm doing a Masters in theoretical physics and I've got to ask, is it common
to first go work a few years before going into academia? It surprises me how
little we are informed of these things.

Being locked in is my biggest fear for going for a PhD. I don't want to spend
the rest of my life on a single topic, perhaps I don't even want to stay in
theoretical physics.

~~~
kentonwhite
Most graduate selection committees will look favorably on a couple of years
industrial experience between doing a Masters and doing a PhD. This is
irrespective if you continue in physics are switch to a more applied
discipline such as engineering. Following the 2008 recession, many people who
lost their jobs went back to school to pursue masters and PhD degrees, so this
is now quite common.

My opinion is if you are afraid of being locked in, then industry is better
place. If you are willing to trade job stability and short term income to not
be locked in, then learning how to start and build your own company around
your ideas is the best way to retain flexibility.

------
_delirium
If you're in the right areas of computer science, esp. machine learning, the
answer seems to be that you have to make active effort to _resist_ leaving
academia, but not much active effort to let yourself get hired away. The
recruiting at grad schools and even academic conferences from folks like
Palantir has gotten pretty aggressive lately! They're particularly good at
supplying temptation at that moment when a student's finished everything but
writing up the dissertation ("ABD").

------
narkee
I'm finishing my PhD, and starting a post-doc in the fall. I had wanted to
break out into industry, because I didn't see myself in academia in the long
term, but I didn't get anywhere with job applications, so here I am.

I have a few questions:

1\. My work consumes most of my time and energy - how would one find time to
work on side projects and build a portfolio, when the academic workload is so
all-consuming

2\. I felt like I had to apply for industry jobs in my niche, otherwise I
would be competing against a much larger pool of general engineers/science
graduates. Considering that I've spent most of the last 5-6 years focusing on
work in a specific niche, how can this be used for leverage for more general
technical positions?

Thanks for the interesting article!

~~~
jakobe
Concerning the workload: As far as I'm concerned, the academic workload is
definitely not all-consuming. From watching my colleagues, I came to the
conclusion that everybody chooses their own workload. Some of my coworkers
come at 9AM and leave at 4PM; others think they absolutely must finish that
experiment and stay until 10PM. Some people think they must immediately rush
to the lab if their supervisor sends them an email on Saturday afternoon;
others just ignore the email until Monday morning.

I have never heard of anybody getting into trouble for turning their computer
off on the weekend, or working normal hours; I think much of the pressure is
self-inflicted.

Personally, I currently work in academia (doing my PhD), and I run a
profitable business on the side (selling my own software). Sometimes this is a
bit stressful (when you have to prepare a talk and keep getting emails from
customers because of a nasty bug you introduced in the last release), but most
of the time this works out just fine.

~~~
sunahsuh
Seconded. Some of the most successful academics I know keep regular 9-5 hours
and leave their work at the office, have spouses and children, etc. I've
noticed a lot of them are fantastic at time-boxing and that some of my less
successful colleagues aren't so much, and the freedom the academic schedule
gives them ends up being more of a hindrance than a help.

~~~
slug
Are those tenured professors that have their grad studends and post-docs do
all the work for them ? :)

~~~
sunahsuh
Haha, nope, lots of PhD students and junior profs that have their act
together.

------
robertskmiles
> 100 passengers have queued up to board a plane, and are lined up in the
> order of the seats on the plane (n=1..100). However, the first person lost
> his ticket and selects a random seat. The remaining passengers will occupy
> their assigned seat if it is available, or a random seat otherwise. What is
> the probability that passenger 100 sits in seat 100?

It really worried me that I couldn't figure out how to work that out. I
thought about what I'd do in an interview if I was asked that, and I figured
(if I had my laptop) I'd write some code. So I gave myself 5 minutes by the
clock, and wrote a little python program that simulated the situation and
counted the results. I ran 5 million iterations, which with pypy took 59
seconds. The number I got out was a 97.335% chance of person 100 being in seat
100.

I have 3 questions:

1\. Is that the right answer?

2\. How are you supposed to work it out?

3\. Would working it out the proper way take less than 6 minutes?

Edit: It seemed like too high a number, which is part of why I asked. I looked
through my code and found a dumb error - I forgot to remove the seat from the
'available' list if the person finds their assigned seat. That's what happens
when you write code on a 5 minute deadline. Now I'm consistently getting
49.9%, which seems more reasonable.

~~~
VMG
I think this is more slightly more on-topic as a reply here

> Consider the integers from [0,1000]. Suppose a particle starts at position
> n. At discrete instants of time t=0,1,2,…, the particle moves up or down
> with p=0.5. What is the probability that the particle reaches 0 before
> t=1000?

The answer is 50%, right? I can't explain it properly, but my thinking is that
the random walk is symmetric and 0 and 1000 should have equal weights. Maybe a
good explanation is harder than the correct answer in this case.

~~~
dxbydt
I believe the right answer is about 2.5% (0.0247)

Here's some imperative scala:

    
    
         object particle {
           def main(args:Array[String]) = {
             val simulations = args(0).toInt
             val rng = new util.Random
             val reachedZero = (1 to simulations).map(_=> {
               var t = 0
               var z = 1+rng.nextInt(1000)     
               do {
                 z += {if (rng.nextBoolean) 1 else -1}
                 t +=1
               } while( z != 0 && t<1000)
               z==0
             })
             println( reachedZero.count(_==true)*1.0d/simulations )
           }
         }
    
         ---
          >scala particle 1000000
          >0.024782
    

Some intuition: If there were only 2 positions {1,2}, and you picked 1 with
probability 0.5, you could get to 0 by going down once with probability 0.5.
Going up wouldn't help since you'd have to go down to be back at 1, at which
point you've exhausted your chances. Suppose you picked 2 with probability
0.5, you'd have to go down twice consecutively to hit 0, which has a
probability of 0.5^2. So overall, your probability is 0.5^2 + 0.5^3 = 0.375
You can try working it out with 3 positions & 3 turns, and suddenly its not so
easy....:)

~~~
bacr
Nice simulation work! Initially I thought this was a one dimensional random
walk problem where the answer is a function of n (as other comments have
pointed out). In that case, there (n choose k) paths that take k steps in a
single direction of n total steps, and each occurs with p(0.5^n). In this
problem we are given n, but not k. Given a starting point, we can easily
calculate the probability of crossing 0.

So my question is, how are you dealing with the initial condition?

~~~
dxbydt
The initial condition is assigned to you randomly, from the closed interval
[1,1000].

Suppose there were [1,k] spots. You are assigned an intial value from [1,k]
and you then have to reach 0 before time t=k. Here's my code to solve the
general case

    
    
         object particle {
           def main(args:Array[String]) = {
             val simulations = args(0).toInt
             val rng = new util.Random
        
             (2 to 1000).foreach(spots=>{
                 val reachedZero = (1 to simulations).map(_=> {
                   var t = 0
                   var z = 1+rng.nextInt(spots)     
                   do {
                     z += {if (rng.nextBoolean) 1 else -1}
                     t +=1
                   } while( z != 0 && t<spots)
                   z==0
                 })
                 val prob = reachedZero.count(_==true)*1.0d/simulations
                 printf("%4d spots: %.4f\n",spots,prob )
               })
           }
         }
    
         >scala particle 1000000
         2	0.3773
         3	0.329
         4	0.292
         5	0.2714
         6	0.2624
         7	0.2428
         8	0.2247
         9	0.222
         10	0.2157
         ....

So your chances drop from 37% to 21% as the interval expands to 10 spots. At
100 spots, its 8%. By 1000 spots, you have a meager 2.5% chance of crossing 0
before 1000 seconds.

------
shioyama
I left a PhD program a few years back (technically graduated, but I don't
think of it that way). A year or so before I did, I remember very clearly
being out to drinks with my professor and fellow students, and mentioning that
I had no intention to continue a career in academia. In fact at the time I was
thinking of translation (I've since drifted to web development, but languages
and translation are still central to much of what I do).

The response (in Japanese, but I'll translate) was "what a waste"
("mottainai"). What a waste. All that potential I had, and now I was just
going to waste it on "work", like everyone else. No doubt my supervisor, who
said it with a genuinely disappointed look (echoed with a nod by a fellow
student and friend sitting beside me, which only made it worse) meant it in a
positive sense, but I never forgave him for it. It stuck with me, somewhere
very deep inside me, first as something confusing and distressing, then as a
kind of symbol, something emblematic of everything that is wrong with
academia.

To anyone who is hesitating: if your only reason for staying in academia is
the fear of what will happen if you leave, then it is time to leave.

------
eshvk
The post is awesome. Having just "graduated" (dropped out of my PhD program)
and also interviewed a bunch of really smart folks who are making the
transition to the "real world", I cannot emphasize the importance of the
following for a good machine learning/engineering interview:

1\. It doesn't matter if you have done research in a topic, do brush up on
simple machine learning algorithms. The math after going through a PhD should
be really easy for you. However, it is hard for an interviewer to gauge how
good your math background is when you have done most of your quantitative work
in a totally different field and you don't have enough of a common
intersection.

2\. Write code! If you are joining a small to middling start up, even if you
will eventually be doing quantitative stuff, your peers will be people from
engineering and they will evaluate you as a programmer. Brushing through
something like the Algorithm Design Manual is going to be amazingly useful.
Back in school, there was a linguistics professor who wrote most of his code
in Scala, used version control and pivotal tracker. If someone who is working
towards tenure can do it, there is no excuse for you. :-)

3\. Try to work on tiny projects that involve some data analysis and some
programming. If you are an R guy, do it in python and vice versa. Most
importantly, think of the whole pipeline: taking the data (Infochimps/ AWS
public datasets), cleaning it up, processing it using a random machine
learning algorithm (pick any, its an easy and awesome learning opportunity),
and then visualizing it. Repeat with cooler tools (E.g. d3.js for the
visualization etc). The importance of this process is that it moves you away
from the traditional anonymized datasets that you see in academia and helps
you encounter real world data and gain intuition for that. This is incredibly
helpful in the interview process because it allows you to get good ideas about
other people's data and how to think about it.

------
hagy
What about negative anecdotes? Has anyone here regretted his or her decision
to leave academia? Particularly, have you found the work less rewarding or
interesting?

I ask as a grad student with a background in chemical engineering. I’ve known
two professors who’ve done the inverse – industry to academia – and they’ve
provided convincing stories for academia. In both cases they found academic
research (in engineering and the physical sciences) to be more interesting and
personally rewarding than industry.

Is the situation different in software and related industries?

I ask, as I’ve been considering transitioning to such a career myself after
grad school (my research is in computational modeling and simulation). My
biggest fear is that I’ll find myself in a job that I find boring and will
regret my decision. Doubly so, as such a career transition will make it very
difficult to reenter my academic field.

~~~
eli_gottlieb
> _What about negative anecdotes? Has anyone here regretted his or her
> decision to leave academia? Particularly, have you found the work less
> rewarding or interesting?_

I left academia after undergrad, despite applying and getting into graduate
school. My degree is in Computer Science, my specialty track was Programming
Languages and Compilers, and my senior thesis was in Systems Programming
Languages.

I had job offers and eventually took one. What I found was that industry is
smug, deceptive, fad-driven, cares nothing for fundamental problem-solving
until you pay them for it, and (of course) near-fatally infected with live-to-
work-ism and the Californian Ideology.

* Smug: despite many of them having MSc degrees or being PhD drop-outs, most of the professional programmers I've met deride research itself as essentially pointless. Someone once asked me point-blank at lunch why I wanted to publish an invention/discovery of mine in a research paper, why I didn't just go found a start-up based on it. My discovery is in type theory: not exactly the most amenable field for using Ruby on Rails to pump out a "minimum viable product". Further: type-theory results are mathematical rather than empirical, the proofs have to be checked. _Peer review has its just place in the world, and thus so does Research Science._

* Deceptive: many of the people I met did not know or care whether their software served its intended purpose well, or whether that purpose was a good purpose, or whether (provided it was a good purpose, which I shall note that, say, investment banking isn't) it _can_ be served well. The hiring binge I saw was completely uncorrelated to having an actual workload for the people they wanted to hire. The idea seems to have been to hire everyone's Hackathon friends.

* Fad-driven: look at the ads for hiring "rock-stars" and "ninjas", and then realize that most of these people earning six-figure salaries _just_ build web-sites or silly mobile applications. Who thought Groupon was a good idea (I'll note that I _never_ did)? _Why should everything be an ad-based web application to the point that things other than ad-based web applications simply don't get built that often anymore?_

* Cares nothing for fundamental problem-solving: Industry is infected with marketer-thinking (trying to please a perceived primary market of investors and secondary market of customers) rather than fundamental business-thinking (building cars instead of faster horses). The industrial programmers who can possess substantial skill in fundamental Computer Science, or who solve problems in Computer Science, are a vocal but still _small_ minority. Think of Steve Yegge and his "cat-picture problems," and remember that Steve Yegge is talking about major companies like Google and Facebook spending their energy on cat-picture problems.

* Live-to-workism and California Ideology: I was astounded and offended to find myself hearing hour-long talks between otherwise intelligent, humane and respectful coworkers on libertarianism and Austrian economics. Further, the software industry is powered by "passion" (a component of the Californian Ideology), which has mostly just become an excuse for long, unbroken workdays, fanboyish loyalty to employers/companies, and programming-centered social events outside work. The programming profession expects you to _love your job_ , no matter what it is. Not enjoy, not like, not perform competently, _love_. The assumption is that if you didn't love what you were doing, you would leave. Never mind real life, where the state of one's bank account is more than just a way of keeping score, programming jobs are clustered in some of the world's most expensive metro-areas, people have families, and they may have _moved_ to enter their programming job.

I'm not quite back in academia _yet_ (only admitted to one graduate school so
far, with non-guaranteed funding, two other applications still pending), but
I'll be damned happier when I get back there. And of course, unbias this
anecdote by accounting for its kvetchiness and negativity, because you _asked_
for a negative opinion about industry.

~~~
moldbug
Of course everything you say about the software industry is true, right down
to the "libertarianism and Austrian economics" (I take it you prefer critical
race theory and postcolonial studies). Otherwise, your critics would have said
something rather than just downvoting you.

Your problem seems to be that you haven't considered the possibility that
academia is even worse. Academia is even worse. (I dropped out of the Berkeley
PhD program in 1992 - specialty, OS and languages. From what I can tell,
academia has only gotten worse since then.)

I could produce a parallel list of bullet points, but I'll just say three
things. The only reason to go to grad school is because you want to be a
professor. The only reason to be a professor is because you want to be a
bureaucrat. Do you want to be a bureaucrat?

Even if you want to be a bureaucrat, there's no guarantee that you'll be good
at it. Good bureaucrats don't write posts like the one you just wrote. They
don't antagonize anyone, ever, in any way. They would rather lie - and they
do. Are you good at that?

One of the things you'll discover in academia, for instance, is that the most
appalling faux pas you can commit is to say anything bad about your
colleagues' research. "Colleagues" meaning, of course, only whatever little
log-rolling grant mafia you've wound up joining. You're perfectly free to
criticize its enemies - though not the endeavor as a whole. Oh, you didn't
want to join a mafia? You think someone is going to fund you just because
you're smart and have cool ideas? Strange ideas you have there, kid.

I understand what you want CS research to be. CS research isn't what you want
it to be. CS research is a gigantic government bureaucracy. Nor is it unique.
Science itself is a gigantic government bureaucracy. Do you think it's not
deceptive? Systematic deception is its very lifeblood.

Can science of the sort you're looking for exist? Of course it can exist. You
can find it very easily. All you need is a time machine. Set the controls for
at least 40 years ago.

Otherwise, the simplest way to do the kind of research you want to do is to
decide quite consciously to give yourself over to the salt-mining industry in
the most mercenary possible way, spend a decade making as much money as you
possibly can (and spending as little as you can), and (if you succeed) found
your own little university of one. It's not Victorian science, either, but
I'll tell you it's a lot closer than Berkeley.

~~~
eli_gottlieb
> _Of course everything you say about the software industry is true, right
> down to the "libertarianism and Austrian economics" (I take it you prefer
> critical race theory and postcolonial studies)._

Why would I prefer that bunch of idiot hippies? My preference is for Karl Marx
and Henry George (with the former being better at seeing what capitalism
really is, and the latter being the better economist).

> _Your problem seems to be that you haven't considered the possibility that
> academia is even worse. Academia is even worse. (I dropped out of the
> Berkeley PhD program in 1992 - specialty, OS and languages. From what I can
> tell, academia has only gotten worse since then.)_

This is precisely what I was considering at the end of undergrad. Hell, I'm in
basically the same specialty as you were.

> _Even if you want to be a bureaucrat, there's no guarantee that you'll be
> good at it. Good bureaucrats don't write posts like the one you just wrote.
> They don't antagonize anyone, ever, in any way. They would rather lie - and
> they do. Are you good at that?_

Cool story, bro. Do you think I didn't consider the office-political
implications of what I wrote?

* Most academics don't read Hacker News.

* Most academics would perceive this as on their side.

* I openly admit that I wrote the post not even with mere bias but with an active bent towards an overly-negative portrayal of reality.

* Most start-up folks here on Hacker News don't necessarily agree in whole, but agree in part. I've seen Steve Yegge's speech referenced a disturbing number of times on Reddit and HN.

* Most of the votes have been upvotes, indicating a perception that the discussion is worth having rather than storming off in a huff and blacklisting the offending poster.

> _You think someone is going to fund you just because you're smart and have
> cool ideas?_

No, I thought someone was going to fund me because my adviser is well-known
and prestigious within the field. There's no point breeding inferior academic
DNA into myself, is there?

> _Otherwise, the simplest way to do the kind of research you want to do is to
> decide quite consciously to give yourself over to the salt-mining industry
> in the most mercenary possible way, spend a decade making as much money as
> you possibly can (and spending as little as you can), and (if you succeed)
> found your own little university of one. It's not Victorian science, either,
> but I'll tell you it's a lot closer than Berkeley._

For my field I never even saw any point in applying to Berkeley, but how do
you propose to go about this? Even the successful industrial programmers I
know, unless they became millionaires off a start-up, did not actually make
enough money to "settle down" out of working and "found your own little
university of one."

Provided you had the cash, it does sound like a fine idea.

~~~
moldbug
_Why would I prefer that bunch of idiot hippies? My preference is for Karl
Marx and Henry George (with the former being better at seeing what capitalism
really is, and the latter being the better economist)._

Come on, you don't think you can shock people with Karl Marx, do you? In 2012?
Try some Maistre, Carlyle, Froude. Maybe even George Fitzhugh or R.L. Dabney.
Here, this'll get you started: <http://books.google.com/books?id=an2LWYTh2ewC>

_No, I thought someone was going to fund me because my adviser is well-known
and prestigious within the field._

Maybe you're not such a bad bureaucrat after all! But I meant not while you're
in grad school, but after. Of course, if you stick with your mafia, and it's a
good mafia, you can keep the party going. Perhaps. Definitely make sure you
don't alienate your betters.

 _Even the successful industrial programmers I know, unless they became
millionaires off a start-up, did not actually make enough money to "settle
down" out of working and "found your own little university of one."_

Yeah, that's what I mean. Dedicate yourself completely and unreservedly to the
foul, foul art of money-grubbing, and/or money-saving. Or possibly money-
stealing. Anything is better than either conning investors, or conning the
government. Have you considered growing pot?

(I won't say this worked _perfectly_ for me, but it did give me time to write
my purely functional operating system. Unfortunately this took longer than
expected and I'm now kinda broke. And I really can't turn my daughter's closet
into a grow-room. So, we'll see if anyone thinks they need a purely functional
operating system... Kickstarter, here I come.)

~~~
eli_gottlieb
_Come on, you don't think you can shock people with Karl Marx, do you?_

The point isn't to shock. The actual point was that you're _not supposed to
talk politics in the workplace_. I wasn't preaching Marx to coworkers, so why
were they railing on about Hayek?

 _Yeah, that's what I mean. Dedicate yourself completely and unreservedly to
the foul, foul art of money-grubbing, and/or money-saving. Or possibly money-
stealing. Anything is better than either conning investors, or conning the
government. Have you considered growing pot?_

You've got to be kidding. You would rob people before "conning investors" (ie:
making an actual go at a business) or "conning the government" (ie: making an
actual go at research)?

Just link me to your "pure functional operating system" already, or I'm
calling troll-post.

~~~
asciilifeform
_> Just link me to your "pure functional operating system" already, or I'm
calling troll-post._

Moldbug's system:

<https://github.com/cgyarvin/urbit/>

Its blog:

<http://moronlab.blogspot.com/>

~~~
moldbug
That shit be _old_ , man. Well, not the code... the blog.

Lesson 1: your research project is not an open-source project. Until it's
done.

Lesson 2: extraordinary claims require extraordinary evidence.

That said, if you want to see some very odd-looking code:

[https://github.com/cgyarvin/urbit/blob/master/jupiter/sys/20...](https://github.com/cgyarvin/urbit/blob/master/jupiter/sys/205/watt.watt)

Scroll down to the RSA implementation around line 2500. You won't learn
anything. And why does a self-compiling compiler need an RSA implementation,
anyway?

~~~
asciilifeform
_> Scroll down to the RSA implementation around line 2500._

I saw it when you checked it in. Be careful what you post for public
consumption, someone might actually _read_ it.

 _> And why does a self-compiling compiler need an RSA implementation,
anyway?_

You gave this one away already on MoronLab, for anyone who wishes to see.

Any why has the Urbit Dukes list been so quiet? Make some noise, Moldbug.

~~~
moldbug
Neighbor, please. It's hard enough trying to reinvent the wheel by myself.
With any help it'd be downright impossible.

There's a great anecdote about Jessica Mitford from the '50s. Mitford had
spent years writing an autobiography and, during this process, had constantly
been passing drafts around to all her commie-princess friends. Of whom as
you'd imagine there was a great number. Finally she got an agent, whose name I
forget but I'm sure was a big New York queen of some kind, who shut her down
and forced her to finish the book instead. "It's like parading around all
day," the agent told her, "in your underwear."

The system has only been self-hosting for 7 or 8 months. Until November the
parser was still de facto impure. The packet decoder has never been tested and
isn't even in the kernel. String syntax is nonexistent, the prettyprinter
prints pure dog crap, Nock 6 was an aesthetic disaster so Nock 5 is actually
Nock 7 but with the calling convention reversed, persistence is nonexistent,
stack overflow recovery is nonexistent, profiling has succumbed again to bit
rot, HTTP is completely untested, etc, etc. I could explain all these things
to you, or I could finish putting my clothes on.

Obviously it's on a public repository and all the code is PD. Crap you can
even build the thing if you like. You can even fork your own kernel and try to
compete with me! Don't expect any documentation, however. If I don't answer my
email I don't have to accept patches. If I don't read my email I don't have to
answer it.

------
Rickasaurus
Just tossing in that Finance isn't your only option for a healthy PhD paycheck
in NYC. With exactly those same skills you could work in silicon alley or at a
company like mine which does analysis on bank (or other corporate) data.

Also, you don't have to sell your soul to work outside of Academia. For
example, we find terrorists and drug lord hiding cash in USA banks (Anti-Money
Laundering) using machine learning. It's very satisfying and the pay is good
too.

~~~
bearmf
Where are all this high paying jobs? Average data scientist salary at
glassdoor is probably less than 100k.

~~~
Rickasaurus
Glassdoor doesn't seem to give me any salary results for "data scientist" in
NYC.

~~~
bearmf
Yeah, sorry, these hits were some other scientists. So what is the pay like in
NYC?

~~~
yummyfajitas
For data scientist, probably $100-150, and it can definitely go up.

~~~
msellout
The market isn't clearing right now. There are "data scientists" without jobs
and there are companies without data scientists. Companies who can pay in that
range can hire. Data people who can ask for that salary can get jobs. Sorry if
that's cryptic.

------
dude_abides
Here's a simple checklist for all you CS (Systems) PhDs not sure what to do
next. When writing a paper, which section of the paper are you most excited
by?

A) Introduction (big picture/motivation/related work): You should remain in
academia where you will enjoy writing grant proposals, or be a senior exec
(not hands-on) in industry.

B) Design/Implementation: Academia is not for you. Join a cool startup or
Google/Facebook/... (or of course start your own venture)

C) Experimental Evaluation/Results: Join industry (tech or finance) in a
quantitative role.

YMMV. Also, this is not applicable to PhDs in Theoretical CS or in other
Sciences.

------
waterhouse
Jeeeeesus christ, that grep is ugly.

    
    
      grep "[0-9]\{3\}[-]\?[0-9]\{3\}[-]\?[0-9]\{4\}" filename.txt
    

The default behavior of grep appears to be to _not_ treat {}?() as special
characters. Which is generally boneheaded in my experience, and certainly in
this case. An irritated man will use egrep--short for grep -E, "extended
regexes"--i.e. sane regexes:

    
    
      egrep "[0-9]{3}-?[0-9]{3}-?[0-9]{4}" filename.txt
    

This is just a direct translation. If I wrote the regex myself, I would
probably also recognize spaces as delimiters (as in "999 999 9999"), and maybe
note that the area code might be missing or have parens around it, etc.--
depending on just what I was trying to parse. I dunno, maybe he's parsing
regular machine output and his original regex would suffice, so I won't go
farther than an equivalent translation. But I will, for kicks, mention this:

    
    
      egrep "([0-9]{3}-?){2}[0-9]{4}" filename.txt
    

(Note that - is not a special character in either grep or egrep, although
command-line programs in general treat specially any argument beginning with
-, so it is a good idea to use [-] instead of - if that happens to be the
first character of your string. But after that, no.)

Also, for general purposes, grep -P (Perl regexes) is best of all, because it
can do *? non-greedy matching. A really irritated man has aliased pgrep to
"grep -P --color=auto" in his bash startup file, and has also (perhaps
dangerously) aliased grep to it as well. (That breaks fewer things than
altering GREP_OPTIONS.)

------
yummyfajitas
By the way, if anyone has good links, particularly on the topics where I've
admitted ignorance, please email me. My info is in my profile.

------
imaginaryunit
"In academia, the end product is a publication and _your code needs to work
only once._ "

In my experience as ex-academic, the above is all too true in too many
computational fields (and many sub-fields of CS). So I ask what scientific
value (or any kind of value, for that matter) is being generated by grinding
out publications with results that won't be repeatable?

~~~
a_bonobo
Depends on the journal you're publishing in.

Lots of journals (at least in my biological sciences field) require you to
submit your code along with your publication so that a) the editor can repeat
your results to accept your publication and b) for other scientists to repeat
your stuff. Biostatistics AFAIK has an editor responsible solely for
reproduction of results.

Personally saying lots of my code is repeatedly re-used by colleagues who
can't program, for example scripts that parse BLAST-output and get the best
result for each query etc.

~~~
imaginaryunit
Your point is well-taken and (thankfully) there are safeguards in place at top
journals. However, Rob Tibshirani examined this a while back with a case study
and came up with some unsettling conclusions about reproducibility:
<http://www-stat.stanford.edu/~tibs/FL/report/>. The case study highlights the
importance of debugging not only code, but also the entire experimental
process.

~~~
a_bonobo
True!

If you want a newer example, here's a very recent paper which looks at the
results of a couple of RNA-Seq-papers and after being able to reproduce only
12% of the results, concludes that they all used the wrong assumptions in
their statistics:
[http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fj...](http://www.plosgenetics.org/article/info%3Adoi%2F10.1371%2Fjournal.pgen.1002600)

Which shows that the editor really needs to know what's going on and why in
each paper - I don't think every editor can know everything about his or her
field.

------
gammarator
PhDs interested in data science job may find the Insight Data Science
Fellowship a good opportunity:

<http://insightdatascience.com/fellowship.html>

It's a paid six week post-doctoral training fellowship in SV that ends with
interviews with companies looking for data scientists.

------
pgbovine
I know this is cliched, but of the ~30 students who started the Computer
Science Ph.D. program at Stanford in 2006 with me, maybe 10 have dropped out.
A few of those ten have gone onto successful startups and are now far, far,
far wealthier than any of us who remained in the program could hope to be :)

~~~
xxbondsxx
This is an interesting sample. What happened to those who dropped out but did
not strike it rich in Startupland?

I think one of the hardest parts about leaving is showing that you are moving
onto better things; it's easier to _tell_ people you are leaving if you have a
150k+ offer. Leaving to try a startup would be socially difficult to
communicate

------
bearmf
Seriously? Learn web development? No one hires PhDs for web development
skills. It is only useful if you want to be a pure software developer, not a
quant or a data scientist. It might even be a negative when applying for some
jobs.

~~~
eshvk
Well they might not be hired to do just web development but I think learning
about the web stack is incredibly useful because it helps you get your work
out to people. This is important especially in a (early stage) start up where
you might have to rapidly prototype solutions and you can't have your own pet
designer to whip up visualizations for you. In fact, if you read the blogs of
some of the data scientists at twitter/linkedin, its immediately clear that
they have some know-how of the web stack in the way they are organizing and
visualizing results. (Everyone likes pretty pictures)

~~~
bearmf
You do not need to be a web developer to write a blog. R, MatPlotLib and
Matlab make pretty pictures.

~~~
eshvk
Not saying you need to be a web developer to write a blog. All, I am saying is
that the web provides a way to do interactive visualizations in a manner not
provided by Matlab/R/matplotlib. For example, colleague at Mozilla did this:
<http://skedasis.com/d3/smoothers/>

------
zafiro17
"When you are ready, the teacher will appear" - Buddhist saying. Getting
through a PhD is easier and more fun if your mind is into it. Yours is clearly
not, so why try to swim upstream? Go where your mind and soul are telling you
that you belong. If you ever decide the PhD is the right move for you, you can
re-open that chapter and go for it.

I'm getting ready for a change in career, and for the exact same reasons.

------
evoxed
He's using Hyde and recommending the article's audience to use Django or
Rails? If he's going to point out webdev with only some fleeting interest it
might be more helpful just to say something like, "HTML/CSS is your new
weekend project. Hardcode it in a couple hours or use whatever system gives
you the least pain: SSG, framework, blog-based, etc."

~~~
yummyfajitas
Clearly you haven't bothered to look me up.

Do you believe I should have used Django or Rails for my personal website? Was
Hyde the wrong tool for the job?

~~~
evoxed
Look you up? I read the article, if that's what you mean. I use a static site
generator as well, I was just curious as to why you wouldn't recommend that
instead since it's powering your own site. I don't disagree, it just seemed
odd.

~~~
yummyfajitas
I'm CTO of a django-powered startup, which I link to on my website. Django is
great for dynamic content, learning it will teach you about databases and help
you make nice UI's.

My personal site is just boring static pages. Hyde (or Jekyll, for the ruby
folks) is the right tool for such things.

~~~
evoxed
I apologize if my response offended you, maybe I can be clearer with some more
detail: _it just seemed odd_ , considering Hyde is linked on the post and
Styloot is not (and even there, the only way I know that it has anything to do
with django is by finding it under technologies used in your resume).

If you want to become a web developer, then sure– django or rails, take your
pick (or anything other framework that suits your fancy, though I too would go
with django). But that wasn't your point.

>No one hires PhDs for web development skills, but knowing some basics
certainly opens up some doors. I wouldn't want to hire a PhD who would
couldn't build at least a demo himself.

Some basics would include HTML, CSS, and Hyde as well, no? Especially if the
point is to give yourself a proper web presence such as your own site. I was
wrong to call it a 'fleeting interest', that was simply my impression from
only looking at the post. However, if you're willing to expand on that bit it
would probably be beneficial to those who aren't already aware since they're
your target anyway.

Aside from all of this, thanks for the Software Carpentry link– this should
come in handy the next time I try to help someone dive into programming.

~~~
yummyfajitas
Sorry, I probably overreacted.

The of learning django isn't simply to build a personal website, but to build
some easily demoable app to show that you can code.

That, and also because the web is becoming a fairly universal UI system. If
you need a GUI, the easiest way to do it is via a webapp.

------
elazungu
I recently did a blog post about a similar issue, the tension between doing
software work in academia vs in industry. In a way a kind of prequel to this
post. [http://elazungu.wordpress.com/2012/03/26/the-researcher-
prog...](http://elazungu.wordpress.com/2012/03/26/the-researcher-programmer-a-
new-species/)

------
wallflower
I know a tenured professor who is well respected in his niche of engineering
specialization. He has attracted several million dollars in grants. The
research center he runs, in his words, is a startup with his own hard working
employees.

Why work like you are working at a startup in some research lab with no stake?

------
MisterMerkin
>Also, if your degree is in English, the best I can do is point you here
[Tired, old, and stereotypical Starbucks link Hurr durr].

Really? Was that necessary? Why can't someone with an English background learn
to code especially with burgeoning fields like NLP.

------
ckas
Which EE specializations are generally best for maximizing backup options in
industry in govt/finance/data science?

~~~
noelwelsh
If you want a job, go get a job. Don't undertake 6 years of PhD study unless
you love what you're doing.

~~~
yummyfajitas
That's silly. Most people with a PhD don't get academic jobs. It would be
foolish not to plan for that possibility.

I don't know much about EE, but I'll talk about math. It's unlikely you would
enjoy research on nonlinear wave equations but hate stochastic PDEs. If one
has far better job prospects, it's silly not to focus on that one unless you
are dead certain you'll win the academic tournament.

~~~
noelwelsh
PhDs make marginal improvements on one's employment prospects vs a Masters
degree.

If you're doing it for the cash don't even undertake a PhD. Go get an MSc, go
get a job, save four years of your life.

If you're gambling on getting into academia, you won't get the publication
record you need if aren't motivated to do the work, and you won't be motivated
to do the work if you don't enjoy what you're doing. If you don't get into
academia but do have a quantitative PhD you will get a job quite easily, so
why worry about your particular field.

My conclusion is that there is simply no point doing a PhD unless you really
enjoy the work you're doing.

~~~
yummyfajitas
_...you won't get the publication record you need if aren't motivated to do
the work, and you won't be motivated to do the work if you don't enjoy what
you're doing._

The point I'm making is that if you are unmotivated in elliptic PDEs, you'll
probably be unmotivated in control theory as well. The fact is that research
is research.

You might hate experimental physics and love theory, or hate computation but
love experimentation, but these distinctions between subfields (condensed
matter vs photonics) that seem huge in academia are not that big in reality.

If these small distinctions can give you a big advantage 50% of the time, it's
a tradeoff worth making.

------
ivan_ah
In my belief system, working in finance or for the industrial-military complex
are //unethical// choices for someone to make.

Doing a software startup is the only remaining choice for me then...

