Computer Science

This forum made possible through the generous support of SDN members, donors, and sponsors. Thank you.

Which language is most applicable to medicine?

  • C++

    Votes: 18 40.9%
  • Java

    Votes: 12 27.3%
  • OS

    Votes: 1 2.3%
  • Other

    Votes: 13 29.5%

  • Total voters
    44

BloodySurgeon

Full Member
Moderator Emeritus
Lifetime Donor
15+ Year Member
Joined
Nov 20, 2006
Messages
3,288
Reaction score
42
hey guyz, if u guyz didnt already know im a psych major, but I want to be daring and do some computer science classes (not a requirement). My parents were computer science majors in college and my mom does computer programming for a living. I just want a taste of what its like and have a good sense (not the whole pie though) of the computer programming world. Now since im a pre-med, I want a class that can be applicable to my future career as a doctor. Im going to start with Java Script (I dunno anything about OOS, but I got a good tutoring mother and the basics of 4th grade HTML script--dunno why I never continued it/ got frustrated reading a C++ book and never read a book til I was 15) Also in my school there are a lot of biomedical, robotnic, cybernetic stuff-- but im not that adventurous.

If I could learn any CS language, which one should it be?

*Looking back, I coulda been a really smart kid! Damnit.

Members don't see this ad.
 
This depends on your goals. If you are interested in a career in academia in which you will integrate computing with medical science, then you should consider majoring in computer science or electrical engineering. The fundamentals are the most important part, as learning a new language is comparatively trivial.

If, on the other hand, you want to just get your feet wet in computer programming, either C++ or Java would be fine. Java might be a little easier to pick up for a beginner, but learning Java is easier for someone who knows C++ than vice versa.
 
In medicine you probably NEVER have to touch C++ because it has really no benefit over java anymore. I mean C# has almost equivalent runtime as C++ on windows so C++ is basically abandoned on windows for the most part. On the other hand java has a lot better compatiblity across devices. The only time when you need C++ is if your on linux doing something you really care about runtime, which then you will use C.

OS is pretty useless well because are you going to be messing around with kernel functions? or doing Semaphores?

I think the most probable language is probably some variant of matlab, which you do a lot of statistical processing.

If you just want to learn programming, take C# express free IDE and works on any windows machine without a problem. If your on linux or mac, take up python or something simple, where you have pretty good debugging capabilities. GDB debuggers are so hard to use.
 
Members don't see this ad :)
This depends on your goals. If you are interested in a career in academia in which you will integrate computing with medical science, then you should consider majoring in computer science or electrical engineering. The fundamentals are the most important part, as learning a new language is comparatively trivial.

If, on the other hand, you want to just get your feet wet in computer programming, either C++ or Java would be fine. Java might be a little easier to pick up for a beginner, but learning Java is easier for someone who knows C++ than vice versa.



Try Perl. If by some rare chance you end up doing bioinformatics stuff that would be more 'useful'. But even then, you could just pick it up then.

I know C++ and Java both, and from the looks of it, doesn't seem like either would be of any use in the medical field. However, learning either would definitely cement your understanding of the fundamentals of CS. It is important to just get the feel for how CS works- and this can even be done by learning something as easy as Python, or hell...teach yourself PHP to do some fancy website making.
 
I do programming work (C++, numerical methods) in my structural biology research job. There really isn't a language "most relevant" to medicine. More important than a language is a general sense of how to program. If you have internalized C++ and are fluent in the thought process of programming, you can pick up java or python or perl or even something exotic like lisp. The choice of which you use is totally a function of the work you are doing.

C++ and Java (note: java script is something completely different and not a programminglanguage) are both very powerful languages. I learned in C++ and believe it is cleaner and easier to learn in because you don't have to deal with the obfuscating object oriented structure of Java right off the bat, but many universities have switched to teaching Java in their programming courses. Either would set you on a path to be a fluent programmer and either would give you the tools you need to write a specialized program if you think one is necessary for some reason.

The work I do is to implement numerical methods to find a best fit for an electron density map to a protein structure, it is complicated optimization methods. I'm a math major so it is a great intersection of my interests, math, programming, biochemistry/medicine. Do you have an idea what you'd like to do with the programming knowledge? It's a great tool to have at your disposal, I use it all the time in my math major to do monte carlo simulations to work on my stochastic processes homework, but unless you have an idea what you want to do with it, it can seem obscure, time consuming, and impractical.
 
