PDA

View Full Version : What do you think is the best language to be a beginner at?



Darkcloud
July 10th, 2007, 06:05 AM
Curious because my first attempt was with Visual Basic and the guy teaching it was just really out there. I had a hard time with learning.. Want to try again but maybe with a whole lotta feed back first. on what everyone thinks is the best

Alterax
July 10th, 2007, 06:08 AM
C++ isn't bad; it's not difficult to learn the syntax and it's extremely powerful.

lisati
July 10th, 2007, 06:10 AM
"It depends". You're likely to come across a variety of opinions - some say Python, some say "C" or one of its derivatives, some say Pascal......

There are versions of Basic available for Ubuntu

maniacmusician
July 10th, 2007, 06:17 AM
Ruby! Learn Ruby! and also Python.

Darkcloud
July 10th, 2007, 06:18 AM
now that might be something to look at I knew python came with Ubuntu but hadn't noticed visual I was just curious as to opinions there seems to be alot of those around :)

FoolsGold_MKII
July 10th, 2007, 06:22 AM
Python's more of a scripting language, but you still get to learn a lot of fundamentals about computer programming.

If you want something more system-level though, C is good. C++ is more common, but it's harder.

Darkcloud
July 10th, 2007, 06:23 AM
now thats what I was looking for something I have never heard of Ruby I just went and looked it up cool thanks

I do also want more advanced skills but I had a rather bad first introduction and it led to confusion

maniacmusician
July 10th, 2007, 06:36 AM
now thats what I was looking for something I have never heard of Ruby I just went and looked it up cool thanks

I do also want more advanced skills but I had a rather bad first introduction and it led to confusion
Which is why I recommended ruby. It's relatively easy. It's about as easy as it gets, but its still a little tough for a beginner. If you keep at it though, and ask plenty of questions, you'll definitely get it.

And you can always graduate later to more advanced types of programming.

Python and Ruby are both pretty easy. I just prefer Ruby personally.

ButteBlues
July 10th, 2007, 06:57 AM
Ruby and Python each have their own little quirks that lend to making one or another better depending on the user.

I, too, prefer Ruby for a few minor reasons of little relevance. Python's probably more documented at the moment; however, Ruby is the "bandwagon" to hop on. Right now, Ruby is expanding in many areas - it's estimated that Ruby programmers will increase by 50% this year alone. Beyond that, Ruby on Rails is an insanely strong and popular web development platform.

I can't help but recommend Ruby - it seems to be where the opportunities are right now.

c4taclysmicPr0posal
July 10th, 2007, 07:42 AM
I'm not a very good programmer, but I love C. I recommend it because its really in depth, and its quite the headache, but really satisfying once you get your first real program to work.

BOBSONATOR
July 10th, 2007, 07:56 AM
im in the same boat myself, im thinking of either doing python or ruby, then heading on towards C then C++

st0nes
July 10th, 2007, 09:43 AM
Python because the sytax is easy and makes sense; it supports both procedural and OO methods; it is free (both interpreter and a plethora of dev environments); there are plenty of free publications to help you learn.

Darkcloud
July 10th, 2007, 05:56 PM
Good Morning love all the suggestions I can't seem to find ruby or python though synaptics reports they are installed but where I don't know :lolflag: challenged already!

ButteBlues
July 10th, 2007, 06:00 PM
Good Morning love all the suggestions I can't seem to find ruby or python though synaptics reports they are installed but where I don't know :lolflag: challenged already!
They're installed as "ruby" and "python" respectively. ;)

They're not GUI apps in their own right.

Darkcloud
July 10th, 2007, 06:12 PM
oh thank explains it well off to find tutorials thank you

AaronMT
July 10th, 2007, 06:29 PM
As a to be computer programming graduate I started with C and am finishing with C (currently in a unix system programming course). Took many courses with Java/C++/VB.NET/Perl/C#/ASP.NET.

You should definitely start with C and learn sequential programming. Once comfortable make the leap to object oriented programming with C++.

AlexenderReez
July 10th, 2007, 06:38 PM
yea..my university too....it is seems like that...but choose to learn other language while learning program course language is better.....like python...can be integrate with c....so we won't lose anything....

mangar
July 10th, 2007, 06:38 PM
Start with C++, move to C, stay with C++.

forrestcupp
July 10th, 2007, 09:06 PM
I think Spanish is one of the simplest languages to learn.


