Joe Smith on How to use a paper towel:
08 August 2012
20 July 2012
15 May 2012
Erlang Quine
I'm just getting started with Erlang. Naturally, after writing "Hello, world!" the next program I wrote was a Quine:
Update: OK, after thinking more about it, it can be a little simpler:
-module(q). -export([main/0]). main() -> A="-module(q).\n-export([main/0]).\n\nmain() ->\n", B="io:format(\"~sA=~p,~nB=~p,~n~s\",[A, A, B, B]).", io:format("~sA=~p,~nB=~p,~n~s",[A, A, B, B]).Erlang's "pretty print" formatting code makes this super easy. In particular, no raw ASCII codes necessary here!
Update: OK, after thinking more about it, it can be a little simpler:
-module(r). -export([main/0]). main() -> Fmt = "-module(r).\n-export([main/0]).\n\nmain() ->\n Fmt = ~p,\n io:format(Fmt, [Fmt]).\n", io:format(Fmt, [Fmt]).
09 January 2012
What It's Like Being an Assistant Professor At A Research School
You will cry. At least, that's what I did. In the two and
half years I've been an assistant professor I've cried more than in all of graduate
school, which itself was a rather grueling six years filled with setbacks. [But
high school and college, overall, were quite pleasant for me.] Rather than give
you a list of pros and cons of being in the academy, I'm going to try to talk you out of it as much as I
can. If you've come to read something like this to see if you should be a
professor or not, let me make it simple for you: If you have that much doubt,
don't be one. And if you don't, then one blog post isn't going to stand in your
way anyway.
Being a professor
puts you in an awkward position of power. After years of irrelevance as a
graduate student, you have a voice that matters. You get to decide your own syllabus,
you get to decide if you use a curve and, yes, you get to decide if that
student working at less than their potential deserves a C or an F. I was
uncomfortable with that sort of power. The first F I gave tore me up. I had to
consult with two other faculty members who told me, "yes, definitely this
person should get an F." We like to plot students on histograms. Whoever
ends up hanging out on the left margin too much? Fails. Those histograms form
blobs; when there are gaps between blobs, we separate them out into "A",
"B", and "C"... It's a random, arbitrary process sometimes.
But so is life in the many other ways we evaluate people.
But giving an F is nothing like the worst thing I've done.
Having to fire a student isn't anything I wish upon anyone looking to motivate
growing minds. Another part of the power of being a professor is having money,
and money can make all of the difference to a spouse in a refuge family. A
research assistantship with stipend and tuition is one of the things you are
expected to give out. If you're not a good manager, or you just hired the wrong
person, you'll have to terminate the assistantship that doesn't work. You can
tell yourself that you are giving them a valuable lesson, or that it's really
out of your hands. But at the end of the day, you were the one who flipped the
switch.
You can make a
difference in your department. Even if you come from a superstar school
with a superstar advisor, the odds are that your academic position is going to
be at a "growing" or an "up-and-coming" department. That
means your department will have plenty of flaws, many of which can be fixable
if you just put in the effort. It sounds great that you can grow and leave your
mark on the department, but when you come up for tenure, all of your "service"
will amount to a single sentence of additional contributions. You also will be
unable to avoid political aspects in your service, as reasonable colleagues
will disagree with your approach, meaning that your "making a difference"
will piss some people off. Don't keep your head down completely, but never try
to get emotionally involved in the outcome of anything, no matter how clear it
is to you that it's "better."
Academic freedom is for
the few. It depends upon your department and the courses you're teaching [introductory,
core curricula, electives...], but if you're not at a department that hands you
a deck of slides and says "this is what you'll be teaching" you'll
have a fair degree of freedom in the approach you take with your course. Making
the syllabus match your ideal course is a great feeling, until you find out
that, well, your ideal plan has some holes in it. The more experience you have
with it, the more you end up conforming to the "tried and true"
formulas. Depending on your personality, this might affect your enthusiasm for
teaching. I'm a software engineer, so I believe working on a software "project"
is essential to really learn how to program. But I know another software
engineer at a different department who was told "you can't do a project in
that course, because they already do a project in this other course..."
But what about research? Sure, you have academic freedom
there too. The academy studies what is important, and academic freedom means
the academy itself gets to decide what is worthy of study. You can have a new
take on a sub-sub-discipline. People might say "wow, that's an interesting
idea!" But unless you convince enough people that your idea is worthy of
study, it's not going to get published, and it's not going to get funded.
So, the next grant you write? It's not what you really want to work on, but rather a
mix of what is currently hot (i.e., funded, like green projects, or security)
and what is safe (i.e., incremental improvements to the state-of-the-art).
You will be told that you need to be an independent
researcher. But that does not mean now is the time for you to save the world.
All that it means to be an independent researcher is that you publish and get
funded only with other junior researchers (and your students). Stay away from
working with people more senior than you, and in particular stop working with
your advisor. If there are things you still want to publish with someone more
senior, be sure it accounts for only 20% of your CV or less. Even if it was all
your idea, the more senior person will get most of the credit.
When you start, the only thing you'll be qualified to do
research on is incremental improvements to your dissertation. This is a nice
route to take, because you can publish with only a few months of work [instead
of spending six months learning a new area] and the more you continue your
dissertation work, the clearer it will be to others that you've taken ownership
of it. I got really interesting in end-user programming when I started my
appointment. I really wish I could get those six months back in exchange for a
few minimal deltas of publishing units.
[At this point, the dear reader may think that I'm actually
giving you advice, or that perhaps I'm doing a Swiftian spoof. No, but I'll concede
that sometimes the truth sure sounds like a joke.]
Do you get the academic freedom after tenure? Maybe. You'll
still need to fund students, and that means you'll still need to get past the
guards at the funding agencies. I do basic research in software engineering, and the funding opportunities for me is quite limited. So much concentration into a small pool can lead to groupthink.
Your peers include
the anti-social, and actual sociopaths. Forget about discouraging replies
from reviewers who "don't get" your submissions. Imagine creating
policy and voting on issues with these people. There are sociopaths in the
academy. Some of them act quite charming. They'll kindly agree to write letters
of recommendation to eager students, only to throw them under the bus with a
damning "recommendation." Instead of insisting on "no,"
they gladly take it upon themselves to let the world know how much so-and-so really
sucks. They will repeat this pattern when you are coming up for tenure. When
your case is discussed, there will be a pro side and a con side. Be sure you do
enough good work for the "pro" side to have strong material to
support your case. Don't bother trying to win over the "con" side.
They will smile sweetly to you while burning your case as much as they can,
even if their argument relies upon making a damning case against another
faculty member coming up for tenure at the same time. [That's known as
collateral damage in war.]
Students will
manipulate you and disappoint you. Finally, let's talk a little about
students. Yes, you are very clever, with that sob story that you constructed
six weeks in advance. You really pulled a fast one over on us, didn't you?
Well, no, not really. We are almost 97% sure that your bullshitting us, but
that nagging 3% and just the hassle of it all means that you'll get away with
it anyway.
As for the less clever, thanks for making it easier on us
giving you a bad grade. If you do poorly the whole semester and only find
religion at the end of it, no amount of earnestness is going to make doing
"an extra credit project" [i.e., more work for us to grade]
attractive.
Now, what about the students who don't fabricate stories of
illness and dead relatives? Well, some students you will really like, and
really root for. They'll impress you so much early on, that you'll start to
talk to them about considering graduate school, or, if they are already in
graduate school, working on a research project with you next semester. But
working with students can kind of be like starting a relationship: Sometimes
it's your fantasy of the perfect student that is blinding you to the reality of
the actual student. Once that reality comes crashing in, you'll find you've
invested a lot of time in someone who won't give back even a quarter of what
you've put in.
So, given all of these, does the academy need changing? No.
You just need to accept that sometimes your dream job is still a job, and hope
that the great moments outweigh the bad ones. Until you understand what a really
good day feels like, you won't be able to put all of the rest of this baggage
in perspective.
Subscribe to:
Posts (Atom)