<p>I am currently in high school and I am not looking to be a programmer but probably applied math and electrical engineering.
I know Java pretty well and my senior year in calculus 3 I will be learning Mathematica.</p>
<p>I would like to know which language I should learn in my spare time to use as a tool in the future for a future business or other big projects.
I have thought about languages like Scala or Ruby and languages not quite mainstream because I would like to stay away from C++ or C# because Java is a pretty mainstream language I already know.</p>
<p>Another question is if one can use learning other programming languages to help get into good engineering schools like Rice etc. ?</p>
<p>I have had difficulty researching which language to learn because I have not learned technical terms for specific language capabilities so I cannot decide which one i should learn.</p>
<p>So does anyone have any idea which language I should learn as a future business tool or even to help get into a good engineering school?</p>
<p>For business, the one most important tool you’ll have to use is Excel. It’s not exactly a programming language at all, but it really is worth the effort to figure out the ins and outs of the program. If you learned programming well, you should know that simplicity is a virtue, and Excel offers simplicity for anything and everything it is capable of doing. Above all else, I recommend you learn to use it because you will without a doubt have to use it quickly in the future.
I’d suggest you learn R and/or MATLAB. R is a statistics tool and MATLAB is a math tool, both are pretty popular scripting languages. Each of them is very simple compared to something like C++, but they’re useful to know.
As far as admissions go, it always depends. Give it a try if you think it will help.</p>
<p>If you major in CS, you will have to become familiar with several programming languages in the course of your studies.</p>
<p>If you major in engineering, you will likely have to use MATLAB (or GNU Octave); computing courses for engineering students often teach the use of MATLAB.</p>
<p>I’m not necessarily looking for an easy language or something engineering and math specific like MATLAB R or Mathematica but a language which I could learn now while I have time and use outside of my courses. I could learn MATLAB in my real engineering classes and I was also wondering if learning a different language which I wouldn’t earn in college be one thing which would help me get into a good engineering school or university.</p>
<p>Try paradigms aside from the procedural/OO hybrid that has become very mainstream. Try a functional language… Lisp, Scheme, Haskell, ML, etc. Try Prolog. Try Smalltalk. Try CUDA or OpenCL or Chapel. Try RISC or CISC assembly languages.</p>
<p>Thanks and I was wondering about assembly languages I know they can help with understanding programming at a base level but as for a tool i can use in the future I’m not sure many projects can be done using assembly I may be wrong. Also does anyone think there is any benefit to getting into good engineering schools by showing knowledge of a language I won’t be taught at the university, will it help any?</p>
<p>Would it be worth learning labView or CAD on my own before college or let them teach me that and learn a different language on my own while I have time.</p>
<p>I don’t really understand what you want to do, but…</p>
<p>Major: applied math and electrical engineering. - Suggests C. Between Java and Assembly, my EE brother used it in several classes.</p>
<p>Want: a tool in the future for a future business or other big projects. - Why not Ruby? I’ve heard it’s a great language to know. Excel is for doing the business, but if you’re building the application then front end HTML, CSS, JavaScript and backend LAMP stack.</p>
<p>Can use learning other programming languages to help get into good engineering schools - If there’s a place on the app? My CS app didn’t ask much about my tech knowledge.</p>
<p>I don’t think learning programming languages will help much with college apps unless you’ve done a significant project with one of them.</p>
<p>As far as a new language to learn goes…both of the ones you mentioned (Scala and Ruby) are fine choices that will help you to think about programming differently.</p>
<p>I agree with NeoDymium. Become an expert at Excel. It will be helpful in a variety of classes/labs, and it could help you get your foot in the door for summer internship before you have a lot of classes under your belt.</p>
<p>There is an online book How to Think Like a Computer Scientist (Python version). </p>
<p>I think going through the 6.001 class on MIT OCW or reading Structure and Interpretation of Computer Programs (SICP) will be mind bending and enlightening and will teach you how to think recursively using Scheme. An easier book is the Schemers Guide if you find SICP too much. </p>
<p>You’ll soon realize that it’s not the language itself that matters but how it allows you express thought succinctly. The paradigms like recursion or object-oriented are there to help you manage complexity.</p>
<p>I’m not sure how interested you’d be in this, but on Edx, Harvardx has a free class called CS50. I literally JUST registered for it. Everything is due in April. I think you’ll learn C, although I haven’t read the whole syllabus yet.</p>
<p>It’s an introductory class and assume the majority of people have no experience programming.</p>
<p>If I recall correctly, there are 8 assignments, two quizzes, and a final project.</p>
<p>Things to avoid : assembly, functional programming languages (Lisp, Haskell, etc.). These are great languages to dabble in if you’re a CS major. Otherwise, they’re much, much less useful for applied math / EE.
Things that are not very useful: Ruby. It doesn’t have many applications outside of web development.</p>
<p>Matlab will probably be used in EE quite a bit. R might be used occasionally in applied math.</p>
<p>Other options: Python.</p>
<hr>
<p>There’s a lot of conflicting advice here on this thread.</p>
<p>First, I think you should clarify what your interests are. Do you want to be a researcher? Do you want to design circuits (EE)? Etc.</p>
<p>Secondly you need to clarify why you want to learn another language? Is it only because you want to have a better chance of getting into a good college? You want to get a job over the summer?</p>
<p>Simply learning a new language is not going to appreciably boost your chances of admission. What matters is the projects you build with that language. In that case you should pick the language that would allow you to quickly build the kind of application/project you want to build.</p>
<p>The SICP book that I mentioned is not to learn a programing language. It’s to learn how to use abstraction in engineering. It’s about what engineering actually is. I’ve seen engineers who never get that. Sure, it uses the functional programing language Scheme, but that’s not the point.</p>