By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - General Discussion - I want to start learning programming. What should I start with?

It really depends on what type of programming you're interested in. If you want to get into web-based programming, then scripting languages like PHP, Javascript, HTML(maybe even CSS) etc. are helpful and easy to learn. If you're hoping to get into application based programming, then stick to Java or C/C++ to begin with.

I agree with John, a data structures book is helpful, albeit a bit dry. You can find a lot of beginner documentation on any of the various languages online. Alternately, if you wanted to drop a few bucks, you could get a good starter book at a Chapters or other related book store in your region.



The only teeth strong enough to eat other teeth.

Around the Network
Game_boy said:

routsounmanman said:
For little programs doing basic to medium things I'd recommend
Visual Basic ( easy to use yet quite powerful ) or C# For games Java or Flash ( for web games something like my signature )


No no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no.

All of those languages have proprietary implementations, so either you slave yourself to Microsoft Windows (C# and VB) or a virtual machine (Java*, Flash*) that you can't see the workings of. It might not be so bad now, but when you're locked in in the future and that's all you know you will have a problem.

*You could use IcedTea and/or GNU Classpath.

*That includes Silverlight or Shockwave.

Use Java just to learn how to program and make pretty colours, and then use C++ and an OpenGL abstraction like SDL as a precursor to full OpenGL programming.

Don't ever use WinAPI or DirectX.


I said Flash only if he wants to make web-based games, as there's practically no competition ( except Java ).     I also said Visual Basic because he said he wanted to make simple programs, so it suits. He obviously isn't going too serious into this :/

Lastly being a "slave" to Windows is no biggie; he probably won't make programs for other operating systems and the Flash player plugin is free and widely used.



Being a slave to windows would be a problem if Windows didn't already overwhelmingly dominate the PC market, so I don't see where the negative comments come from. If you're going to make games, you're not making them for Linux or Mac, you're making them for Windows....



The only teeth strong enough to eat other teeth.

hibikir said:
Starting with C++ today is lunacy: There's too many complicated subsystems to learn at once.

Start with a scripting language, like Python or Perl. You can learn procedural programming basics without worrying about the details. It also doesn't tie you down to one platform, like visual basic does. My Perl code runs the same way in Linux, Windows and OSX. Go do that with VB.

Make sure you try to do something other than your typical 50 line exercises though: There's many things that are perfectly fine in small little programs, but would cause immense trouble on 50,000 lines, and make 500,000 lines impossible. You don't want to learn bad habits.

You don't have to learn all of C++'s subsystems all at once.  It's just as easy to start slow with C++ as in any other strongly-typed language; I started with it, and I didn't encounter any roadblocks to learning programming concepts.  In contrast, I think starting with C/C++ is a very good way to build extensive programming knowledge because you eventually will have to learn memory management, pass by pointer/reference/value, etc.  It's important to understand how the computer will process your code, and C/C++ is the best language for that IMO.



Pointers = EVIL



Around the Network
sc94597 said:

I just want to make little programs and maybe some games. Nothing really big. I've been wanting to do this for months now just didn't have enough time to learn.

Don't bother with programming.   It's one of those skillsets that takes a bit of time to acquire and has no commercial value unless you want to be a programmer (no offense to programmers).



Try kpl (kids programming language) It teaches you the basics and it makes it easier to change to harder languages.



Please register :)

routsounmanman said:
Pointers = EVIL

Pointers don't kill people. People do.

If you outlaw pointers, only outlaws will have pointers. Wait, that doesn't work as well. :) 



Programming is not awesome compared to gaming!

 



 



Beware, I live!
I am Sinistar!
Beware, coward!
I hunger!
Roaaaaaaaaaar!

 

 

 At least 62 million Wii sold by the end of 09 or my mario avatar will get sad

I still think Java offers a nice balance between complexity and expression power, and since it's OO it's a very good starting point. C/C++ are more powerful languages, but it somes at a cost in learning. I have only done a few courses in C/C++, but pointers/address operators/references are hard to grab when you're beginning your path. In Java, you don't have to worry about those things, which makes it a lot easier to learn. And after you learn the basic concepts in Java, including OOP, then it's simple enough to step up to C++ and start exploring the new possibilities it offers. That is, if you so desire. But it's entirely fine to stay in Java also, apart from performance you're unlikely to run into anything that would prevent you from doing anything.