ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
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.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
As you know a bit of C I would say learn this in more detail. I think C is powerful language to learn and fits in well with Linux. After you have spent some time mastering C I would suggest learn an objected orientated language say Python or C++. I am not a fan of Java but again that's just my opinion.
Note that C++ although widely used, does not force you to program in an oop style it just has support for oop.
IMHO it is not just worth learning the syntax of an oop language but you need to learn how to design your code to fit in with the oop methodology.
Smalltalk is a good language for oop as it is purely an oop language.
As for programming in Linux and Windows I would choose to use the GTK toolkit - google gtk, glade(interface designer) and anjuta (IDE) for more details.
I personally think C++ is a good one to learn. It has object oriented concepts and you have to learn pointers, memory management (all those good stuff). I have seen too many cases where Java programmers have no clue about those basic programming knowledge. C++ programmers ususally can learn Java pretty quickly, but not the other way around.
But that for learning how to program, for big software applications development, Java is the better than C++.
It also depends on what you want to do -- C is THE system programming language, C++ and Java are application programming languages, and there's Perl, Python, etc. for scripting. This isn't meant to "typecast" languages, but to illustrate what they are generally used for.
Another thing is don't learn a language, learn to program -- there's a difference. As a professor of mine once said (paraphrasing), languages come and languages go, but the fundamentals remain the same. So learn a bit about algorithms, data structures, computer organization, etc. Play with these concepts in multiple languages. That way you're not tied to just one, so you're not stuck if it goes out of fashion.
I'm going to recommend either Scheme or C++...just because of my own personal experience. Scheme gave me a new perspective on programming and helped me understand how everything works, and, IMO, made it significantly easier to understand most other languages. C++ is the next best thing though.
To Phlx: FYI, Perl isn't intepreted, it's actually 'compiled' (sort of) at the start and the 'compiled' version is then run.
Read http://www.perl.com/doc/FMTEYEWTK/comp-vs-interp.html if you really want to know.
Anyway, the net upshot is that (for the same algo), it's about 80-90% as quick as C.
Pascal might be a good idea! I know that it's an old language, and that it is not really used now, however, it is good to learn, because it teaches
proper program structure, and includes functions and nearly everything else that is in c/c++. Colleges/universities here in the UK still teach Pascal for those reasons.
When it comes down to it, if you're really "serious" about programming, always go with a language that forces you to learn data structures, etc, because there are a few that do all the work for you, and make it much harder to learn new, more powerful languages. It's easy for someone who is good at C++ to pick up Java in no time, but the other way around, not so much...It's sad that many schools are cutting out these essential low-level languages in order to increase graduation rates here in the States. Good luck!
There is no universal language. Programming is also about choosing right language for exact task. Python is probably good to start with. You can use it further for common apps, GUI, fast development etc. But you will usually need more than one language.