PDA

View Full Version : What programing language should I learn next?



stamatiou
November 7th, 2010, 04:14 PM
Hey guys,
I am new in Ubuntu and I learnt my first programing language, Python(I read the "Dive into Python" book) and I don't know what language should I learn next......
You know, I am in the first Gymnasioum and I'd like to be simple stuff...

Arndt
November 7th, 2010, 05:08 PM
Hey guys,
I am new in Ubuntu and I learnt my first programing language, Python(I read the "Dive into Python" book) and I don't know what language should I learn next......
You know, I am in the first Gymnasioum and I'd like to be simple stuff...

If you want to stick with higer-level languages, try Scheme.

Or if you want to learn the language that other languages such as Python and Scheme are typically written in (or used for speed when Python is too slow), learn C.

At some point, someone will probably force the object oriented extension of C, C++ on you, but I suggest you wait until that happens.

For a general-purpose, but somewhat odd, language, try Erlang.

muze4life
November 7th, 2010, 05:27 PM
C or C++

stamatiou
November 7th, 2010, 07:27 PM
If you want to stick with higer-level languages, try Scheme.

Or if you want to learn the language that other languages such as Python and Scheme are typically written in (or used for speed when Python is too slow), learn C.

At some point, someone will probably force the object oriented extension of C, C++ on you, but I suggest you wait until that happens.

For a general-purpose, but somewhat odd, language, try Erlang.
What about XHTML?

CptPicard
November 7th, 2010, 07:39 PM
What about XHTML?

It's not a programming language... but such markup languages are trivial to pick up if you're into real programming languages.

I'd also recommend messing a bit with Scheme for the intellectual growth it provides; otherwise, C is also a good language to get a hang of sooner or later.

stamatiou
November 7th, 2010, 07:44 PM
It's not a programming language... but such markup languages are trivial to pick up if you're into real programming languages.

I'd also recommend messing a bit with Scheme for the intellectual growth it provides; otherwise, C is also a good language to get a hang of sooner or later.
What do you mean?
What should I choose?

r-senior
November 7th, 2010, 07:45 PM
XHTML is a markup language, rather than a programming language, but it would be useful to learn if you are interested in creating web sites or doing web development. If you plan to learn XHTML, do learn it properly from the start, using CSS for formatting and the XHTML for content.

