Programming This 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.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
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.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
|
12-16-2001, 02:10 PM
|
#1
|
|
LQ Newbie
Registered: Nov 2001
Location: Conway, New Hampshire USA
Distribution: Red Hat
Posts: 26
Rep:
|
Your Opinions
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.
Thanks
|
|
|
|
12-16-2001, 04:07 PM
|
#2
|
|
LQ Newbie
Registered: Dec 2001
Location: Atlanta
Distribution: Slackware
Posts: 16
Rep:
|
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.
-m
|
|
|
|
12-16-2001, 05:35 PM
|
#3
|
|
Member
Registered: Jul 2001
Distribution: Slackware 12
Posts: 511
Rep:
|
I would try C++. It's a lot easier than C, but still has C's power.
|
|
|
|
12-16-2001, 07:12 PM
|
#4
|
|
LQ Newbie
Registered: Jan 2001
Posts: 4
Rep:
|
ferrous is right on the money.
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...
good luck!
ps: you should learn BASH and PERL anyway to make your developing environment a lot nicer...
|
|
|
|
12-19-2001, 06:43 AM
|
#5
|
|
LQ Newbie
Registered: Dec 2001
Posts: 14
Rep:
|
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.
Tonneman.
|
|
|
|
12-19-2001, 07:07 AM
|
#6
|
|
Member
Registered: Mar 2001
Distribution: enigma, slack8
Posts: 677
Rep:
|
personally, i find the Java API too heavy, too much. but i suppose that's part of its design goals (purely object oriented).
i like C and C++. but that's more personal than anything... it fits my needs. apparently C++ is big on polymorphism...
forget Visual Basic... tied to only one platform, one OS... how far will that take u?
my vote is for knitting... 
|
|
|
|
12-19-2001, 07:09 AM
|
#7
|
|
Member
Registered: Mar 2001
Distribution: enigma, slack8
Posts: 677
Rep:
|
and hey! who knows anything about objective C? i've heard of it but that's it! what is it all about?
|
|
|
|
12-19-2001, 07:12 AM
|
#8
|
|
Member
Registered: Oct 2001
Distribution: MD81 RH71
Posts: 555
Rep:
|
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
|
|
|
|
12-20-2001, 01:56 AM
|
#9
|
|
Guru
Registered: Jan 2001
Posts: 24,128
Rep: 
|
i would suggest using C ++ and Perl if your in the Unix environment or gonna program within *nix.
|
|
|
|
12-20-2001, 11:43 AM
|
#10
|
|
LQ Newbie
Registered: Nov 2001
Location: Conway, New Hampshire USA
Distribution: Red Hat
Posts: 26
Original Poster
Rep:
|
thanks to all who replied
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.
Thanks again.
|
|
|
|
12-20-2001, 04:19 PM
|
#11
|
|
Member
Registered: Oct 2001
Distribution: MD81 RH71
Posts: 555
Rep:
|
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.
|
|
|
|
12-20-2001, 04:58 PM
|
#12
|
|
Guru
Registered: Jan 2001
Posts: 24,128
Rep: 
|
when i was in college and changed my major to CS, they made me take a VB class to start off with.. don't know why but I hated that class..
|
|
|
|
12-20-2001, 05:01 PM
|
#13
|
|
Member
Registered: Oct 2001
Distribution: MD81 RH71
Posts: 555
Rep:
|
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
|
|
|
|
12-21-2001, 08:45 AM
|
#14
|
|
LQ Newbie
Registered: Dec 2001
Location: Atlanta
Distribution: Slackware
Posts: 16
Rep:
|
Quote:
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. 
|
|
|
|
12-21-2001, 02:10 PM
|
#15
|
|
LQ Newbie
Registered: Dec 2001
Posts: 14
Rep:
|
Re: thanks to all who replied
Quote:
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.
Tonneman.
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
Similar Threads
|
| Thread |
Thread Starter |
Forum |
Replies |
Last Post |
|
5.4 opinions
|
Atrocity |
*BSD |
10 |
05-13-2005 06:49 AM |
|
Opinions
|
totally5150 |
Linux - General |
7 |
06-27-2003 10:14 PM |
|
Opinions??
|
Sadie Newlinux |
Linux - Newbie |
2 |
04-25-2003 04:06 PM |
|
Opinions on the best way to do this?
|
cyberdiamond |
Linux - Software |
11 |
11-15-2002 07:00 PM |
|
Opinions
|
LinuzRulz |
Linux - Distributions |
1 |
04-14-2002 06:40 PM |
All times are GMT -5. The time now is 06:30 PM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|