Skip to main content
GameDev.net gamedev.net
🔒 Locked

Want to learn programming...again

Started by Rhinotones Feb 27, 2013 at 9:38 AM 32 replies 4.9k views
Original Post
Rhinotones
Rhinotones

Hi all,

I'm about to scrape the rust off my brain and learn to program for PC. I did some programming waaaaay back in the c64 days and would like to get back into it.

What's a good program to learn with and am I able to download it or do I need to purchase it? It doesn't need to be too basic as I tend to grasp things reasonably well.

If there are languages more geared towards creating games that would be preferred. I've been looking around but there are so many different answers I thought I would see if there was a general consensus here.

Thanks in advance for any advice.

Rhino.

King Mir
King Mir
My usual advice for starting programming, is get a python book, and go from there. Your prior programming experience will help you, but I still recommend this path. You don't need to buy anything but the book, and even that can be found online for free.
Ashaman73
Ashaman73

Most developing tools are for free now. C++ is still often used (IDE Visual Studio Express, free), but other hi-languages like java (IDE e.g. eclipse) are good alternatives. If you want to write some casual/web based game, scripting languages are a good choice too.

If you want to dive into 3d games, try out the SDK of Unity or UDK, both are very good engines you can play around for free (thought it costs money/royalities if you want to get some money out of it).

NightCreature83
NightCreature83

My usual advice for starting programming, is get a python book, and go from there. Your prior programming experience will help you, but I still recommend this path. You don't need to buy anything but the book, and even that can be found online for free.

My advice is to never ever touch python whilst it is really easy to pick up it is a pain to find why your thing isn't doing what it is supposed to (whitespace is a bad indentation indicator especially when tab and space are handled differently). You are better of starting with C# or Java both have additional libraries that allow you to make games with them.
Eclipse is free and a good IDE for Java development and for C# there are the Express editions of Visual Studio to work with. There are numerous tutorial sites out there that help with either language and the game development packages for them.

Rhinotones
Rhinotones

Thanks for the prompt responses. What's the main differences between C# and C++?

NightCreature83
NightCreature83

Thanks for the prompt responses. What's the main differences between C# and C++?

No memory management,

No multiple inheritance,

No pointers or references ( as in you can declare them as such ),

Generally easier to use, masssive support framework (.NET library which handles a lot of things for you).

kks21199
kks21199

Thanks for the prompt responses. What's the main differences between C# and C++?

learning c++ is better, i learned c++ and vb and I can recognize c# codes and even code or script with them without learning

Rhinotones
Rhinotones

Thanks again.

I've just downloaded Bloodshed Dev-C++ as it seemed to have the most hits in a search. Looking forward to reading the forums and learning from you all.

Aldacron
Aldacron

Thanks again.

I've just downloaded Bloodshed Dev-C++ as it seemed to have the most hits in a search. Looking forward to reading the forums and learning from you all.

Bloodshed hasn't been updated in years (a couple of projects have tried to revive it, but the last I heard they weren't very far along). I strongly recommend you ditch it and go for one of the many up-to-date, active IDEs below. Note that some of these come with a compiler, but others will require you to download and install a compiler separately, such as MingW.

Code::Blocks (has a version with MingW bundled)
CodeLite
Visual Studio Express (comes with the MS compiler)

Eclipse

Netbeans

Radikalizm
Radikalizm


Thanks for the prompt responses. What's the main differences between C# and C++?

learning c++ is better, i learned c++ and vb and I can recognize c# codes and even code or script with them without learning

Learning C++ isn't at all "better" than learning C#.

C# is a very powerful language with a huge amount of libraries available as NightCreature mentioned, and it is considered to be much more beginner friendly than C++ is.

Modern C++ (ie. C++11) is a vast improvement to 'old' C++ when it comes to usability, but it's still completely possible to do things horribly wrong in very spectacular ways without being given a clear reason why things went wrong. This is not a position you want to be in when getting (re-)acquainted with programming.

Focus on the essentials of the actual programming first, not on all of the additional things C++ makes you go through. C# is a very good language for this, and it has a bunch of game-related libraries you can jump into from day 1, although it definitely isn't the only choice available.

I gets all your texture budgets!
kks21199
kks21199


Thanks for the prompt responses. What's the main differences between C# and C++?

learning c++ is better, i learned c++ and vb and I can recognize c# codes and even code or script with them without learning

Learning C++ isn't at all "better" than learning C#.

C# is a very powerful language with a huge amount of libraries available as NightCreature mentioned, and it is considered to be much more beginner friendly than C++ is.

Modern C++ (ie. C++11) is a vast improvement to 'old' C++ when it comes to usability, but it's still completely possible to do things horribly wrong in very spectacular ways without being given a clear reason why things went wrong. This is not a position you want to be in when getting (re-)acquainted with programming.

Focus on the essentials of the actual programming first, not on all of the additional things C++ makes you go through. C# is a very good language for this, and it has a bunch of game-related libraries you can jump into from day 1, although it definitely isn't the only choice available.

ya, but when you learn c++ it is way to do with c# but if you are going to use engines then use c# or java. i am using OpenGL, c++ is best for me

NightCreature83
NightCreature83


Thanks again.

I've just downloaded Bloodshed Dev-C++ as it seemed to have the most hits in a search. Looking forward to reading the forums and learning from you all.

Bloodshed hasn't been updated in years (a couple of projects have tried to revive it, but the last I heard they weren't very far along). I strongly recommend you ditch it and go for one of the many up-to-date, active IDEs below. Note that some of these come with a compiler, but others will require you to download and install a compiler separately, such as MingW.