Python's more of a scripting language, but you still get to learn a lot of fundamentals about computer programming.

If you want something more system-level though, C is good. C++ is more common, but it's harder.
Python is a lot more than just a scripting language. True, it's an interpreted language, but it's full featured. With extensions and bindings, you can do anything in Python that you can do in C++; it's just slower.

If you are looking to the long run, and don't need to cram it down real fast, I agree with the Python people. Then learn C++ after you get the hang of how programming works. If you start with C++ without any experience, you'll probably give up.

Nekiruhs
July 10th, 2007, 09:07 PM
Python is the way to go. Its designed to be clear and readable.

~~Tito~~
July 10th, 2007, 09:10 PM
Curious because my first attempt was with Visual Basic and the guy teaching it was just really out there. I had a hard time with learning.. Want to try again but maybe with a whole lotta feed back first. on what everyone thinks is the best

Lua script or Java on your own. Then visual basic then c++ by a teacher, because those need drive that a teacher gives and on your own you'll just get to frusterated. Lua can be learned by anyone. Takes about a 2 months to get used to.

Sadly I don't know any of these at all except for the beginning steps of Lua. I know a Lua coder and a Java coder, visual basic and c++ coders, they told me this ^ and that >. Lua should not take long, especially Lua coding for the PSP.
Go here (http://www.ozone3d.net/tutorials/lua_coding.php) for more. I'm not sure if its a good guide because I just googled "Lua Coding tutorials".

ticopelp
July 10th, 2007, 09:24 PM
I'd say Latin...

...oh, you mean programming language.

~~Tito~~
July 10th, 2007, 09:25 PM
. . . . . De De Dee, lol. No Latin is a good human language to learn

bigboy_pdb
July 10th, 2007, 10:47 PM
I'd say that the language that would be best for you to learn will depend on your understanding of computers.

No matter what language you learn to use, you should understand the directory tree and file structures (otherwise you cannot save information). Understanding your operating system, processes, and input and output devices is also helpful. Learning shell scripting using the bash shell might also be helpful.

C and C++ are good languages to learn, but I don't think you should learn them as your first languages because they are somewhat low level languages. Low level languages are languages that are closer to the language that your processor uses (assembly is a lower level language than C or C++). In C and C++, you have to allocate memory when you need it, and pointers and references can be frustrating to learn about. Macros, while useful, can also add to the confusion. However, if you have a good knowledge of the operating system and would like to have more control (and don't mind more debugging) then these languages might not be too difficult for you to learn. In the end, I would recommend trying to learn C and C++ because they are incredibly powerful languages that are commonly used, but I just don't recommend them as introductory languages.

Other languages hide the low level details and perform tasks like allocating memory and collecting garbage, and they have simpler rules for using references and pointers. I've never used Python so I can't say anything about it. Java is a higher level language with a well documented Application Programming Interface (API) and there is a good amount of information available for learning how to program using Java. Also, Sun Microsystems has some good documentation and tutorials on their website.

You can find Java tutorials on Sun's website at:
http://java.sun.com/docs/books/tutorial/

ButteBlues
July 10th, 2007, 10:48 PM
Python is a lot more than just a scripting language. True, it's an interpreted language, but it's full featured. With extensions and bindings, you can do anything in Python that you can do in C++; it's just slower..

This type of comment has always annoyed me if for no reason other than "Who cares?"

Python is not used for operating system-level tasks. It is used for applications and scripts - two types of "code" that Python not only lends itself to, but in which only little chunks of code are actually ran at any one given time such that outright speed of a language has no effect on application performance.