hey guyz, if u guyz didnt already know im a psych major, but I want to be daring and do some computer science classes (not a requirement). My parents were computer science majors in college and my mom does computer programming for a living. I just want a taste of what its like and have a good sense (not the whole pie though) of the computer programming world. Now since im a pre-med, I want a class that can be applicable to my future career as a doctor. Im going to start with Java Script (I dunno anything about OOS, but I got a good tutoring mother and the basics of 4th grade HTML script--dunno why I never continued it/ got frustrated reading a C++ book and never read a book til I was 15) Also in my school there are a lot of biomedical, robotnic, cybernetic stuff-- but im not that adventurous.

If I could learn any CS language, which one should it be?

*Looking back, I coulda been a really smart kid! Damnit.



C++ and java belong to the same family of Object oriented languages. Learn how to program in one language and you can easily learn anyother one. They all follow the same algorithms just different syntax
 
I do programming work (C++, numerical methods) in my structural biology research job. There really isn't a language "most relevant" to medicine. More important than a language is a general sense of how to program. If you have internalized C++ and are fluent in the thought process of programming, you can pick up java or python or perl or even something exotic like lisp. The choice of which you use is totally a function of the work you are doing.

C++ and Java (note: java script is something completely different and not a programminglanguage) are both very powerful languages. I learned in C++ and believe it is cleaner and easier to learn in because you don't have to deal with the obfuscating object oriented structure of Java right off the bat, but many universities have switched to teaching Java in their programming courses. Either would set you on a path to be a fluent programmer and either would give you the tools you need to write a specialized program if you think one is necessary for some reason.

The work I do is to implement numerical methods to find a best fit for an electron density map to a protein structure, it is complicated optimization methods. I'm a math major so it is a great intersection of my interests, math, programming, biochemistry/medicine. Do you have an idea what you'd like to do with the programming knowledge? It's a great tool to have at your disposal, I use it all the time in my math major to do monte carlo simulations to work on my stochastic processes homework, but unless you have an idea what you want to do with it, it can seem obscure, time consuming, and impractical.


I, in no way, want to do research. Other than personal interest, I think computer programmer can help me organize a buisness (if I decide to go private practice). It can help organize finances, patients, hospials, and may become invaluable to the growing technology of medicine. From reading the forum, it is pretty close between C++ and java; my mom tells me to do java because its an easier start and learning OOS is an important knowledge to learn. What do you guyz think?
 
I, in no way, want to do research. Other than personal interest, I think computer programmer can help me organize a buisness (if I decide to go private practice). It can help organize finances, patients, hospials, and may become invaluable to the growing technology of medicine. From reading the forum, it is pretty close between C++ and java; my mom tells me to do java because its an easier start and learning OOS is an important knowledge to learn. What do you guyz think?

I'm thinking that business classes might be more what you are looking for. Computer programming really isn't that useful in medicine outside of research. It doesn't make you a better technology user.

To use an analogy: You want to learn how to drive cars, not how to build them.
 
I'm an Electrical Engineer and have taken / learned / used both Java and C++. Java is a simpler language, and C++ by far has more applications. In fact, our introductory comp. sci class was java, and the next level was C++.

C++ is the way to go I would say.
 
If you want to learn how to do "real" programming, then something like Java or C/C++ would work. For something you could actually use in medicine, though, I would learn some scripting languages. Something like Python would be good, and learning Matlab would probably be fairly useful too. You could also learn something like LabVIEW -- it's a graphical programming language that is pretty easy to pick up if you've never done any before. It's mostly used for instrumentation, and a lot of National Instruments stuff can be found in medicine.

Also, I'm a computer engineer, but I've never heard of OOS or OS. What is that? The only OS I know of is "operating system." Are you taking about object-oriented? I've always heard OOP for that...
 
I seriously doubt the guy is going to need to do anything like memory management, so I would go with Java. It's easier to learn and has become fairly widespread. You can do pretty much all of the same things with it. All of the syntax is basically the same as well, so if at some point he wanted to do C++, all he'd really have to learn is pointers. Java also a lot better with libraries -- C++ includes none in the language spec, you have to rely on things like stdlib and MFC. It can really be a pain sometimes.
 
