Sign in to follow this  
Slateboard

Am I taking the 'right' path?

Recommended Posts

Slateboard    213
I do want to make games, and I've been using these videos to learn how - http://www.youtube.com/watch?v=H5rrwx2RQ9A But I wonder if it's the right way to actually learn the C# Language. My current cycle is: Follow the videos Look up meaning of unknown syntax in the VS Documentation Try to understand what it does and why it's being used there Continue video. ...But I get the feeling that I'm doing it the wrong way or something. It feels like I've skipped over a step somewhere, and I don't know what it is. In addition, I'm presently unable to actually attend any school to take courses in the subject, so I'm on my own for the most part.

Share this post


Link to post
Share on other sites
Tom Sloper    16062
Quote:
Original post by Slateboard
Am I taking the 'right' path?

It feels like I've skipped over a step somewhere, and I don't know what it is.

In addition, I'm presently unable to actually attend any school to take courses in the subject, so I'm on my own for the most part.


Getting a Computer Science degree is the "right" path. Your statement that you're unable to go to school is suspicious, but taken for face value, if you really can't go to any school, then there is no "right" way to teach yourself. Whatever works for you is what's right for you. The "just do it trial-and-error practice,practice,practice hang in there, baby" method works for most people.

Share this post


Link to post
Share on other sites
Lrn2Reason    100
I agree with Mr. Sloper's assessment of the correct path. School is the best way to get a great foundation in software development, algorithms, and just general know how that videos sometimes skip over. Another great way would be buying a C# book to learn the basics of the language, and tips from the authors. One thing that I would suggest doing is searching through all the great articles, forums, etc. on this website and learning what others have done.

Second suggestion, once you've picked a language and learned the concepts of design, I might pick up a few books of the software design process and software engineering practices. These can/will help you in your future endeavors and will save you hours/days of time when starting larger projects.

If you can't go to school, but really want to learn how to be a great software developer, you could find a reputable school, get their Computer Science curriculum, and pick up books associated with each class. Then take the time to read those books, ask questions on forums such as these, and get answers.

Best of luck to you.

-Brandon

Share this post


Link to post
Share on other sites
Antheus    2409
Going to Computer Science course to learn programming is a complete waste of time. If is also mostly a waste of time for anyone who would want to work as programmer. In addition, it is overqualification for 95% of jobs today with regard to how software is development, current management practices, current trends in software QA and the whole added-value part (better yet, there are cheaper and shorter courses that give "Computer Science" labels).

People studying Computer Science should be aiming at Google or something of equal caliber and nothing less, with strong affinity for math and all that goes along.

Those wanting to develop certain type of applications should focus on that particular area (graphics, AI, user interface, design, ...) coupled with Software Engineering degree and something that gives a lot of hands-on practice on real world problems, as demonstrated by portfolio. Vocational skills will be almost always more valued over theoretical foundation, as well as more applicable in practice.


The problem here is not that someone might not do well in Computer Science. Problem comes from most that do well, most of which will never find the market to support it, and they end up as web developers or similar.

For computer scientist, code is an annoying by-product that is used to describe an algorithm, usually in form of some pseudo code. Actual code will then just be handed off to some intern to implement as needed.


The biggest problem is in labels. Since computer science courses try to cater to job market, many of them have devolved to simple programming courses using one of mainstream languages. Those courses do not teach computer science, and are several times too extensive and unfocused for what programmers actually need.

But these days, computer science degree is a seriously bad move except for a very handful of individuals who have strong affinity for some heavy math (perhaps pursuing math or physics major on the side) and who wish to stay partly in academic waters.

Slowly, things are changing in this respect as well, and even those course are likely overkill for anyone who is not looking at serious and dedicated life-long career in such areas.

PS: I studied computer science (the formal one).

Share this post


Link to post
Share on other sites
Slateboard    213
To clarify a bit.

I'm presently being a caretaker for two handicapped individuals. It was dumped on me unexpectedly which forced me out of school. Due to my mismanagement of the situation, I don't really have any options. At least not the ones I had before.

As far as books go, are there any recommendations?

Share this post


Link to post
Share on other sites
Hegemon    100
I tried to watch these videos too, some time ago and just couldn't take his voice. :) Sure, it's nice he's doing such extensive videos, but I just couldn't focus while he was talking. In his basic C# videos he explains some concepts quite well, but I haven't gotten to the parts you linked.

If you'd like to target XNA directly, I'd recommend http://www.amazon.com/Microsoft-XNA-Game-Studio-Unleashed/dp/0672330229/ref=sr_1_2?ie=UTF8&s=books&qid=1266352944&sr=8-2 or http://www.amazon.com/Microsoft-XNA-Game-Studio-Unleashed/dp/0672330229/ref=sr_1_2?ie=UTF8&s=books&qid=1266352944&sr=8-2

For better Videos on XNA basics, you can take a look at www.3dbuzz.com The free section of C# Programming has them build a text adventure in which they explain the very basics of programming.

But also think about learning "normal" C#. XNA can be very tempting, but you are very restricted in your own designs if you lack the basics of the language.
I found http://www.amazon.com/Head-First-C-Andrew-Stellman/dp/0596514824/ref=sr_1_1?ie=UTF8&s=books&qid=1266353153&sr=1-1 to be a nice introduction.

There are a lot of ongoing tutorials out there on the net, often focusing on game development in c#. Just browse some blogs or c# websites. There's lots of content.


