What would be a good first programming language to learn?

What version? The programming language has changed with each edition of Microsoft's software. If it's for express 05 or 08, you can download the correct software free from MS's visual studio website. If it's for the full version of 05 or 08, express is similar but with some less features. Apart from that it might not be any good.
 
Python a very good starting programming language from what I've heard.

Agreed. In addition to that it's also a very good programming language in general.

Python has rather simple and logical syntax so it allows beginners to focus on programming instead of language specific peculiarities. There should be a lot of free tutorials and guides all over the net. Because Python wasn't my first language I never needed a beginners book for it but I've heard this one is good.
 
What version? The programming language has changed with each edition of Microsoft's software. If it's for express 05 or 08, you can download the correct software free from MS's visual studio website. If it's for the full version of 05 or 08, express is similar but with some less features. Apart from that it might not be any good.

It's 5.0. :)

thanks everyone.
 
I also recommend Python, it's very easy to learn. As for books, get a good beginner book, a book about GUI toolkits (Tkinter, wxPython etc) and Python Cookbook
 
It depends on the type of programming you want to do.

If you want a high level, easy first language then Visual Basic or C#.

Personally, I'd rather go with either C++ or Java. Both are industry standards that aren't going away anytime soon. The added bonus is that there are free developer tools for both of them. Java is the simpler of the two and there's the eclipse IDE.
 
I've given this a lot of thought over the last few months.

A good programmer has many languages at his fingertips, and he will use whichever is appropriate for the task at hand. But to get to that point, one must learn to think in 'programming', not just in a specific language. "Programming' is the language of problem-solving. "How do I make this work? What process is needed to do this job?" This ability is greatly colored by the first programming language you really learn.

C++ is probably the worst language to use for an intro to programming. If you don't already have programming knowledge, it can send you screaming back to non-programming.

Java, while easier to learn, doesn't really teach "programming". It teaches how to hook together 'black boxes' to produce a result, but it doesn't teach you what really goes on, what programming is really about. It's a little like HTML in that respect. ;)

BASIC, and its derivatives, can teach you poor habits. Visual Basic has the added problem in that it guides you to thinking that the MS API is the way to solve problems - again a 'black box' approach that has little bearing on real programming.

Pascal was an excellent teaching language. That's what it was designed for. Unfortunately, it has fallen out of favor, partly because it can't be used to write 'real' programs, partly because its 'real' programming superset, Ada, is considered too heavy, and just not as 'sexy' as C/C++.

There's a bunch of other languages out there (Perl, PHP, Ruby, etc.), but most of them are not really acceptable for a first language, even though they may be powerful and good tools in their own right.

Probably the best current first language is Python. It has a fairly simple syntax, yet is quite powerful. As you learn it, you also learn what is going on 'behind the scenes', which can help you when you learn a different language. Understanding what goes on at a lower level also helps in problem solving; you learn what not to do, and why.
 
I've given this a lot of thought over the last few months.

A good programmer has many languages at his fingertips, and he will use whichever is appropriate for the task at hand. But to get to that point, one must learn to think in 'programming', not just in a specific language. "Programming' is the language of problem-solving. "How do I make this work? What process is needed to do this job?" This ability is greatly colored by the first programming language you really learn.

C++ is probably the worst language to use for an intro to programming. If you don't already have programming knowledge, it can send you screaming back to non-programming.

Java, while easier to learn, doesn't really teach "programming". It teaches how to hook together 'black boxes' to produce a result, but it doesn't teach you what really goes on, what programming is really about. It's a little like HTML in that respect. ;)

BASIC, and its derivatives, can teach you poor habits. Visual Basic has the added problem in that it guides you to thinking that the MS API is the way to solve problems - again a 'black box' approach that has little bearing on real programming.

Pascal was an excellent teaching language. That's what it was designed for. Unfortunately, it has fallen out of favor, partly because it can't be used to write 'real' programs, partly because its 'real' programming superset, Ada, is considered too heavy, and just not as 'sexy' as C/C++.

There's a bunch of other languages out there (Perl, PHP, Ruby, etc.), but most of them are not really acceptable for a first language, even though they may be powerful and good tools in their own right.

