No programming experience, need some guidance choosing language.

Luzah

Senior member
Jul 22, 2007
520
0
71
Hello everyone.


As the title states, I am completely ignorant of any type of programming language. However, I was able to successfully create a pop-up box with VB 3.0 but that was a -long- time ago, and I most likely couldn't do it again to save my life. I tried doing a search in the forum for the easiest/most productive language to start learning, but I am still unaware of which language to start using as there were several that were recommended to people who already know a basic knowledge of programming.

I should state my ambitions in order to give insight to the vets of the programming forum (and by vets, I mean anyone other than me ;)), so that you guys could possibly help me choose something that will be of use later on in life. I'd really like to build websites such as eVGA or Nvidia (I know that it would be years until I would have enough knowledge to go about those ambitions, but I must dream big!), however I also would like to learn how to make applications and all-around computer programming (if that is even such a thing?).

I guess my question is which language should I start off with, being a -complete- newbie to any type of language, and be able to dive into something more in demand for a possible career in the future? I see a lot of people recommending Python, but I've never heard of it before so I don't know a whole lot about it. Would Python be my "starting block" for a fruitful endeavor into a career as a programmer, or should I start with a C-based language?

Any help in this matter would be greatly appreciated, and I promise to mention your name if I ever make it big!! Hehehe.

TIA,
Luzah


Edit: I don't plan on going to school just quite yet for this, but if/when I do I would like a big head start.
 
Last edited:

KB

Diamond Member
Nov 8, 1999
5,406
389
126
If you want to build websites start learning some javascript. Its very easy to get some instant results, there is plenty of example code out there, and notepad and a browser are all you need. Plus with javascript/html5 you can build iPhone apps.

From there move on to some backend techologies like ASP.Net or PHP.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
The language you choose for programming isn't quite as important as just sitting down and doing something with the language.

First, decide on what you want to make. Do you want to make an Iphone app (objective C)? Do you want to make a web page (javascript + ASP, PHP, Perl, or Ruby)? Do you want to make a PC game (C++, C, C#, Java)? All of these questions will help determine which language you should start with. And even then, you can almost always interchange languages for applications (For example, you can use c++ to program a webpage. It isn't the easiest thing to do, but it is doable.)

After that, plan the steps you should take to get this done. Do the simple stuff first (like making something that says "hello World") and move up from there.

And of course, if you need help or suggestions, come here and ask. We are happy to help and won't call you stupid (so long as you don't try and answer someone else's question in a dumb way :p). You should, however, realize that if you post code we will critic it. That doesn't mean we think you are dumb, or that we are making fun of you. What we are trying to do is show you that there is a better way to do things.
 
Last edited:

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
VB.Net 2010.

Reasons:

1) Express edition - Doesn't cost anything.
2) Best development environment out there.
3) Microsoft has great centralized help files.
4) Alot of people use it.
5) Powerful.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
VB.Net 2010.

Reasons:

1) Express edition - Doesn't cost anything.
2) Best development environment out there.
3) Microsoft has great centralized help files.
4) Alot of people use it.
5) Powerful.

1) There are express editions of other languages. Programming in general is free.
2) C#, C++, and C all have the same development environment. In fact, I would argue that the C# dev environment is better done than the VB environment.
3) Again, Applies to C#, C++, and C. Also, other languages such as Java and PHP are really pretty well documented.
4) Not really. VB is becoming LESS popular as time goes on.
5) Not really, VB is no more powerful than C++, C#, C, Java, or just about any other language.

VB is one language that I would NOT recommend. It really doesn't do anything exceptionally.
 

brandonb

Diamond Member
Oct 17, 2006
3,731
2
0
1) There are express editions of other languages. Programming in general is free.
2) C#, C++, and C all have the same development environment. In fact, I would argue that the C# dev environment is better done than the VB environment.
3) Again, Applies to C#, C++, and C. Also, other languages such as Java and PHP are really pretty well documented.
4) Not really. VB is becoming LESS popular as time goes on.
5) Not really, VB is no more powerful than C++, C#, C, Java, or just about any other language.

VB is one language that I would NOT recommend. It really doesn't do anything exceptionally.

I figured you would respond with a "I have unlimited amount of knowledge! Fear me!" response. You did not fail.

VB.net is a great language for beginners. VB has a syntax which is easier for noobs to learn, which the OP is... VB.net hides alot of the boilerplate code to get started which is great.

For someone with experience you are absolutely right, but for someone just starting off VB.net is better than all those other options you mention.

