View Full Version : Help, i'm a complete noob...
Hello everyone,
I am very new to programming. i have been interested in learning how to program for a few years now. It wasn't until lately that i actually had time to sit down and work at this. I have googled and searched forums looking at multiple languages ranging from c to ruby, python to java, VB to... well you get the point. I'm interested in object oriented programming but i don't know where to start. i guess i'm looking for a programming language that would make a great building block. i don't want to jump right into c++ (for example), spend a fair amount of money and get into bad habits from the beginning.
A quick recap: i'm new to programing, looking to get into object oriented (eventually), i just want to start off on the right foot... what is a good language? something forgiving, and teaches good habits.
i know this is a debatable topic, i am very open to any idea/criticism.
thanks to anyone fearless enough to help me out.
<kdox>
gusblake
12-02-2009, 01:00 AM
I just started learning VB yesterday after sort of giving up on C++ because it felt like there were a lot of syntactic hoops to jump through before the compiler was entirely satisfied.
Win32 applications in VB can be created with a simple drag and drop interface, and visual studio will generate a lot of code for you (download visual studio 10 from microsoft.com), so you get a working windows program to mess around with almost instantly. You would have quite a bit of reading to do before you could manually write a GUI application in a language like C, so if you think you would be disheartened by the initial effort/result ratio then you might be better off learning a simpler language first - then when you do need to learn C it will be easier.
Having said that, my preference for simple high level languages is due to the entirely web development/javascript nature of my introduction to programming, and if you have never programmed before it would be wiser to learn how computers work from the ground up.
Fou-Lu
12-02-2009, 01:42 AM
Java is an excellent starting point for OO programming. C is not object oriented, but about the most powerful you can get for high level languages; however, it is tricky to learn since you need to be aware of memory handling and leaking. Same goes for C++ which is object oriented and quite similar to C.
Java on the other hand provides a robust starting point, datatype handling, with automatic garbage collection. It gives a great starting point for OO development, but doesn't present you with a staggering learning curve like C and C++ do. Its also cross platform so long as you avoid using the direct AWT library and choose a more light-weight component like the swing library for you're gui's. C#/VB.NET would be my next recommendation, C# is almost identical to Java though, but aside from MONO project it is windows exclusive (I'm no longer sure what the status of mono is). Once you're familiar with datatypes, other languages open up to you like perl and PHP. These are datatype weak languages (variables are interpreted by context, not definition) so its important that you don't learn on them in order to get an understanding. Although I started with VB and Pascal, I didn't learn enough to help me as a programmer. So, I started on perl, which is actually a bad choice. I spent my first five years programming in perl and PHP, which I pretty much assumed its how everything worked. Until I went back to school, I was not familiar with datatyping or memory control, so I essentially had a 50% understanding of programming for the first 5 years of my programming.
So, priority: Java/C# -> Java/C# (the other) -> VB.NET -> PHP -> PERL -> C / C++
You could squeeze python, ruby and coldfusion in there anywhere. Don't bother with VB, VB.NET is used nowadays.
Also, programming is not in any way related to a language. Programming is an approach to solve a problem; the logic it requires to get there. Languages are the tools you use to implement this logic; some languages can do things that others cannot, but the logic is always the same.
thank you fou-lou and gusblake for the speedy replies!
you guys gave me some good things to look for. as far as VB goes i've heard bad things about using it as a beginning language because it "supposedly" teaches bad habits? tho i'm not sure if that's true. i have ruled out VB on my own before posting but i wanted an opinion from someone who has experience.
does anyone have any good java tutorials? or some books to read up on to get started?
thank you all. i just needed to get my feet wet before i jumped in the water. (i have a feeling i'm not reaching the deep end for some time now. lol)
thank
kdox
sorry, found some tutorials in the java section. i was getting a head of myself here...
btw fou i love the flow chart.
kdox
drhowarddrfine
12-02-2009, 03:04 AM
esr recommends Python as a first language. It is OO and has a strong leaning toward Lisp.
Fou-Lu
12-02-2009, 01:34 PM
Yeah, python does look that way. I'm the kind of person that can read but not write in python, but it looks to be a good starting point as well. Another I didn't mention is delphi which may be beneficial to learn.
I myself am not a fan of VB in the least. When I do .NET apps, I do them with C# and avoid VB. I think its because I used the original VB (what <5 or whatever it was) which is quite different than the VB.NET. Something about it just feels... choppy, so yeah I guess you could say it may teach poor habits. But no matter the language, you can develop poor habits, so take that with a grain of salt.
Also, the language of choice would be based off of what you're most interested in. Web development would go for a ASP/ASP.NET or PHP, desktops with C#/VB, Java, C/C++, and hybrids with perl, python, ruby etc. Some languages provide more benefits than others when it comes to you're platform and environment. I wouldn't use PHP to administrate my network, but I would use Perl for this if I wanted a web and desktop environment. I'd use C if its just for the desktop. So knowing what you're interested in programming also gives a good starting point.
thanks again.
i am very excited to get going with this. i'm making a trip to the library and getting to the basics here soon. i've been mostly interested in getting into c++ because i liked the versatility. it may not be the best option but you can do alot with it...
then i heard about the steep learning curve, then thought java might be a good starting point. hopefully i can get moving on this. i know it will take a lot of time and effort.
thanks for pointing me in the right direction. i truly appreciate all the help.
Also, programming is not in any way related to a language. Programming is an approach to solve a problem; the logic it requires to get there. Languages are the tools you use to implement this logic; some languages can do things that others cannot, but the logic is always the same.
thank you for the correction. i just didn't know what else to relate to it. i'm glad to find out its more logic than anything else... i've always had a more mathematical and scientific way of thinking. looking through everything i don't catch things on first read. i think i'm done spamming away on this thread. if i have any problems from here on it'll be in the java section.
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.