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 -

Online development reference

by ftaylor92 In reply to What's the best way to le ...

You can get good technical refrerence information online. see:

I learn by reading a beginner's book, but never buying a Bible/thick book, and keeping my notes online, so to never be at a loss.

Collapse -

A recomended link is always welcome

by Tony Hopkinson In reply to Online development refere ...

Unfortunately when you don't know the right questions you can get some very wong answers with Google et al. If you're really lucky the example won't work.

Wot No Pascal !!!

Not sure what that site was trying to do but FireFox crumpled it up quite badly for some Adware type stuff. Silly Extra window, with no status bar and no content before it raised the one I presumably was asking for.

I could run it in IE to find out I suppose.

Collapse -

Online Classes

by sherwoodpage In reply to What's the best way to le ...

If you're interested in online classes, has some good programming courses. I've taken several and have really benefitted from them.

Collapse -

Take a step back

by oldbaritone In reply to What's the best way to le ...

One cannot but remember the dialog between Alice and the Cheshire Cat in Alice in Wonderland: "Would you tell me, please, which way I ought to go from here?" Alice asked. "That depends a good deal on where you want to get to," said the cat. "I don't much care," said Alice. "Then it does not matter which way you go," the cat said, and he disappeared.

My own "steps in programming" are: concept, planning, development, coding, test and debug. Notice how far down the list is "coding."

So, to turn your question around: "What would you like to do (and think you can do) with VB.NET and C# that makes you think you should learn them? (Or, to qoute the Cat, "That depends a good deal on where you want to get to.")

It's obvious from the way you phrased the original question: you already understand that coding a few simple (and probably pointless) exercises isn't going to help much. As you said, "the silly little examples they use to teach doesn't demonstrate anything useful." JUST SO!

But if you start with a concept of something you'd like to do, then work toward that goal, you can define some requirements and make an informed decision about which programming language would be most useful for the task. Define the requirements in REAL WORLD terms so that you can see whether a particular language is useful to you or not.

Start a "case study" of your own, and study something that interests you. Try to solve a problem you perceive. If VB.NET's capabilities meet those needs, just go for it! Start working on your project, one step at a time. Or maybe you'll find that your problem is something that could be better handled by another language.

Another tip for programming, and not just while you're learning: use "stub" routines that return a result, without actually calculating it. You might have a routine like "Verify_user(username)" and you haven't figured out how to do it yet. That's OK, just write a "stub" that returns Yes or True or whatever. You can keep working on other parts of the program while you figure out how to verify the user. In essence, you're just "assuming the user is verified..." and keep going. Sometime, you'll need to figure out how to verify the user, but the "stub" prevents that one piece of the picture from stopping your entire project. It also makes good modularity for your coding, because you must define, in general terms, what needs to be done; in this case, "verify the user" - whatever that means to you.

When you're stumped on something, hit the blogs and find someone who has worked through the same problem. Code snippets are everywhere. Find two or three, analyze what they do and how, and work the ideas back into your own project.

But most importantly, remember that there's a lot to be done BEFORE the first line of code is written! It's easy to tell who "did their homework" by looking after-the-fact. You'll quickly see differences between modular coding and/or OOP, as contrasted with "Spaghetti Code." Most beginning programmers create a lot of the latter, because they're more concerned about "programming" than "problem solving."

And I bet you'll find that programming - in ANY language - is a LOT easier if you figure out "what you are trying to do" ... BEFORE you try to do it. (and you'll create a lot less spaghetti!)

Otherwise . . . "Then it does not matter which way you go," the cat said, and he disappeared.

Collapse -


by Holod In reply to What's the best way to le ...

Well, the most important is your desire. If you really want, after reading different tutorials and training, you'll know as much as passing rates. But the second way is to learn programming under the guidance of professors :)
It is individual for everyone what order of programming languages to choose to learn.
f.e. I tried to learn Java, but the first time I did not succeed. Only after many C + +, JavaScript and <a href=>php tutorials</a>, I begin to understand this language.

Collapse -

Learning with tutorials help!

by Kupolinka In reply to What's the best way to le ...

On my opinion it is neccessary to find good online tutorials to learn programming successfull. I know good example of such tutorials for example: <a href="">php tutorials</a>.

Collapse -

Please, save yourself a migraine, use Python

by ThomDD In reply to What's the best way to le ...

learing computer programming.

Learn how to think first, language later. Use a higher level language with complex primitives for learning and avoid getting bogged down in syntax. Thats how we learn in real life. Language is for communication. We learn proficiency with languages later. We do not need to know that a variable must be declared of type string to understand how to think like a programmer. Afterwords we can learn the syntax and semantics which has absolutely

nothing to do with the fundamentals of programming concepts or design patterns. Thats how MIT does it, thats how people smarter than you or I do it, and thats the smart way to do it. I've gone through the same situation as you.

Use a high level language with complex primitives. Learn in Python.

This should help

Best to start from the beginning

Collapse -

First Learning Programming

by ibcnunabit In reply to What's the best way to le ...

Get a version of Scheme or Racket (formerly PLT Scheme), and a copy of The "Little Lisper", or if you can handle it, "Structure and Interpretation of Computer Programs" (SICP). PLT Scheme/Racket has some good materials in it as well, such as "How to Design Programs" (HtDP). You can also download MIT's courseware videos on Scheme (free downloads).

Scheme has virtually no syntax to learn (what there is can be learned in thirty minutes), which leaves purely PROGRAMMING to learn. It's a super-powerful language that allows you to build up any language construct(s) you like, want, or need as you see fit (and easily), and yet it has a large pre-existing (and powerful) set that can do anything you would need for some time. It makes it easy to create a minilanguages that perfectly fit your problem domain. All this allows you to explore advanced concepts far earlier than is likely in other languages. This will deepen your understanding of any language you learn in the future. It's in the Lisp family of languages, so metaprogramming is there, as are macros, as is lambda and continuations, and lexical scope, and a lot of other good things that make your programming more powerful.

After Scheme/Racket, you could move on up to Common Lisp, or Python--or whatever strikes you.

Related Discussions

Related Forums