Top 10 Things I did Right/Wrong in Graduate School
Download
Report
Transcript Top 10 Things I did Right/Wrong in Graduate School
Top 10 Things I did
Right/Wrong
in Graduate School
Greg Morrisett
Goal, Caveats & Background
You should think and plan now how to get the
most out of grad school.
• Where do you want to be when you finish?
• Take specifics with a large grain of salt
• Personal history:
–
–
–
–
Small, liberal arts undergrad school [’89]
Carnegie Mellon for grad work (PL) [’95]
Cornell faculty [‘96-’03]
Harvard faculty [‘04-now]
Things I did wrong: #10
Spent the first year isolated from my
fellow students.
–
–
–
–
Lived alone
Worked alone
Went out of town a lot
They had fun, I was miserable.
Make the effort to get to know them.
Wrong #9
Assumed I wasn’t good enough.
– U. of Richmond is no CS powerhouse
– Fellow students from IIT, Princeton,
Berkeley, MIT, Stanford, etc. Yikes!
– Felt like a fraud.
• (Still feel like a fraud.)
• (So does everyone else.)
– By the end of quals, field was more level.
Everyone admitted can do well!
Wrong #8
Was scared to ask advisor for stuff like
books, travel money, equipment, etc.
– You’re expensive (~$50K)
• If I can prevent RSI, I’ll spend a lot of money.
– Equipment is not.
– Money is renewable, time is not.
– You need the proper equipment to get the job
done.
It never hurts to ask.
Wrong #7
Lots of classes, little homework.
– (CMU had no course requirements)
– Better to do few classes well.
– You’ve got to get your hands dirty to
really learn something. (Re-prove that
theorem, hack that algorithm, measure
that performance, etc.)
Learning by osmosis doesn’t work.
Wrong #6
Was hyper-critical of visitors and talks.
– It’s easy & fun to be critical.
• Until you’re the one under the glass.
– It’s easy to be cynical.
• Cynics aren’t good researchers. Try to keep
an open and receptive mind.
– Before forming an opinion, ask how you
would (realistically) have done and
presented the research.
Wrong #5
Never took courses outside of CS
–
–
–
–
–
I’ll be doing CS for the rest of my life
I can learn CS topics on my own
I need help with stuff I don’t do well
I either won’t or can’t make the time now
I wish I had taken:
• Writing, French, Chinese [communication]
• Chem, Bio, Psychology, Finance [applications]
• Even if it had taken another year…
The 12(10) requirement is a lower bound!
Wrong #4
Never took a teaching seminar
– It’s half my job for God’s sake!
– But there’s no requirement you actually learn
how to teach (much less teach well.)
– There are real skills to be learned here
• Time management (stack of 15-min appts.)
• Assignments, homeworks, exams, etc.
• Psychology
First year I at Cornell, I spent 90% of my
time on teaching.
Wrong #3
Never figured out how funding works.
– It’s half my job for God’s sake!
– You shouldn’t care how funding works
now. Before you graduate, you might
want to learn more about how it works.
– Writing a proposal is very different
from writing a research paper.
Ask your advisor if you can read or
even participate in proposals.
Wrong #2
Didn’t keep a research journal.
–
–
–
–
–
–
I saw lots of cool talks.
I went to lots of cool conferences.
I read lots of cool papers, pages, etc.
I hacked on lots of cool things.
I had great ideas.
I don’t remember many of them.
Consider keeping a journal.
Wrong #1
Didn’t buy Microsoft stock when I
entered graduate school. :-)
Things I Did Right: #10
Worked closely with other graduate
students.
– Learned more from them than profs.
• (they have more time – only 1 job)
– Proof-read their work & vice versa
• (good for them, good for you)
– Only way to do big things (e.g., compiler)
Right #9
Summer Internships.
–
–
–
–
–
–
I went to Bell Labs & DEC CRL
$$$
Contacts
Breadth
Research ideas
See how a lab works
Do this in your first couple of years, if
possible.
Right #8
Went to conferences & workshops.
– Most of the real action occurs here.
– You meet everyone here, and they meet you –
it’s a smaller community than you think.
– You keep up with the area.
– You get a copy of the proceedings.
– It’s easier to read a paper after a talk.
– Organizations have $ for students to travel
– Ask your advisor for $ -- never hurts.
Right #7
Got to know lots of faculty.
– Worked with different people in
different areas (PL, compilers, OS, etc.)
– Invited these people to practice talks.
– Hiring is an old boys network – people
ask me “Who’s good that’s coming out of
Harvard”? If I don’t know you, I can’t
recommend you.
– Now they’re my colleagues – an invaluable
resource.
Right #6
Volunteered.
– Moderated comp.lang.ml
• Annoying, but the name recognition helped
– Worked on open source projects
• Great experience, satisfying
– Reviewed papers
• Learned a lot about writing, had people to call upon
– Cleaned the lounge
• We had a volunteer requirement at CMU
– You have to do something to get noticed – why
not do something worthwhile?
Right #5
Lots of practice talks, lots of red ink.
– Had a great advisor: read everything
• Marked it up – made me really, really mad
• Eventually developed a thick skin
• Learned how to write better
– Talks at CMU were brutal
• Every last point was debated
• You quickly learned how to defend yourself and
control the environment
• Stage presence: Seeing yourself on video helps a lot
• Learn to anticipate and think like your audience
Right #4
Bought & read “Bugs in Writing”
(Lynn Dupre)
– Tailored to CS technical writing
– I learned so much – writing became faster, less
red ink, etc.
– “Elements of Style” also great
– Technical writing class might help too.
CS people are rarely good at communicating.
But it’s just as important as any technical
skills you’re going to pick up here.
Right #3
Hacked on lots of stuff.
– What will you do for your thesis?
– Do you really think it’ll come to you from
just reading about ideas or sitting in
classes?
– My thesis came after about 7-8 serious
projects (multi-processor, hardware
stuff, GC, semantics, etc.)
Right #2
Didn’t leave before I finished.
– I’ve known dozens of folks who accepted
a job, expecting to finish the last few
chapters of their thesis on the job.
– Bad idea – I’ve only known 1 or 2 people
that actually did this.
– It’s much easier to finish up beforehand.
This gives you time to settle in to a new
environment.
– And ideally, take a break.
Right #1
I had fun!
–
–
–
–
–
–
Threw and went to many parties
Weekly dinner co-op (no geek talk)
Skiing, amusement park trips
Softball
TGIF’s (= AI seminar at Cornell)
Got out of town when I felt down
This Seminar
•
•
•
•
•
•
•
•
•
•
Time Management
Choosing a Career Path
Job Search
Presentations
Working in the Lab
Writing & Reviewing Papers
Grants and Writing Proposals
Science Discussion
Mentoring & Management
[your topic here…]