Jump to content

  • Log In with Google      Sign In   
  • Create Account


Want to learn programming...again


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
33 replies to this topic

#1 Rhinotones   Members   -  Reputation: 157

Like
1Likes
Like

Posted 27 February 2013 - 03:38 AM

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, 27 February 2013 - 07:31 PM.


Sponsor:

#2 King Mir   Members   -  Reputation: 1889

Like
1Likes
Like

Posted 27 February 2013 - 03:47 AM

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.

#3 Ashaman73   Crossbones+   -  Reputation: 6595

Like
2Likes
Like

Posted 27 February 2013 - 03:56 AM

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



#4 NightCreature83   Crossbones+   -  Reputation: 2657

Like
3Likes
Like

Posted 27 February 2013 - 04:48 AM

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.


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#5 Rhinotones   Members   -  Reputation: 157

Like
0Likes
Like

Posted 27 February 2013 - 05:22 AM

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



#6 NightCreature83   Crossbones+   -  Reputation: 2657

Like
0Likes
Like

Posted 27 February 2013 - 06:35 AM

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


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#7 Sugavanas   Members   -  Reputation: 153

Like
3Likes
Like

Posted 27 February 2013 - 06:44 AM

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



#8 Rhinotones   Members   -  Reputation: 157

Like
1Likes
Like

Posted 27 February 2013 - 07:04 AM

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.



#9 Aldacron   GDNet+   -  Reputation: 3043

Like
6Likes
Like

Posted 27 February 2013 - 07:22 AM

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



#10 Radikalizm   Crossbones+   -  Reputation: 2767

Like
2Likes
Like

Posted 27 February 2013 - 07:25 AM

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.



#11 Sugavanas   Members   -  Reputation: 153

Like
2Likes
Like

Posted 27 February 2013 - 07:49 AM

 

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



#12 NightCreature83   Crossbones+   -  Reputation: 2657

Like
0Likes
Like

Posted 27 February 2013 - 08:17 AM

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.


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#13 King Mir   Members   -  Reputation: 1889

Like
2Likes
Like

Posted 27 February 2013 - 08:44 AM


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.

#14 King Mir   Members   -  Reputation: 1889

Like
0Likes
Like

Posted 27 February 2013 - 08:55 AM

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.

#15 Rhinotones   Members   -  Reputation: 157

Like
1Likes
Like

Posted 27 February 2013 - 09:39 AM

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.



#16 Serapth   Crossbones+   -  Reputation: 5161

Like
7Likes
Like

Posted 27 February 2013 - 10:07 AM

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.



#17 Anri   Members   -  Reputation: 593

Like
-2Likes
Like

Posted 27 February 2013 - 05:57 PM

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



#18 Ectara   Crossbones+   -  Reputation: 2745

Like
1Likes
Like

Posted 27 February 2013 - 08:28 PM

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.



#19 unit187   Members   -  Reputation: 274

Like
1Likes
Like

Posted 28 February 2013 - 01:06 AM

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



#20 IkarusDowned   Members   -  Reputation: 284

Like
3Likes
Like

Posted 28 February 2013 - 01:53 AM

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, 28 February 2013 - 01:54 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS