Jump to content
Objectivism Online Forum

Books, where to start?

Rate this topic


biggjoee5790

Recommended Posts

hi guys. since ive decided to begin learning some programming languages i am curious as to where i should begin. as my other post states, im hoping to eventually program for the gaming industry and for personal game creation a a hobby. Im aware that programming games takes advanced programming, and im less than a beginner :) so im really confused as to where is should start, C? C++? Java? Python? ive read about all the types of languages but i have NO idea where to begin. I know that even though i want to eventually program games, i need to learn how to program general applications and do other more basic programming way before diving into games. so hopefully you guys can suggest where to begin, what language to start with, what books or programs i should consider getting, and any other good advice. thanks alot

Link to comment
Share on other sites

You're probably best served getting some type of "Beginning Programming" book, regardless of what language it uses. Perhaps something from the "Dummies" series or this "Idiot" series one that has used copies for $2. From an Amazon search, this one, seems to use C++ to teach programming. This one uses VB.net and you'll probably need to download VB Express from Microsoft

Search through Amazon. If you shortlist a few and post links here, folks might be able to give you advice on the pros and cons of the books.

Or, you can take the route prescribed by Peter Norvig (Director of Research at Google) and "Teach Yourself Programming in Ten Years" :)

Link to comment
Share on other sites

In a way, yes; but, I'm assuming that all those introductory books will actually either have some software you can use to practice programming, or tell you where you can get some. For instance, the "Dummies" book seems to have a variant of Basic. So, I'm guessing it comes with a CD containing software that will let you create and run QBASIC programs. For the VB book or the C++ book, you'll have to get VB or C++, but you can probably get certain versions of either of those free from Microsoft.

When learning one's first language, it's best not to start with a language that looks too different from the norm. All variants of Basic and C/C++/C#/Java would fit your purpose pretty well.

PS: Could you capitalize your sentences; it would make your posts easier to read.

Link to comment
Share on other sites

First of all, sorry about the terrible grammar lol. I was just typing fast and not even paying attention to capitals and whatnot. Ok now about the programming. I guess I'll check out amazon.com and read some reviews on books. I think im going to start with something that teaches programming basics and doesnt discuss much about a specific language. After that, I think starting with C or C++ would be a good idea. They seem to be the norm of the programming world and also used frequently in game programming. Im hoping I can learn alot and get a head start while im still in high school.

Link to comment
Share on other sites

From what you say, the introductory book I linked to above (that uses C++ examples) would probably be a good bet.

Ick. C++. B)

If you wish something more high-level (less close to the gears, as it were), I would suggest Python. There are a ton of tutorials out there, you can become productive pretty quickly, and it is pretty easy to read the source code. On top of all that, it is cross-platform and free.

My $0.02 :thumbsup:

Link to comment
Share on other sites

Well it seems like C and C++ are the most universal languages and most common to use. Im not saying I dont want to eventually explore other languages because I definitely do, but at first I really want to learn the "standard" in programming. I dont know much about Python so I may be wrong about it not being widely used. Some other people have also suggested Python to me. I just want to start learning to program in the best way possible, whatever that may be. I want to learn all the basics and work my way up. Since it seems like game programming is one of the most complex forms of programming, I want to make sure I learn every tool I need to slowly be able to create all types of programs and eventually simple games and then more complex gaemes. When I dont have a teacher, I tend to get really picky about how I begin learning something new. For instance when I first began learning guitar without a teacher, I picked up many bad habits that took me a long time to correct. Thats why Im trying to be pointed in the best direction with programming, so I can study and learn efficiently. It seems like so many people have very different opinions about where to begin, I just want to take the best advice. Sorry for my long ranting lol Ill stop now :wub:

Edited by biggjoee5790
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Definitely agree with everyone else's advice in regards to learning about what programming is before you learn a language. And another thing thats helpful is to learn the basics about computer architecture nothing too fancy, but just to understand the basic jargon (e.g. disk vs. memory, data transfer speeds bits vs. bytes, major components of a computer). So that you have a nice overview of how things fit together. I double majored (EE/CS) and I found that other who did wrote better code because they understood the big picture.

