[SOLVED] first language: instructive (good learning tool) yet practical for linux ?
ProgrammingThis 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.
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.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Well, many thanks! It seems as though we have converged on C. Thanks for the recommendations/insights.
C really isn't all that difficult, it's just more complex than languages such as Python. The first language I attempted to learn was C++; C was quite the breath of fresh air.
Sergei's idea of two languages is very good. I was also going to learn C and Perl or Python or Ruby. I decided that C++ would also be good, but now I'm sticking with GNOME and GTK and so I only need C for anything I'd want to do, and a higher level language like Perl, Python, or Ruby. Perl is a good language, and widely used for Unix system administration, and Python and Ruby are good. I like Ruby in a way, but Python is very popular.
IBM's site has an article on Python for system administration, so not everyone thinks Perl is the only good language for system administrators...
Now that I've learned a lot of C/C++, I've decided to stick with C and a higher level language. Python being so popular is part of the reason I'd stick with it. I agree that it doesn't seem to be the best language there is, and they're making a large amount of changes to it from 2.x to 3.x, but it is a good language, I think. I'm still a little undecided, but I'm going to skip spending a lot of time on C++. (or more specifically, as much time as other languages like C and Perl/Python/or Ruby.)
Last edited by pr_deltoid; 09-30-2010 at 11:03 PM.
Seriously, what you like or dislike is not my/our problem. We are discussing about a suitable first language here for OP to use. Let's just stick to that.
He did stick to that. He didn't say "don't use Python", he said C and Perl... his problem with Python was an afterthought.
And pointing out (even personal opinions of) flaws is helpful. When people complain about people giving personal opinions, they're forgetting that something being a problem in someone's personal opinion doesn't mean that it isn't a problem. Python has problems... it's not a perfect language.
And it's easy to learn in a way, an easy language to start with in a way, and in a way it isn't. Very high level languages like Python have so many language-specific features that you get completely side-tracked from learning about programming in general and have to spend hours learning about the language-specific features and how they do things. C and C++ are great languages for learning a lot, I would start with C for learning programming, it is a little challenging but once you get used to it, filling in the blanks is very easy. For learning OOP, learn C++. Like I said, I can't give a great recommendation for very high-level languages like Perl/Python/Ruby.
I really like and dislike all of them in some way. Ruby I can't think of having any problems with, but I haven't spent a long time learning it. I think that Ruby is a better language than Python.
Last edited by pr_deltoid; 09-30-2010 at 11:22 PM.
Very high level languages like Python have so many language-specific features that you get completely side-tracked from learning about programming in general and have to spend hours learning about the language-specific features and how they do things.
When you're writing working code nearly as fast as you can type and your misstep rate is near zero, it generally means you've achieved mastery of the language. But that didn't make sense, because it was still day one and I was regularly pausing to look up new language and library features!
Quote:
This reflects another useful property of the language: it is compact--you can hold its entire feature set (and at least a concept index of its libraries) in your head.
That sounds to me as a perfect language for beginners.
I've read a free book or tutorial, at least, on Perl, Python, Ruby, C, C++... I don't see how Python is really better in almost any way I can think of (other than its popularity) than any of them. I'm not a software engineer or an expert of any kind, I'm only a hobbyist, but I'm not that impressed with Python. It's good, but it's not amazing or perfect.
I like C/C++ more than anything, really, but I don't have a real reason to use C++, exactly. Unless I learn GTK programming using both C and C++ (instead of just C), but I don't think I'd have a real reason to... I don't have a problem with C++, but I'd like to really learn a lot about C (I have "C in a Nutshell"), I already know a lot about it, and I'd like to learn a higher level language like Perl/Python/Ruby.
That's what I'd like to do anytime soon... C++ isn't going anywhere and I don't have a problem with it, but for now I'd like to stick with C and a higher language. I just don't know which one to choose.
I really like C, and GTK programming mainly being done in C is a good thing for me, and another good reason for me to use C, because I like GNOME more than KDE. I've tried over and over again to get used to KDE, and I'll never do it.
Last edited by pr_deltoid; 09-30-2010 at 11:31 PM.
I've read a free book or tutorial, at least, on Perl, Python, Ruby, C, C++... I don't see how Python is really better in almost any way I can think of (other than its popularity) than any of them. I'm not a software engineer or an expert of any kind, I'm only a hobbyist, but I'm not that impressed with Python. It's good, but it's not amazing or perfect.
Nobody says its perfect in itself, I said to me it seems perfect for beginners:
- easy to understand
- somewhat selfexplaining
- forces you to structurize your code, making it easier to read
Of course there are other languages, that are good for beginners, but for me Python seems to be also a very good one.
Distribution: Mint 16 RC, Elementary OS Luna, Crunchbang
Posts: 166
Original Poster
Rep:
...thanks again...book suggestion?
So, now that I have decided on C, can someone suggest a good place to start for learning. Ideally Id like not to spend a huge amount on a book. Can someone suggest a good C tutorial/book (pdf etc) that would be good to a programming beginner?
So, now that I have decided on C, can someone suggest a good place to start for learning. Ideally Id like not to spend a huge amount on a book. Can someone suggest a good C tutorial/book (pdf etc) that would be good to a programming beginner?
If you find the one complete book that teaches you the language and serves as a language reference, and all the ground in between, I'd like to see it and meet the author. I've bough a pretty large number of programming and other computer oriented books over the years, and for any given subject of interest, I always found it took at least two, often three or four books to get a good coverage of the material. Of course a lot of that is now unnecessary since Google came along. Still, you are starting from ground zero, and assuming that you advance at a decent pace, you will outgrow the tutorial-oriented books fairly quickly. Even a short time after you start, you're going to want a reference style book that provides the details of the various standard functions. The man pages are okay for that, but I don't find it as easy to track things down that way, and you really can't scribble notes in the margins of man pages.
I just tried using Eclipse as an IDE for C, and if you have the right version (mine came with Fedora 9, IIRC), it has pretty good assistance for the language. If you don't already know Eclipse, and you probably wouldn't if you've never programmed before, it may simply add another layer of unkowns to your objective, however.
Good luck with your venture.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.