Code:
Module Module1

    Sub Main()

    End Sub

End Module

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Code:
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}

That is just starting a console app in VB, C#, C++. Which of those looks least intimidating? I'll let the OP decide that.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
This is coming up so often we might need to do a sticky: So you want to learn to program.

OP:

1) Pick a sandbox to play in: Windows, Linux, Mac, or Web browser. Read up and learn a little about it.

2) Based on sandbox choose a language...

Windows: BASIC (Vb.net), C, C++, C#, Pascal (Delphi), CMD shell, Powershell
Linux: Perl, C, C++, Java, BASH script
Mac: C, C++, Objective-C, Java
Browser: HTML + Javascript

Now Google the crap out of your language choice. Read everything you can find and understand. Get your hands on the necessary development tools and start to make programs. Work your way through some examples. Make a console program print out "Hello world!" and run it successfully. If you're a programmer you'll figure this out. If it's all overwhelming and nothing makes any sense pick another occupation.

Edit: I also agree with brandonb. If your sandbox is Windows grab the free edition of Visual Studio for Visual Basic (VB.NET) and just dive in.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,286
147
106
I figured you would respond with a "I have unlimited amount of knowledge! Fear me!" response. You did not fail.
Do I really come off like that? I assure you that is not my intent, this is just my opinion on the subject matter.

VB.net is a great language for beginners. VB has a syntax which is easier for noobs to learn, which the OP is... VB.net hides alot of the boilerplate code to get started which is great.
I disagree. I find that the simplifications given to make a language more "beginner friendly" are hardly ever to the benefit of the beginner. Plenty of beginners have started with languages that were not designated as being "beginner friendly".

As for the hiding of boilerplate code, I don't know that hiding boiler plate code really makes that big of a difference in how easy it is to pick up a language. If I was going to recommend a "noob friendly" language, it would probably be between Perl, Python, or Pascal. I just don't like VB as a language.

For someone with experience you are absolutely right, but for someone just starting off VB.net is better than all those other options you mention.

Code:
Module Module1

    Sub Main()

    End Sub

End Module

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

Code:
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}

That is just starting a console app in VB, C#, C++. Which of those looks least intimidating? I'll let the OP decide that.

What about other languages such as perl?

Code:
#!/usr/bin/perl
print "hello World\n";

python
Code:
#!/usr/bin/python
print "Hello World"

or Pascal?
Code:
program HelloWorld;

begin
  writeln('Hello World');
end.

Granted, Pascal is probably the only one with a semi-decent IDE. However, for beginners I don't know that good IDEs make all the difference.

Again, I really just don't like VB. It is a language that doesn't do anything exceptionally well in my opinion.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
Now Google the crap out of your language choice. Read everything you can find and understand. Get your hands on the necessary development tools and start to make programs. Work your way through some examples. Make a console program print out "Hello world!" and run it successfully. If you're a programmer you'll figure this out. If it's all overwhelming and nothing makes any sense pick another occupation.
IDK, I think to start off with, all languages and environments can be pretty overwhelming. I would give it a couple of weeks before throwing in the towel and picking a different occupation.
 

Ka0t1x

Golden Member
Jan 23, 2004
1,724
0
71
If you're a programmer you'll figure this out. If it's all overwhelming and nothing makes any sense pick another occupation.

Isn't this the truth.. Part of programming is just figuring stuff out. Its analytical to some degree.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
IDK, I think to start off with, all languages and environments can be pretty overwhelming. I would give it a couple of weeks before throwing in the towel and picking a different occupation.

I didn't put a time limit on it :). When I started I had access to a terminal and could get a dump of the HPBASIC syntax to the screen. And no Internet, BBSs, programming books, or anything like a reference.

These days, all the information you could possibly need is at your fingertips. The universe of choices is a lot broader, but once you make a few and get the tools you need you should be able to jump in and get started. If you come here and get a few suggestions and get pointed in a direction, and can't make anything happen, then I stand by my recommendation to pick another career.
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
I didn't put a time limit on it :). When I started I had access to a terminal and could get a dump of the HPBASIC syntax to the screen. And no Internet, BBSs, programming books, or anything like a reference.

These days, all the information you could possibly need is at your fingertips. The universe of choices is a lot broader, but once you make a few and get the tools you need you should be able to jump in and get started. If you come here and get a few suggestions and get pointed in a direction, and can't make anything happen, then I stand by my recommendation to pick another career.

:) ok, fair enough, I agree then.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76

