Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


thugthrasher

Member Since 21 Mar 2012
Offline Last Active Aug 07 2013 11:15 AM

Posts I've Made

In Topic: Where to start to program a game

26 May 2012 - 10:36 AM

I don't want to get into this too much, as it is a little off topic, but I don't disagree with the general ideas you put forward in your post, Serapth, but you again seem to be missing how "learning a programming language" is different from many types of learning (partially because learning a programming language is learning multiple things: programming concepts, concepts specific to the language, and syntax).

I will definitely give you that if your goal is to program something 'real' or 'substantive' quicker, then learning other languages is probably a better idea than learning C/C++. A lot of that is because there are generally (not always) fewer "concepts" to learn before you get into that.

I want to preface the rest of this by saying that I'm not talking about everyone in the next few paragraphs, just some people (who learn in certain ways).

However, if your initial goal is just 'learning to program' (and you don't mind waiting longer to make a substantive program, which is a personal decision) then C++ is NOT a terrible first language. It's not the best for everyone, it may not even be the best for most people, but it's definitely not terrible. You STILL are learning progressively. You don't start out with the hard parts of C++. It is not really any more difficult to code very basic programs (the type you program when just starting out) in C++ than any other language (or at least the difference in difficulty is negligible). If you are just going through learning concepts and building on them, then C++ works just as well as any other language for that (at least for a while). C++ also makes it easier than many languages (again, not all) to learn a variety of programming styles.

The reason I (and many others) say that it's easier to go from C++ to Java/C#/etc. than the other way around is NOT just because I learned C++ first. It's not even because I've seen other people going both ways and everyone I've seen who went to C++ first had an easier time switching languages than those who went the other way (as that is anecdotal and I realize that it could have just been that the people who learn programming easier happened to pick C++ first). The reason I (and many others) say that it's easier to go from C++ to the other languages is because there are (again, generally) fewer concepts that you have to pick up on to program in those languages (which is why, I believe, many others recommend going to, say, Java as a first language), so you are MOSTLY learning syntax. If you can program well in C++, then you have to learn less to program in Java than if you go the other way. Yes, there are some concepts/methods to learn, but it generally takes less time to learn those concepts you need for Java than those you need for C++.

As long as you are learning progressively (starting from the basics and moving on), MOST languages are decent starter languages. You just have to pick the one that fits your goals more closely (such as how quickly you want to program something substantive vs. how deep you want to get into how things work "below the language" before you program something substantive). The error you pointed out earlier is NOT something someone just starting out should run into (if they are starting with beginning concepts as they should), so it is NOT something to worry about when picking your first language.

Again, a little off topic, so I'm done posting about it, I just wanted to clarify what I was talking about and that I completely agree with you that you should start simple when learning new things, I just disagree on whether or not it's possible to start simple with C++.

It's like actual (non-programming) languages. Most are fairly easy to learn when you are just learning very basic grammar and counting. Some are just going to make you learn more things before you get to the point that you could write a book in that language.

In Topic: Where to start to program a game

25 May 2012 - 12:40 PM

This is one of those baffling pieces of logic I see recurrent among ( pro and prospective ) game developers. Think about this for a moment, with every other topic you can imagine for which formal instruction exists... do you EVER start off hard to make the easier stuff later seem easier?

No, you don't. You start learning math by learning your numbers and sums and progress from there. You don't start with calculus! When learning to cook, you don't start with a souffle. If you pick up a chiltons manual to fix your car, does it start off with engineering an engine? Do interns start with open heart surgery? You don't learn English by reading great literary works, you start with the basics, like Mr Muggs goes to School and Red Shoe, Blue Shoe, Green Shoe, MooShoo.


This whole meme of starting with the hard stuff to make the easy stuff easier is so patently wrong in 99.999999% of endeavers, what exactly makes computer science so unique as to buck the trend.

Here's a hint. Nothing.

Starting hard is just a bad way to waste your time. Don't get me wrong, you can do it, it's just certainly not a productive way to go about things, as millennia of teaching experience has already taught us.

Now, you could argue if C is hard or not, but that's a completely different conversation.


None of those analogies really work for coding, though. Nearly all of those things directly build on what you had to learn before. A programming analogy for the examples you gave would be learning multithreading before you learned loops.

No one is saying start by learning the hardest parts of C, but if, while you are learning the basics of programming, you are able to pick up on some of the things that make C/C++ harder to learn, then it is very useful. There are advantages to going both ways, but for many people, starting with the more complicated language is the easiest method. It was for me.

It takes a little longer to feel like you have good control over the language you start with, but it makes it easier to pick up other languages later (I've never met anyone who thought going from C++ to Java was harder than going from Java to C++). It's really a personal preference, which depends greatly on someone's learning style. Not everyone learns the same way.

PARTNERS