The quickest and best way to learn programming is by doing! So make sure that whatever book you pick up has plenty of tutorials and/or projects. Reading a textbook is a great way to learn about the abstract ideas, but it won't make you a good programmer. And if that is indeed your goal, you really need to get your hands dirty and understand how every component fits together (variables, functions, classes, etc.). When you write a program for the first time try to understand the purpose of every line, because good code has a very specific semantics.

My personal advice would be to learn C++ first, Java is nice, but as a first language it can be too much like spoon-feeding. If you intend to pursue CS as a major then you need to learn about memory management, object-oriented programming, etc, and C++ includes all those constructs. Java is a nice language to use when you want to focus on learning more about software engineering and program architecture, which are more advanced topics.

Happy coding :D

Link to comment
Share on other sites

It is definetely wise to learn the basics of computer operation first , no doubt about that, that way one is much more able to understand what might otherwise appear to be oddities in programming (though you will probably then still find some odd things).

I am a programmer, and I have never learnt Java, I might not need to for some time yet, however in general I would suggest it if you want to seek employment in the programming field. C++ is probably one of the other more important languages to learn at some point, as it is widely used, and one of the faster, more powerful and more supported lanaguages with a huge range of extensions and support.

However, for a first programming language I am going to suggest Ruby. It is nice and simple, can do many of the things of more powerful programming programming langauges (and more in some cases) and is really easy to learn and it is fun! Yet it give you a good oversight into programming. Here is a good starting point for resources...though there are many others.

Link to comment
Share on other sites

  • 4 months later...
Would you care to explain what is evil about Visual Basic and why one would even joke about it being Kantian?

Visual Basic is a horrible language for anything remotely complicated. I use it at work and it gives me quite a few headaches every day. :)

It does have its place as a RAD (Rapid Application Development) solution. If you need to do something quick then it's great. However, you start running into problems with code maintenance. The fact that MS has tried really hard to turn programming into a GUI based process has also made it harder to maintain code. Instead of having everything defined in a text file where you can easily see it, Visual Studio hides various settings behind a maze of menu options. This may not sound bad, but when you have to maintain code written by another programmer then you take away the advantage of comments. It's easy to maintain someone else's code if it's well commented. But with the GUI approach, there's nothing to explain why the programmer did what he did.

The OOP design of VB also makes it virtually impossible to develop modular code. One basic rule of software engineering is to keep the UI separate from the data access modules. In VB, the way you make a SQL query is to drag and drop a SQL object (SQL Command, data adapter, etc) onto your form. This combines the UI and data access functions into one module, which goes right back to code maintenance. Granted, you can also create SQL commands programatically, but the drag and drop method is "supposed" to be preferred and manually creating a data adapter takes away some of the functionality as well.

Another *huge* problem with VB is that it lacks many common features of more powerful languages. For loops are very limited in VB compared to C (this drives me crazy at work). Also, support for arrays (multi-dimensional arrays in particular) is very poor. Things like templates, operator overloading, "real" pointers (as opposed to just object references in VB), and that annoying problem where assignment and equivalence operators are the same token. I could go on forever, too. I will say that I'm basing all my experience on VB.NET 2003. Some of those problems may have been fixed in 2005, I'm not sure.

VB is great for handling straightforward problems very quickly. The drag and drop features also make it easy to initially create a program with little effort. But those advantages cause a lot of problems when you start getting into more complicated programming. VB is also fairly easy for a newbie to understand compared to something like C++, so it could be a good place to start learning. The only problem, as I mentioned above, is that VB not only encourages, but sometimes forces you to use bad programming habits.

Link to comment
Share on other sites

  • 4 weeks later...

Yeah that is all very true, and good arguments as to why other languages are better for many serious tasks. But I think evil is going a bit too far :-P. C# at least seems better in many regards (though Im still learning this one, it seems very nice so far, and its familiar due to my experience with C++).

I also see that even over here in NZ, C# is more respected as a proffessional programming language.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...