What's a good Programming language to begin with? PLZ HELP!
ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Originally posted by Harishankar Sure, you have Python on many platforms. That's what not I meant. I meant writing 100% cross-platform code in Python is harder than in Java.
What I meant was that in many cases you will not be able to use the write-once, run-everywhere thing with Python.
Unlike Java, you do find platform specific APIs in many Python modules/bindings which might not work on all platforms.
I disagree when you write python code you should know that a module is not cross platform and therefore it will not be cross platform.
The bad thing about python is that Windows does not have python by default unlike Java so people have to install it to get cross platform code.
However as python is open source it can be ported to all platforms with a C compiler unlike Java, which does not work on all platforms I think.
So in some ways it is easier in python to write cross platform code.
Originally posted by davholla I disagree when you write python code you should know that a module is not cross platform and therefore it will not be cross platform.
The bad thing about python is that Windows does not have python by default unlike Java so people have to install it to get cross platform code.
However as python is open source it can be ported to all platforms with a C compiler unlike Java, which does not work on all platforms I think.
So in some ways it is easier in python to write cross platform code.
With Jython, the set of platforms where Java runs is a subset of the set of platforms where Python does...
The big thing about learining to program is learning the first language.
The way to learn a language is to write a program.
So what kind of program would you like to write?
Most languages are best for certain kinds of problems.
a. web page scripting etc. RUBY or PHP
b. parsing text, and generating other languages. PERL
c. Coding library routines or neat utilities to deal with disks, displays etc. H/W => C
d. GUI based app where the user interface is a major componnent => JAVA, C++
e. Getting your mind around Object Oriented concepts etc. PYTHON, RUBY, JAVA, EIFFEL
Well you get the idea.
Dont try to hammer a nail with a screwdriver.
and it will tell you it's 40 in hex. It's no big deal -- in a program you can just type what you have, 64 or 0x40 or 0100 (decimal, hex, or octal), and it's all the same thing.
There's way more to object oriented programming than we can tell you here. You try to structure your problem in terms of "objects" and what you can do to them. There's some lingo that comes with OOP. The operations that an object supports are often called "methods" instead of "functions" or "subroutines". Objects of the same type are said to be in a "class". A more specific class can be derived from another class, which can be read as an "is a" relationship, like "a dog is an animal". One says the derived class "inherits" members/capabilities from the base class. In this way, you build class hierarchies. Well, this is probably going to sound like gobbledygook till you read a book.
E.g., C++, Java, and Perl are object-oriented. Each has its merits as a first language.
Perl will be the quickest to get a program running and do something interesting. "Perl is designed to make the easy jobs easy, without making the hard jobs impossible". Perl has a wealth of language features, which let you write very dense code, to the point of being cryptic. Other people's perl can be hard to read. There are good books -- I thoroughly enjoyed reading "Programming Perl" by Wall, Christiansen, Schwartz.
If you look for discipline, use a strongly typed language like Pascal, C++, or Java.
Java may be a good start. It's still high level and goes to great lengths in preventing you from getting into lower level trouble. It checks your every array access, so you learn right away when you reach outside. It collects garbage after you (which gives you less to worry about, but may teach you to be sloppy, because you just drop objects when you're done with them).
C++ is a very rich language. It lets you get closest to the machine, which you may need to write an mpeg3 player :-). There are several language features that you don't get in Java, e.g., operator overloading (you can define what "a + b" means if a and b are your custom objects), templating, and multiple inheritance. You will not use these features right away, but when you need them later, they are ready.
Learning C first seems like a detour -- I wouldn't start there.
i would say that knowing introductory algebra would be helpfull if you were
learning C. Please note tho that pure algebra is not implmented into C.
Programming language as a general is just a way to make humans understand
how to talk to a computer that is more natural for them so that they can make
it do what they want. Think of computers are your slaves they no nothing and
do nothing more then what you tell them to do.
As to witch one is eazier to learn or witch would be beter its more style. Or
better level of control. C gives you the ablity to control memory and more
closly exactly how the program will be executed. Assembly gives even more
control . Java gives you less because you do not need to worry about as
much things.
Note i have never learned any programming language other then C and very
little C++ (even tho most programs in C++ are just C programs with cout )
from what im told tho working with some of the so called eazier languages like
python and java are better for new programmers because you do not need
to worry so much on memory management or other processes.
If i would have to recommend if you can understand algebra like basic algebra heres an example x = 45 means x is 45 then you can probably learn C or C++
Distribution: Slackware Current - (Using Slapt-get!)
Posts: 51
Original Poster
Rep:
Quote:
Originally posted by Quigi At your Linux command line, type
Code:
printf %x\\n 64
and it will tell you it's 40 in hex. It's no big deal -- in a program you can just type what you have, 64 or 0x40 or 0100 (decimal, hex, or octal), and it's all the same thing.
There's way more to object oriented programming than we can tell you here. You try to structure your problem in terms of "objects" and what you can do to them. There's some lingo that comes with OOP. The operations that an object supports are often called "methods" instead of "functions" or "subroutines". Objects of the same type are said to be in a "class". A more specific class can be derived from another class, which can be read as an "is a" relationship, like "a dog is an animal". One says the derived class "inherits" members/capabilities from the base class. In this way, you build class hierarchies. Well, this is probably going to sound like gobbledygook till you read a book.
E.g., C++, Java, and Perl are object-oriented. Each has its merits as a first language.
Perl will be the quickest to get a program running and do something interesting. "Perl is designed to make the easy jobs easy, without making the hard jobs impossible". Perl has a wealth of language features, which let you write very dense code, to the point of being cryptic. Other people's perl can be hard to read. There are good books -- I thoroughly enjoyed reading "Programming Perl" by Wall, Christiansen, Schwartz.
If you look for discipline, use a strongly typed language like Pascal, C++, or Java.
Java may be a good start. It's still high level and goes to great lengths in preventing you from getting into lower level trouble. It checks your every array access, so you learn right away when you reach outside. It collects garbage after you (which gives you less to worry about, but may teach you to be sloppy, because you just drop objects when you're done with them).
C++ is a very rich language. It lets you get closest to the machine, which you may need to write an mpeg3 player :-). There are several language features that you don't get in Java, e.g., operator overloading (you can define what "a + b" means if a and b are your custom objects), templating, and multiple inheritance. You will not use these features right away, but when you need them later, they are ready.
Learning C first seems like a detour -- I wouldn't start there.
That does sound a little strange right now but, I've just two books on C++ and one C the C book they had assume you knew other program languages as I do not. and Thank You all for all of your info so far I Truuuuly Appreciate it! As i'm trying to get a programming career off the ground!
Hmmm.... I did not know linux could a "print" command like that! Thanks!
Distribution: Slackware Current - (Using Slapt-get!)
Posts: 51
Original Poster
Rep:
Quote:
Originally posted by exvor i would say that knowing introductory algebra would be helpfull if you were
learning C. Please note tho that pure algebra is not implmented into C.
Programming language as a general is just a way to make humans understand
how to talk to a computer that is more natural for them so that they can make
it do what they want. Think of computers are your slaves they no nothing and
do nothing more then what you tell them to do.
As to witch one is eazier to learn or witch would be beter its more style. Or
better level of control. C gives you the ablity to control memory and more
closly exactly how the program will be executed. Assembly gives even more
control . Java gives you less because you do not need to worry about as
much things.
Note i have never learned any programming language other then C and very
little C++ (even tho most programs in C++ are just C programs with cout )
from what im told tho working with some of the so called eazier languages like
python and java are better for new programmers because you do not need
to worry so much on memory management or other processes.
If i would have to recommend if you can understand algebra like basic algebra heres an example x = 45 means x is 45 then you can probably learn C or C++
OK I have the math part covered I! (don't really love math all that much anyway but, I know it's important) One question does the order of operations apply with programming (PEMDAS) especially C++ or do they have their own? (I think this is called the order of operators).
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.