Looking To Learn Some Programming Languages

Thank you all very much for your thoughts, suggestions, and links

Please start with anything but PHP; thanks.

So many haters, so little results…

There are enough tutorials that can help you out. There is a lot of example material that you can (ab)use for your own projects.
If designing and controlling databases is a problem, then try something like PHPRunner.

PHP is also far easier to pick up than something like C or C++ which is far more strict than PHP.

In my world, strictness is a good thing… compared to C++ or Java, VB is a horrible mess where syntax-wise you can do this and that… but you don’t really have to…

It’s ugly.

Just my two 0.02€…

While it might be true you wont make a program like Renoise in VB or PHP those are still not that bad languages to start with. Imo you learn the basics.

But ofcourse it depends on what you want to code… want to code bleeding edge games, then java might not be the best of choises, but overall i prefer managed languages such as Java or C#. C++ is “sort of okay”, but things can get really messy really quick since you have so much “control” (wich i feel translates in lack of control after awhile :P).

You should learn this because I learned it this way.

so, exactly what does that imply ?


Especially if you’re interested in making games.

At the risk of infuriating the “real” programmers around here. There are a couple platform independent versions of Basic out there. freeBASIC or realBASIC.

Why infuriating? Most people in my generation learnt programming with BASIC :)

At school I had to look at lisp and I hated it, but considering Renoises current xml schemes it might be an idea to look into this again for some list manipulations.

I work as a programmer and have done so for almost a decade now. I started programming as a nine year old boy 22 years ago and have programmed in a wide ranges of languages from pure assembler to simple basic. Through the years I’ve met a lot of programmers out there, both good and bad and I have also seen many junior programmers going form juniors to seniors. The question is of course: what goal do you have with your programming? Are your goal in the end to write full fetched programs and to be a real hardcore programmer, or are your goal just to play around and do some small things?

If you just want to play around and do some easy scripts that solves small everyday problems, then you can go for an interpreting script language, like php, javascript, pearl, ruby or whatever.

If you plan to be serious about your programming though I do not think it is very good to start with such a language, these type of languages are very loose, non strict and often not type safe nor strongly typed. To learn programming with such a language will most likely get you into mind loops and bad practices that will later be hard to wean from later, and even if it is probably the easiest way to get started it is in my option not a very good start.

If you want to learn to write good code following best practices it is often best to use a strict language that force you into some behaviors. Choose a compiling non-interpreting language, in that way you will find many of your errors in compile time instead of in run time which will save you lot of time. Even if your goal is to write full fetched applications in the end, do not start with C++, C++ is often very unstrict (and to be honest I think it is very ugly in some situations) and just like the non-interpreting languages mentioned above it will let you do things i bad ways before you learn how they shall be done good. The unstrictness of C++ is of course also it’s strength, cause you can do principally everything with it, but is also it weakness because it let you do everything in every possible bad way you can think of.

So, what is my suggestion then? I would say, start with either Java or C#, both those languages are very strict. I often don’t like very much that comes from Microsoft, but I have to say that C# is a very good language! And if you use the Mono Project (http://www.mono-project.com/) you can run your C# applications on other platforms than just Windows (Linux, Mac, Solaris etc). C# is like a combination of the good things from both Java and C++, you can actually do the most things in C# nowadays, so I strongly recommend it.

But remember, it is not just the language that is important when you learn to program. When you become a very skilled programmer, the language is just a matter of syntax, the real skills lies in how you think. To become a good programmer you have to learn data logic, algorithm theory, object orienting, design patterns and so on. I do not know about any beginners literature in programming, but when you gets a little experience I suggest that your read the books Effective Java by Joshua Bloch (this is good literature even if you are not a java programmer) and Head First Design Patterns by Eric Freeman for example… Besides that, use the net, it is full of resources, wikipedia for example has lot of good articles about design patterns and such…

When you gain experience you will later have no big problems to switch between different similar languages (for example between java, c# and c++) so as I said before, it is better to begin with a more stict language and then move out to a more unstrict one, in that way you will learn faster and do less mistakes.

Good luck. ;)

Jen-Hsun Huang (NVIDIA CEO) interview on the Charlie Rose Show. [insert fascinated smiley]


Doesn’t this thread belong in Off Topic?

i’ve just started a university course and they’ve decided to make us learn (deep breath)

html, css, javascript, perl, php, aload of sql stuff, actionscript, mel and java all in the first year.

seeing as most of the course are just 18 and completely new to scripting/coding i’d sasy this was a little bit much to get your head around all at once - and it is, the useless bastards…

anyway - apart from the web stuff i find java the easiest…

Don’t most General threads belong in Off Topic?

… and for that matter, don’t most Off Topic threads belong in General?

I agree on Actionscript as a first approach, 'cos it gives u some idea on structures, data handling and object oriented coding. And u can have good graphic results very fast (iso games, physic experiments, even web-games for the wii, yayyyyyyyy).
Python is a great great script lang, I love it (it promises greatness starting by the name ;) ) but still a script one (hey, if im not too rusty, I remember u can make OpenGL apps too with it!!!)

Java is huge, fashinating and, YES, multiplatform!!! With it u can tell a machine to do almost everything, but not every-thing.
C++ is the must, if u like to create complex or fast or both apps, or games. Obviously if u are trying to create something with a high control on every aspect of its production.

As always, as in any situation: it depends on your starting point, but also on what u want to do. And it varies a lot.
I dont believe that one has to know C++ in any case, as I dont believe that one has to use some million-dollars-equipment to produce good music without other chances (yah, punk is not dead!!! xD ).

I started learning c++ a few weeks ago. I totally LOVE it. I can’t make it do ANYTHING AT ALL yet, but I am still loving it.

Well, I managed after about 3 hours to figure out how to compile the standard “hello world” script. Beats AMOS any day of the week (what am I talking about, of course it doesn’t.)

I would say, if someone just wants to look at first if programming is the right thing, then go with the OLDSCHOOL Basic.
Its very easy and It a lot of fun.
I remember doing so years ago, now I try to get into C++ and its more frustrating to learn it, cause there is much to learn about it.
This is maybe the fourth time I try to learn it and I hopefully do succeed :D