This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I have a very strong interest in learning java in the future, but I currently have no prior programming experience. I've been doing a lot of reading on java and from most areas I've looked, they recomend that you don't use java as a first programming language. They also don't give any recomendations on what would be a good languange to help step into java.
I was curious if anyone had any recomendations on what a good language would be to learn before I stepped into java. Any help is greatly apreciated.
Your question is one that no doubt will generate a wide variety of subjective responses.
I'm basing my own (subjective) response on the premise that you have had no previous programming experience.
Your first challenge will be syntax. This being the case, you should first learn the basic programming constructs i.e. sequence, decision and iteration. My belief that this is best done through a procedural language. From this foundation, study "classic" algorithms and learn how to express these algorithms in code.
Personally, in my teenage years I started out writing simple programs using (Gee-Whiz) GW-Basic. I then studied Pascal, then my all time favourite language, C. In university I was exposed to Pascal, Fortran and C. In my immediate career after university I mainly held positions that required me to write applications using C and Cobol. I then moved on to jobs on the OS/400 platform using C, RPG IV and CL.
In the past 9 years, my current position has led me into the OO field, where I have been mainly using Java. However, I was only able to move into this arena with reasonable (productive) ease after going through a rather rigorous study regime (both self-study and company sponsored) in basic OO principles first up.
I suppose the point I am trying to make is that the advantages in using a language such as Java (or any other OO language) arise when you utilise the OO features of the language.
Please do not think that you have to undertake the rather long-winded path that I have taken. As Svend stated in his response, Java can be a good first language as long as you study OO principles in parallel as well. I just feel that if you have had no previous programming experience, then all the OO type stuff can weigh you down in the initial stages.
Of course, having said that, having no previous programming experience can also mean that you have no "luggage" carry over from other languages as well and thus no preconceived ideas on what you expect from the language.
I would also like to add that I have been studying the Python language over the past 12 months and this language is ideally suited to both the procedural and object-oriented approaches to programming and is fast becoming one of my favourite languages (besides Java :-) and C). This may be a good language for you to consider as well.
Jeremy, as you can see, there is no real easy answer to your question. Do some more research based on the responses to your post, download, install and try out some languages and google, google, google - there's plenty of good information out there.
Good luck in your endeavours.
Regards, JD [ January 30, 2007: Message edited by: John Dell'Oso ]
Perhaps the original suggestion that Java was not a good first choice was because it is (approximately) a compiled language. The compilation step makes the trial and error process slower, compared to an interpreted language.
"Scripting" languages like Python and Ruby are interpreted, which may be attractive to a beginner. Both languages are also object-orientated, to at least a similar extent to Java.
If you are new to programming and do not know which language you will end up using, then maybe try one of the above before Java. On the other hand, if you know you are going to end up using Java, then I would think that you may as well just jump straight into Java - it's really not *that* hard.
Betty Rubble? Well, I would go with Betty... but I'd be thinking of Wilma.
I'd have a hard time recommending the modern scripting langauges like Ruby as a starting point. Who wants to memorize the meaning of $ $_ @ @@ ? ?c %q %Q %r %x =~ $` $' $& $~ !~ $! $: for a first language? (I made a cheat sheet.) I'd rather find a language without such a fear of keywords. I'd recommend REXX for a lovely first syntax but you'd be pretty lonely learning that today.
Java is really not a bad starting point if you can find a text or whatever that starts gently and stays with the basics for a while. Unfortunately Java gets into static and member methods, abstract and concrete classes and streams before you can even squeak out "hello world", so such texts may be rare.
I was going to make a smart-ass answer and say you've already mastered English, just about the only pre-req on this board. [ January 30, 2007: Message edited by: Stan James ]
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Joined: Jan 30, 2007
Thanks a bunch for all the input guys. This really does help me go in the right direction. I was worried that I'd have to master a different language first but I'll definitely try moving into java nice and slowly.
Thanks for taking the time to respond! You'll probably see me posting back here in the future.
Joined: Jan 29, 2003
You'll probably see me posting back here in the future.
Boy, I like that attitude! We'll look forward to you coming back. One bit of advice I seem to have to tell my kids all the time ... take small bites! Get in the habit of making the smallest possible program you can to try every new thing you learn. And keep them like a box of index cards you can look back into later. Keep it fun. [ January 30, 2007: Message edited by: Stan James ]
I taught myself to program in java on the subway rides to and from work without any programming experience (aside from basic html, and by basic I mean that I knew how to make a link). Try the Head First Series. I think you'll enjoy it and it's pretty easy to read.
Teaching yourself anything is always the cheapest way, but it definitely takes a lot of time and effort.<br /> <br />Thank you javaranch <a href="http://"http://faq.javaranch.com/view?HowToAskQuestionsOnJavaRanch"" target="_blank" rel="nofollow">Learn How to Ask Your Question</a> and be nice
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com