Code::Blocks (has a version with MingW bundled)
CodeLite
Visual Studio Express (comes with the MS compiler)

Eclipse

Netbeans

If windows is your only target OS then installing MSVC++ Express is your easiest option to start development in C++. A good second is Netbeans which also out of the box does C++ both on windows and Linux.

King Mir
King Mir


My usual advice for starting programming, is get a python book, and go from there. Your prior programming experience will help you, but I still recommend this path. You don't need to buy anything but the book, and even that can be found online for free.


My advice is to never ever touch python whilst it is really easy to pick up it is a pain to find why your thing isn't doing what it is supposed to (whitespace is a bad indentation indicator especially when tab and space are handled differently). You are better of starting with C# or Java both have additional libraries that allow you to make games with them.
Eclipse is free and a good IDE for Java development and for C# there are the Express editions of Visual Studio to work with. There are numerous tutorial sites out there that help with either language and the game development packages for them.


The language's choice of Line terminator and block syntax is a pretty lousy reason to avoid a popular language. Python has libraries for making games too. Pygame is especially good for beginners. Java and C# are good too, but for both a simple hello world program is littered with references to constructs that can only confuse a beginner. They aren't as beginner friendly. Meanwhile, python is beginner friendly, but not a beginner language in that it's suitable for writing large applications by experienced developers. The reason experts use python is that it's designed for rapid development, and when you're paid for how much your application can do, not how fast it runs, that can be a good choice.

But beginners benefit form rapid development too. Hugely. It means beginners can create working programs, with each feature learned, that much sooner. It means you can do more while knowing less, because the language does not force boilerplate on you that you could get wrong.
King Mir
King Mir

Thanks for the prompt responses. What's the main differences between C# and C++?

A lot. C++ is a harder language to learn, the hardest out of all popular general purpose programing languages. But it is the top choice for writing fast programs, when that is the highest priority.

C# is a managed language, on par with Java. I recommend Python over both, but it's reasonably easy too. C# is a language developed by Microsoft, so is only preferred for Windows development, but that's not a small audience, especially for games. And while I said C++ is preferred for speed, C# is not by any means slow.
Rhinotones
Rhinotones

I honestly didn't expect to get such great advice when I posted here and I appreciate the time taken to help. Looks like I've found the right community.

Cheers,

Rhino.

Serapth
Serapth

C++ has three major advantages over C#. Potential performance, a large body of existing code and maximal flexibility.

Not one of those advantages is good for beginners, with the possible exception of large bodies of code.

C#'s advantages over C++ though are a HUGE benefit for a beginner... sane (and vastly improved) class library support, cleaner inheritance model, simplified build process, better error reporting, easier to learn, more predictable in how it behaves, simpler spec, etc...

All of those are advantages for beginners.

Anri
Anri

You can't go wrong with either C++ or Java as a primary language. C++ is the darling of the games industry whilst Java can be used for Android games.

However, if you are learning from scratch then its wise to leave alone OOP languages until you have the basics of structured programming nailed. Both C or JavaScript are ideal beginner languages and share almost identical basic syntax with both C++ and Java. Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++...

Languages; C, Java.        Platforms:  Android,  Oculus Go,  ZX Spectrum,  Megadrive.       Website: Mega-Gen Garage  
Ectara
Ectara

You can't go wrong with either C++ or Java as a primary language. C++ is the darling of the games industry whilst Java can be used for Android games.

However, if you are learning from scratch then its wise to leave alone OOP languages until you have the basics of structured programming nailed. Both C or JavaScript are ideal beginner languages and share almost identical basic syntax with both C++ and Java. Well, C and C++ are considered the same language but there are some differences beside the obvious use of OOP in C++...

I do agree that starting with C before C++ is a good decision (it helped me quite a bit), but I can't agree that C and C++ are considered the same language.

unit187
unit187

In my opinion, you should pick up what you want to programm and move from there.

I mean, when I needed to write scripts for Autodesk Maya, I picked up their language of choice and started coding in Python. When I needed to mess with Maya API, I had to dive into C++.

When I started mess around with Unity endinge, I picked up C# and started coding using.

In other words, think about a problem you want to solve, and then about programming language.

By the way, Python is really cool. My favourite so far. It is strict enough to not let you do foolish mistakes and typos, but meanwhile really easy and enjoyable to code. And you type less! Screw you, "}", "{" and ";".

IkarusDowned
IkarusDowned

As someone who is an avid C / C++ fan, but works a LOT in Python, Java and other languages, I would like to say that a solid understand of C (and the concept of constructors and destructors in C++) will take you a LONG way. Understanding how memory works, what pointers are (and what references AREN'T) can help you pick up other languages REALLY quickly. Having to train people in programming and software development, I find that the people who do well not matter WHAT gets thrown at them have the concepts of scope, memory management, construction / destruction firmly in their head get more work done faster and understand things better.

That being said, it takes both effort and time to get to a level comfortable with some of the craziness of pointers and all that. What is your main purpose to learn programming? The OP doesn't state "game programming" explicitly. If you are interested in just learning some basic programming, the vast majority of scripting languages are just fine -- Perl, Python, Ruby, any of those give you the ability to rapidly produce results with minimal fuss. the core concepts of "programming" are in all languages.

Too often, people get into the "Language Wars." Languages are like the paints and paintbrushes to an artist, or the tools in a toolbox to a craftsman. Each language has its strengths and weaknesses -- pick the right tool for the job, but most importantly is to know WHICH tool is right for which job.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.