hehe any of the language is fine, but programming is not computer science haha. in fact most people who learn programming with perl and c++ end up having very bad style.

for perl: MAKE SURE YOU USE "STRICT" or your life will be like hell
for C++: Get an IDE, I recommend Visual Studio C++ 2005 Express for windows and emacs or kdevelop for linux.

C++ has a lot less portable than Java, haha but you will never have to worry about that. Its not like your goign to be writing industry level code anyways. Just find a good IDE, so your life doesn't turn into finding the semi colon or "==" turned into "=" errors. This is why i recommended languages with more syntax rigor, so you build a good habit. Also, modularization and object orientation is the KEY in knowing what you did later on. Commenting does matter, but hey commenting takes more time. If you get an IDE object orientation is easier than non object orientation.
 
I seriously doubt the guy is going to need to do anything like memory management, so I would go with Java. It's easier to learn and has become fairly widespread. You can do pretty much all of the same things with it. All of the syntax is basically the same as well, so if at some point he wanted to do C++, all he'd really have to learn is pointers. Java also a lot better with libraries -- C++ includes none in the language spec, you have to rely on things like stdlib and MFC. It can really be a pain sometimes.

Java all the way baby. I hated it at first but then I fell in love with it.
 
Members don't see this ad :)
I, in no way, want to do research. Other than personal interest, I think computer programmer can help me organize a buisness (if I decide to go private practice). It can help organize finances, patients, hospials, and may become invaluable to the growing technology of medicine. From reading the forum, it is pretty close between C++ and java; my mom tells me to do java because its an easier start and learning OOS is an important knowledge to learn. What do you guyz think?

i don't like OOS haha, too much hassle for no support. I recommend going with .net framework because it is OOS compatible with mono and has a rigorous foundation (ie. core libraries backed by microsoft). this way you can always get support without too much hassle. In addition, you can use multiple languages with .net framework.

If your goal is to learn how to organize, I recommend first looking at microsoft project and seeing if that already satisfies your needs.
 
C++ and java belong to the same family of Object oriented languages. Learn how to program in one language and you can easily learn anyother one. They all follow the same algorithms just different syntax

... hahaha technically they are quite different, for example the generic in java is just casting operators, while the generic in c++ are actually checked during compile time. I mean algorithms work similarly in any language, just the implementation look more similar in c++/java than say ML/Haskell. By the way if you want functional base languages Haskell/F# all the way hehe
 
I would argue that you should learn C/C++. C++ encompasses everything you would ever need to know about programming, especially things like memory addressing and pointers that you really can't do in Java, Perl, and other scripting languages.

It's not the most relevant to medicine, per se, however if you learn C/C++ it's much easier to learn Java or any other language than vice versa.
 
I would argue that you should learn C/C++. C++ encompasses everything you would ever need to know about programming, especially things like memory addressing and pointers that you really can't do in Java, Perl, and other scripting languages.

It's not the most relevant to medicine, per se, however if you learn C/C++ it's much easier to learn Java or any other language than vice versa.

hamham, hamtaro, hamham bijubiju. lol k this is completely unreleated, java has no pass by value, well it does but only for primatives, so the point is languages are different because they have different implementation, not just syntax.
 
What is this thread about?

I don't see the words DNA, protein, or neuron anywhere.

Just what the hell is going on here!
 
... hahaha technically they are quite different, for example the generic in java is just casting operators, while the generic in c++ are actually checked during compile time. I mean algorithms work similarly in any language, just the implementation look more similar in c++/java than say ML/Haskell. By the way if you want functional base languages Haskell/F# all the way hehe

I don't even know how programming will help you in medicine, unless you are doing it as a hobby.
 
I don't even know how programming will help you in medicine, unless you are doing it as a hobby.

hehe i want to do my MD/PhD in software engineering or biomedical engineering so there are things you can do. for instance better informatic infrastructures for hospitals or new software to visualize MRIs. i really want to build this holographic control cube, yes this is do-able by using coherent interferance patterns, check out "Introduction to fourier optics" (the holographic part), haha the point is people used to ask what is the point of windows, all we need is a terminal and now we can't live without them.

What is this thread about?

I don't see the words DNA, protein, or neuron anywhere.

Just what the hell is going on here!


