General discussion


What's the best way to learn programming??

By ObiWayneKenobi ·
Hey all, I have some quick questions I'm hoping I can get advice on. I primarily deal with support and networking, but I want to start learning how to program. The problem is that I have absolutely no background in it. I've never taken any programming courses (was not required for my degree) and the only exposure I've had is very little VB.NET for an ASP.NET application.

I want to learn VB.NET and possibly C# (can't decide which) but I don't know where to start short of waiting until I can take some courses at a community college. I've bought several books on VB.NET but I have a very hard time sitting down and reading them because I feel the silly little examples they use to teach doesn't demonstrate anything useful; I prefer to learn by having a case study and working to build that up, not doing a bunch of independent examples that I feel don't teach me anything.

Maybe I'm going about it the wrong way? I'm just confused by the prospect of it all and have a difficult time comprehending what I do, probably because I have had no classes on theory and logic.

So, is there any way that I could get myself into the right mindset and try to learn this.. I want to make myself as diverse as possible, plus the little programming I have done is enjoyable, I just don't know enough to do anything useful yet. Are there any good books that teach in the way I described (i.e. includes a case study of some kind that allows you to learn by developing a 'real world' type application and/or has one as the final chapter to let you use what you've learned already), or is this a lost cause and I should try and take some courses?

Many, many thanks in advance!

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -


by jck In reply to well...

(I'm not sure exactly, because I have 8 bookshelves full) I think I have that book, or owned it when I was in college. Here at the office, I still keep a copy "A User Guide to the Unix System" on my shelf cause we have a Unix box our billing database runs on.

I also have standards like the Nutshell books on Unix, Unix System Administration, and other books I had to have for classes and that made good references in college.

I've still got "Stimulatings Simulations for the Commodore 64" if anyone is interested in some good BASIC programming reading

Collapse -

Advanced Graphic Programming

by Tony Hopkinson In reply to well...

for the Commodore 128.
Still a good book if you want basic geometry and matrices for transformations in 2 & 3D
Danny Thorpe's Delphi Component Design, but that's rarer than a truthful politician and no ones having mine.
Bookcase of SAMMs and WROX stuff as well, and Harold's XML Bible which isn't hard to get hold of but very worthwhile.

Collapse -

tomes and lexicons

by jck In reply to well...

jeez...what quality books do I have?

"Compilers" (I think that's the name), by Sethi, Aho and Ullman (The Dragon Book)

"The C-64 Anthology", by Jim Butterfield (*THE* definitive tome on C-64 internals)

"Unix in a Nutshell" - The single best reference I found on Unix that didn't take 2 days to find something in...not totally comprehensive, but had good stuff.

"The Computer Encyclopedia" - had everything I ever wanted to know about computing when my dad was a kid.

"Repairing and Troubleshooting Your Computer Monitor" - a great book for learning what to do and if you read it fully what not to do when working on a CRT.

"TCP/IP Illustrated Vol. 1, 2 and 3" - great stuff for learning and referencing TCP/IP info.

that's just a tons of Novell 3-5 cert books, MS Win 95-2000 cert books, network architecture books, and programming language and OS books out the wazoo.

Maybe I should open up a library? hahaha :)

Collapse -

Certainly make sure you've

by Tony Hopkinson In reply to well...

a good system for fines on late return though, and full cost on damage or loss.
Took my Perl Cookbook into work, one day I looked in my draw it was gone. Found it in another team's bookshelf. Thieving b*ggers !.

Collapse -

I suppose you can get used to anything

by Tony Hopkinson In reply to brace location

but I prefer them on their own lines. Even with a decent syntactical editor they can be very hard to see and thats if you are a polite person who doesn't go past the edge of the window.
Do the the same with Begin & End in pascal, just much easier to see what belongs to what.

if condition statement, to save bracketing it is not one of my big favaourites either.

Don't like inline comments, you eyes keep bumping into them.
Another one of my pet hates is with statements. As for any one who uses compound ones well ...

What exactly is wrong with using a paste shortcut anyway.
Most of these things are simply to save typing. It's barely excusable in a script in a compiled environment it's just plain stupid.
99% of code maintainability is code readability.

Collapse -


by apotheon In reply to I suppose you can get use ...

. . . and that's all I really have to say about that.

Collapse -

Say this thing strips white space

by Tony Hopkinson In reply to Indentation and spacing

So it looked my code wasn't indented.

Testing  Testing  Testing;

Collapse -

use pre tags

by apotheon In reply to Say this thing strips whi ...

It works better
[pre]if (you use)
pre tags
to format your code. It's just like the HTML <pre></pre>, but you use brackets rather than greater-than and less-than.

Collapse -


by apotheon In reply to Arrrgh !

You're talking about self-documenting code, and I agree: this is essential for good, maintainable code. Far more useful than heavy commenting is good self-documenting coding practice. This is, in part, what drove the development of the COBOL language -- it's the most self-documenting language in existence, I think. Unfortunately, that is basically all that COBOL has going for it, and I'd avoid it as a first (or second, or third) language.

You're also correct in your estimation of VisualBasic. It's terrible. It is absolutely the WRONG language to use for teaching yourself programming. It is a mess of bad habits, and it effectively enforces bad habits, to say nothing of the fact that the Visual Studio design environment basically everyone uses for doing VisualBasic programming hides almost everything you would need to learn to become a good, effective programmer.

I've made some comments elsewhere in this discussion about why I'd recommend against Python as a first language. I'd take Python over VisualBasic any day of the week, though.

Collapse -

Well like all programmers

by Tony Hopkinson In reply to self-documenting

I hate documentation, so I try to write code that does not need much documentation.
I couldn't agree with you more on VB, it burns in so many bad habits in a developer you begin to think it was designed with that in my mind. Took me ages to learn how to write robust(ish) code with it, couldn't find many examples for some reason.
You can use the object before it's created.
Pardon ?
Remove bugs from your code, don't declare your variables.
<<< Rewind, don't think I heard you right their Bill...
A list of sins so long not even the late John Paul would have forgiven.

Related Discussions

Related Forums