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 =)
I took the same route, "mastering out", and that cultural perception that "leaving your PhD is failing at life" was my biggest hurdle. I knew I could get a job, knew that I could probably find something interesting, but the looks of pity and disgust from my colleagues were not so easy to ignore. I think the comment I heard most often was, "what a waste."
Until I was actually out. Then I started getting furtive emails asking me questions like, "how do you write a resume?", "is the pay ok?", and most often, "are you happy?"
I still think a PhD is absolutely worth it in many cases, and trains you to be a scientist better than any other path. But it's a long hard road, and there are many people out there (me included) who do it because it's presented as the default path. If you're interested in physics, or biology, or any other science, it's just what comes next after undergrad. And that's not a good enough reason.
Edit: '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.
Part of that's due to incentives; like a corporation, universities don't primarily think institutionally about what's in your best interests. Hence you also rarely find companies happy that you left to take a better job, though you might find some individual managers who're supportive of a decision to move on.
For universities, people who leave PhD programs earlyish are a particular negative, because at least in the US, typically universities subsidize the masters portion of your education if you enter into a PhD program, out of research funds or departmental TA funds, whereas students who enter explicitly intending to get a masters have to pay tuition, and don't usually receive a stipend (though a few can land TAships). What they expect in return is that later in your PhD you'll publish a bunch of papers which bring them some prestige, help out on grant applications, etc. So if you enter a PhD program, stay for 2 years for the coursework/masters portion, and then leave, from the university's perspective it's like you're really a masters student who somehow tricked them into treating you as a PhD student for 2 years, and got away without paying tuition--- but without staying long enough to produce the expected ROI in publications. It also hurts the graduation-rate statistics in some ways of calculating them, and as education is getting more metrics/assessment heavy, that can matter too.
At least, that's from an administrative/bean-counter perspective; from a cultural perspective among researchers themselves, attitudes are more varied and have more complicated reasons. In areas where industrial partnerships are important, I think the reaction is often fairly positive, because a former student now working at a large company is a good connection for a lab to have.
Some of the negative reactions I think are just due to people not conceiving that other people could have different preferences/aptitudes. You can also find the reverse, where e.g. the attitudes if you left a startup after two years to pursue grad school can range from confused to "you're throwing away a golden opportunity" type views, to outright derisive ("couldn't make it in the real world"). Unfortunately I think it's pretty common for people to be pretty invested in what they did as the definition of success (whether it's research or entrepreneurship or whatever), and to generalize that to thinking that people who quit that route and try another one are therefore failures.
This is funny to me. I decided I was definitely leaving during an internship and most of my coworkers and friends thought it was a great idea. My advisor and closest academic colleagues were supportive as well.
I joked that the PhD program was like a girlfriend no one liked, but they waited to say so until I quit.
Do keep in mind, while we're all bashing academia, that there are those who go the opposite direction. I finished a researchy undergrad, went to industry, basically got miserable, and have gone right back to apply for PhD programs. I'm incredibly happy to know I have at least the one admission, even if it doesn't have guaranteed funding!
Just for full disclosure, I did the same, in that I did research and publication as an undergrad, worked in industry briefly and then went back to do a PhD (in my case, I had gotten in before I finished undergrad and deferred my admission to work for a bit.)
Personally, I'm not bashing academia per se -- I think it's great for people with the right mix of temperament and motivation. The travesty is that so many people that start PhDs go in without a clear understanding of what the degree entails and what characteristics are necessary for success in their programs and the tenure race. I could go on for a long time about the reasons but I think a lot of it boils down to the way schools work up to undergrad -- the kinds of qualities that get you good grades up through college are not well correlated with the things that make you a great researcher. The worst is in fields where the norm is for undergrads to go straight into PhD programs.
And please note I'm not at all saying this as a comment on your situation. I suspect the fact that you've done research as an undergrad probably means you have a good handle on what you're getting yourself into =)
I quite agree, actually, and I'm glad that my undergraduate department had an actual course to solve this problem.
CS491DD: Empirical Research Methods in Computer Science
One of my favorites, despite the incredible workload. Though for my field I would have preferred Formal Research Methods in CS, but hey.
There's also the NSF-sponsored Research Experience for Undergraduates program, which is basically "summer internship in graduate school." If you do those and like it, you should go for a PhD, because you like academia.
On the other hand, I really didn't like industry when I got there, and for that I blame the fact that I didn't have an industrial internship in college. I didn't know what I would think of full-time industrial programming until I got there.
I'm sure this is a personal thing, but I agree completely - and I think it's often self-imposed. It's only after leaving academia that I can accept that successfully completing my PhD wasn't a failure, or tantamount to admission that it was a mistake.
On PhD programmes you're often dealing with people have been conditioned from an early age to view themselves as defined by effortless academic success - finding something hard, or accepting that there are interesting challenges outside academia can be very difficult.
> 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.
And also wrong. My wife left academia from philosophy and is pulling in north of 100k right now doing project management stuff. She got there within 3 years, though we're in NYC so it's easier to get more cash here. It was a hard to transition, most employers don't know what to do with a humanities degree, but she was able to do it. A programmer coworker of mine also worked in philosophy, and transitioned to programming and is doing rather well for himself. He did this over the past few years, so long after computer science was well established. Transitioning out of humanities academia into non-academic jobs is difficult, much harder than for those in the sciences, but it's quite doable
As a philosophy PhD, I find the Philosophy > Starbucks meme obnoxious, but it's especially silly when philosophy is amongst the best Art/Humanities degrees one can do from that perspective (particularly if one then goes on to do something like work for an international law firm for a while - the rather conventional switch I've taken).
Agreed. I'm an English PhD working in the tech industry and I am very happy. Left a great postdoc a year ago and it took me all of 3 weeks to find a job in industry. Not to mention I'm making double what I would have been making as a starting TT faculty member.
Humanities are the hardest discipline to get a PhD in. The leap from a top student in a CS undergrad program to a CS PhD program is not a big one. Most top students in an undergrad CS program can make the intellectual leap necessary to get a PhD in CS.
But for an undergrad in a humanities discipline, making the leap to getting a PhD is a significant intellectual challenge. Reasoning about ideas, communicating them, and validating them, are infinitely harder in humanities than in CS. I would say, in terms of raw critical thinking skills, i.e., not pertaining to a specific discipline-specific problem, humanities PhDs would outperform CS PhDs.
And I say this as someone who is currently in a CS PhD program. I can read other engineering PhD theses and still make sense of it. When I read a humanities theses, I am completely lost.
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.)
His name is usually taken to be a nod to his father's skill with a bow. You're right about the 'far' part, but the second part I think is different (the Ancient Greek word for man is anēr, andros - the root being andr):
tele means "far away" or "from afar" (think 'television' it sees things from afar).
The mach root comes from a word meaning "fight".
So "Telemachos" is a "far-fighter", i.e. a bowman. Odysseus is primarily famous as an archer (as opposed to Achilles who is primarily famous for fighting with a spear).
I think that etymology is pretty well accepted. It certainly was when I was a student. I'm not sure that there's a completely accepted explanation for how the name fits into his place in the epic. Here's my take: Telemachus must prove that he can grow up into as good a man as his father. He does that throughout the poem, as he goes from being a very immature teenager to eventually fighting alongside his father at the end of the poem. Before the trial of the bow (when all the suitors attempt to string Odysseus's bow and win Penelope), Telemachus tries to string his father's bow himself. Here's a translation of the scene I have in mind by Samuel Butler[1]. The 'he' refers to Telemachus:
> As he spoke he sprang from his seat, threw his crimson cloak from him, and took his sword from his shoulder. First he set the axes in a row, in a long groove which he had dug for them, and had made straight by line. Then he stamped the earth tight round them, and everyone was surprised when they saw him set up so orderly, though he had never seen anything of the kind before. This done, he went on to the pavement to make trial of the bow; thrice did he tug at it, trying with all his might to draw the string, and thrice he had to leave off, though he had hoped to string the bow and shoot through the iron. He was trying for the fourth time, and would have strung it had not Ulysses made a sign to check him in spite of all his eagerness. So he said:
> "Alas! I shall either be always feeble and of no prowess, or I am too young, and have not yet reached my full strength so as to be able to hold my own if any one attacks me. You others, therefore, who are stronger than I, make trial of the bow and get this contest settled."
In that scene, I've always thought that Telemachus proves he is capable of becoming his father (he might have strung the bow), but he is willing - as a good son should - to yield to his father while he is still alive. At the same time, he also proves he is a good liar - like his father - since the little speech he gives at the end helps to encourage the suitors and think he is nobody to fear. When the fighting begins, however, he proves otherwise and he helps his father kill the suitors.
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.
Salve! I too tend to react negatively to summary judgment of humanities degrees. But the truth is that you and I and hogu's wife are outliers. For most humanities PhDs, those judgments are accurate. In fact, part of the reason I mastered out of my English PhD program was that the faculty and other students just weren't particularly bright (the other part was the academic politics). The humanities themselves are absolutely crucial subjects that all smart people should study -- but most people who study them aren't very smart.
Ha! Another Classics Ph.D. here :-). And there are lots of people in programming with advanced Humanities degrees. STEM majors aren't the only smart people around.
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.
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.
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.
I did a masters equivalent degree in theoretical physics, now I'm doing a PhD in computer graphics. A coworker who did his PhD in theoretical physics is now doing a post doc in mechatronic. Many people might specialize more and more, but if you don't like that, no one stops you from changing your field.
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").
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?
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
Turn off the TV, close Ph.D. comics stop procrastinating. That's a fairly glib and slightly offensive answer, but it's the best I've got. There are no shortcuts. Getting yourself ready to work in industry will take time and effort.
I can, however, suggest that adopting a more rigid industry-style work schedule can help. In grad school, my time management skills sucked, and I'm pretty sure I wasn't alone in that.
One thing you can sometimes do to speed things up is to take pieces of your research and turn it into side projects. For instance, something I didn't do (but should have) was properly package/test my numpy shared memory library.
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.
You overestimate the number of general engineers who are capable of quantitative work. When I said there is value being the guy in the room who understands regression and confidence intervals, I meant it.
"You overestimate the number of general engineers who are capable of quantitative work. When I said there is value being the guy in the room who understands regression and confidence intervals, I meant it."
I'd just like to second that. If you've learned enough math to be an expert in a scientific niche, you're almost certainly miles ahead of most developers you'll work with.
Heck, I just have a bachelors in math and I'm the "go-to" guy for all problems mathematical where I work. Nothing more than high school trig usually -- but I'm the only one around who can do it.
(Because if you're a theoretical chemist trying to become an industrial chemist, the advice below is probably useless. But since you refer to "side projects and a portfolio", I'm going to assume for now that you must be some kind of programmer.)
So:
First, a tiny story: At the corresponding time in my own career, I turned in my thesis, turned down a couple of jobs in my old field, moved into my parents' spare room, and spent three or four months teaching myself web development from online materials and a handful of books. (SICP, Learning Emacs, Introduction to TCP/IP, SQL for Smarties… the usual suspects.) Then I got a job. (It was the peak of the 1990s bubble, a good time to get a programming job. But, then, today is also a good time to get a programming job.)
The right way to save time on your academic workload is to stop doing academic work. Do you see yourself in academia in the long term? No. So why are you working on a postdoc? Who ordered you to get a postdoc? You did. Who is making you spend time and energy on that postdoc? You are. Write yourself a resignation letter, give yourself two weeks' notice, and quit.
The right way to escape a niche is to leave. You don't need to expunge the niche from your permanent record or anything - it's nothing to be ashamed of, it deserves a nice spot on your resume and is good for years of future anecdotes and impromptu lectures. But if the niche doesn't get you paying work, it may be time to let it rest for a while.
The right way to get any technical position is to demonstrate that you've done and enjoyed the kind of work that the position will ask you to do. If you want to build web sites, build a web site or two. If you want to build iOS applications, build an iOS application.
These things will not be sexy to an academic audience. You have to deal with that.
Don't worry about immersing yourself in the "larger pool". The reason there's a large pool of people doing X is: X is where the money is. And X is where the money is because, no matter how many people are doing X, there always seems to be more work to do than there are talented people to do it. Programming is in an expansionary phase, and there's a lot to be done.
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.
This is true, but that doesn't make it less stressful. It's self-inflicted in the sense that the pressure running a startup is self-inflicted: you are competing with a bunch of other highly skilled individuals for a fixed slice of cake and if you want to be one of the successful ones you need to out-compete the others. The fact that no one forces you to work isn't really relevant.
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.
As a researcher who just accepted a private job, I do have some experience here. My advice is to make use of the fact that academic jobs usually have unsurpassed autonomy and flexibility. If you aren't looking to get a faculty job, think of the postdoc as a relatively low-stress way to prepare for the transition out of academia. Not to say you should blow your job off, but make use of the opportunity to learn things that increase your cross section for industry and are still relevant in your research (even if it would not be the optimal thing to do if you were looking to crank out papers for your career in academia). Most of the academic workload is self-imposed, in the sense that you worry about the rat race for getting the next job, but if you are not interested in continuing your academic career, that's a non-factor.
This accords with my experience. I have a lousy academic publication record, partly because I wasn't that bothered about getting the next post-doc (although I was never short of offers, strangely enough) and partly because I liked to build things that facilitated research, which was a gap in our field of research which nobody seemed to have the time to fill. That isn't publication material, but it was a lot of fun and allowed me to investigate all sorts of interesting avenues.
> 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.
For 3 passengers the seating possibilities are
{123,213,231,321}, so 3 gets to sit on seat 3 50% of the time.
For 4 passengers the seating possibilities are
{1234,2134,2314,2341,2431,3241,3214,4231}, so 4 gets to sit on seat 4 50% of the time.
From there you can do a proof by induction.
If you like code:
----
import util.{Random=>rng}
import collection.mutable.ArrayBuffer
object passengers {
def main(args:Array[String]) = {
val n = args(0).toInt
val simulations = args(1).toInt
val happyLast = (1 to simulations).map(_=> {
val seats = ArrayBuffer.fill[Int](n+1)(0)
val taken = new ArrayBuffer[Int]
val all = (1 to n).toSeq
val seat = rng.shuffle(all).head
seats(seat) = 1
taken += seat
(2 to n).foreach( p=> {
val seat = seats(p) match {
case 0=> p
case x=> rng.shuffle(all.diff(taken)).head
}
seats(seat) = p
taken += seat
})
seats(n) == n
})
println( happyLast.filter(x=>x).size*1.0d/simulations )
}
}
xyz => 1 sits on seat x, 2 on seat y, 3 on seat z
So the only possibilities are:
123: 1 sits on seat 1, 2 on seat 2, 3 on seat 3
213: 1 sits on seat 2, 2 on seat 1, 3 on seat 3
231: 1 sits on seat 2, 2 on seat 3, 3 on seat 1
321: 1 sits on seat 3, 2 on seat 2, 3 on seat 1
passenger 3 is happy twice out of 4, hence 50%
In the code, the happyLast variable counts the number of times the last passenger is happy ( happy == when he gets his assigned seat)
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.
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....:)
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?
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.
I read this problem a few days ago and just decided to give it some thought now (I would love to know the correct solution).
The answer will certainly be a function of n (because, for example, I could give you n = 1001 and that should have 0 probability whereas if I were to give you n = 1, that would have a very high probability).
My first thought was to write out a recurrence relation f of n and k (where n is the current level and k is the number of moves left). From this, we get: f(n, k) = .5f(n-1, k-1) + .5f(n+1, k-1) with f(n, k) = 0 when n > k and f(0, k) = 1. So to solve this, we just take f(n, 1000) = [a rapidly exploding function].
It appears that a basic knowledge of stochastic processes is required to actually be able to solve this problem, so it's one of those things that are actually much more complicated than they first appear.
The problem may have a simple answer, but 0.5 is not it, because the answer will be a function of n, the starting position. If n is near 0, the chance you hit zero before 1000 steps is larger.
So the question is "How likely is for a particle to reach 0 or 1000 depending on the starting position"? Then I got the question wrong, thinking it was about the average likelihood for many particles.
I have no idea if that is correct, but my initial intuition was that it would be a high percentage like you found. However, now that I'm thinking about it, I believe the answer is closer to 50%.
When passenger 100 begins to board, there are only two possible configurations he can find the seats in: seat 1 available or seat 100 available. If Passenger 1 sits in seat 100, then passengers 2-99 will sit in their correct seats, leaving only seat 1. If passenger 1 sits in seat 1, passengers 2-99 will sit correctly and leave only seat 100 for passenger 100. If passenger 1 sits anywhere else (say, seat 50), passengers 2 - 49 will fill correctly, passenger 50 will have to sit in seat 1 or 51-100. The moment a passenger randomly selects seat 1 or 100, the remaining passengers will sit correctly (except for passenger 100). It is impossible for any seats other than 1 or 100 to be left for passenger 100 to select.
From looking at it, I don't believe there is any bias for the end configuration to leave seat 100 open more than seat 1, and I believe that in an interview situation, you would be expected to intuit this by "talking it out". If I'm right (and I could still be very wrong), this is more of a probabilistic brainteaser than a programming interview question.
This seems to make a lot of sense to me. It appears that in every situation starts off with a passenger randomly selecting a seat, summarized as either sitting in (a) seat 100 [Fail], (b) seat 1 [Success] or (c) some other seat [?]. Options (a) and (b) always have equal likelihoods while option (c) simply forces a later passenger to go through the same random process.
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.
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.
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.
>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.
Not sure where the edit-button went, but here's a reminder:
I WROTE THIS WITH A DELIBERATE NEGATIVE BENT. I often perceive industrial programmers and entrepreneurs as unduly biased against academia, so upon the request to write an "irregular" anecdote bemoaning having strayed beyond the university walls, I tried to impart the same level of bias.
So:
* Take the above comment as pessimistic by design.
* Think a little harder about how you talk about academia, and how you feel when I talk that way about industry.
And for those thinking of leaving academia for industry:
* Think about what will really make you happy. Academia and industry aren't just different sets of problems during your workday (although they definitely are that!), they're different lifestyles. Don't think you're going to do the same work or live the same way "on the other side". Instead, look at what you can do "over there", and ask what you really want to do.
* Consider if you're just burned-out. If you are, you'll still be burned-out in industry.
I agree with your take on industry's disdain and ignorance for academic research -- those are some of the most painful, agonizing conversations to endure in a professional context.
They hold this opinion out of fear. Fear of the unknown, fear of what they do not understand. Fear that a new research paper could make their jobs obsolete. But most of all, their fear that because they do not understand academic research, they are less intelligent and less capable.
So just think about it from their point of view. They are defending their own jobs and decisions in life, albeit subconsciously.
That's fairly silly. I'd be a very rich man if I had $100 for every research result or open-source program that has never been turned into a successful, profitable product, despite its obvious potential, just because it never got quite faddy enough for BigCo's and VC's to throw money at it.
And if I don't have that money, it's still someone else's to make.
Wow, I haven't realized that libertarianism and Austrian economics are now such an integral part of the Left Coast ideology! things must have been changing fast there lately.
Interesting perspective, otherwise. I do suspect you may not find academia entirely to your liking either, but good luck.
For something that was not mentioned, one thing which is often rather unsettling for people who move to industry is discovering a system that is not actually focused on maximizing your individual productivity/output/value added/job satisfaction/etc, although of course circumstances vary.
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.
>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.
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.)
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.
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?
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.
Conning investors is quite different from making an actual go at a business.
What is the difference? The difference is that when you invite investors to invest in your new location-based social network for morticians and coroners (or whatever the fsck), you are making an actual go at a business. Whereas when you invite investors to invest in your new programming language, you are conning investors.
Conning the government means making flagrantly bogus and absurd claims in your grant applications. Please bear in mind that all your competitors will be doing this. If you don't intend to play by the same rules, you need some other way of stabbing your competitors in the back before the finish line. Metaphorically speaking, of course.
I am descended from a long line of Beltway bandits. I recognize the patterns and practices of the tribe at once. Indeed I recognized it in my first week at Berkeley, when they sat us down and gave us the basic lecture on what it means to have a career in "science" today.
I believe the numbers given were that half of us first-year grad students would finish, half of those would find teaching jobs, and those who found teaching jobs would be dividing their time three ways: 1/3 teaching, 1/3 research, 1/3 grantwriting. I found this broadly credible and still do.
So, that's only 1/3 of your day spent as a professional liar (and/or backstabber). You might as well try to spend only 1/3 of your day as a professional crackhead, whore, etc. But hey, it's worth a try.
As for trolling - absolutely! Laugh while you can, monkey-boy...
What is the difference? The difference is that when you invite investors to invest in your new location-based social network for morticians and coroners (or whatever the fsck), you are making an actual go at a business. Whereas when you invite investors to invest in your new programming language, you are conning investors.
I see little difference. Neither of those is ever going to make money.
Neither Hayek nor Marx is "politics." Politics is Olbermann and/or Glenn Beck.
Hayek and Marx are history and literature. If you're not supposed to talk history and literature at the workplace, you may be in the wrong workplace.
Hayek is a second-rate figure both as writer and thinker. The only Austrians worth reading are Hoppe, Rothbard and Mises. I would read all of Rothbard before I read any of Hoppe, and all of Mises before I read any of Rothbard. I would not read Hayek at all.
What's cool about Dabney and Fitzhugh is that you could be expelled from any university in the country if someone found them in your dorm room. I wouldn't want them on the shelf at work either. Even Carlyle is pushing it in both contexts.
You certainly can't say that for Mises and Rothbard, even - not to mention Henry George and Karl Marx. About the only thing more innocuous than Henry George and Karl Marx would be a pile of old National Geographics, if screened for tits.
At least this makes you ineligible for my most important piece of advice. But others may care so I'll say it anyway: never go to grad school, especially in Computer Science, before both (a) you're old enough to drink, (b) you have actually had a drink. (It's completely ok to be a virgin, however.)
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.
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.
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.
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.)
"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?
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.
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.
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...
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.
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 :)
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
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.
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)
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/
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.
Could you describe a circumstance where such skills would be a negative?
They would be a negative for some quantitative finance jobs. Not because they make you a bad quant. There is a perception among practitioners (who are mostly math/physics PhDs themselves) and headhunters that web development people do not know enough math to be a quant.
To quote one well-known headhunter:
'Good point, there seems to be a correlation between "web design" and only ever having done fluffy crap of no value in this line of work. Of course, correlation is not fact but as a headhunter it is hard to avoid that prejudice'
"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.
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."
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.
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.
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.
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?
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.
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.
...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.
whatever makes you good in software and statistics. I did a PhD in signal processing (statistical reconstruction for medical imaging) worked as a quant for 2 years, and then sofware contracting for another 2. I'm now doing some other startup stuff.
the top fields that come to mind that would be good on the EE side are machine learning, signal processing, control theory, communications/information theory. machine learning is probably the best.
and also - don't just be a matlab jocky, matlab is used heavily in industry, but if I had to do it again, i'd have learned more C++, python, and R
R and matlab are both problematic when you need to integrate with production systems, but at least R is free. Python, in my opinion is best
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 =)