An Open Letter To A Programming Noob

Recently received in my e-mail:

Hi There

Found your email on your blog via the contact me which is linked to on your [Yahoo! Answers] profile.

I was curious as to what languages you program in as I am keen to get into programming and wanted any advise or recomendations for books.

I have done quite a bit of visual basic 6 which I know is not OOP.

Would be good to either do vb 2005 or c++ or java

Thanks

Shane

My response to this e-mail follows.

I was curious as to what languages you program in as I am keen to get into programming and wanted any advise or recomendations for books.

I program in several languages. Primarily I work in VB.NET but I also work in C#. In terms of scripting languages, I use PHP, JavaScript, Perl, ASP 3.0 and some ColdFusion. I know Transact-SQL and MySQL intimately and have some experience with PL/SQL. I know XHTML, XML and XSLT extensively.

In re: books for beginners, if you are a true noob — that is, you have little to no programming experience — I am a fan of the “For Dummies” series of books, which do an excellent job of walking you through the basics.

If you want to quickly learn how to use Microsoft Visual Studio to make programs in .NET, such as ASP.NET, VB.NET or C# — I am a big fan of the Step By Step series by Microsoft Press, such as Visual Basic .NET 2005 Step By Step. They focus on using Visual Studio to solve specific programming problems, such as working with databases, collecting user input via forms, etc.

I have done quite a bit of visual basic 6 which I know is not OOP.

Actually, Visual Basic 6 is object-oriented. “Object-oriented” means many things, but to be really simple about it, it fundamentally means you create classes — aka objects — to accomplish programming goals.

While you can certainly write VB 6 programs as sequence-based code — like you write old-school ASP 3.0 or PHP programs — it is really designed to use objects. In fact, you could, in theory, write VB.NET programs as structured code, although it is harder to do since even the data types, such as strings, integers, etc., are designed to act like classes.

If you’d like more of an understanding of how classes / object-oriented programming work, check out this post on my blog:

http://dougv.com/2006/12/22/objects-classes-explained-in-very-simple-terms/

Would be good to either do vb 2005 or c++ or java

In re: which programming languages are “good” or “best,” there isn’t one. Each language has its strong points and its weak points. Which you choose should be a question of which you want to learn or find more comfortable, because there’s plenty of work to be had in all of them.

The only “required” language, as far as I am concerned, is SQL — no matter what programming language you learn, at some point you’re going to need a good understanding of SQL, since almost all applications come down to manipulating data somehow.

There are many variations of SQL — Transact-SQL (Microsoft), PL/SQL (Oracle), MySQL, PostGRE SQL, etc. — but if you understand ANSI SQL fairly well, then you can work out the quirks of each variation on the language easily.

I generally recommend to noobs that they at least give a crack at C++. I recommend that for several reasons:

  1. It’s by far the most common programming language, which means finding peers to help you with it is very easy.
  2. If you decide you want to get a formal postsecondary education in programming, almost every school out there will start you in C++; if you start with it before you start your formal education, you’ll have a head-start on most people.
  3. Because ANSI C was one of the first programming languages and was embraced early by both Microsoft and Unix / Linux, it’s served as a model for many other programming languages — including C++, C#, Java, JavaScript, PERL, PHP and more. If you can understand C++ and its concepts, you’ll find it easier to grasp most other programming languages.

But again, what language you learn should be a matter of your personal choices and interests, not what other people think. You’re the person who will be doing the work, and your success will come from your happiness and confidence. If you don’t like a language or don’t feel competent using it, you won’t be successful.

2 Comments

  1. i really very impressed by yr answer.but yet not satisfied fully.look,i mainly don’t know that what come in java and .net.i know only basic that java is platformindependant and .net is eventdriven..

    i m seriously confused…i don’t know what should i do?i really need yr more help.i m in engineering.and now i have suggested by all to choose 1 language 4 my carrier.so,i don’t understand.so,kindly give me some advise and kindly let me add u,in my id…i asure u that without any reason i would not disturb u..thanks……do a direct mail on my id if possible…hoping for +ve reply………….

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Check out the Commenting Guidelines before commenting, please!
  • Want to share code? Please put it into a GitHub Gist, CodePen or pastebin and link to that in your comment.
  • Just have a line or two of markup? Wrap them in an appropriate SyntaxHighlighter Evolved shortcode for your programming language, please!