Probably the best current first language is Python. It has a fairly simple syntax, yet is quite powerful. As you learn it, you also learn what is going on 'behind the scenes', which can help you when you learn a different language. Understanding what goes on at a lower level also helps in problem solving; you learn what not to do, and why.

I've been programming since the mid-90s. I started with Apple Basic, then went to Pascal, then to COBOL (yuck!), then to C++ and Java. I probably really first learned how to program with Pascal.

The first steps are to learn the fundamentals of programming, in which case, Python or C++ are good enough for doing that. Python is interpreted and C++ is compiled into machine code. There are numerous tutorials on them. Java can be used to teach the fundamentals but you have to ignore the libraries at first. IMO, nothing beats C/C++ in terms of efficiency for general purpose programming. You can achieve amazing results with C++ templates, if you know how to use them.
 
BASIC sucks, for a beginner I'd recommend Python or C# or Java. Learn C if you know how computers work. C++ is hard. Not recomended for beginners. If you know C && (Java ||C#) though, check it out.
 
To those that say BASIC teaches bad habits:

BASIC simply allows a programmer to get away with laziness. On the other hand, it also allows the creative mind to get on with the job rather than being too anal. I do believe that a continuing programmer will need to grow out of this eventually but if they are serious, they will. I think the idea of a beginners language is not only to teach good habits but to allow people to get interested. Perhaps the best programmers need to dive in and get their heads underwater early as they can handle the steeper learning curve, but some people will respond better to one or the other, or maybe a blend.
 
I used to be able to program a bit (I think I was 11 or 12) but I forgot everything since then. Including which programming language it was :lol:

What would be a good one for a beginner? I do know a bit of HTML. I'd just like to create simple programs -- for example, I mentioned one here that I would like to re-create.

thanks.:goodjob:

Java.

Here's something fun I did in Java:
http://cctg.us/~alex/mathart/
 
C++ is probably the worst language to use for an intro to programming. If you don't already have programming knowledge, it can send you screaming back to non-programming.

I think it depends largely on what your expectations are going in. Most of the people I know that had trouble learning C++ tended to be hoping for something that would let them jump in and quickly do fairly complex things (at least in terms of GUIs and so on), rather than taking the time to learn the "boring" details of a complex language like C++.

Gaining a solid understanding of C++ is like earning a black belt in karate. When you're done, you can kill with your bare hands... but you must invest considerable time and energy to get there, so that you learn to responsibly wield the the great power you come to posess.

:D
 
If C++ makes you run from programming, then you probably don't really want to be one badly enough. C++ is to programming what English grammar is to writing. If you don't want to learn grammar then you'll make a lousy writer. If you fail to learn C++ (or something similar) then you probably won't amount to much as a programmer.
 
I've given this a lot of thought over the last few months.

A good programmer has many languages at his fingertips, and he will use whichever is appropriate for the task at hand. But to get to that point, one must learn to think in 'programming', not just in a specific language. "Programming' is the language of problem-solving. "How do I make this work? What process is needed to do this job?" This ability is greatly colored by the first programming language you really learn.

C++ is probably the worst language to use for an intro to programming. If you don't already have programming knowledge, it can send you screaming back to non-programming.

Java, while easier to learn, doesn't really teach "programming". It teaches how to hook together 'black boxes' to produce a result, but it doesn't teach you what really goes on, what programming is really about. It's a little like HTML in that respect. ;)

BASIC, and its derivatives, can teach you poor habits. Visual Basic has the added problem in that it guides you to thinking that the MS API is the way to solve problems - again a 'black box' approach that has little bearing on real programming.

Pascal was an excellent teaching language. That's what it was designed for. Unfortunately, it has fallen out of favor, partly because it can't be used to write 'real' programs, partly because its 'real' programming superset, Ada, is considered too heavy, and just not as 'sexy' as C/C++.

There's a bunch of other languages out there (Perl, PHP, Ruby, etc.), but most of them are not really acceptable for a first language, even though they may be powerful and good tools in their own right.

Probably the best current first language is Python. It has a fairly simple syntax, yet is quite powerful. As you learn it, you also learn what is going on 'behind the scenes', which can help you when you learn a different language. Understanding what goes on at a lower level also helps in problem solving; you learn what not to do, and why.