the other day i was scanning through the protenome (with a program i wrote) for alignment and sequence matches between rat, mouse, and human to find some protease my collaborator was working with.
 
I'm an Electrical Engineer and have taken / learned / used both Java and C++. Java is a simpler language, and C++ by far has more applications. In fact, our introductory comp. sci class was java, and the next level was C++.

C++ is the way to go I would say.

Agree :)

but if u're not looking for complexity, and just a basic programming knowledge/experience, choose java?
 
Take a DB course and learn SQL. Every electronic medical record system is sitting on top of a huge database. Having a good understanding of how those things work would be a bonus. Also, if you ever want to do clinical research and maintain a database of your participants you'll be glad you took this course. Do the database yourself and save grant money instead of hiring a DB programmer at $50-100 an hour. Also, statistical programs like SAS have a programming "feel" much like SQL -- it'll be pretty easy to whip out the analysis.

Almost anything else will be interesting but will have zero applicability in medicine.
 
Take a DB course and learn SQL. Every electronic medical record system is sitting on top of a huge database. Having a good understanding of how those things work would be a bonus. Also, if you ever want to do clinical research and maintain a database of your participants you'll be glad you took this course. Do the database yourself and save grant money instead of hiring a DB programmer at $50-100 an hour. Also, statistical programs like SAS have a programming "feel" much like SQL so you can whip out the analysis.

Almost anything else will be interesting but will have zero applicability in medicine.

lol hahaha i don't know about zero applicability, but this is interesting information hehe. i can go get my self a job then. i just can't stand it if they made me use access, access = worst DB ever.
 
but if u're not looking for complexity, and just a basic programming knowledge/experience, choose java?

I would disagree with this. The problem is that while Java cross-platform, the implementation is poor. The programs tend to run slowly and look like crap. Sorry, but it's more or less true. I cringe when I see a program is written in Java

Sure, it's easier to code in Java, but it's like you're leaving things out that are important to understanding how computers function. You're sacrificing some basics of programming you will learn in C/C++. I think it's better to later have to code in Java and curse Java for not having pointers, rather than to go from Java to C and code like you were in Java because you really don't understand the fundamentals.
 
In any case, you'll probably see a common thread here. No one thing is going to suit you for any possible thing you'll do down the line. Clinical researchers are going to have you accessing databases (one poster), bioengineers will probably have you in Matlab and LabView (another poster), image processers like things like IDL, computer scientists and MRI scanners tend to use C/C++, etc..

If you don't do any research, none of this will matter to you down the road. Doctors use the tools they're handed. They don't have time to create their own, unless that's their area of research or special interest.
 
lol hahaha i don't know about zero applicability, but this is interesting information hehe. i can go get my self a job then. i just can't stand it if they made me use access, access = worst DB ever.

Use MySQL if it suits you. As the PI you can use whatever you want for your research.

All I'm saying is a practicing MD would gain more benefit from database skills than systems programming.
 
I disagree with a lot of these posts. Choosing a programming language will be a debate forever. If you want to be a good programmer, be good at math and basic language. So learn C, not C++. Java is easy, but so is C. Perl is easy too, but it has limitations. What about simple scripting languages? What about Visual Basic? There are infinite choices, and there will be more languages in the future.

Most companies will be doing software engineering for medical devices because they can sell the devices. They will likely choose a language because that is what their engineers know how to use and that is what is cost-effective.

If you want to be good at programming now AND in the future, look at a computer science curriculum. It involves a lot of math and lots of programming concepts up front. Example, at MIT the curriculum starts with 2 semesters of Scheme programming and you don't hit C++/Java until your 3rd year (after lots of math).

This question to me is like asking if someone should take Genetics or Cell Biology without even taking introductory courses in Biology.

LoL....That is exactly what I did though :laugh: :laugh: . I took Genetics and learned polyploids before I even knew how mitosis and meiosis worked. :D Anyways, thank you all for your imput, it has helped a lot. I dunno much about computer science because im a psych major, but I am going with C programming (although I dunno the difference b/w C and C++ or why C++ is easier). I said earlier that my mom is a programmer and I just want 2 learn the idea of it. Also, since i have about 100 books on computer programming (thanks mom), C language will help if I ever what to learn java or other programs in the future. Right now I look at the book and crawl up in a fetal position. I hate research (ew ew ew) so I'd prob do this for personal interest.
 