XHTML (http://www.w3schools.com/xhtml/)
CSS (http://www.w3schools.com/css/default.asp)

It's also worth at least understanding XHTML's close cousins:

HTML (http://www.w3schools.com/html/default.asp)
XML (http://www.w3schools.com/xml/default.asp)

And then there's Javascript (http://www.w3schools.com/js/default.asp) and toolkits like Dojo (http://www.dojotoolkit.org/). Other things that go well with web development are PHP (http://www.php.net/) and Java (http://www.oracle.com/technetwork/java/index.html).

As web applications are often data-driven, you'd probably want to learn SQL (http://www.w3schools.com/sql/default.asp) too.

Come back tomorrow and let us know how you got on. ;)

stamatiou
November 7th, 2010, 07:48 PM
XHTML is a markup language, rather than a programming language, but it would be useful to learn if you are interested in creating web sites or doing web development. If you plan to learn XHTML, do learn it properly from the start, using CSS for formatting and the XHTML for content.

XHTML (http://www.w3schools.com/xhtml/)
CSS (http://www.w3schools.com/css/default.asp)

It's also worth at least understanding XHTML's close cousins:

HTML (http://www.w3schools.com/html/default.asp)
XML (http://www.w3schools.com/xml/default.asp)

And then there's Javascript (http://www.w3schools.com/js/default.asp) and toolkits like Dojo (http://www.dojotoolkit.org/). Other things that go well with web development are PHP (http://www.php.net/) and Java (http://www.oracle.com/technetwork/java/index.html).

As web applications are often data-driven, you'd probably want to learn SQL (http://www.w3schools.com/sql/default.asp) too.

Come back tomorrow and let us know how you got on. ;)
Look, I'd like to create web pages that have games and such things, what should I learn next?

worksofcraft
November 7th, 2010, 07:58 PM
My question is why you want to learn another computer language?

If you wan to learn it to see a completely different approach then I would take a look at lisp or prolog.

If you want to get down to the nuts and bolts then consider C or assembler.

If you want to program for the web then Java script, PhP and yes xhtlm too.

Also you will find it very useful to learn the command line shell scripting language, "bash".

However TBH I think just for exploring algorithms and programming simple applications your choice to learn Python was a good one and I'm sure there will be plenty more for you to learn with that :)

r-senior
November 7th, 2010, 08:00 PM
Web-based games can be written in Java using Java applets. If you are into game-development, that would also give you a route into things like writing games for the Android platform.

stamatiou
November 7th, 2010, 08:00 PM
My question is why you want to learn another computer language?

If you wan to learn it to see a completely different approach then I would take a look at lisp or prolog.

If you want to get down to the nuts and bolts then consider C or assembler.

If you want to program for the web then Java script, PhP and yes xhtlm too.

However TBH I think just for exploring algorithms and programming simple applications your choice to learn Python was a good one and I'm sure there will be plenty more for you to learn with that :)
Which is easier, the web development ones or C?

worksofcraft
November 7th, 2010, 08:04 PM
Which is easier, the web development ones or C?

Personally I think C is easier. PhP and Javascript both evolved from C with object oriented extensions but they are confusing because they get mixed into HTML so you end up programming in 3 different languages at once whether you like it or not :shock:

Crazedpsyc
November 7th, 2010, 08:39 PM
As much as I hate to say it, Flash is really the best option for making web games. If you want to start making graphical user interfaces with python I suggest wxPython. It is very simple and easy to use, yet produces as much or more than GTK

worksofcraft
November 8th, 2010, 12:54 AM
As much as I hate to say it, Flash is really the best option for making web games. If you want to start making graphical user interfaces with python I suggest wxPython. It is very simple and easy to use, yet produces as much or more than GTK

Oh yes... Flash is awesome I forgot about that... alas it's not free and I don't think you can get it for Linux :(

p.s. also I think Microsoft is making their own ripoff... -oops- I mean 'clone' of flash called "Silverlight" but no... that's probably just the name of a sword in a well known morpg... my bad (don't sue me).

myrtle1908
November 8th, 2010, 01:58 AM
Look, I'd like to create web pages that have games and such things, what should I learn next?

JavaScript + SVG and/or Canvas.

matthew.ball
November 8th, 2010, 04:23 AM
Keep using python until you know it back-to-front.

stamatiou
November 8th, 2010, 08:48 AM
Keep using python until you know it back-to-front.
Do you know were I can improve my skills?

nvteighen
November 8th, 2010, 09:08 AM
Do you know were I can improve my skills?

Mainly by practice, specially dedicating yourself to a small project. I know it's difficult to think of a project when you're a beginner, but give it a try. And the more you like the idea, the more you'll enjoy coding it.

Of course, you can go and read some Python stuff in the internet too. But IMO, the main way to improve your skills is by coding; reading is needed too but secondary.

bouncingwilf
November 8th, 2010, 09:32 AM
C would be my choice ( and I've tried most) C++ possibly but personally I never took to it

Bouncingwilf

stamatiou
November 8th, 2010, 10:07 AM
Mainly by practice, specially dedicating yourself to a small project. I know it's difficult to think of a project when you're a beginner, but give it a try. And the more you like the idea, the more you'll enjoy coding it.

Of course, you can go and read some Python stuff in the internet too. But IMO, the main way to improve your skills is by coding; reading is needed too but secondary.
Is byte into Pytho easy?

t.rei
November 8th, 2010, 10:22 AM
Also a good way to learn is to use things written in a language, dislike a part of them, or find a feature thats missing or find a bug, then do that, and give the results back to the maintainer. (knowing how to do a proper patch to submit is usefull knowledge).
The nice part here is: you see lots of code that is actually DOING something, you learn debugging, and you get feedback and if you are doing well, you actually make something for everyone of us. And even a fixed button that was 'ugly' before is one less ugly button. Now see yourself as a part of the tens of thousands of people who make the linux desktop. Yes, participating is that easy. :D

stamatiou
November 8th, 2010, 11:21 AM
Also a good way to learn is to use things written in a language, dislike a part of them, or find a feature thats missing or find a bug, then do that, and give the results back to the maintainer. (knowing how to do a proper patch to submit is usefull knowledge).
The nice part here is: you see lots of code that is actually DOING something, you learn debugging, and you get feedback and if you are doing well, you actually make something for everyone of us. And even a fixed button that was 'ugly' before is one less ugly button. Now see yourself as a part of the tens of thousands of people who make the linux desktop. Yes, participating is that easy. :D
How can I partixipate, for example, I dont know many things and I will probably make a mess...
Also, I know only a few things about Python by the Dive Into Python boook..
Can I help?

matthew.ball
November 8th, 2010, 12:51 PM
You could have a go at some problems from Project Euler (http://projecteuler.net/). Possibly it's more to do with algorithms then actually learning a language (though most people who already know one language often use it as an exercise to learn another), but if you felt comfortable enough with Python that you should start looking at other languages, perhaps you are ready to tackle some Project Euler :D

Don't worry too much about "not knowing much" - everyone starts off from the same place. Basically:

1. Search around on Launchpad (https://launchpad.net/) or SourceForge (http://sourceforge.net/) (or one of the many other project sites).
2. Find a project which interests you.
3. Download the source code and review it. Make yourself familiar with the particular programming style(s) used.
4. Contribute back.

No one reads one book and instantly knows all there is to know on the subject (well, maybe you could with a trivial subject, but programming's certainly not trivial). It's an iterative process which takes time.

I remember reading a quote by someone (though I can't remember any names at the moment) which said something to the effect of "it takes a few years to become good at something, it takes a decade to really master that art" - I believe this is particularly relevant to programmers, which is partly why I suggest just stick with python for now. I'm not saying use only python for the next 10 years, but keep using it until you know it well enough to know why you want to learn a different language.

At some point, you'll realise programming languages are really just abstracting away computations, if you know one, you know them all - they only differ in syntax.

Good luck, and happy hacking.

apoth
November 8th, 2010, 12:56 PM
Clojure. Just to be different. :)

wojox
November 8th, 2010, 12:57 PM
D (programming language) (http://en.wikipedia.org/wiki/D_%28programming_language%29)