bigboy_pdb
July 11th, 2007, 12:56 AM
Sorry, I was thinking about my post (and I haven't used either C or C++ for a couple of years) and I realized that I made C and C++ sound as though they are similar.

Allocating memory in C is more work and it is more prone to memory leaks (assuming you aren't using C code in C++). C++ uses "new" to allocate memory but you may need to use deconstructors to perform clean up actions in certain circumstances. C++ is object oriented (whereas C has structures), and C++ has some additional (and simpler) operators for using pointers and references. Generally, C++ is more high level than C, but it is still a lower level language than some other languages like Java.

If you're interested in which one of those you might want to learn (if you decide to learn one of them later), you might want to look at this post:
http://ubuntuforums.org/showthread.php?t=496427

macogw
July 11th, 2007, 01:16 AM
Python is as close to English as any language can get, I think. It's very easy to read other people's Python and figure out how it works (especially as compared to something like C which, if the preprocessor is used heavily, can become very hard to read), so that's good when you want to learn by figuring out other people's stuff. Python is whitespace-dependent, so it forces you to learn to indent properly which makes for muuuch more legible code.

Java is usually taught as a beginning language, probably because it runs in a VM (hey, that's what "Jave Runtime Environment" means) and the compiled version is therefore able to work on Windows, Mac, or Linux. Another reason it's common is probably because it's part of the C family, so it gets you used to the way C-derived languages look, making it easier to read C or C++ or ObjectiveC without knowing them in advance and easier to move to them (only a little bit of syntax has to be relearned).

Whatever language you choose to learn first, learn a second. The first may be tough and you might need a beginner book or have to ask for help. The second will be a piece of cake. Once you learn one, you know how programming works. You know how to come up with what steps the program has to take. It's just a matter of getting the syntax. A book might still be good; I have a Python reference that just gives a brief overview of what built-in function handles what task and what syntax to use for whatever you need to do. I don't need one that explains that booleans are for true and false because I learned that when I learned VB. You'll find that once you've got the first language down, a beginner book for the second feels horrifically boring to read and has the first third packed with things that you will then deam "useless" since you already know them. For 2nd, 3rd, 4th, etc languages, the book will probably sit on the shelf unused most of the time, and only be pulled out when you need to look up what the substring function is in C++.

If you want a GUI to work with, Eclipse is the free equivalent to Visual Studio. It does all that filling in class/method/function/struct (whatever!!!!!) outlines and tab-completion stuff like Visual Studio does in VB. If you're cool with using a plain text editor, you could use a GUI one like Gedit (it does have syntax highlighting) or Emacs or a terminal one like nano or vim or Emacs (it can be GUI or terminal....well, so can vim if you use gvim). I like vim because I can :wq and compile and run quickly...and I didn't Visual Studio when I learned VB. Eclipse does have a neat thing where it compiles / checks for errors as you type (at least in Java it does) so on compiled languages (Python is not a compiled language) you can find errors before you finish typing, hit compile, and learn that there are 69 errors, fix one and find that there's only 5 errors left, fix 2 more and learn that the 3rd was hiding another 50 from you.

codydh
July 11th, 2007, 01:30 AM
I agree with the Java recommendation... easy to go from OS to OS, pretty simple looking back, and you can make some fun encouragement-building apps pretty easily.

bigboy_pdb
July 11th, 2007, 01:43 AM
I was just looking up programming using C# in Linux because there are a number of jobs that require programming using C# (for Windows) and I'd like to get used to its syntax.

It turns out that there's a program called mono that lets you compile .NET code in Linux so you might want to take a look at that. The site is:
http://www.mono-project.com/Main_Page

If you want to try it, you can do a search for "mono" in the Synaptic Package Manager (System -> Administration -> Synaptic Package Manager). You'd need to install the "mono" and "mono-cms" packages.

I'm not certain how easy C# is to use, but it might be worth looking at. Perhaps someone else can post about their experiences with C#. The other languages that were mentioned will be better supported than C# (since it was developed by Microsoft) and if you're a Linux advocate you may not want to support the use of a Microsoft language. I'd rather not support it, but a number of jobs require C#, and I can always develop free software on my time off.

macogw
July 11th, 2007, 02:17 AM
I was just looking up programming using C# in Linux because there are a number of jobs that require programming using C# (for Windows) and I'd like to get used to its syntax.

It turns out that there's a program called mono that lets you compile .NET code in Linux so you might want to take a look at that. The site is:
http://www.mono-project.com/Main_Page

If you want to try it, you can do a search for "mono" in the Synaptic Package Manager (System -> Administration -> Synaptic Package Manager). You'd need to install the "mono" and "mono-cms" packages.

I'm not certain how easy C# is to use, but it might be worth looking at. Perhaps someone else can post about their experiences with C#. The other languages that were mentioned will be better supported than C# (since it was developed by Microsoft) and if you're a Linux advocate you may not want to support the use of a Microsoft language. I'd rather not support it, but a number of jobs require C#, and I can always develop free software on my time off.
My understanding is that Mono is currently only able to do really old .NET stuff.

phrostbyte
July 11th, 2007, 02:37 AM
Python because it's easy to develop GUI applications and it's a first class citizen in Ubuntu and most Linux distros.

Darkcloud
July 11th, 2007, 02:45 AM
I'd say that the language that would be best for you to learn will depend on your understanding of computers.

No matter what language you learn to use, you should understand the directory tree and file structures (otherwise you cannot save information). Understanding your operating system, processes, and input and output devices is also helpful. Learning shell scripting using the bash shell might also be helpful.

C and C++ are good languages to learn, but I don't think you should learn them as your first languages because they are somewhat low level languages. Low level languages are languages that are closer to the language that your processor uses (assembly is a lower level language than C or C++). In C and C++, you have to allocate memory when you need it, and pointers and references can be frustrating to learn about. Macros, while useful, can also add to the confusion. However, if you have a good knowledge of the operating system and would like to have more control (and don't mind more debugging) then these languages might not be too difficult for you to learn. In the end, I would recommend trying to learn C and C++ because they are incredibly powerful languages that are commonly used, but I just don't recommend them as introductory languages.

Other languages hide the low level details and perform tasks like allocating memory and collecting garbage, and they have simpler rules for using references and pointers. I've never used Python so I can't say anything about it. Java is a higher level language with a well documented Application Programming Interface (API) and there is a good amount of information available for learning how to program using Java. Also, Sun Microsystems has some good documentation and tutorials on their website.

You can find Java tutorials on Sun's website at:
http://java.sun.com/docs/books/tutorial/

Actually I have a rather firm grasp of computers a degree in network technologies and technician certs I really want to learn more of programming I know some HTML and Java but when it came to learning object oriented Visual Basic I just choked the instruction I recieved confused me I really am enjoying reading all the feedback it looks like most of you suggest C++ and the links are great too thank you

ButteBlues
July 11th, 2007, 02:54 AM
My understanding is that Mono is currently only able to do really old .NET stuff.

Not really. Most of the stuff you'll use are in Mono 1.2.4.

Not to mention, with things like WindowsForms ported over, things are getting even easier for folk.

forrestcupp
July 12th, 2007, 10:51 PM
This type of comment has always annoyed me if for no reason other than "Who cares?"

Python is not used for operating system-level tasks. It is used for applications and scripts - two types of "code" that Python not only lends itself to, but in which only little chunks of code are actually ran at any one given time such that outright speed of a language has no effect on application performance.

I don't really understand your point. I know that you can't program system level stuff with Python, and I agree that for the most part "Who cares?" I don't really understand what you're getting at. Are you mad about the part where I said it's slower? The only reason I made the comment is because I was replying to someone who was implying that Python isn't very powerful because it's just a scripting language. The part about it being slower wasn't really my point. I and many others see Python as more than a scripting language. It is a full-featured object oriented language.

I personally use C++, but it irritates me when people claim that Python is nothing but a useless scripting language.

If you're mad that I said it is slower, try programming a high speed game with Python. The only way to do it is to use bindings to a game engine that was programmed with c, c++, or assembly. For regular apps, it doesn't make any difference.

You can use it as a scripting language, or you can use it beyond that.

ButteBlues
July 13th, 2007, 12:43 AM
I don't really understand your point. I know that you can't program system level stuff with Python, and I agree that for the most part "Who cares?" I don't really understand what you're getting at. Are you mad about the part where I said it's slower? The only reason I made the comment is because I was replying to someone who was implying that Python isn't very powerful because it's just a scripting language. The part about it being slower wasn't really my point. I and many others see Python as more than a scripting language. It is a full-featured object oriented language.

I personally use C++, but it irritates me when people claim that Python is nothing but a useless scripting language.

If you're mad that I said it is slower, try programming a high speed game with Python. The only way to do it is to use bindings to a game engine that was programmed with c, c++, or assembly. For regular apps, it doesn't make any difference.

You can use it as a scripting language, or you can use it beyond that.
My point was that many people whine that Python's slower, but, really, considering the tasks Python is used for, speed of the code execution is always such a non-factor that I simply don't know why anyone even bothers to bring it up anymore.

forrestcupp
July 14th, 2007, 12:38 PM
My point was that many people whine that Python's slower, but, really, considering the tasks Python is used for, speed of the code execution is always such a non-factor that I simply don't know why anyone even bothers to bring it up anymore.

Ok. But the fact that it was slower wasn't my point. My original point was that you can do most things with Python and it works well.

ButteBlues
July 14th, 2007, 03:21 PM
Which is something I agree with.

I was just echoing a bit of a pet peeve while agreeing.