Programming For a Newbie.

After this easter I’ll have a little extra cash, so I figure I’ll use it to buy something to learn how to program. I need your help to tell me some good books or some good web sites to check out to help me along the way. I have no idea how to code at all, I couldn’t tell you a line of anything. I’ve chosen to either code with either Visual Basic, C, or C++. If you know any more good ones please let me know. I also need some reccomendations on some software I’ll need to use (free if at all possible). I know this is asking quite a bit, but I appreciate all of the information you can give me.

I have done a little of C++ and some Visual Basic (introductory courses in each) and from my experience (I am not a professional programmer, nor is it my major) Visual Basic seemed to be a little bit easier to learn and was more user friendly. I may be biased because I liked my VB professor a bit better though. As far as software for each, i don’t know of free ones, but if your computer has a recent copy of Microsoft Excel then you probably already have a VB compiler. My C++ class used a Unix engine for coding and I found it to be a little more difficult to learn. My personal recomendation would be to start with VB to familiarize yourself with basic programming, then decide if you wanted to continue with another type. But that is just my opinion. Hope it helps, and good luck!


If you have a spare computer install a *nix OS and start with shell scripting. For the OS I use FreeBSD and it’s free.

If you don’t have a spare, try Java. It’s pretty easy and there are alot of good books out there.


Java is indeed easy to learn. I taught myself Java in a relatively short period of time, and the only previous programming experience I have had was the Commodore 64’s BASIC. Never really got into applets, though, I stuck with applications mostly. but the difference isn’t very big.

I am painfully struggling through C++ right now, so I cannot recommend anything there. For Java, though, the book by Ivor Horton is very good.

I recommend Java. Previously I would have recommended Pascal or Oberon, but Java is easily obtainable, and you can actually get a job on that. :slight_smile:

Python is a good starter programming language. So’s Perl because of its flexibility. Both are available for all platforms.

If you have any interest in programming as a career, you will need to know both Java and C++ eventually. I learned Java first, but I don’t think that it really matters. Once you know one, it’s fairly easy to adjust to the other. I’d recommend The C++ Programming Language by Bjarne Stroustrup for starters.
And rather than start a new thread, why don’t I just ask this question here: does anybody know any good books or online tutorials for SML?


One thing. If you don’t know how to program it’s best to test your own apititude and disposition towards such an undertaking. If you aren’t good or you aren’t interested, it’ll be Hell for you. Better seek something else.

      • Good Grief! Where you at? Hiring is flat where I am, unless you have a Bachelor’s and 2-3+ years working in the language already. -And for Java, they usually want you to have wide experience in J2EE… - DougC
      • Good Grief! Where you at? Hiring is flat where I am, unless you have a Bachelor’s and 2-3+ years working in the language already. -And for Java, they usually want you to have wide experience in J2EE… - DougC

We’ll try it and see how it goes. I’ll probably start out with a simple game or something. If I don’t like it, I’ll quit and work harder on my webmastering. If I like it, I’ll continue. Thanks for the advice. I heard programming can suck if you don’t really want to do it.

C++ is my choice for teaching people to program, for a couple reasons:

  1. I learned it first, so I’m biased.

  2. While C++ is an object-oriented language, it can be used to write non-object-oriented code (as opposed to Java). It’s definitely good to compare two programs that solve the same problem, one done in an OO style and the other done in a non-OO style.

  3. C++ has a few features that Java doesn’t (pointers and multiple inheritance), and those are good to learn. Having to do your own garbage collection forces you to have at least some idea as to how objects are allocated, and this (IMHO) gives you a better chance to write programs that use memory very efficiently. After that, it’s fine to move on to a language that does it for you. Multiple inheritance is one of those things that you need to know about for the one time in your career that you’ll use it, and it’s probably best to pick it up from the start.

  4. Visual Basic is not an object-oriented language (it doesn’t support inheritance or polymorphism), and OO is the dominant paradigm these days. Better to learn what everyone wants you to know.

