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.
I've heard java was hard for newbs to learn. But it's eventually something that I want to learn. Most OO languages sorta scare me away. I've tried to learn programming before but gave up when I came to the OO stuff.
I can totally relate. OO was strange for me to grasp too.. coming from such a rigid linear approach, it took me a while to really get what OO was all about. But, I will tell you that java is one of the best teaching tools to really see how OO works, because the language was designed, ground up, as an OO language.
The trick is to start from the brainstorming phase in OO. If you try to design the concepts of the code as non OO, and then you'll just have to convert it down the road anyway... (=
Don't give up on OO! I know it's funky, but once you start getting your brain around the concept, you'll find yourself looking at future projects in a new way.
Well OOP was the reason I was asking about smalltalk earlier since everything is supposed to be an object. I was hoping that way it would force into using OOP. I'll give java a look over thought. So far the only programming language that I can say I've truely had no qualms is Qbasic. Stop laughing!
Although I'm probably gonna go with python. Alot of people have recommended it.
I don't necessarily see any advantages to python, but I know alot of people do like it, though it's not good for teaching OOP. Java is really your best bet for learning good OO style. Of course, you're going to make more progress quickly with python than you will with java.. there are great tutorials online for both.
Well which do you as a programmer think is more inportant, learning the language quickly (so as not to become bored and give up), or learning the language well?
Well, java is sort-of confusing. It is the first language I learned but I loved the learning curve. I really like this book Within about three days of starting to read it I was able to make a program that displayed moon equivelent of earth weight every 5 pounds and skipped a line every ten. Not very useful but it was cool.
Personally I would say Python is better for learning OO programming than Java, because it doesn't force you to use an OO style right from the beginning. You can write some fairly complicated programs without understanding any of the language's OO features, and then gradually introduce yourself to them.
I think if you really want to see OO done right, you should go with Smalltalk (but of course there's less information on how to program in that language). Java's OO stuff has rather a lot of baggage from C++ which can make it a bit hard to get to grips with for a newbie.
As a programmer, I personally feel that learning a language well is more important than quickly learning. (I started out, though, many years ago with abasic, then basic, then qbasic, then C.. ) But, you should assess what type of person you are, and how you deal with subject matter that may or may not take some time to sink in. What do you want to gain? If you simply want work in the programming industry without any real desire as to what language it might be, then look for what will make money and is in demand, given the time necessary to learn it, and get school out from under you. If you want to learn for fun, then pick what will whet your programming appetite a little quicker, and then delve into the deeper subjects later. If you want to know a language inside and out, you can still choose a language like python that gives quick results, but just stick with it, and don't try a bunch of new languages once you feel like you know the language.. give it enough time to really become familiar.
---tangent---
Something that I think is important to point out, though, about the current level of service expected from programmers in the indutry, is the fact that you don't generally have time to learn all the little tricks and secrets. The industry is convoluted with money-minded companies who don't care how optimized the code is.. they simply want the product on the shelf. Many professional coders don't have the luxury of taking their time... this isn't to say they aren't good programmers.. they simply have to work in an industry that isn't forgiving to those who can't produce on a quick time table. Get it done or find a new job.
---/tangent---
That is what I personally think, though. For me, in-depth knowledge of one particular language is better than a little knowledge of several. IMHO, you will be a more effective programmer if you know the shortcuts and tricks to a language.
With respect, I disagree with llama's comment about learning the basics of python, and then learning the OO aspect of it, being better than java for learning OO. Java's whole purpose is OOP. Java was designed bottom up as an OOP language. Althoug the language is verbose, it teaches good style and technique, and IMHO really brings OOP into light. It's just too easy to forgo OOP in python, thereby teaching bad OO coding style.
Python will definitely, though, give you quick results and CAN teach OO, though I wouldn't personally recommend it as an OOP teacher.
But, I'm no expert on python, so.. take what I say with a grain of salt. (=
Okay... I'm getting mixed responses and it's getting confusing. I've thought about it and I have a fairly good idea of how to program without OOP when I use qbasic. I probably will try python eventually. Now I want to learn OOP. I want in on what it's all about . So I'm gonna learn a language built for OOP. Either Java or SmallTalk. SmallTalk doesn't seem to have as much documentation though. I'll probably pick up a copy of that book, darin3200.
Since the topic has moved in this direction i'd like to add a few minor things:
Personally, i never did basic or any of that, in fact i only started programming less than 2 years ago and i only got heavily into it in the last 6 months. I never liked computers in general while i was young, but then when i went to university it became fairly hard to do anything without it. So i got my first pc about 3 years ago. To keep this story short, i ended up switching from Engineering to premed to finally comp sci (all in the course of one year).
The language of choice was Java and while it was stated that it's an easy language to learn i personally (having ZERO experience) found it overwhelming. So i ended up not doing that well and changed schools.
The school i am at right now started off with C and while it was supposed to be harder language than Java in my peoples opinions, it was much easier for me to really get into it. Primarly because i was bugged down by OOP concepts and had the time to "catch up" to it.
In the end though i guess C is not that simple of a language and at first i had very long debugging sessions, but like all good things, eventually you learn from mistakes and most of my current code requires much less time to make it run.
Right now i am learning both C++ and Perl. Having spend sometime on C++, now that i look at Java, it DOES look simple.
So what's the point of the story? It depends on you, sometimes it's good to start with Java, other times it may not. So give it a try and if you notice that you are spending more time trying to understand what is going on than actually enjoying the language, think of learning a more procedural language first (that builds into OOP).
Well I thank you all your advice. And coolman0stress I'm going to start off with Java I feel that I will be able to understand. As for the Non-OOP procedural language before OOP I've coded some fairly large (atleast in my mind) in Qbasic. If I find Java too tough then I'll switch in Python.
And I thank you all who posted here for your advice/$.02.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.