Programming, Which Language and How?

Soldato
Joined
14 Apr 2003
Posts
5,716
Location
Leicester
Hi all,

I am sure this has been asked many times before but meh I couldnt find much on search,

What is the best way of learning a new programming language? Books? Courses at a local college?

Mainly I want to learn PHP and MySQL (plus some CSS etc), and something so I could make a few programs that I have ideas for, what would be best to go for?

Heard about C# or C++, any good?

Thanks :)
 
So do you want to learn PHP or C++? If you want to learn PHP then learn that first.

I find a college course helps a lot but it isn't too difficult to teach yourself, plenty of resources online - most important is to try things out rather than just reading.

You can even get the lecture notes and workbooks for a college course for a beginning programming class online which would be good to start with and give you examples to build up through.

I'm personally teaching myself PHP and MySQL at the moment as well, I've just jumped right in to getting a server set up on my home PC and trying things out, it's amazing how quick you can set up a website and start using PHP and MySQL.
 
Last edited:
Depends what you want to do really. I wouldn't recommend diving in at the deep end with C++ as it's a pretty complex language (and is largely unnecessary for the majority of desktop apps).

If you want to write desktop apps, then C# is probably your best bet. You can grab the express edition of VS2008 for C# here:
http://www.microsoft.com/express/vcsharp/Default.aspx

If you want to make websites, then yeah, PHP or Ruby or something is the way to go. I would say Ruby, as it's the better language (in general terms and for beginners), but it's more difficult to find hosts that support it, and it's also more effort to get it running locally. If you're going to try out PHP, then install XAMPP so you can play around with it locally:
http://www.apachefriends.org/en/xampp-windows.html

As for actually learning the language, I've always found books to be invaluable resources, as they are far more thorough and well structured than any online tutorial. This does depend on the language, though, as some are simpler than others, and some will have lots of resources online, etc.

A book isn't really necessary for PHP as it's pretty straightforward and has lots of online resources you can find, but if learning C#, a book would be a huge help.
 
If you want to make websites, then yeah, PHP or Ruby or something is the way to go.
Hey no counting us asp.net developers out :P We have a good language and a really powerful framework! :p

A book isn't really necessary for PHP as it's pretty straightforward and has lots of online resources you can find, but if learning C#, a book would be a huge help.
I strongly disagree. It's no easiler to learn something like PHP than it is to learn C#, in fact i'd argue the opposite if your learning c# you only have to worry about the language itself and text input/text output (console application), with php you have (almost) no choice but to learn the ins and out of html along the way.

Still it depends if your a book person, but there are a huge number of resources on line for both.

akakjs
 
I have my own dedicated server, so that is no problems trying other things :)

I suppose somewhere like the bay might have books (cant check as I am at work) ?

I will reply in depth later on :)
 
Personally I would learn one language first, understand how and why it works. You may find it extremely difficult learning two languages at once. My personal choice would be php and MySQL. Once you've got the ins and outs of it, you can apply your knowledge to learn another language such as C#.

A good book I recommend is Sams Teach Yourself PHP, MySQL and Apache. I used this book a few years back when I was at college and found it extremely useful.

You may want to check out www.w3schools.com. They have a god php tutorial and I find it useful if I want to look something up quickly.
 
You could try learning Python? Very high level language so it could be a good one to start from before moving into the more 'hardcore' languages like Java, C/C++, etc. Although I find Python's documentation sucks
 
Agree with BlackDragon, Python is a VERY underestimated language and one that not only teaches you good programming practices, but is also pretty powerful in what it does.

I was introduced to it a few years ago and only learnt it because I wanted to know what a damn Tuple was!! :D But haven't looked back, very very nice language to know.
 
I also think Python is a good language to start with and is well worth learning whatever stage in your programming career you are at.
 
:) Cool, I will go to the local book shop on my lunch and have a look for some programming books on python :D
 
I don't find courses that useful, and a book (imo) is only useful as a reference once you've learnt the basics and want more in depth help in a specific area.