I'd always prefer a good paper book over any video. Consider buying a second screen for your computer if you want to program while reading an eBook or watching a video. I found this to be much easier than constant alt-tabbing or running the video where it would occlude some of my interface.

Share this post


Link to post
Share on other sites
badjim    100
You could try an easier language designed for amateur game making, like Blitz3d or Dark Basic Pro. It's much quicker to learn how to do something simple with these languages, like setting up a screen, drawing a sprite on it, and making a bad Space Invaders clone. They even make 3d a bit easier.

You'll still need to learn a real language if you want to work in the industry, but if your goal is to make some simple games, you are making your life unnecessarily hard by learning C#.

Share this post


Link to post
Share on other sites
Flimflam    665
If you can't take any classes, I would suggest picking up a book and using it as a starting point to get your familiar with the subject. Then it's down to lots and lots of practice, trying to figure out things that you think should be easy, and lots of time on Google looking up the answers to your questions.

I remember back in the days of QBasic. I read the help file religiously; looking up functions and then thinking up ways I can use it. That's how I started learning. I still do that to an extent when learning languages (currently consider myself rather knowledgeable in C# these days). I take something I haven't worked with yet, research it, and try to find a way to utilize it. These will usually simply be throwaway projects that get stuffed in a folder or deleted, but I've always preferred the hands-on approach.

I don't think tutorial videos are very helpful. They show you how to perform a very specific narrow task, and rarely go into much detail as to why they're doing it.

Share this post


Link to post
Share on other sites
JoeCooper    350
I spent ages learning to program, I started very very early, and struggled to actually start working as a programmer and still have challenges with no degree. I am going for one. I've watched others go from 0 to doing really awesome stuff in a few years by going to school.

I suggest take a harder look at getting into school.

Quote:
I do want to get into the industry, so I thought that C# was the language


C#'s a great language for getting started, though as a pro you'll wind up using tons of languages. You'll learn them as you go. Eventually it won't seem like a big deal.

[Edited by - JoeCooper on February 17, 2010 8:20:47 AM]

Share this post


Link to post
Share on other sites
Slateboard    213
Yeah I did enough reading early on to discover that C++ isn't the place to start.

While I'm here, perhaps it'll be fine to ask exactly what scripting languages are and what they're used for?

I'm under the impression they're some kind of 'lightweight' or specialized languages or something.

Share this post


Link to post
Share on other sites
GregMichael    135
I wouldn't say they're lightweight - they just solve a different problem.

One thing they enable is quick changes without the need for recompilation of code.

They can be used by non-programmers as well, such as artists, designers etc.

Share this post


Link to post
Share on other sites
Slateboard    213
I see. I take it there are multiple scripting languages like there are programming languages?

Also, I got the Head First C# Book, as well as this that I got from a friend - http://www.amazon.com/Programming-Logic-Design-Comprehensive-Farrell/dp/1423901967

I'd like to know if this book could be of any assistance at my current level.

Share this post


Link to post
Share on other sites
Tom Sloper    16062
Quote:
Original post by Slateboard
I'd like to know if this book could be of any assistance at my current level.

You could try reading it and trying some of the stuff from it and find out. Crazy idea, I suppose...

Share this post


Link to post
Share on other sites
JoeCooper    350
In game development, scripting languages let you load code at run time.

Take javascript for example. Your web browser can download arbitrary javascript code embedded in the page and execute it. It doesn't have to be compiled into the browser itself.

If you're writing javascript code, you don't even need to close, recompile and relaunch the browser to test changes; you just hit refresh. With some effort, you can have that in your game. You can have scripted levels, edit things in the script files and see changes without relaunching the whole application.

If you're in a team - and this is most useful on big projects - you can teach your content guys some of the scripting language and your game's APIs and they can write custom bots and level events as easily as writing javascript into a web page.

At this point, this is probably all a bunch of superflous effort. For simple games you can easily write it all in C#. I wrote my first two games (these are hobby level projects) entirely in Java.

Share this post


Link to post
Share on other sites
Slateboard    213
That actually sounds very convenient.

I feel like I'm distracting myself while learning this stuff.

Every so often, I come across something new then I get lost in thought wonder what possible applications it could have, or what games probably used it, etc.

And then several minutes have passed.

:(

Share this post


Link to post
Share on other sites
Slateboard    213
You're right about that. At the moment, I'm trying to determine how to pace myself. I don't want to cram, as that'd only work in the short-term, and not too efficiently, for that matter.

Share this post


Link to post
Share on other sites
JoeCooper    350
Well you just have to keep writing software. Make anything you can think of; doesn't have to be games.

A few tips.

Sometimes halfway through a project people realize they did it in a retarded way. When this happens, just finish it as is and apply what you learned to the next project.

Make well defined projects. Have a clear enough idea of what you're making that you can objectively say if its done or not, so that you can move on.

Don't get stuck in tarpits - like learning superficial 3D special FX and pixel shaders and inline assembler hacks when you haven't built a complete, playable game yet.

Another tarpit is building an "engine". An engine is an app not built to a particular game's specification; you use the engine to make any game by writing all the logic in the scripts. Kinda like a web browser. It sounds like a good idea and it can be.

There are good engines on the market and you can use them. But there's no point in making your *own* as (long story short) it will blow. If you don't want to use an engine, just write the game.

Share this post


Link to post
Share on other sites
JoeCooper    350
Though if you ever write one, you should totally name it that.

Side note, do build some applications because you'll need to know how to do that sort of thing to make tools - level editors and such.

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