Sign in to follow this  
Deadseed

From Scratch

Recommended Posts

Hello. I am considering trying to teach myself programming through the use of books, and I would like any advice I can get. My only experience in programming is with Fortran, from my degree in Earth Science. Therefore I am really lost when looking into what programming languages are right for me to start off in. I was thinking of starting small by making my own web based strategy game (for those familiar I'm thinking of something like Utopia or Archmage.) At first I looked for reviews on books on C++ just because I heard it was a popular programming language, so I figured it could do the job. Recently though, I have read that perhaps C# or ASP.net might be better for a web based game. With looking at C++ books I noticed some came with cds that had the compilers on them, but in looking at C# books I don't see any that say they come with a compiler on amazon.ca (I'm Canadian). Could someone give me a rundown of how exactly I should get started, and maybe recommend some books for true beginners. I'm really lost. Thanks.

Share this post


Link to post
Share on other sites
Personally, I don't know much about C#, other than it is pretty similiar to C/C++.
If your going to tred the C road than I would get Absoulute Beginner's Guide to C by Greg Perry, or C For Dummies by Dan Gookin, both of which I have read and liked pretty well. For C++ I'd go with Beginning Visual C++ 6 by Ivor Horton, it is really two books, the first half teaches C++, while the second half gets into Visual C++ 6.

Free C/C++ Compiler: http://www.bloodshed.net/devcpp.html
Free C# Compiler:Install the .NET Framework which you can get free from Microsoft. This comes with a C# compiler. To use go to Command Line and type CSC.

Share this post


Link to post
Share on other sites
Quote:
I was thinking of starting small by making my own web based strategy game (for those familiar I'm thinking of something like Utopia or Archmage.)

At first I looked for reviews on books on C++ just because I heard it was a popular programming language, so I figured it could do the job. Recently though, I have read that perhaps C# or ASP.net might be better for a web based game.


C++ would be the wrong way to go for a web based game IMHO (you could do it but it'd be really rough for a newbie). You'll want to have some dynamic web pages and something running on the server to process request. This is what .asp/.net .jsp/java .php/cgi are built for. However, the learning curve for coding web services (which is what we're talking about here) can be very steep; ie there's alot to know and setting up a developement environment can be very erm... intricate to say the least.

Have checked this link? It might be a good idea to start with tetris or something as is often recommended (for good reason...) Good luck!

Share this post


Link to post
Share on other sites
Personally, I don't like ASP.NET.. or even asp for that matter. ASP is a hugely bloated COM-based POS. (my opinion.. obviously not everyone's)

and ASP.NET is just another bloated extension to asp.. I recently had the opportunity to attend an ASP.NET "deep-dive" seminar extolling the virtues of the upcoming ASP.NET 2.0, and how much easier it will be to do things. I was apalled by just how nasty it still was.

Don't get me wrong, I'm not completely anti-MS.. I think C# is a very language to work with, and .NET has a lot going for it.. I just think their web solutions suck.

I'd stick with php or perhaps even jsp.. PHP borrows a lot of it's syntax and many of it's functions from C/C++.

Edit: Lately there's been a lot of noise about AJAX, which is used by Google for Gmail and Google Maps among other things. It'll work with just about any back-end, including ASP.NET so you might want to try hunting up some info on that on Google.

My 2¢

Share this post


Link to post
Share on other sites
A web based game might be too hard for you at first, especially using C++ (like the above poster pointed out). It would be good to learn C++ though, as it is a very widly supported and used language. Start with something simple. As for books I am not sure. I used Andre Lamoth's Windows Game Programming for Dummies, but that book is obsolete by now.

Share this post


Link to post
Share on other sites
Ok, some people have said to go with C/C++ anyways, and some with other languages for what I want.

Those that have told me to go with other languages do you recommend going right into them or maybe learning C/C++ as other people have said and then go into a web based programming?

Thanks for the replies, by the way.

Share this post


Link to post
Share on other sites
I think Python, Java, C# or C++ are all fine languages to learn -- all of them a step up from FORTRAN for sure :-)

When it comes to web applications, though, C++ really isn't the best language. In fact, for a pure web application, I might look into a page-embedded language like PHP, or, if you're masochistically inclined, Perl.

No matter what you pick, you won't be going wrong -- programming is more about a mindset, than specific languages.

Share this post


Link to post
Share on other sites
Quote:

programming is more about a mindset, than specific languages

I think this statement deserves a little more attention. I started programming in QBasic, where I learned the very basic concepts of programming. Variables, functions, loops, etc. This made learning C a little easier then it would have been had I just jumped in. Naturally, knowing C made C++ easier.

Once the basic concepts of Object Oreinted Programming finally began to sink in, I found it easier to learn other languages. I learned enough PHP to make a few quick web pages in a couple of days, where as I struggled with C for a couple months.

Once you learn to program, learning a new language is trivial. I recommend starting out with C++, as most books on C++ start out with basic C stuff anyway. It seems that a lot of languages borrow from C++, or at least they work and look pretty much the same.

Quote:

For C++ I'd go with Beginning Visual C++ 6 by Ivor Horton

I own this book as well, and it has been an invaluable resource. The only problem I have with it is the Visual C++ stuff. I was lucky enough to have a trial version of Visual C++ I got with some "All-in-one game programming kit" I bought when I first got into programming.

But the trial wouldn't let me make an executable, so I had to go find a free compiler. I now use MinGW Studio. It has a look and feel similiar to Visual C++, but it does not support MFC. Check it out and see what you think.

Also, right now you are looking at one of the best resources for programming you can get your hands on. The majority of people here are exremely helpful. They have provided answers to questions I could not find anywhere else.

Anyway, that is my two cents. Best of luck to you.

[Edited by - mrtie_dye on June 10, 2005 2:44:26 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Deadseed
What about Python? My girlfriend's dad, who is a professional programmer, but not a game programmer, suggested I learn C, C++ or Python.


Ok... Here is the deal. You probably would not want to use C++ for a web based game. You would spend a lot of time writing text processing code. For that you will want to probably look at Python (with CGI), PHP, Perl (with CGI), or ASP. And I would say in that order.

Python is a decent language (although I have my issues with it), and it can teach you some sound programming concepts. C, C++, and C# are three different languages, although they are simular, do not fool your self into thinking they are the same, or really all that simular. If I had to pick one I would pick C++. Now C++ is much more complicated than C or C#, but that is because it is more powerful as well.

As for book/web site reccommendations here you go:

Python - diveintopython.org
Nice book on python. Covers basics and some more advanced features of python and programming. It is example driven, so if you want to grasp it, do the examples.

Python - python.org
The main python site. Has a tutorial.

C++ - The C++ Programming Language (SE) by Bjarne Stroustrup
This book teachs C++ from the begining as it's own language without relying on C background as it should be taught. Stroustrup is the father of C++ and teaches it well. It is a bit advanced and fast moving, but it is well written and you come away from it with a good solid view of what is there. Highly reccommended.

Compilers:
For programming I use the vim text editor, and gnu gcc/g++ as my compiler. I also use a tool called scons for managing projects and monotone for version control. All of these tools are available on both windows and linux. You probably don't know what a lot of that is, but do some research.

Vim has some what of a learning curve, but likc C++, once you get it, it become a very powerful text editor. Vim seems kind of stupid at first, but it is very very powerful, and capable of most/more features that modern IDE's like VC++.net have. Things like syntax highlighting, indenting, and indexing. Complier integration, and things like that. Don't be fooled by it's simple appearence. It is very very powerful.

You would probably be more comfortable in some kind of IDE like dev-c++ at first though (which is what I started in). Ok, I have said enough. I could go on about web programming resources, but google needs to stay in business. Start small and work your way up, your 1000 mile journey begins with one step. Good luck.

Share this post


Link to post
Share on other sites
[quote]Original post by mrtie_dye
Quote:

programming is more about a mindset, than specific languages

I think this statement deserves a little more attention. I started programming in QBasic, where I learned the very basic concepts of programming. Variables, functions, loops, etc. This made learning C a little easier then it would have been had I just jumped in. Naturally, knowing C made C++ easier.
[quote]

Yes I think I should give it some attention as well. Now this is true, that once you learn one language/programming concepts, it is eaiser to learn another language, but also realize, languages have different features and different ways of doing thins. If you try to fight the language, it will fight back. C and C++ are much more different than people would lead you to believe.

Basic concepts like loops, conditionals, variables, and such, are only a small piece of programming. There are bigger concepts involved that people won't tell you about.

Share this post


Link to post
Share on other sites
Thank you all for your advice. I think I will start off by learning C++ as has been recommended and then do some research into either php or python when I'm comfortable and maybe will be able to tell what the difference between them is, so that I can move into web programming for the game that I eventually want to make. (I didn't mean that it was going to be my first project in my original post, just that I think I want to make one of those games)

Quote:
Original post by TheRealMAN11
Python - diveintopython.org
Nice book on python. Covers basics and some more advanced features of python and programming. It is example driven, so if you want to grasp it, do the examples.


Wow, I saw this book on Amazon, with good reviews for it, so I was thinking of buying it. Little did I know I can get it for free! Why would they make a book available for download that they also want to sell in stores?

Share this post


Link to post
Share on other sites
Quote:
Original post by TheRealMAN11C++ - The C++ Programming Language (SE) by Bjarne Stroustrup
This book teachs C++ from the begining as it's own language without relying on C background as it should be taught. Stroustrup is the father of C++ and teaches it well. It is a bit advanced and fast moving, but it is well written and you come away from it with a good solid view of what is there. Highly reccommended.


This book is excellent, but hardly beginner material. In fact, I wouldn't go so far as to say it "teaches" but rather "informs". I would recommend this book to someone who already knows C++ and wants a really good reference to the language, as well as insight into the decisions that went into how the language is structured.
Every C++ programmer should have this book, but It's not a very good book for a beginner.

Share this post


Link to post
Share on other sites
Should I go with the Ivor Horton book, and then immediately to a book on programming games? Or another C++ book? Or what book? :P

I'm getting my girlfriend to buy me 2 books for a present so I want to know which 2 I should get. From the feedback I've already decided on Ivor Horton's one. I know theres a book selection article on this site, but it doesn't really say which order to get books from what I saw.

Share this post


Link to post
Share on other sites
I think the best starting point is the articles section and the C++ Language tutorial website.

Then a book will help. If you just try to learn by reading some books you'll not get much out of it.
Programming stuff yourself is what really helps.

You can read the Nehe tutorials and think about how to write tetris with that knowledge.
nehe.gamedev.net
You'll get a better idea of what you want. Then it will be easier to find the best books for you.
Start and read threads and you'll understand what the right mindset is.

That said I only heard good things about the Game Programming Gems series from Charles River Media.
They are on my wishlist.

I really want to buy the 2nd edition of "Tricks of the Windows Game Programming Gurus" as well.
I read that is teaches you to write a low-level rasterizer.

It is a lot easier using DirectX or OpenGl ...
but I'd really like to read about rasterizers in general ... something like that is never outdated IMHO.

Share this post


Link to post
Share on other sites
As others have alluded to, writing a web-based game involves programming challenges that don't exist when writing a self-contained executable.

I encourage you to write your game, but write it as a self-contained .exe file in the language of your choice.

If your goal is to make the game web-based, you can challenge yourself further by thinking about this design as you build your game. Try to separate the client side code from the server side code. While building a self-contained .exe, think about how the web client would communicate to the server in the web-based scenario. Design your game with those interfaces internally.

Later, if you're so motivated, you can create a web-based version of the game. If your up-front design was good, you should be able to separate the client side from the server side code with relative ease.

Good luck to you!

Share this post


Link to post
Share on other sites
BAH! All these replies, and just one that mentions Java

Even a monkey can learn how to write small Java applets in a day. I know my brother did it [grin]

Applet - Java program executed in your browser

Some tutorials:
Java Tutorial @ sun.com
About OOP in general (Weird tutorial, but really educational if you ask me)
Java Tutorial @ webdeveloper.com
Shlurrrpp......Java
Getting started with Java

The SDK's
J2SE 1.4.2 SDK
JDK (1).5.0

Some downloadable utilities
Eclipse My IDE of choice
NetBeans Another popular one
Borland JBuilder The Foundation version is free. Will do for entry level programming
Gel Another free IDE.

The optional downloads:
JOGL OpenGL bindings for Java (graphics)
JOAL OpenAL bindings for Java (sound)
JInput Java Input API
LWJGL LightWeight Java Game Library


...*phew*

And here's some other useful links:

JavaWorld
JavaGaming FAQ
Google

- I'm not stupid - I just have a very low IQ!

Share this post


Link to post
Share on other sites
Thank you for more advice on programming web games, but my last question was actually whether I should get a C++ starters book then a book on game programming right away, or 2 C++ books, or C++ and some other language...or what? :P

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