All that said, which language you choose is ultimately a matter of personal preference. VB, C++, and Java are fairly similar languages, so once you’ve got one, you can probably pick up the other two pretty quickly. Each is useful in its own way, and a good programmer should probably have some familiarity with all three. Remember, the more tools you have available, the less likely you’ll be to try to fix everything with a hammer.

Are you doing this just for personal interest, or are you looking to get into computer programming as a career?

I work on a Oracle Forms project for a large gov’t institution. We have a parallel J2EE project (which is upgrading the Oracle Forms apps to JAVA) which just got underway, so I am now learning JAVA. No matter what kind of environment you go into, make sure you learn these two things: (1)Don’t forget about the back-end; learn about relational databases, (2)Learn PL/SQL! You’d be surprised how much you use it. :wink:

Actually it’s both. I’m 15 years old, so I figured I’d better get into it as a hobby and see if I like it, rather than going to college and discovering maybe I didn’t like it. I hear that the profession pays pretty well. I figure if I can do something I like and get paid well for it, I’d live out a happy life.

Well, computer programming is a pretty good career to get into (and it does pay well), and I definitely enjoy it otherwise. ** Fingolfin**'s suggestion to learn relational database theory and PL/SQL is a great one, as programmers who know that stuff are fewer than they ought to be.

That said, to be a really successful software engineer, you have to know how to do things other than program. Mostly, you have to be able to design a system in the abstract, and you have to be able to translate between layman’s terms and technical specifications extremely well. Good communications skills are a must–put some work into your writing, and you’ll stand head and shoulders above the crowd. I’ve also been told that people with a background in math are pretty desirable, so keep that in mind.

Lastly, and this isn’t pressing advice, look into computer science programs at various schools. A CS degree is very valuable for getting into the field, and it actually has far less to do with programming than you might think. I’m seven weeks away from completing a “major” in computer science, and in the past two years, I’ve written seven programs, all of which were fairly simple. There’s a lot of math and a lot of engineering involved.

ultrafilter, thanks for the information you’ve supplied me, it’s been real helpful, so has all the other information you guys have gave me. I’ll look into those computer science classes sometime. As for the math, I’m in my sophomore year of high school and I’m taking Geometry. We’ve already made my schedual and I’ve chosen to take computer programming instead of advanced algebra for next year. If you really think I need to, I’ll change it to advanced algebra. I figured the geometry level math would be high enough.

It’d be nice if you could take programming and advanced algebra. Is that possible?

If not, you should definitely consider taking algebra. I don’t know how it’s done at other schools, but at my school, the first class in the CS major is C++ for people who’ve never coded before. In order to take this class, one must either have taken first-semester calculus, or be taking it at the same time. It’s not essential for the programming class; they’re just using it to cut down the number of people who are eligible to take programming.

Besides, the more math you have, the better analytic thinking skills you have, and those really matter. My degree is actually going to be in math, not CS, but I’ve been told that actually gives me an advantage over people who have a CS degree. YMMV, but it’s definitely something to think about.

On the other hand, you’re young, and you have time to decide. Don’t sweat it too much–even if you get to college and decide there that you really hate programming, you still have time to change your mind. For now, relax, and enjoy high school as much as you can.

I’ll look into that.

Apparently we have a screwed up system. I took that my freshman year.

I’ll try. :rolleyes:

Now we need to talk software. Do I need compilers or anything? Or should I wait for the book I purchase to tell me.

For the Java, what kind of software do I need for that.

Uh…yeah…when I said algebra, I meant advanced algebra. It was clear to me, so I figured it would be clear to you.

You will need a compiler of some kind for any of the languages you’re looking at. VB can only be compiled by a Microsoft compiler, but there should be free Java and C++ compilers out there. Go to google and type in “free Java compiler” and you should be able to find something.

For Java, a good starter is getting the “Java Developer’s Kit” from Sun. It’s free, and it’s on several platforms (including Windows).

For c++…um, is there a version of gcc for windows?

Good luck!