From Scratch

Started by
17 comments, last by Deadseed 18 years, 10 months ago
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.
Advertisement
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.
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!
------------------<a href="http://jsgc.sourceforge.net>jsgc
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¢
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.
Mike Popoloski | Journal | SlimDX
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.
What about Python? My girlfriend's dad, who is a professional programmer, but not a game programmer, suggested I learn C, C++ or Python.
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.
enum Bool { True, False, FileNotFound };
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]
Marriage is the #1 cause of divorce
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.
It is foolish for a wise man to be silent, but wise for a fool.

This topic is closed to new replies.

Advertisement