Page 1 of 1

What I wish I had been told as an undergrad (rant/advice)

Posted: Tue Dec 11, 2007 12:23 am
by goodfromfar
[somewhat directed towards females]

Now that I'm applying to graduate schools I've been doing a lot of reflecting upon my undergraduate years. I wish someone would have sat me down and given me advice on how to navigate through my undergrad years and come out an academic success.

This should also be completely applicable to graduate school.
If anyone has any advice to add, feel free!

1. Don't let draining personal relationships get in the way of your academic success.

This is my biggest piece of advice to females, as it is certainly the one that has negatively impacted me the most.

Life doesn't stop when you want it to, in fact it only gets more intrusive as you get older. I've found that females are particularly vulnerable when it comes to having life interfere with academics. Males I know tend to use physics as a refuge when other areas of their life are difficult. Females tend to stress out and dwell more on the personal problem at hand while losing focus on their work. This is probably why married men live longer than single men while married females have a shorter lifespan than their single counterparts.

I had a very bad six months with one of my physics boyfriends and his response was to take 4 upper division physics classes (straight As), work on two research projects (published), grade for two classes, TA another class, and sleep a mere 4 hours a night. I, on the other hand, became academically useless.
The result? He is applying to upper tier schools while I'm figuring out what state school will accept me.
I have seen this happen over and over with female physics undergrads.

Don't eschew all relationships, as that is completely impossible and you need to learn to handle bad situations when they are unavoidable. But if one is becoming so draining that it is affecting your performance in school, it's time to reevaluate.
Trying to explain that one year of bad grades was caused by a suicidal/bi-polar/adulterous/asshole boyfriend/girlfriend/parent/cat is not
something you put on a statement of purpose.

So in short, don't be afraid to tell someone to *** off. It's a great skill to have when employed conservatively.

2. Set long term goals

College does not stop when you graduate. Grades follow you around for a few years, so you might as well try the best you can when you can. Want to go to grad school? Then figure out what you need to do YEARS in advance, not months. Research experience, good grades, and good recs do not appear overnight or even in a couple months. At the very least you will meet quirky professors, gain physics intuition, and get to do some exciting hand on work and (possibly) get paid for it.
Not sure if you want to go? Try to do well anyway so you have options. And talk to grad students at your school. They have advice, you just need to ask.
Want to go straight into industry? Grades, research experience, and networking will help get you there. A high percentage of FPS head shots and beer pong medals will not.
I'm not saying to spend your entire college career in a physics textbook (we all know how those people turn out!), but set your priorities and act accordingly.

3. Learn to program

Seriously. It really should be required for the physics major. C++ is a great starting point, as all the programming I've seen done in my lab experience is with that. Learning Mathematica would be fantastic as well.

4. It's never too late

So you fucked up in high school and didn't get into a good college. Well, work as hard as you can and admission into an excellent graduate school is almost guaranteed. Unfortunately many eighteen years old are so elated just to be IN college that for a year or so they completely forgo studying in lieu of counterstrike lan parties and sushi buffet night at the trendy downtown restaurant.

Now after 4-5 years of college you have that strong motivation to work hard and do some outstanding research, but your GPA is more reflective of your affinity for keggers than your work ethic. Getting into a good Ph.D program might not be viable right now, but you can always work hard getting a Masters and "mastering" physics with the intention of transferring to an excellent Ph.D program.
My mother got her Masters at San Francisco State (by no means an excellent school) and continued on to get her doctorate in Math at Stanford. It's hard, but it's possible.

As one of my university professors put it "some people are really good at physics, but really bad at life"
Try not to be one of those =)

Good luck everyone!

Posted: Tue Dec 11, 2007 1:16 am
by anthonyk
some good points here. i also wish i had taken some programming courses.

Posted: Tue Dec 11, 2007 1:30 am
by butsurigakusha
I have often thought that a basic programming course should be required for every major, not just science. Not that everyone will actually need to know how to program, but they way programming teaches you to logically approach problem solving I think is very valuable.

