What Programming Language to Learn?

If you want a marketable skill, ie to make money, I suggest learning Java or C# as they are the most commonly used languages. They are similar to C/C++ also so you're not wasting your time with them if you end up being a C++ programmer later on.
 
Python is great.
Python is *useful*, dead useful, but for this situation I'd highly recommend starting with C/C++. It's like learning latin; once you get it, you have an excellent starting point for so many other languages.
 
It's really not about learning a particular language as much as it's about learning how to program. But at the same time it's important to start with the right language. Confusing I know.

If you become a programmer, most of what you do will be in a language that descends from C, so start there for sure: C. Then C++ and objects. Game programming will be based on these languages and specialized libraries .

Eventually, after learning and using a language for a period of time, it will be easier to learn a second language, because you will understand very well what all programming languages basically do. (variables, constants, math, functions, methods, objects, decisions, loops, etc.)

For business "enterprise" programming: Java or .NET (mainly C#). It also depends on what companies in your area are using. (these are C/C++ based languages)

For internet programming: JavaScript for client-side programming and PHP for server-side programming, for sure. (Again, C/C++ based languages) There are other good ones, but these are basic. Definitely stay away from ASP.NET at first, maybe even later. ASP/VBscript is ok, but hasn't been updated. (VBscript & VB.NET are not C/C++ based.)

While there are some good self-study books that you can learn from, consider enrolling in a community college, if available in your area.
 
It's really not about learning a particular language as much as it's about learning how to program.

This is 100% correct. I programmed in Visual Basic 6 and then Visual Basic .Net for almost 10 years, and this summer I got a job doing C#. I picked up the new language in only a few weeks and I am now just as profficient in C# as I was with VB. Knowing how to think, solve problems, and having a good grasp of programming fundamentals is much more important than which language to start with.
 
I recommend a high-level language to learn fundamental concepts of programming, then a low-level language to really learn the ins and outs.

I started with Matlab, and am now learning C. I heartily recommend C as a first real language. The support base for it is fabulous, and there's all sorts of great open source projects you can dive into for learning. Once you learn C, your knowledge can quickly be adapted to C++/C#/Obj-C, Java, PHP, etc. Ruby is also an excellent high-level/scripting language if you'd like something that gets you quick results.
 
What is a good open source project for learning C, Inorganic?
 
I know Java is really nice because it's cross-platform, however I've also always heard it's much, much slower than C languages.

Much, much slower is not the case. It was before Sun made a good JIT. A JIT is a "just in time" compiler. It compiles Java byte code into native machine code when you launch the program. On a large program this might take a while, but after that you are running native machine code for the most part. If you want you can read about the -client and -server options for running a Java program (type "man java" in linux if you have a linux box).

I would pick C or Java to start out with. C is closer to the hardware. You can even do assembly language in C if you want (including the latest SSE instructions and what not) but that is a ways down the road.

Java can run in web browsers. It is also "Object Oriented" (or OO). I'll give you an example of an object. Suppose you have a bicycle in you video game. This bicycle can be an object (with a name like myBike). Since it is an object it has its own variables for things like color, type of tires, current gear, etc... and it can have its own methods for things that affect it. So the object might have a method called changeGear(int gear). Then we would say myBike.changeGear(4); which would change myBike's current gear to 4. To create the object myBike in the first place we just say Bicycle myBike=new Bicycle(); Thinking in terms of objects helps organize things a little better.

If you are really good at math an like hard creative math problems, then I would start with C. Learn basic C and some sorting algorithms and understand Towers of Hanoi, and then write programs to do things like find the Convex Hull of a set of points, or find the longest increasing subsequence in a set of integers. Then rewrite these programs to run in a fraction of the time of your first implementation. Then switch to Java (see below).

If you avoid math, even the most interesting problems, then start with Java. Learn the basics. Then learn how to make an applet with some simple graphics. Then learn how to use the NetBeans user interface creator (it's exactly like Visual Basic if that helps). To do this in NetBeans, make a new JPanel file. Then set the content pane of your applet to the JPanel (this is like 2 lines long an easy to find online). Once you can make a pretty little applet with a user interface that can be accessed from anywhere, the sky is the limit. You can read about web services, data bases, java script, whatever.

Hopefully all of this helps.
 
Okay, it has been almost a month, which programming language(s) have you learned?

I learned coldfusion... only because I had to.
 
What is it that you're looking for?

This is why it's important to know the fundamentals. After that point, learning a new language doesn't take very long at all. You just learn different ways to express the same ideas.

QFT. Once you know fundamentals the rest is just learning the syntax and oddities.

You can acquire the most habits by learning Perl first. :D

From my perspective, the world needs better Java programmers. Go with that.
 
Id go with java, C# is too limiting and its not nearly as open, C is too old and is not object oriented. Most of the applications on the web are using java frameworks with XML, JSF, etc.

Theres nothing wrong with C, but it is much more error prone due to having to deal with pointers, small API, and tones of code to re-invent the wheel etc. C++ isnt truely object oriented either. C/C++ is faster but if speed is a concern look into assembly language and you will see why often speed is not as much a concern as usability and re-usability.

Most of the web applications I work on use some form of java, an app server like Websphere or Jboss, and something to link the front end link to the back, like struts or JSF etc.I learn something new every day even now so Java isn't all that easy, just easy to build up on. Theres alot more to learn than the basics.

Maybe you can pickup Perl or PHP on the side as you start converting older web apps over to newer technology like I'm forced to.
 
I wouldn't call a factor of 2 "much, much slower". And a factor of 2 seems to be the most accurate when you average all the benchmarks on the web together.

For those interested, check out the Runtime and Performance sections at http://en.wikipedia.org/wiki/Comparison_of_Java_and_C++. They don't give numbers but they explain a few things.

"This article or section contains weasel words, vague phrasing that often accompanies biased or unverifiable information. Such statements should be clarified or removed."

Since I don't have time for a thorough post, here ya go:

'The Java Faster than C++' Benchmark Revisited
 
Late to the thread but I had a question for you guys. I've been tossing about the idea of switching my major to MIS, I'm not far off from my AA and would have to add a couple business classes to get into the program at uni. Is there a practical application for programming knowledge for someone going into this field (personal joys aside)? I played around with C yeeeears ago and it was really fun, but I gave up on it after highschool. If my post sounds ignorant and like I know little about MIS it's because I don't and I just started looking into it so don't yell at me like it's a dumb question :(
 
Late to the thread but I had a question for you guys. I've been tossing about the idea of switching my major to MIS, I'm not far off from my AA and would have to add a couple business classes to get into the program at uni. Is there a practical application for programming knowledge for someone going into this field (personal joys aside)? I played around with C yeeeears ago and it was really fun, but I gave up on it after highschool. If my post sounds ignorant and like I know little about MIS it's because I don't and I just started looking into it so don't yell at me like it's a dumb question :(

It has been my experience that if you are getting into the MIS (or Information Decision Systems, Management Systems, etc... they have a few different titles for this field) field then you will be asked to take a programming class. I have gone through 2 universities now and each of them has had a programming requirement. My first was San Diego State University (all jokes aside) and they required VB .Net as a core class and had JAVA as an elective. Now I am at the University of South Alabama and have found they have a requirement for the MIS students to go through JAVA. I'm personally taking there IT program and am finding out they are requiring introductory JAVA and advanced JAVA as a core component to the degree - I can see the reasoning but am not very happy with it as I do not feel I am a developer.

Your school should have the information online somewhere of what the programming language you will be taking should be. If it doesn't, don't hesitate to email their department dean and ask - they will respond.

hope this helps
 
Late to the thread but I had a question for you guys. I've been tossing about the idea of switching my major to MIS...

Remember you don't NEED to be in MIS to program, I have known many people who have either no degree or a degree in an unrelated field, who were still decent programmers. For instance, my boss' boss has a BA in something related to video; he programs all day long.

When I was a kid, my parents had me take Basic and C programming courses (nerds breed nerds, who would have thought); I took one Introduction to Programming course at a community college, back in 1995; now I work as a Web Application Developer and I program as well as anyone in the group I work with. I just rewrote some spaghetti code, in Perl, from another developer, I refactored a considerable amount of his work and wound up cutting the code down about 450 lines. When I told him, he ran off to "check" my work, he only found one bug.

Want to learn how to program? Make up a project and do it, don't worry about the language, just pick one and do it. Google for tutorials on whatever language you want to learn, read them and read them again. Hit the forums, when you need help, I frequent the DevShed Forums, ask good questions and try to answer other peoples' questions.

You're never going to get anywhere if you spend all of your time listening to people who say that their programming language is the best or that you should really learn something over something else. Is Java better than C? Should you learn PHP instead of ASP? Who cares?!? ...Adaptability is really the key, learn C then learn Java or vice versa or don't learn either! If you're interested in a particular field, such as Unix/Linux SysAdmin learn C & Perl; if you'd be more interested in web work, pick up PHP and JavaScript. Remember you can also do a job in which you wear multiple hats; I do some general SysAdmin work in my job, though my title says that I shouldn't.
 
Want to learn how to program? Make up a project and do it, don't worry about the language, just pick one and do it. Google for tutorials on whatever language you want to learn, read them and read them again. Hit the forums, when you need help, I frequent the DevShed Forums, ask good questions and try to answer other peoples' questions.

This is exactly right. I'm going to school for MIS as well. I happen to be in a C# class. I like it a lot, but that's all windows based stuff, and it moves slowly. I'm really interested in the Web Development aspect as well. So what am I doing? Using my free copy of VS 2008 Professional from Microsoft, and came up with my own project. It's going to be something stupid and simple, but I am going to implement all of the important features that are in ASP.net. Each piece at a time. asp.net website has a lot of great tutorials and information. I happen to be watching a SQL video right now, and am working on my project at the same time doing the exact same thing the developer is doing. That is the way to do it, rather than download their code that was used in the video.

Step by step..
 
Oh and don't forget some tutorials are wrong or outdated. Another good thing to do is keep a basic blog of tips and tricks for yourself. Any time you run into a problem which takes you more than 30 minutes or so to figure it out, just make a new blog entry. This will keep you from having to search for the answer again, the next time you run into it. I can't remember how many times I've though, "I know I've run into this problem before .. where the hell did I find the solution?!?"
 
Oh and don't forget some tutorials are wrong or outdated. Another good thing to do is keep a basic blog of tips and tricks for yourself. Any time you run into a problem which takes you more than 30 minutes or so to figure it out, just make a new blog entry. This will keep you from having to search for the answer again, the next time you run into it. I can't remember how many times I've though, "I know I've run into this problem before .. where the hell did I find the solution?!?"

And this is exactly what I plan on doing for myself too! Even if they aren't 'published' at first, keep track of the problem and what you did to fix it to talk about it later.
 
Learn whatever gets you a solid job.
After that you can study whatever you want.
After you start programing you get into the right frame of mind and then different languages are only a matter of some syntax.
I would go for an Object Oriented language. Java seems fine, as is C++ (which is a bit harder at first) and C#.
Good Luck.
 
Remember you don't NEED to be in MIS to program, I have known many people who have either no degree or a degree in an unrelated field, who were still decent programmers. For instance, my boss' boss has a BA in something related to video; he programs all day long.

Well I wasn't really setting out to program for a living, I just decided MIS would be a better way to finish off my degree than the path I was on before. I just figured if it would be worth it to know then I'd play with it when I had some down time here and there and get a feel for it etc. I've read enough posts to understand the language doesn't really matter so I would just go back to C where I started before.
 
Back
Top