I'm afraid i have to disagree on a number of points:

1. It's true that C++ is a fairly unpleasant language to learn, but doing so teaches you more about implementation and computer architecture than most other languages besides Assembler. The reason why i would recommend against it, is what Speedo hinted at:
It is a very powerful language and allows you do to very foolish things. Starting out with C++ will probably result in coding habits that will make software designers weep in despair.

2. Java is much stricter in that aspect and forces your adhere some basic design principles. While it is true that you don't have to fully understand each component you use, this doesn't mean that you'll learn less than you would by choosing another language.
That's because Java's focus is on architecture and design, something which think is at least as important to learn as efficient implementations of algorithms. You need both, of course, but the later can be compensated for by hardware and is easy to improve, while the former is a pain to change once you've started on a project.
 
I think it depends largely on what your expectations are going in. Most of the people I know that had trouble learning C++ tended to be hoping for something that would let them jump in and quickly do fairly complex things (at least in terms of GUIs and so on), rather than taking the time to learn the "boring" details of a complex language like C++.

Gaining a solid understanding of C++ is like earning a black belt in karate. When you're done, you can kill with your bare hands... but you must invest considerable time and energy to get there, so that you learn to responsibly wield the the great power you come to posess.

:D

With that line of reasoning assembly would be the way to go:lol:

In my opinion c++ is like hunting for squirrel with a bazooka 99% of the time it's extra "power" is going to be a much bigger hindrance than a blessing.

If C++ makes you run from programming, then you probably don't really want to be one badly enough. C++ is to programming what English grammar is to writing. If you don't want to learn grammar then you'll make a lousy writer. If you fail to learn C++ (or something similar) then you probably won't amount to much as a programmer.

Not necessarily there are a number of people who don't like c++ as a language especially as a learning tool.
 
LOL yes, writing a text adventure in assembly would be like doing a 5,000 piece jig-saw puzzle......starting out with a tree, some paints and brushes and a saw :lol:
 
LOL yes, writing a text adventure in assembly would be like doing a 5,000 piece jig-saw puzzle......starting out with a tree, some paints and brushes and a saw :lol:

I have to agree. Aside from writing drivers, embedded software and compilers there's seldom a real need for developing in assembly language. It's still good to know it because it's useful for doing debugging and optimization.
 
C++, Python, and C#.

C++ is more difficult than some of the others but by the time you are done you will learn some very important concepts and skills. I don't think it develops bad habits. On the contrary it makes you deal with programming issues that you might otherwise be unfamiliar with. Also, when it comes to getting a job it is very marketable whether you want to work in a Microsoft environment or outside of one.

I think Basic is a bad first language. It teaches poor habits and I think the syntax is a bad thing to get used to when you don't have experience.

Some other good ones would be Python and C#. People that don't like MS platforms might disagree with C#, but it's a good language. It eliminates some of the drawbacks of C++ by default, but gives you the option to use them if you choose to. I really don't see a large problem with people going from C++, Python, and C# no matter which the choose first and they are all very useful in the work place.
 
With C++, you can get bad habbits especially if you don't do a design before you start on your program. It's easy to produce "write only" code (i.e. code you can't read and is difficult to understand), especially if you use advanced features like templates.

I think I've already recommended Python and C#. Java is OK as well.

If you are weird, LISP might be fun to try as well.

Of course if you just want to develp a text adventure game or a point and click adventure there are probably many free tools on the internet to do just that.
 
Most of the C++ I've worked with over the years has been 'read-only'. ;) (I just hope that what I wrote isn't perceived as such....) C++ is very powerful, and is also quite complex. To "do it right", to master it, is not what I would wish on a new programmer. Learn "how to program" first. Then, if and when you need that power, C++ will be waiting for you.

C# (and .NET) is just MS-Java. MS only invented it when Sun didn't roll over and let them have free reign over Java. I'm not saying C# is bad, just that it's really Java done the MS way.

ParadigmShifter said:
If you are weird, LISP might be fun to try as well.
:lol:
Having done my share of Lisp, I can agree that you've got to be a little off to use it! (And I have frequently been accused of that!) :D
 
Back
Top Bottom