What programing language shoould I learm. Civil Engineering major.

<p>I want to teach myself programming and maybe take some CS classes. I am also considering minoring in computer science. What is a good language to start with? What are some useful languages for civil engineering?</p>

<p>Once you learn one or two languages, it takes really no time at all to learn another one. It's just differences in syntax and standard libraries. </p>

<p>For an easier language to learn, I would suggest Python. It's an object-oriented interpreted scripting language with a large standard library and lots of third-party open-source libraries. </p>

<p>Once you get the hang of Python, I would then suggest either C or Java, as those are languages you would be more likely to see formally used. </p>

<p>C is lower-level than Python or Java, which has a few advantages and disadvantages. It allows you to optimize your code quite well and do some low-level hardware things, yet gives you enough rope to hang yourself with. Note that a program in C will likely take longer and have more lines of code. Also, another thing to note is that in C, your code is likely to not be cross-platform. So, if you write a C program for Windows, don't expect it to work on OS X or Linux without fussing. Python and Java are both cross-platform languages, so they have abstraction layers to handle the underlying OS. </p>

<p>Java, on the other hand, is a high-level language. It would allow you to write a complex application quicker than in C. Java performance is better than Python, but still isn't near C speed in certain areas. Again, a significant number of libraries are available for Java. </p>

<p>For a CivilE, I would stick with the higher-level languages. They'll allow you to get up and running quicker with fewer lines of code. I don't think you're going to need down-to-the-metal OS/hardware interaction or the performance edge of C/C++.</p>

<p>MATLAB is a good language to do math problems in. I'd bet that that one comes up more often in civil engineering than the general-purpose ones nick mentioned.</p>

<p>"...shoould I learm."</p>

<p>Program to buy: Spelling ;) !</p>

<p>^</p>

<p>I doubt anyone is an infallible typist.</p>

<p>ya i sau that mistak. Tank u foor pontin it out too mi true love.</p>

<p>Thanks for the responses. Do you guys know anything about ruby? My uncle works for a software company and gave me a beginners programing book that uses ruby.</p>

<p>I've used Ruby in the past, and I would say that its in the same class as Python..almost. The only real reason that Ruby has gained any popularity in the last few years is Ruby on Rails, a web framework for Ruby. That being said, Ruby doesn't have the standard library of Python and...to be honest, is pretty gosh darn slow. They were talking about a major revamp of the Ruby interpreter to make it not-so-gosh-darn slow, but I'm not sure what the progress on that is. </p>

<p>With that said, it's probably not a bad language to start with. At least something to get you familiar with programming.</p>

<p>So which one is higher or essential for CE : Java Or MATLAB</p>

<p>Both are important. Learn Matlab first. Thats what I recommend. After Matlab learn Java.</p>

<p>The first programming language I learned in my intro to engineering course was matlab. After that we learned some basic java.</p>

<p>I'm a civil engineering major and I'm not sure whether I should take a programming class. If I can't fit it into my schedule, is it absolutely crucial that I take and learn a programming language? or is it something that I can learn on my own? or will I not need to use programming?</p>

<p>I have a MATLAB book on my shelf that I can teach myself with. However, will it looks good on my transcript to have a programming class?</p>

<p>MATLAB is not a programming language, and if you say it is in the professional world you'll get laughed at. MATLAB is a technical application.</p>

<p>What are some things a civil engineer could use a language like java for?</p>

<p>^^haha I know absolutely nothing about programming, my apologies.</p>

<p>maybe I should learn Java or something then</p>

<p>
[quote]
MATLAB is not a programming language, and if you say it is in the professional world you'll get laughed at. MATLAB is a technical application.

[/quote]
</p>

<p>It is so a programming language, Mister Smarty Pants, and you absolutely won't get laughed at. It's a mathematical analysis platform <em>and</em> a programming language, and you can write code in MATLAB (which is specific to MATLAB, so it's not like you're using some other language within the program, even) to solve complex mathematical problems. MATLAB's programming language is a lot like C. In grad school, I had to write a finite element analysis engine in MATLAB.</p>

<p>At any rate, if you learn MATLAB or Java or something... a language that's widely used... then you'll be good to go. Heck, civil engineers still use FORTRAN. It's just useful to learn to <em>think</em> like a programmer, and be cognizant of object-oriented programming and how using modules can save you a heck of a lot of time and energy. </p>

<p>It's a useful but tragically underutilized skill to have in civil engineering-- employers love to see that you know how to program, but they can't figure out how to leverage your abilities so that you get to do something productive... But at least I can talk to our IT staff intelligently, and I know what to ask them when I want them to design computational or management tools for me.</p>

<p>


</p>

<p>I'm not denying MATLAB's power, heck I've used it to write classes -- it is a phenomenal tool. But by standard conventions, it is not a programming language, and I amongst others have been laughed at for citing so.</p>

<p>
[quote]
But by standard conventions, it is not a programming language,

[/quote]
</p>

<p>what are those conventions?</p>

<p>From MathWorks' website:</p>

<p>
[quote]
MATLAB® is a high-level language and interactive environment that enables you to perform computationally intensive tasks faster than with traditional programming languages such as C, C++, and Fortran.

[/quote]
</p>

<p>It's a language. Whoever laughed at you is wrong, too.</p>

<p>MATLAB</a> - The Language Of Technical Computing</p>

<p>Can someone please respond to pierre0913 's post.</p>

<p>at my school all freshman take intro to programming (not a CS course, one of 2 "engr" courses) and it's c++ and matlab. my professor taught c++ first then matlab (not a very difficult transition) at the very end, and i wish we would've used matlab more. it seems much more useful.</p>

<p>so, i would say to start c++/matlab since that's what my school thinks all freshman should have some knowledge in.</p>