I learnt through messing around making code and looking at what other people have done. If you run into a problem you can look it up and once you've fixed your code you have learnt more than you would have by following a guide/book/tutor.
However at the very beginning I would suggest an online tutorial which would cover the basics.

I wouldn't recommend something like PHP as first language. Use a good OO language like Java/C# and you will find it easier to move to different languages.
 
Mainly I will be building websites, so PHP/MySQL might be the way forward, on the flipside I really want to look into programming desktop apps etc, and will look into Python and perhaps C# first, I dont really like Java as it doesnt like my PC (Client side) dont know if server side is different?

Things that I can use on my dedicated server on the server side would be good too, but thats a whole other thread
 
Hey no counting us asp.net developers out :P We have a good language and a really powerful framework! :p

Pfft, I prefer more lightweight languages for web development :p The reason I didn't recommend ASP.NET is primarily because hosting is expensive, but also because it abstracts too much of the way a website works and tries to make it work like a windows app, which it fundamentally isn't. This is fine if you understand what's going on, but perhaps not so suitable for a beginner :)

akakjs said:
I strongly disagree. It's no easiler to learn something like PHP than it is to learn C#, in fact i'd argue the opposite if your learning c# you only have to worry about the language itself and text input/text output (console application), with php you have (almost) no choice but to learn the ins and out of html along the way.

The thing about C# is that it's far more complex a language than PHP; there are many features and intricacies it has that you need to understand to be able to use it, whereas PHP is relatively simple. You also need to understand OOP principles if you're to use C# effectively; the same isn't true of PHP.
 
Pfft, I prefer more lightweight languages for web development :p The reason I didn't recommend ASP.NET is primarily because hosting is expensive, but also because it abstracts too much of the way a website works and tries to make it work like a windows app, which it fundamentally isn't. This is fine if you understand what's going on, but perhaps not so suitable for a beginner :)
Agreed. The first thing I did on my last project was totally ignore 70% of the "I'm trying to be a winform" rubbish. However it does have the advantage that you can use the same language for both desktop and web programming. Which is an advantage for those still picking a career path :)
The thing about C# is that it's far more complex a language than PHP; there are many features and intricacies it has that you need to understand to be able to use it, whereas PHP is relatively simple. You also need to understand OOP principles if you're to use C# effectively; the same isn't true of PHP.
To be honest I don't think this is an issue, you can implement stuff like events,delegates and reflection in PHP, and you don't actually have to use many of the OO principles to produce a working application under c#. It won't be pretty, but it will work.

However after looking at it python looks like a good bet as a start language, the only downside will how popular it will be in 3-4 years time, will it suffer from an "over-population" of programmers like Java (mainly entry level guys) or be "forgotten" like foxpro/Pascal/Prolog (which I haven't seen a huge number of job openings for).

akakjs
 
Apologies for the thread hijack. :o But I've been wondering about learning Python for a while now, I'm just not sure what I can do with it. Can I program a proper program like a interface for something? Or is it just for programming etc?

I mean is Python anything like Visual Studio, where I can make an interface?
 
Python is a language..Visual Studio isn't.

To answer your question - Boa Constructor is a pretty good GUI designer for Python, using wxWindows (a cross-platform GUI library).
 
Yes true azteched. I do know that Visual Studio isn't a programming language. ;) What I was trying to say was could I somehow use Python in the same way someone might use VB.NET or C# in Visual Studio. Thanks for your suggestion of Boa Constructor. I will check it out. :)
 
To be honest I don't think this is an issue, you can implement stuff like events,delegates and reflection in PHP, and you don't actually have to use many of the OO principles to produce a working application under c#. It won't be pretty, but it will work.

The thing is, though, that PHP doesn't need things like events, delegates and reflection to work properly; you can do things very simply and still come out with a decent application. C#, on the other hand, is designed make full use of all the features it has, so you need to understand how to use them, otherwise you'll end up with a horrible hack of a program.
 
Back
Top Bottom