Plus, I don't think you can consider yourself truly educated unless you can program in C.

Posted: Tue Dec 11, 2007 1:37 am
by will
My list:

1. Work hard in your introductory classes. Sure you know all the material and can ace the test without cracking the book, but in a couple years you'll learn that you won't retain all that information that you didn't study, no matter how well you gamed the tests.

2. Get to know your professors. You'll be seeing them again.

3. Other undergrads aren't making serious contributions to quantum field theory. Be comfortable with what you do know and join a research group as a freshman.

3.b. Professors are only ostensibly similar to carnivorous dinosaurs. In fact, they often have periods with lots of free time and some of them actually really enjoy sharing their knowledge and experience with promising undergrads in a less formal setting. You'd be crabby too if you had to waste an hour a day in front of 300 snots that don't give a damn about what you do.

4. Take plenty of supplementary books from the library, but do buy the books that your classes recommend. Learn to make notes in the margins about things that trouble you, and highlight things you'll be referring back to often. Sure you're only going to be taking Theoretical Methods this one semester. Is this the last time you'll be using them?

5. Don't waste time with things you don't understand. What I mean by this is, if you can't quite grasp a concept in quantum after reading the section in Griffiths, looking it up in Sakurai probably won't take the edge off. Take it to your teachers. Eventually you'll get so good at doing this that you come up with questions that are less and less trivial, and a good teacher will be ecstatic to hear them.

6. Do let physics into your social life. I'm not the shackled up nerd stereotype, and I actually did spend more time my first year hunched over the porcelain altar than in a classroom. That said, all the friends I've made in physics have been equally fun and outgoing, and have positively impacted my behavior and my ambitions in science.

7. Pad your resume. You have no idea how many prestigious undergraduate awards there are that are granted simply to the people with the largest resumes, making them in turn even larger. It's academic incest; it's pointless; it gets you into Harvard.

Actually can that last one.

Posted: Tue Dec 11, 2007 1:43 am
by will
Programming in C is a good skill to have, but unfortunately your professors who do serious computational work all use FORTRAN. Hate it if you must, but learn it; it's easy.

Hip-and-with-it professors are starting to use Python, and if you're not stuck thinking in a different language, or are open to change, it's actually an exceedingly useful language to learn.

Posted: Tue Dec 11, 2007 2:12 am
by butsurigakusha
Oh, I know that Fortran is used more in the physics world, but a monkey could program in Fortran. It's easier to learn than TI-83 Basic.

I think C is more fun (at times more frustrating, but that is part of the fun) to program in.

Also, I prefer VIM. Emacs sucks.

Posted: Tue Dec 11, 2007 3:10 am
by will
emacs certainly is a nasty pile of lisp, but the truly hardcore use ed. :wink:

Seriously though, if you want your programming to be fun, have a look at Python.

Posted: Tue Dec 11, 2007 11:57 am
by twistor
My list:

1) You will never get a job in physics with your bachelor's degree. You are playing with your future because if you don't get into graduate school you will have nothing to show for all your hard work. Therefore:

2) Switch to engineering. Engineers have actual jobs that pay decent money and actually have some free time. You will actually gain a lot more technical knowledge than you would if you just stick with physics alone. So they don't know Hamiltonian mechanics, but then again you probably can't build an engine with all of your theoretical thermodynamics knowledge, now can you?


Posted: Tue Dec 11, 2007 12:04 pm
by twistor
Incidentally, though I'm male, I also plan to explain away any bad parts of my applications by blaming it on a bi-polar cat...

Posted: Tue Dec 11, 2007 12:34 pm
by twistor
Plus, I don't think you can consider yourself truly educated unless you can program in C.
I can program in C++, so I must be some kind of academic god to you people...

Leave your oblations at my doorstep, I will pick them up at my convenience.

