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.
I am just beginning a degree in programming. What would you recommend as a progression of languages to study? Is there any "easy" language that makes the others easier to understand? if you know of any good reference books as well I would appreciate it.
Fortran is too antiquated, C is too low level, C++ is too hard, Visual Basic is too kludgy, Basic is too useless, Lisp is too esoteric, Pascal is too fake,Java is too abstracted from the hardware, Smalltalk is too stupid, asm is too machine dependent, Perl is too inconsistent.
I recommend that you take up knitting!
Seriously though, my first serious endeavor in programming was in VB and it sucked. I had to unlearn a lot, especially due to it's asinine approach to OOP. Before that I had programmed in C-64 basic and whatever you'd call the language resident on my TI-82 calculator.
Traditionally, _The_ language with which to learn programming has been pascal. Pascal is kinda old though, and I don't approve of it's IN/OUT parameters. That thinking will screw you up later.
If you try to learn with C, you may have a lot of problems initially because it doesn't abstract away a lot of the machine. Also, it gives you the structured programming mindset that might be hard to overcome when you have to get used to objects.
Java has problems trying to be machine independant. It's a pain to, say, open a file on your computer with java. Apart from that, it can do just about everything that you will want to learn when you start off, so it might be the best bet.
This is usually my response to the question "which is better" and "which should I learn first": Learn the language you want to develop in. If you want to learn Italian -- learn Italian, don't learn French or Spanish first because you think it'll make learning Italian easier. All programming languages are "hard" in some way. You just got to knuckle down and learn one. Once you get one under your belt subsequent one's get easier. If you approach programming timidly you'll never make it...
If you are linux person learn C or PERL. If you are ambitious linux person learn C++ because you'll be able to code in both languages. My preference is C++ because I think the language allows you to model solutions better. I learned C first and in my opinion C++ is "a better C." But that's just my personal feelings. For me, it's the language that fits the way I think of the world...
ps: you should learn BASH and PERL anyway to make your developing environment a lot nicer...
Surely if you're beginning a degree in programming they'll begin by teaching you in one language or another? Probably Pascal or Java? Pascal is a waste of space so don't learn it unless you have to.
Otherwise, I recommend you learn C++ or Java. There's little point learning any language which isn't object orientated these days, and these two are the most popular and useful. Although I personally loath Java that's just a personal opinion. Java's probably easier to start in, since it 'mothers' you more than C++.
BlitzBasic or DarkBasic might also be worth looking at. They're neither great languages, but they are have very advanced graphics and input support, so you can get interesting things up and running in them quickly. And I know I'd rather start off by writting simple games, than simple text parsers.
By far the most interesting language I've worked in is Moscow ML, but it's not useful for any real world task I've seen. Assembly's also fun, but hardly the place to start.
If you want a job in programming, the three most sort after languages are C++, Java and VisualBasic - and VisualBasic is evil, so avoid it if you can. Java is mainly used for web development, and C++ is used for games, engineering and serious application development. The military and those interested in robustness tend towards Ada.
I think I've rambled on enough now, so I'll leave it there.
oh wow, Moscow ML is fun. we did courses ni that, and it was actually a very useful thing to lear, concept wise. sure it's useless for soemthign useful... but the principles behind it are very worthwhile, makes you more open minded i think.
C++ and java are practiaclly identical some a starting point. all the class stuff seems a bit unnecessary for a helo world but it all makes sense when you do big stuff, where OOP is such a massive bonus.
C++ pointers are of course an enternal irritation, but you can ignore them for the most part, unless you're trying to understand some pointer based code. i hate them, even if they are more efficient.
but yeah, c, c++ and java are the most useful, and they are very similar at a basic level. the knowldege is very transferable, just need a list of some equivalents in each, and you can pretty much swap from one to the other
why vb? that's a bit dumb imo. and the oop in vb is odd....
I do find it strange how when i started my degree i had no idea what oop was, and it really took me ages to grasp the concept, now i understand it, i'm finding it hard to design gui's and such without class structures in c.
i just think that as long as people are open minded abuot what languages they are learning, and evaluate them constructively, you'll be ok.
people complained vigourously against writing in ml, cos it didn't have for loops etc.... but what it taught was so beneficial i found, just cos it's not java, doesn't mean it's not gonna teach you anything
Originally posted by gui10 personally, i find the Java API too heavy, too much. but i suppose that's part of its design goals (purely object oriented).
my vote is for knitting...
Heh. Java is far from purely object oriented. Check out Smalltalk-80. The language has absolutely _no_ atomics whatsoever. There are only objects. And methods. And methods can be treated as objects. Nothing like a programming language that will give you a core dump on the integer 4.
Originally posted by newbietolinux I have to take a VB course as a requirement, but as many of you have said, hopefully that will help me understand OOP. I will get my hands on a C++ book and start tackiling that too.
If your course requires you to learn VB, I'd seriously consider changing college/university/whereever-you're-taking-this-course. The point of an education in computing is to teach you the best of what there is, surely?
VB is at best the most pragmatic solution to certain problems for those without the time to learn a more general programing language. VB doesn't support OOP (although M$ still claim it does), so how it's supposed to help you learn it I have no idea.