Want to learn programming on my own

raildogg

Lifer
Aug 24, 2004
12,892
572
126
So my major will be centered around computer technology etc but I want to learn some programming, even at the novice level. What is a good way to start?

I will be going tomorrow to the library to pick out some books if they have some.
 

fierydemise

Platinum Member
Apr 16, 2005
2,056
2
81
I started using C++ Without Fear by Brian Overland, its the only beginning programming book I've used so I can't compare it but it worked well for me so I'll recommend it
 

ncage

Golden Member
Jan 14, 2001
1,608
0
71
How to program with c++ by addison wesley. I am now a professional programmer and thats the book i learned on when i was starting out. Excellent book and i can compare it to many books in my career and its what i recommend. Stay away from crap books like "how to program c++ or whatever in 20 days" cause they SUCK.
 

clamum

Lifer
Feb 13, 2003
26,256
406
126
I'd try and get a handle on some object-oriented programming and some data structures and algorithms. Then learn some C++ and/or Java.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Or search this forum for the weekly threads on this topic. Lots has already been said...
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
do yourself a favor and pick out a book on C# or VB.net 2005
then download free versions of C# or vb.net 2005 from microsoft.com

C# or VB.net 2005 are more object oriented programming languages. It'll save you from having to convert from procedure programming to oops later on.
 

Glavinsolo

Platinum Member
Sep 2, 2004
2,946
0
0
Originally posted by: raildogg
So my major will be centered around computer technology etc but I want to learn some programming, even at the novice level. What is a good way to start?

I will be going tomorrow to the library to pick out some books if they have some.

I'm a senior and a computer science major. My advice to you is pick up C then progress into C#. You kind of have to have high self discipline. You need to assign yourself small projects and progress from there.
 

ArmchairAthlete

Diamond Member
Dec 3, 2002
3,763
0
0
Python /w this

http://www.amazon.com/gp/product/013092...1/102-9134903-7052100?%5Fencoding=UTF8
http://www.python.org

You can run individual lines of code at a time with the Python command line to see what they do. You can get used to even more basic stuff than OO (object oriented), and then dive into that with the same language. Like, you could write a little script to list all the mp3s on your hard drive as an early project.

It's not all that hard to go to .Net or Java once you learn the basics...
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
which is unlikely..

You can't make that assumption without knowing what he's going to be doing with it. Infact he just said he's just learning the programming as a primer for school, he might never do any programming outside of school. But if he ends up doing low level programming like the Linux kernel or even highlevel stuff like Gnome he might be doing a lot of C. Since I'm just an administrator the majority of my programming is done in bash and perl, so besides the OOP forced on me by certain perl modules all of my code is procedural.
 

Auryg

Platinum Member
Dec 28, 2003
2,377
0
71
I don't know why everyone is suggesting C/C++. Those're horrible starting languages...you'll likely get frustrated.

C#, Java, or Python I'd suggest.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Nothinman
which is unlikely..

You can't make that assumption without knowing what he's going to be doing with it. Infact he just said he's just learning the programming as a primer for school, he might never do any programming outside of school. But if he ends up doing low level programming like the Linux kernel or even highlevel stuff like Gnome he might be doing a lot of C. Since I'm just an administrator the majority of my programming is done in bash and perl, so besides the OOP forced on me by certain perl modules all of my code is procedural.

I have nothing against procedural programming, but it is just... tough for me to recommand it to some one... Years of programming have taught me to stay OOPS unless absolutely necessary. ..I guess its just tough for me to manage procedural codes..
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I have nothing against procedural programming, but it is just... tough for me to recommand it to some one... Years of programming have taught me to stay OOPS unless absolutely necessary. ..I guess its just tough for me to manage procedural codes..

And I don't see the big benefit of OOP, at least not for a beginner. I understand why classes, inheritence, etc are helpful but procedural is often simpler and easier to understand, especially for smaller projects. Just remembering when to use . and when to use -> can be a PITA when you're just starting out. And pointers in C suck too so he should probably steer clear of that too. =)
 

sonoma1993