If you want to be good at programming now AND in the future, look at a computer science curriculum. It involves a lot of math and lots of programming concepts up front. Example, at MIT the curriculum starts with 2 semesters of Scheme programming and you don't hit C++/Java until your 3rd year (after lots of math).

i still think the choice of scheme is bad haha.

but a problem with getting used to pseudo code, which is what you are probably proposing as most algorithm courses are taught in pseudo code will leave a person who can't program physical program, or write good code. that is why you see professors writing PhD thesis around a single function that is 10000k lines long and wants to go back and optimize it for paralleling and fall flat on their faces. the point being while algorithm is important, i think the OP just wants to mess around, spending time pondering how to find the most efficient way to solve the coin change problem is not an efficient use of his time.

LoL....That is exactly what I did though :laugh: :laugh: . I took Genetics and learned polyploids before I even knew how mitosis and meiosis worked. :D Anyways, thank you all for your imput, it has helped a lot. I dunno much about computer science because im a psych major, but I am going with C programming (although I dunno the difference b/w C and C++ or why C++ is easier). I said earlier that my mom is a programmer and I just want 2 learn the idea of it. Also, since i have about 100 books on computer programming (thanks mom), C language will help if I ever what to learn java or other programs in the future. Right now I look at the book and crawl up in a fetal position. I hate research (ew ew ew) so I'd prob do this for personal interest.

i think C is a fine choice hehe, it will teach out a lot of basic routines including memory functions and writing some basic libraries that are given in C++ or java, good luck with your quest hehe, if you need any help i will be happy to provide any support. just beware, FIND a GOOD IDE (more specifically a good debugger) or getting into computer science will be hell. so beware, good C code are often horrible java code, while they tend to be good code for C++
 
(((Lisp is) the one) true language))
 
is Matlab considered a language? Or is it a software?
Since I was taught that you can do anything in Matlab that you can do in C++. I think you should learn Matlab programming; its really fun.
 
I had a similar question. I have no cs background (and unfortunately my parents can't help me with it either).
Next semester I am going to take a Computational Neurosci course which requires MATLAB programming. I used to think that MATLAB was like a ti-89 on steroids.

Does anyone have any input on how to learn MATLAB or which languages would be best to learn for computational neurosci or computational biology?

Thanks.
 
(((Lisp is) the one) true language))

LOL, i love your response, except at the beginning of each ( you need a verb hehe, lisp is action based.


Matlab = trivial, come on mess around with it for 20 minute everything should become obvious. i mean if you were to write hella complex code, might take you a while, but doing basic operations like finding the modulation transfer function, just an example, maybe take 2 days for you to figure out.
 
I say MySQL or any other database language. Especially with the huge number of data being generated at hospitals, research, etc, managing/interpreting all this information in an efficient way would be very useful.

I started with Java and worked my way to C#, C++, and a little bit of PHP to use with MySQL. I think that Java is overall worthwhile for learning the trade, but if you are headed for a more practice-based approach and wish to design software, I would suggest a course in software engineering. That way, you would manage all the "high level" problems and design since you would normally hire software programmers to do all the "low level" stuff.
 

for database i highly recommend mssql2005 express, free easy to use, not as many types as mysql, but who cares, i hate anything console hahaha, so hard to do things. lol ruby would be cool though, sorry been doing my chinese hw (worst class ever) for the past 3 hours, when i speak fluent chinese.
 
for database i highly recommend mssql2005 express, free easy to use, not as many types as mysql, but who cares, i hate anything console hahaha, so hard to do things. lol ruby would be cool though, sorry been doing my chinese hw (worst class ever) for the past 3 hours, when i speak fluent chinese.

LOL that sucks. yeah foreign languages get to me even though I may speak it too.

MySQL, I believe, has a graphical user interface as well, which is pretty good. And it comes with your typical features you see in most database applications. Try and see which one you like better, but in the end, you will get the concepts.
 
LOL that sucks. yeah foreign languages get to me even though I may speak it too.

MySQL, I believe, has a graphical user interface as well, which is pretty good. And it comes with your typical features you see in most database applications. Try and see which one you like better, but in the end, you will get the concepts.

lol yea i thought this would be an easy way out of my humanities, but i thought wrong, o well.

the last time i tried MySQL was gosh 5 years ago, when i ran my cs clan and needed it for a forum. since then i have used various databases, from MSSQL, Oracle, other OLEDB providers, and some memory based data bases (for insane people who have 16 gigs of ram). over all, i just found mssql had a low learning curve, but does hamper with higher functionalities, as microsoft never release anything for free unless they had a reason
 
lower learning curve is a + for sure. Never had experience with it though, but it sounds good.
 
i dont want to burst anyones bubble, but why hasn't this forum been moved to the off topic dump...
 
because this is medically relavent hehe j/m, but i am interviewing with a csc cept chair for my mstp lol, so i guess it counts for something
 
because this is medically relavent hehe j/m, but i am interviewing with a csc cept chair for my mstp lol, so i guess it counts for something

well maybe if you were a pre-md/phd thinking about designing code for robot surgeons...i dont think 99.99% of premeds give a shiz about outdated languages, php, or psuedocode..if you are going to learn something outside of medicine, learn spanish.

cs major here...i think its cool that there are a lot of comp sci majors applying to med school. I just find it intriguing that other threads have been derailed after 2-3 posts and yet the mods let this one slip...oh well.
 
organizing patients, meds, hx, dx, prior workups, charting etc -- SQL, Java
molecular modeling/simulator -- C++/OpenGL, Maya, Java
equipment functionality (OR, ICU, monitors, etc) -- C++/Java, Xilinx ee stuff

if you're premed i suggest you take a programming course since it really stretches your imagination (maybe you'll discover you have a hidden talent --superprogrammer?) for the few of you that have never really "thought" out of the bio/life sciences box, it will be an eye opener. you can make cool stuff (compilers, an instant messenger, simulator, large databases, and even your own operating system!!!!) if you care about those kind of things.
 
