programming experience for research

This forum made possible through the generous support of SDN members, donors, and sponsors. Thank you.
Right now, basic Java and a little C, currently this semester learning more C/C++ and MATLAB.

I'm assuming any object-oriented language will suit you well, as they function essentially the same. It really depends on the research, though. I know at my university on some EMG analysis they use custom-designed MATLAB code.
 
There's a lot of different languages out there. If you have to pick one to know, pick C++ IMO. It's perhaps the hardest one to learn, but it's also the most versatile. When you know it, you know the fundamentals of all programming languages.

i.e. If you learn some Matlab, you won't be able to do anything in C++. If you learn some C++, Matlab will seem reasonably natural.
 
What languages can you guys program in?

Is there any particular language that is well-suited/desired by many research labs? C++?

Honestly, I'd learn c or c# NOT c++. C++ is just an extended version of C with really poor object support compared to c#.

Also, it's much easier to integrate and code controls in c (though that's probably just me).

Java lacks pointers, which are actually really useful when doing long calculation type programs (or databases). They are also useful when memory (say on a small device or probe) is a big concern.

Python is good, but probably doesn't support as much lab equipment as c.

Perl is next best to C: I've always been able to get things to work in perl (it's the duct tape of the programming world).

Finally, I prefer mathCad to wolfram (mathematica) to matLab (unless you are doing lots of graphics work, and then wolfram wins).

Oh, and there's always sage 😉

Overall, not to be unhelpful, but just make sure you understand the theory behind programming, and then switching between languages isn't very difficult. Also, depending on your branch of research, this could be important, because some companies/equipment makers have their own "in-house" languages.
 
What languages can you guys program in?

Is there any particular language that is well-suited/desired by many research labs? C++?

I say Perl and R are the best. C hasn't been helpful. Some javascript for webpages, maybe some Ruby, php...something from the LAMP stack.

It really depends on what kind of work you want to do.

I'm eagerly waiting for my assembly skillz to come in handy.
 
I agree with computerdorkdan, it definitely depends on what you want to do.

I personally haven't used C#, only C and C++, and I will say I find C++ much more useful for larger projects, although C is better for embedded device programming.

With that said, at my Northwestern MSTP interview 2/4 faculty interviews appeared thrilled to death that I could rattle off the intricacies of C++. The faculty were in tumor modeling and imaging, with the former working on device programming as well. As the first interview put it "Most of my students spend 1/2 their time struggling to program."

EDIT: I wanted to further emphasize a point made by Physics of Math. Pointers are absolutely ESSENTIAL for efficient programming, especially with lower-level projects (device programming, image processing), although with higher level tasks (sequence analysis, bioinformatics) pointers are not as necessary. However, pointers are generally the hardest thing for novice programmers to learn, this is why C/C++ are hard programming languages to master.
 
The faculty were in tumor modeling and imaging, with the former working on device programming as well. As the first interview put it "Most of my students spend 1/2 their time struggling to program."

Exactly. I worked a lot with device programming (really big devices!!!) and it's the same thing there. We would bring in a lot of grad students and post-docs who would just flop around like a fish out of water, and then quit. The bigger hurdle seems to be the practical part, moreso than the theoretical parts. An Engineering degree doesn't really mean squat when it comes down to it.

The guys who are good on both the theoretical and practical sides are really sought after both in academics and industry.

Agreed with the rest of the post. Pointers are probably the biggest concept most other languages lack. When I am forced to code major projects in Java I almost go INSANE. Ok, more insane than usual.

computerdorkdan said:
I say Perl and R are the best. C hasn't been helpful. Some javascript for webpages, maybe some Ruby, php...something from the LAMP stack.

It really depends on what kind of work you want to do.

It sounds like you work mostly on webpages. This is great if you want to be the lab's webpage scut monkey. Oh boy! The rotating student can make us a webpage! A webpage isn't going to get you a PhD. I would keep those skills a secret if I were you, unless you're getting paid on the side :laugh:
 
These large "devices" that you speak of, would they happen to be mass spectrometers?

If so, boy do I have some questions for you!
 
These large "devices" that you speak of, would they happen to be mass spectrometers?

If so, boy do I have some questions for you!

mass spectrometry what? the last two years of my life have been toying with a ESI-TOF and a MS-QQQ and cursing agilent for their shotty software that allows for no variability.
 
It sounds like you work mostly on webpages. This is great if you want to be the lab's webpage scut monkey. Oh boy! The rotating student can make us a webpage! A webpage isn't going to get you a PhD. I would keep those skills a secret if I were you, unless you're getting paid on the side :laugh:

Actually, I don't do a lot of web-monkey stuff. I'm finishing up a project where I wrote a program to extract isotopic envelopes from raw mass spec data. The whole thing is in Perl, which further proves that you can do anything in Perl. *ducks*
 
Well, as an addendum...I'm now building an app in Flex (learning ActionScript also, as part of that). So, there's an addition to my list. html wasn't cutting it for the kind of interface I needed.

No, I'm not a web lackey...usually.
 
Python is good for beginners, and I personally liked it for simulation. Furthermore, it's decent at functional programmming (but no C++). It integrates flawlessly with Linux too.

IMO, stay away from C#...it's garbage. It's just as mixed up at C++ with nowhere near the power.

MATLAB and R are also obvious choices if you are into math or stats work (resp.). If you want to go into physics or comp.-chem, you'll find FORTRAN is used quite frequently.
 
Top