You are not logged in.
So I already know Python. I decided to learn Python because I heard it was a good language to start out with. I've got a good grasp of the language and have been making various scripts for my personal needs. I've become interested in other languages and have wondered what I should learn next. So should I learn another language or continue exercising my hacker skills with Python? I want to learn a wide variety of types of programming.
Personally, I'd rather be back in Hobbiton.
Offline
C. It will teach you how to think. Take a look at „The C Programming Language", by Kernighan & Ritchie.
Offline
I agree with tadzik. C is a good second language- learning it is made easier by the fact that you know a higher level language already, but you still need to learn about memory allocation and all that fun stuff. C and Python compliment each other- one low level, quick, compiled, while the other is high level, slower, and interpreted. The K & R is also a really nice book.
And then after C you can learn Lisp and really take it to the next level
Offline
Cool. I'll be sure to Check it out! Is there anything I need to install from pacman?
Personally, I'd rather be back in Hobbiton.
Offline
There's a group called base-devel containing everything you *need*
that and and editor, and you're ready to go.
Offline
I've become interested in other languages and have wondered what I should learn next.
Teach Yourself Programming in Ten Years will give you an idea ;^)
Last edited by anrxc (2009-07-28 22:03:44)
You need to install an RTFM interface.
Offline
For something completely different, why not try Haskell?
Great free resource: http://book.realworldhaskell.org/ (though may be a bit advanced for someone coming directly from Python...)
This would certainly set you on your way toward "learn[ing] a wide variety of types of programming."
For something more "useful" (you do not specify what you plan to _do_ with your programming skills) I highly recommend boning-up on your shell/sed/awk programming skills.
M*cr*s*ft: Who needs quality when you have marketing?
Offline
Assembly is fun.
Offline
I recommend lua.
There is a difference between bleeding [edge] and haemorrhaging. - Allan
Offline
Learning new programming languages is fun but I think it's better if you develop something.
Much more better would be some bug fixing or helping some existing projects.
You can always learn new languages when you need to and save your time for something more useful (girl friend, friends, books, games, music etc).
Learning programming languages just to learn keeps you from doing practice in programming.
Mastering something takes time and practice, as someone told you before.
But, if you still want to learn something useful my advice would be bash. It's is a valuable tool you can use interactively and in batch mode.
It can save you a lot of time if mastered and used properly. So that can really be a reasonable investment.
I tried to learn a lot of tools and programming languages myself.
But jumping from distro to distro trying to find a perfect one and jumping from language to language trying to enlarge my knowledge (although fun) kept me from mastering what I already knew.
I hope the message was clear enough. I'm still learning English so sorry for mistakes.
Offline
I too would recommend C. It complements Python and is popular.
Java is also considerable.
Offline
I would go for C++ or Java personally. C is a great language to know, but if you learn C++ you will be exposed to a lot of C concepts and should be able to manage what you need. C++ gives you the advantage of more libraries (since you can use C and C++ libraries easily).
Java is also a great language and should be very easy to learn with a background in Python.
Personally I think everyone should at least be familiar with C++ and memory management even if you only plan to use garbage collecting languages.
Edit: Forgot to add this,
http://www.e-booksdirectory.com/programming.php
now say goodbye to all your free time and go learn 6 or 7 languages.
Last edited by scio (2009-07-29 12:34:07)
Offline
Learning new programming languages is fun but I think it's better if you develop something.
Much more better would be some bug fixing or helping some existing projects.
You can always learn new languages when you need to and save your time for something more useful (girl friend, friends, books, games, music etc).
Learning programming languages just to learn keeps you from doing practice in programming.
Mastering something takes time and practice, as someone told you before.
I don't think so. Programming takes time and practice, sure, but it also takes reading code and reading about programming. You can't give a pen and paper to a kid and say "here, write me a book" and spect this kid will write a masterpiece if she hadn't read a lot before.
Learning a new language gives you insights of how programming works, even on different languages. Both you and I aren't native speakers of English, but learning it changed the way I see somethings in Portuguese and vice versa; I have a different understanding of English and Portuguese that I would have if I've learnt only one of them, I belive this applies to you, too. This also works with programming languages: the way I program in C was different before I grasped some Lisp, and it would probably be different if I hadn't learnt Python, and so on.
Back on-topic, I'd recommend learning C, so you can grasp some of the basics: pointers, memory allocation, structs and unions, etc. Later, I'd suggest you to learn a language that makes you think about programming in a different way: Lisp or Haskell. Shell script is also nice, but I'd only use it to "glue" things together, and I don't see a problem with learning it concurrently with another language.
Edit:
Edit: Forgot to add this,
http://www.e-booksdirectory.com/programming.php
now say goodbye to all your free time and go learn 6 or 7 languages.
Indeed, very good site. I like the Mathematics "folder", too.
Last edited by andre.ramaciotti (2009-07-29 14:28:59)
(lambda ())
Offline
I would go for C++ or Java personally. C is a great language to know, but if you learn C++ you will be exposed to a lot of C concepts and should be able to manage what you need. C++ gives you the advantage of more libraries (since you can use C and C++ libraries easily).
Sorry, but I couldn't resist:
Linus Torvalds about C++
Offline
I would go for C++ or Java personally. C is a great language to know, but if you learn C++ you will be exposed to a lot of C concepts and should be able to manage what you need. C++ gives you the advantage of more libraries (since you can use C and C++ libraries easily).
Sorry, but I couldn't resist:
Linus Torvalds about C++
We all know how confrontational Linus Torvalds can be, but please try and stay on topic rather than possibly start a flame war.
Offline
I am learning vala. Its syntax is simillar to c#. But the best thing is that it actually compiles to pure c code with gobject.So pretty fast and no extra dependencies.
Tamil is my mother tongue.
Offline
Don't learn Java. Its philosophy is totally obsolete.
Offline
Don't learn Java. Its philosophy is totally obsolete.
And it doesn't teach you about useful things such as pointers.
Skip C++ and go directly for C. It will teach you the aforementioned useful things. Once you've learned it, you'll be able to do anything you can do with C++, minus the additional overhead and binary size (however insignificant they may be).
Offline
Thanks for the options. I've decided to learn C for now, I'm still working with python though. I hope I don't get the syntax confused. C's syntax is sorta like Python's, but more verbose and "scientific". I'll probably explore other languages after. I have some ideas that I've been playing with in Python. Mostly Pygame. I hope I can make a useful application eventually, then I think I'll be able to call myself a programmer, not just a hacker.
Personally, I'd rather be back in Hobbiton.
Offline
Almost forgot, one of my favorite ways to learn languages is to use:
http://projecteuler.net/
Just for inspiration beyond tutorials.
Offline
We all know how confrontational Linus Torvalds can be, but please try and stay on topic rather than possibly start a flame war.
From the look of it, it seems that the path to becoming a prominent open source programmer (Torvalds, Drepper, de Raadt, etc) involves countless hours of often expletive-laden and confrontational mailing list replies along with a noticeable amount of hubris.
Murdering your wife seems to help notoriety too but severely limits your productivity.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Skip C++ and go directly for C. It will teach you the aforementioned useful things. Once you've learned it, you'll be able to do anything you can do with C++, minus the additional overhead and binary size (however insignificant they may be).
Is there a GUI toolkit for C ?
Live Free or Die !
Offline
Peasantoid wrote:Skip C++ and go directly for C. It will teach you the aforementioned useful things. Once you've learned it, you'll be able to do anything you can do with C++, minus the additional overhead and binary size (however insignificant they may be).
Is there a GUI toolkit for C ?
Oho, I see what you're trying to do there! (Catch me out on 'you'll be able to do anything you can do with C++', for those of you who don't.)
Ever heard of GTK+?
Anyway. It's not so much what you can do with the libraries as what you can do with the language. Any C++-only library can be implemented with equivalent functionality in C.
Offline
Peasantoid wrote:Skip C++ and go directly for C. It will teach you the aforementioned useful things. Once you've learned it, you'll be able to do anything you can do with C++, minus the additional overhead and binary size (however insignificant they may be).
Is there a GUI toolkit for C ?
ncurses?
Offline
ljshap wrote:Peasantoid wrote:Skip C++ and go directly for C. It will teach you the aforementioned useful things. Once you've learned it, you'll be able to do anything you can do with C++, minus the additional overhead and binary size (however insignificant they may be).
Is there a GUI toolkit for C ?
ncurses?
I knew somebody was going to say that but left it out of my post. Something similar to dialog (for bash) would be great.
All the Graphical GUI's I looked at used C++ not C. Learning QT is a big enought pain-in-the-butt even with a basic understanding of C++, let alone without any knowledge of C++ or OOP in general.
The real beauty of C++ is that your program can be 95% straight C and just use the C++ features you want such as function overloading, default argument values, and using string class strings instead of CStrings, etc. The features are there if you want them, but you are not forced to use OOP.
Live Free or Die !
Offline