Diamond Member
May 31, 2004
3,414
21
81
Originally posted by: raildogg
So my major will be centered around computer technology etc but I want to learn some programming, even at the novice level. What is a good way to start?

I will be going tomorrow to the library to pick out some books if they have some.



I would start with visual basic. It simple to use for the most part. The past 2 semsters, I took introduction to visual basic 6 and visual basic 6/GUI theory. I did well in those two classes. never had any programming experince in my life.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: Nothinman
And pointers in C suck too so he should probably steer clear of that too. =)
I'm assuming you're saying that tongue-in-cheek. I'm all for people staying the hell away from C unless they're doing the various lower level stuff like kernels but every programmer has to go through pointers to get the idea. If you just go straight to a language like java then object references are just 'magic' and you have no idea of the differences between the stack and heap and so forth. Or .net, where the difference between value and reference types would just confuse the hell out of you.
 

raildogg

Lifer
Aug 24, 2004
12,892
572
126
Thanks for all the great replies so far, guys. I just downloaded Microsoft Visual Basic 2005 Express Edition and doing some stuff following the guides. Tomorrow I will hopefulyl go to the library and get a book on Visual Basic 2005.

Is this a good strategy? Is this a good learner language? I have no experience in this.

Again, thanks.
 

NGC_604

Senior member
Apr 9, 2003
707
1
76
I'd start by trying out something like a VB.NET Step by Step book, the 2005 version is really good. After that take a look at C#. Eventually you're going to want to play around with C++, because you'll probably use it at school. I would really just play around with whatever you find simple for now. No reason to dive into to soemthing hard. Especially if you have schooling yet to come.

For me, I never learned anything other than C and C++ in college. But between knowing those and other things, picking up any language afterwards was pretty simple. Now I only use VB.net and C#.

EDIT - Yeah stick with VB for now. It's simple, yet very useful. As a beginner you'll spend more time being able to play around with it and less time being confused and frustrated. After that you can get more in-depth with VB or move onto something else.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Thanks for all the great replies so far, guys. I just downloaded Microsoft Visual Basic 2005 Express Edition and doing some stuff following the guides. Tomorrow I will hopefulyl go to the library and get a book on Visual Basic 2005.

Is this a good strategy? Is this a good learner language? I have no experience in this.

Again, thanks.

A lot of people consider VB to be one of the worst programming languages around, stuff like 'on error resume next' can develop some really bad programming habits. Supposedly VB.Net is a lot better than VB6, but I don't know since I haven't used it.
 

thescreensavers

Diamond Member
Aug 3, 2005
9,916
2
81

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Nothinman
Thanks for all the great replies so far, guys. I just downloaded Microsoft Visual Basic 2005 Express Edition and doing some stuff following the guides. Tomorrow I will hopefulyl go to the library and get a book on Visual Basic 2005.

Is this a good strategy? Is this a good learner language? I have no experience in this.

Again, thanks.

A lot of people consider VB to be one of the worst programming languages around, stuff like 'on error resume next' can develop some really bad programming habits. Supposedly VB.Net is a lot better than VB6, but I don't know since I haven't used it.

the whole .net platform is to exterminate the distinction between languages. c++.net is as powerful as c#.net and is as powerful as vb.net. Basically, there is no distinction between languages other than syntax.

IMO, the on error resume structure is actually making vb.net more flexable because it can be used at the same time as the try..onerror..finally structure.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Basically, there is no distinction between languages other than syntax.

That's true of pretty much all languages.

IMO, the on error resume structure is actually making vb.net more flexable because it can be used at the same time as the try..onerror..finally structure.

Except that instead of testing for and correcting errors in the program you're ignoring them and hoping they don't cause any more.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Nothinman

That's true of pretty much all languages.

data type size may differ from one to the next. .net standardize these under the .net framework so the code is completely portable. A assembly/module/function created with vb.net is completely compatible with c#.net or c++.net because everything is compiled to the same .net meta language. Exactly like in Java.
Except that instead of testing for and correcting errors in the program you're ignoring them and hoping they don't cause any more.

on error goto xx would allow you to goto an error handling section of the code. But I agree with you, its not a good way to handle error... except maybe for debugging purposes. In the release version, on error structure should never be included.