organizing patients, meds, hx, dx, prior workups, charting etc -- SQL, Java
molecular modeling/simulator -- C++/OpenGL, Maya, Java
equipment functionality (OR, ICU, monitors, etc) -- C++/Java, Xilinx ee stuff

if you're premed i suggest you take a programming course since it really stretches your imagination (maybe you'll discover you have a hidden talent --superprogrammer?) for the few of you that have never really "thought" out of the bio/life sciences box, it will be an eye opener. you can make cool stuff (compilers, an instant messenger, simulator, large databases, and even your own operating system!!!!) if you care about those kind of things.

not to burst anyone's bubble but making compilers, instant messenger, simulators, large databases, and your own operating system takes so much time its not worth it. hehe, just to give a feel, any of these are typically above 10k lines of code, even any molecular dynamic software typically run at 30k lines of code, so haha yea well it can be done, bewarned at the cost of time involved. also you require great deal of knowledge of string algorithms, context free grammar, semantics checking, and often reverse engineering for an instant messenger that is compatible with say AIM (stupid oscar protocol). haha, so be warnd at the degree of time involved. THOUGH if you are a super programmer you can do any of these in a weekend. stay in your bubble hehe, life is easier, more productive.
 
I had a similar question. I have no cs background (and unfortunately my parents can't help me with it either).
Next semester I am going to take a Computational Neurosci course which requires MATLAB programming. I used to think that MATLAB was like a ti-89 on steroids.

Does anyone have any input on how to learn MATLAB or which languages would be best to learn for computational neurosci or computational biology?

Matlab is not really a programming language, it's what I would call a "scripting" language. It is fairly high level code. That being said, I learned Matlab and IDL from scratch (and am still learning cause I use them frequently), but it's easy for someone once they already know the basics of a low level language. Once you've learned in lower level code about data types, memory references, how to manipulate arrays, loop structures, debugging code, etc... It all becomes easier as you progress to higher level languages, because higher level languages will include these things and less.

So I guess my point is, that's why it's good to take an intro CS course in something like C. It will teach you the foundations that you can then take to any language. On the other hand, if you start with a high level language (BASIC, remember LOGO, JAVA, etc...), you will learn bad habits because they lack certain fundamentals good both practically and for your understanding, and if you ever go to another language that has a better way of doing things (like pointers), you'll be stuck for awhile.

Your first programming language will always be your hardest, and it just gets easier from there... I always looked at C++ as the second course of Comp Sci (OOP), but that's just the way the CS degree at my undergrad was structured.
 
Top