Python is better than VB IMO... Python is much more terse than VB, which seems like to me they add a bunch of extra words to make it read better. Python is a very simple/readable language to me.

That said I'd still recommend Java or C#.
 

Kingkazma

Member
Feb 23, 2011
105
0
0
hello there i'm pretty much in the same position as the OP....

a lot of programming friends of mine tell me to learn C... since it seems that everything is based on the old fashioned C.

so i'm pretty much wondering if i should learn C because it seems that C is pretty outdated...
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
hello there i'm pretty much in the same position as the OP....

a lot of programming friends of mine tell me to learn C... since it seems that everything is based on the old fashioned C.

so i'm pretty much wondering if i should learn C because it seems that C is pretty outdated...

It depends on what you are doing.

It is more important, IMO, to learn programming first, the language you pick isn't really going to have that big of an effect on this process (so long as it isn't something like brainfuck).

C is still used in places and isn't a terrible language to learn and it still has its uses in many places.
 

smackababy

Lifer
Oct 30, 2008
27,024
79
86
I would suggest learning C++. It is powerful, well documented, and you can translate most of what you learn to any other language.
 

Kingkazma

Member
Feb 23, 2011
105
0
0
It depends on what you are doing.

It is more important, IMO, to learn programming first, the language you pick isn't really going to have that big of an effect on this process (so long as it isn't something like brainfuck).

C is still used in places and isn't a terrible language to learn and it still has its uses in many places.

well i pretty much decided now to start on C++ but how do i start?
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
well i pretty much decided now to start on C++ but how do i start?

First things first, you need to get a compiler and preferably an IDE. There are lots of free IDEs out there. Some of the best are Code::Blocks and MSVC.
http://www.codeblocks.org/downloads/26 (get the one with mingw)
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP

Next, cuddle down with a nice tutorial and reference. The following is pretty good for reference (I've not ran through the tutorial.)
http://www.cplusplus.com/doc/tutorial/
http://www.cplusplus.com/reference/

After that, pick a project that you personally would like to complete. If you can think of anything, then try running through some programming challenges (there are several out there.) Project Euler is a popular one.
http://projecteuler.net/
If you do choose to do project euler, be sure to browse through some of the other solutions after you get the right answer. You can get a lot of insight be seeing the way others decide to attack the same problem.

You may also like to pick up a book on the subject. Though, I've found that you learn how to program mostly by doing, and less by reading about programming.

And as always, if you get stuck, be sure to ask questions here. We'll be happy to help and then degrade into an argument about languages.
 
Last edited:

Luzah

Senior member
Jul 22, 2007
520
0
71
Wow! I come back from an all-day adventure, and see I had 18 replies! Thank you all so much for your recommendations and very good insight into how each would be better for a starting block.

Again, I am sorry if this has been asked numerous times before, and I did try to use the search function but I may have not used the correct wording.

You guys helped me out a lot, and I can't thank you enough. As I stated in my OP, I would love to be able to program a website such as eVGA or Nvidia sometime in my life. I would also like to be able to write an application for the PC (nothing mind-blowing, just something small for my first project) and just have an all-around good understanding on how to program so that if I look in the paper one day for a job, and I see State Farm (the insurance company is based out of my hometown about 20 minutes from where I live) is hiring for a programmer, network administrator or whatever else would be a good career path, then I would have a good chance on landing that job!

To be honest, I heard C++ was not exactly friendly to the new programmer just starting out. Of course, that was years ago that I heard that and it may have gotten easier over time. My sandbox of choice would be Windows (I don't have any knowledge in OSX or Linux), and I really think that I would like to program with VB.net and C++.

My last questions (for the time being, hehe) are if I start off in VB.net, would that make an easy transition into a language such as C++? Is there a big learning curve between the two, or is it "Once you know programming in general, learning a new language isn't very hard at all"? Again, I thank you very much for your responses and your expertise!


-Luzah
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
To be honest, I heard C++ was not exactly friendly to the new programmer just starting out. Of course, that was years ago that I heard that and it may have gotten easier over time. My sandbox of choice would be Windows (I don't have any knowledge in OSX or Linux), and I really think that I would like to program with VB.net and C++.
C++ still isn't the friendliest of beginning languages. Part of the reason for that is that it really is just a couple of steps above writing straight assembly. In other words, when doing something new you have to be pretty explicit about what you want the program to do. This has its benefits, but one of them isn't easy programming.

My last questions (for the time being, hehe) are if I start off in VB.net, would that make an easy transition into a language such as C++? Is there a big learning curve between the two, or is it "Once you know programming in general, learning a new language isn't very hard at all"? Again, I thank you very much for your responses and your expertise!


-Luzah
Honestly, learning to program is the most important thing. You could start with just about any language and as long as you became proficient, it shouldn't be to hard to pick up another. The learning curve between languages is more of a bump.

There will be annoyances with your first language switch from VB to another language, but other than that, you'll get use to it.
 

Evadman

Administrator Emeritus<br>Elite Member
Feb 18, 2001
30,990
5
81
if I start off in VB.net, would that make an easy transition into a language such as C++? Is there a big learning curve between the two, or is it "Once you know programming in general, learning a new language isn't very hard at all"?

I learned BASIC first (but stopped when I hit puberty, as most do), then moved on to other languages; the first major one I did a lot of stuff in was the original VB (not .NET). It was actually a PITA to unlearn what I learned in VB so I could learn other languages. I still can't get over the flipping parenthesis that lots of other languages require. I screw them up constantly. The only place I am at home is in VBA, ASP, .NET and SQL, and the latter required a good 10 years of experience doing almost nothing but SQL.

I'm not saying that VB was the wrong place to start, but if I could do it all over again, I would have started with Java or C or something that required a billion parenthesis to work right so I could learn that skill set off the bat.
 

mosco

Senior member
Sep 24, 2002
940
1
76
You guys helped me out a lot, and I can't thank you enough. As I stated in my OP, I would love to be able to program a website such as eVGA or Nvidia sometime in my life. I would also like to be able to write an application for the PC (nothing mind-blowing, just something small for my first project) and just have an all-around good understanding on how to program so that if I look in the paper one day for a job, and I see State Farm (the insurance company is based out of my hometown about 20 minutes from where I live) is hiring for a programmer, network administrator or whatever else would be a good career path, then I would have a good chance on landing that job!

To be honest, I heard C++ was not exactly friendly to the new programmer just starting out. Of course, that was years ago that I heard that and it may have gotten easier over time. My sandbox of choice would be Windows (I don't have any knowledge in OSX or Linux), and I really think that I would like to program with VB.net and C++.

-Luzah

I hope this doesn't come off as trying to crush your dreams comment, but just be prepared that some people won't hire people that don't have degrees, and some companies won't even give you an interview. I also think there is a degree of agesim in the software industry. If you do go to school, it will more difficult coming into a working world the later it happens. In that regard, you are at a disadvantage.

In terms of advice on where to start, it might be worth looking at iTunes University to see if there are any classes available for you can download. Something like:

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=405934910

or http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=384232896

It looks like there is a lot of stuff on there. That will give some information on some of the important topics regarding object oriented design and stuff like that. This is all stuff you are going to need to know.
 

Kingkazma

Member
Feb 23, 2011
105
0
0
First things first, you need to get a compiler and preferably an IDE. There are lots of free IDEs out there. Some of the best are Code::Blocks and MSVC.
http://www.codeblocks.org/downloads/26 (get the one with mingw)
http://www.microsoft.com/express/Downloads/#2010-Visual-CPP

Next, cuddle down with a nice tutorial and reference. The following is pretty good for reference (I've not ran through the tutorial.)
http://www.cplusplus.com/doc/tutorial/
http://www.cplusplus.com/reference/

After that, pick a project that you personally would like to complete. If you can think of anything, then try running through some programming challenges (there are several out there.) Project Euler is a popular one.
http://projecteuler.net/
If you do choose to do project euler, be sure to browse through some of the other solutions after you get the right answer. You can get a lot of insight be seeing the way others decide to attack the same problem.

You may also like to pick up a book on the subject. Though, I've found that you learn how to program mostly by doing, and less by reading about programming.

And as always, if you get stuck, be sure to ask questions here. We'll be happy to help and then degrade into an argument about languages.

wow thanks a lot! i do have access to visual studio 2010, should i use that?

also what book do you recommend?
 

Cogman

Lifer
Sep 19, 2000
10,286
147
106
wow thanks a lot! i do have access to visual studio 2010, should i use that?

also what book do you recommend?

Yes, If you have access to the full version of VS, definitely use it, it i great. Just realize that VS does a few things that are not standard C++ (int _tmain(int argc, _TCHAR* argv[]) and stdafx.h for example).

As for books, I can't really recommend any. The one I used in college wasn't all that great ( http://www.amazon.com/Absolute-C-Wal...098409&amp;sr=1-24 ). It does hit most things, however.