<p>Which language is most important for computer sciences research? My brother is a freshman and wants to become more proficient in only the language he will mainly need in research. He can program in HTML, Java, C++, and Python. Which is most important for research in either:</p>
<p>economics
hacking/defense systems
biological systems
robotics</p>
<p>he’s a high school freshman and is looking to do research at yale (5 min from where i live)</p>
<p>i myself was able to get interviews and accepted to about 15 positions here at yale (after sending like 100 emails though)</p>
<p>i wanted to do biology research but he wants to do computer sciences. i was able to do my own research at home and compete in the science fair and win awards from insurance companies (i did a cancer project). that’s how i got the job starting the summer after freshman year.</p>
<p>he wants to do cs research but wants to know which language(s) to mainly focus on</p>
<p>HTML isn’t even a programming language. What language you use doesn’t matter either. I don’t see a freshman in high school getting any computer science research.</p>
<p>If he already knows Java, Python and C++, he’s fairly well-positioned already. I assume he knows C++ well enough to claim actual ability in C as well, and isn’t just an STL junkie.</p>
<p>Given all that, I’d say if he wants to learn more languages, go for something new…</p>
<p>Ada: lots of DoD use, a bit old, but shared syntax with VHDL for research in computer architecture, and you’d be surprised how many government projects rely on legacy code.</p>
<p>LISP (or variants): functional languages crop up in research from time to time.</p>
<p>Prolog: possibly not useful per se, but an interesting thing to learn about that may provide useful context or ideas for a budding researcher</p>
<p>Smalltalk: see Prolog</p>
<p>Assembly languages: there’s a certain charm in learning about low-level details and ISAs. This stuff is definitely useful, depending on what kind of research you want to do. x86 or MIPS should do.</p>
<p>CUDA/OpenCL/MPI/OpenMP: some of these are APIs, some language extensions, but are used for parallel programming on clusters and/or GPUs.</p>
<p>Chapel (or similar): languages for automatic parallelization</p>
<p>yeah, java and python are probably the most valuable to know. Ruby maybe, but those first two are the best. Not a language, but knowing SQL can be very valuable. Maybe learn R or some other data processing language.</p>
Sorry, had to quote this guy. Technically, SQL is a language (that’s where the L comes from); and while it’s not Turing-equivalent (well, some variations are), you can still write some programs in it.</p>