Sign in to follow this  
Rhinotones

Want to learn programming...again

Recommended Posts

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.

Edited by Rhinotones

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites


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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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++...

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 ";".

Share this post


Link to post
Share on other sites

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. 

Edited by IkarusDowned

Share this post


Link to post
Share on other sites

There is no consensus about it, but I fully agree that C++ is majorly used for game creation, because of it's speed, free tools and libraries. Also, I agree, after learning C++ you can learn and understand C#, Java, JS and Python code very easily.

 

There is no language directed right at games creation, but if you want to create game as quickly as possible - you should look at JavaScript. It won't allow you to create very computational-heavy game, but it will give you rapid start.

Share this post


Link to post
Share on other sites

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.

And now if you will read the remaining words of my post you'll find I go on to say "but there are some differences beside the obvious use of OOP in C++".  My advice of learning C before C++ should make it clear that such a consideration that they are the same language is a common misconception.

Share this post


Link to post
Share on other sites

i don't care what you guys choose but i support c++, with it you could even program games for consoles and learning it makes it easy to learn others. why not spend a little more time and more hard-work to learn c++ and achieve...???



on of the book i am using to learn which is great and really understandable. It is also a friendly version, click here to see it in google books, amazon selling the book, or if you are not able to buy the book like me, send me a pm and i will send you a pdf file of the book xD smile.png

Edited by Sugavanas

Share this post


Link to post
Share on other sites

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++...

This is bad advice, IMO. Firstly, because OOP is a good thing to learn early, so you should start with an OOP language. Secondly, because when learning C as a precursor to C++ there are a number of things that are common practice in c, that are bad practice in C++.

C and C++ are different languages, and not just because of OOP. Two big differences are how to write constants, and how to write generic code. Edited by King Mir

Share this post


Link to post
Share on other sites

I've decided to go with C# as many people have pointed out here that for a beginner it's easier than c++. Someone also mentioned that C# goes hand in hand with unity and I am looking at learning that also. As my long term goal is to program for games this seems to be the logical choice.

 

Thanks once for for your invaluable suggestions and information.

 

Cheers,

Rhino.

Edited by Rhinotones

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this