Posted: Tue Dec 11, 2007 12:36 pm
by butsurigakusha
Maybe if you could program in assembly language

Posted: Tue Dec 11, 2007 1:13 pm
by twistor
I can, actually. 8086 assembler, because I never bothered to learn 32 bit.

Posted: Tue Dec 11, 2007 1:14 pm
by twistor
In any case, most of us are just writing simulations, not operating systems.

Posted: Tue Dec 11, 2007 4:14 pm
by will
... Which is precisely why C/C++ are so unimportant.

Posted: Tue Dec 11, 2007 6:27 pm
by twistor
Unimportant for whom?

Posted: Tue Dec 11, 2007 6:47 pm
by fermiboy
I do all my numerical programming in LOGO. :P

Posted: Tue Dec 11, 2007 8:54 pm
by will
Unimportant for physicists.

If you're writing system software, then yeah, C/C++ all the way. If you're writing numerical simulation software in C/C++ you're almost certainly reinventing someone's wheel, and even if you're not, there's more better, more efficient tools elsewhere.

Posted: Tue Dec 11, 2007 11:32 pm
by twistor
If you're reinventing the wheel it's not research, is it?

Posted: Wed Dec 12, 2007 12:48 am
by phoenix
i had been using Fortran, C/C++ and Mathematica for programming..

as long as the project isn't too complicated, e.g. you are just programming for a mind experiment, not a large-scale particle physics experiment involving huge library, i don't see it necessary to use C++, usually C++ is quite useful when there is a large system and different packages you need to include to get some data..

i think Fortran and C are pretty much enough..(and i think C and Fortran are somehow very similar, but C is quite different from C++ as far as i can tell..) i mean, it doesn't matter whether it's so easy that a monkey can master it..the easiness is the point..there is no need to try to spend a lot of time to master a tool to help you carry out calculations...just use the simplest way to get the same result..(sort of think that's how physicists usually prefer to do)

and Mathematica,'s quite interesting to play with..and i like the graphics it gives and the animation it can provide.. it's also easy to learn...

i don't know much about programming..assembly, python, basic etc. others you guys have mentioned..i don't know any of them, haven't even heard of them either...quite ignorant in computer field...

Posted: Wed Dec 12, 2007 1:02 am
by twistor
Large projects in experimental particle physics are always done in C++. In fact some of the graduate students I work with are getting their Ph.d.'s my simulating entire detectors and the collisions that take place within them.

In any case, what most people now think of as C is actually C++. They simply choose to ignore the object-oriented aspects of the language, which usually aren't necessary for most small programs. I think it's very rare nowadays to find programs written purely in C unless they are very low-level. Since C++ compilers know C you can usually get away with this kind of mixing and matching.

Posted: Wed Dec 12, 2007 1:27 am
by phoenix
well..i am not sure i know exactly what you mean "low level"..

i just think in the way that whether it is necessary or not, or whether it can be done in a simpler and faster way or not...

and i think for example, as a theorest workinng on a single problem, say a comparatively simple model with few parameters, and the interactions involved are of small quantity..i would say, (object-oriented aspect of) C and Fortran are far as i have seen...

but when talking about large systems, e.g. high energy physics experimental simulation, simulation in cosmology/astrophysics, nuclear physics process, etc., these complicated processes usually in a large scale have sort of universally "shared" platform to work with...just to reduce the complication individual work/notation/convention may cause..i think in this sense, C++/C largely increase the efficiency globally...then individuals to pay more efforts to learn them are still worthwhile...

due to my ignorance in the programming to a large extent, my opinion in programming may not be very mature...welcome any different opinion..i think they are quite educational..

Posted: Wed Dec 12, 2007 2:33 am
by fermiboy
The term "low level" in computer programming does not refer to the difficulty of the program, but refers to how "close" the programming language is to machine code. The lowest level language is machine code, then assembler, then C, then... all the way up to things like BASIC, LISP, and scripting languages.