| New Reply |
useful programming languages to learn? |
Share Thread | Thread Tools |
| Dec31-12, 12:46 PM | #18 |
|
|
useful programming languages to learn?Consider another idea: Maybe you can think of programming languages like this: a few have become well-adapted (analalgous to Natural Selection and Adaptation) to particular niches. Example: C is mandatory if you want to do UNIX system programming or UNIX/Linux kernel development. COBOL is likely never going away, no matter what you may think of it. These niche languages are not likely to fade away because MEL is cooler'n all-get-out, or Numpy is your idea of perfection because GSL sucks, and Mathematica and Maple cost too much. There has been a proliferation of programming tools, languages, and dialects. Some new entries will fade, others will find a niche and become another de facto standard. to the OP: Pick a language - one - that has been around for a while. Learn that really well. You would far better off longterm to pick a language that has a standards group (e.g., ISO) behind it. |
| Dec31-12, 01:51 PM | #19 |
|
|
The main advantage to knowing multiple languages is that you can read source code for programs you use more easily. For computational biophysics, you'd probably beniefit a lot from knowing fortran, as I imagine a lot of the heavy-duty codes you'll be using are written in it. Python and C are also common in computational physics.
|
| Dec31-12, 01:59 PM | #20 |
Recognitions:
|
A lot of the advice in this thread amounts to "I think you should learn my favorite language" (or even "I think you should learn the only language I've ever used").
It doesn't matter much what language you start with, because if you do a significant amount of programming you will soon have to learn another one. And another. And another. In 30+ years of programming, I've learned and used at least 20 languages, and I've forgotten almost all the "trivia" about most of them. The question "which language should I learn" is a bit like "which make of car should I learn to drive in". Unless you choose a Model T Ford, or an F1 race car, the answer is "it doesn't really matter". |
| Dec31-12, 03:40 PM | #21 |
|
|
| Dec31-12, 05:18 PM | #22 |
|
Mentor
|
Let me agree with those who argue that you want to learn to program more than any particular language. There are already plenty of people out there who can write bad code in a dozen languages. Python is a very forgiving language. That's its strength and its weakness. Learning another language which is less forgiving, such as C++ or even Scheme (just because your father suggested it doesn't make it wrong) will help. What will help more is understanding data structures. |
| Jan1-13, 06:37 AM | #23 |
|
|
Yeah, I'm messing around with scheme here and there since I find it to be such an unusual programming language. There is a scheme compiler which compiles it into C which my pop swears by: http://www.call-cc.org/ so that could be a good way to kill two birds with one stone.
It's interesting, as I learn both python and scheme, I find that learning something new in scheme provides me with a new way of thinking about python, although not as much in the reversed direction. |
| Jan1-13, 03:18 PM | #24 |
|
|
There are a couple of websites that attempt to provide popularity rankings for programming languages:
http://www.tiobe.com/index.php/conte...pci/index.html https://sites.google.com/site/pydata...mming-Language Both indexes agree that (currently) the most popular languages are: Java, C, C++, and C# Other languages that rank high on both indexes are: PHP, Python, Visual Basic, Perl, and Ruby |
| Jan3-13, 10:45 AM | #25 |
|
|
Additionally, if you are a good C++ programmer, you know how the C++ constructs can be implemented or emulated in C. Then you can also program decent C, so learning C by itself is technically redundant. The reverse is not at all true. Note also that in many situations where C is chosen over C++ in new projects, the main reason for doing so is not technical: Often it is a deliberate choice to avoid the constructs C++ gives you, because they can be abused or turned into undefined behavior very easily. In C++ it can be much harder to see what exactly is going on under the hood. A very important point in kernel development---but not in scientific computing for the largest part of the code. |
| Jan3-13, 10:59 AM | #26 |
|
|
Scheme (and maybe even more so common lisp with its CLOS) are very powerful languages. But while they may seem unusual and lead to new insights into how things can be done, it often turns out that these other ways of doing things are more or less equivalent to the imperative way of doing things. For example, classes can be implemented in terms of closures, but also closures can be implemented in terms of classes. Or tail recursion and iteration can be implemented in terms of each other. This even goes down to intermediate representations of the code, where the static single assignment form of a program (often used in compilers for imperative languages) can be shown to map to the continuation passing style used in compilers of functional languages. Of course, not all things are equivalent, and even if they are equivalent, one way of thinking about a problem may still be more natural or lead to better solutions than a different one. This is why it is helpful to know a set of different languages. If you can warm your heart for scheme, then this is a good one to continue. |
| Jan3-13, 11:23 AM | #27 |
|
|
| Jan3-13, 11:29 AM | #28 |
|
|
|
| Jan3-13, 12:50 PM | #29 |
|
|
| Jan3-13, 11:01 PM | #30 |
|
|
Since I am one of the younger members here, I'll chip in what I can on what's hip.
Python is a very good language to start it, it is dynamically typed making it very easy to use. The default Python IDE is very user friendly, and I found Python very nice when designing GUIs, performing my hobby cryptanalysis among various things. There is also another language called Processing, which is amazing. It is basically Java with a very strong emphasis on computer graphics/animation/game design. So if you like to design a game to improve your programming, I would recommend it. Like Python, it is free also. However, Processing, unlike Python, is statically typed, making it a bit harder for noobs to work with. Both Python and Processing are OOP, so they have huge advantages over the non-OOP languages. But do not learn OOP until you first learn basics like the "if","for","while" etc. and the methods,functions,modifiers etc. To grasp Python, try Michael Dawson's "Python Programming for the Absolute Beginner". So start with Python, design a game on Processing if you can, then learn more languages. It's more important you learn about the different data structures, data types and different types of algorithms than it is about knowing the nuts and bolts of a multitude of languages. Also, programming is a skill that should be practiced every now and then to make sure the skill does not wear out. So do something creative or useful to keep yourself sharp. BiP |
| Jan3-13, 11:37 PM | #31 |
|
Recognitions:
|
From Bipolarity,
|
| Jan4-13, 01:06 AM | #32 |
|
|
BiP |
| New Reply |
| Thread Tools | |
Similar Threads for: useful programming languages to learn?
|
||||
| Thread | Forum | Replies | ||
| About programming languages. | Career Guidance | 17 | ||
| What languages to learn for Game Development? | Career Guidance | 8 | ||
| Which programming languages might a physics major learn and why? | Academic Guidance | 28 | ||
| Useful languages to learn in college | Academic Guidance | 5 | ||
| Programming Languages | Programming & Comp Sci | 19 | ||