This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
My dear friends, I am fairly new to programming and have these two absolutely gorgeous and highly usefull books in front of me as ushers into the programming world: Sun's official guide to Java (e-format)and a book about XML (printed, thicker than the Bible but comprehensive nontheless)... here is my trouble: Which one should I pick first to read and learn? Should learning Java come before XML, or vice versa? I need to focus on only one of them, I cannot do both at the same time... my current job (that I want to change)requires my attention too, so focus is important for me... if any of the seasoned programmers read these lines, would you go first for XML, if it was an option when you were learning Java? I know Java and XML are very different in essence, but I need your opinion on this... Thanks in advance...
i'm very new to java, but from what i understand java is a very powerfull programming language. Enables you to build strong and complex applications, use networking and all that stuff on the other hand xml is just a mark up language; standing alone does nothing at all. So i guess you'v a false dilemma: choosing between a programming language and a mark up language. BTW : there are tons of xml tutorials and how to's in the internet explaining and teaching xml in 5 minutes
XML is not a programming language (no matter how much some XML junks will try to prove that it is). XML is just a fancy way to lay out documents in a way that is more easily portable between platforms and still both machine- and humanreadable. As such it's a great tool but useless on its own. Beware any project description where the requirements list "using XML" without any valid reason where and why in the project XML should be used. Java on the other hand is a complete programming language environment, which can make use (among other things) of XML. So why not learn both?
he he, nice summing up there Definitely learn Java in preference to XML in my opinion. Learning Java lets you do interesting stuff and will teach you how to program well - XML will just send you to sleep and you'll just end up dissillusioned with the exciting world of computer programming
Besides being more interesting, Java is more useful. With XML you can define a sort of "standard" for the way a particular type of information should be laid out. You do not need to understand it end-to-end in order for it to be useful, you can learn the basics and have 99% of what you need from XML, with the other 1% available in that larger-than-bible tome you have. Java, on the other hand, is a full-featured programming language. You do need to be fairly knowledgable across the breadth of the language to produce projects. And, one could argue, Java or at least some programming language that dovetails with XML is a prerequisite to doing anything useful with XML. XML is a way of representing documents. It's syntax. Java is a way of manipulating documents...it's doing useful work on those documents, not just characterizing them. sev
It is difficult to compare Java and XML since they serve two different purposes. Since I know little-to-nothing about XML, I am biased towards suggesting Java. Also as noted, you will probably need to learn some programming langauge (such as Java) in order to do anything useful with XML anyway. So in a round-about way, I am suggesting that you start with learning Java first. Good Luck! Layne
I knew that I can count on you, my new friends... so the message is clear; Java should be my choice... before I start compiling the HelloWorld application and dwelve into the Java matters deeper, I am just curious: Is there anyone of you who entered the Java programming world from a non-IT professional field, anyone who held a non- computer related job and then went about learning Java, passed the SCJP exam and started his/her new carrier? Have the seasoned Java programmers on this forum always been programmers? How did you entered Java? Again, I will be gratefull for any responses
No No No, do not start with either, major mistake!!! don't get me wrong, I like Java a lot, but you should start with a sequential language such as ANSI C if you want to have a good foundation. Then once you have learned C then learn Java which Is object oriented. If you start with Java I think you will find yourself handicapped, especially if you are trying to make a career move.
ummmmhhh... Howard's words sound good. Well got for C first and then step over to Java. Then u can understand why java is prefered and wat's the real beauty of java when compared to other programming languages.
(OCEEJBD6, SCWCD5, SCDJWS, SCJP1.4 and Oracle SQL 1Z0-051)
Is there anyone of you who entered the Java programming world from a non-IT professional field, anyone who held a non- computer related job and then went about learning Java, passed the SCJP exam and started his/her new carrier?
Originally posted by Damien Howard: No No No, do not start with either, major mistake!!! don't get me wrong, I like Java a lot, but you should start with a sequential language such as ANSI C if you want to have a good foundation. Then once you have learned C then learn Java which Is object oriented. If you start with Java I think you will find yourself handicapped, especially if you are trying to make a career move.
I beg to respectfully disagree. There is no reason why you cannot acquire a good foundation by starting off learning Java. To have a good foundation, what you need is 1. ability to understand problems 2. ability to break a problem down into smaller problems that can be solved more easily. 3. ability to understand abstractions. 4. an understanding of the software development process, and how various technologies, skills, people fit into it. 5. Understand what makes many software projects fail 6. Learn how to manage your time and resources when working on a project ... and I could go on.. You can use any language you like to learn all this. But if you are sure that you want to work in Java, dont waste time going learning C first. You'd be better off spending that time experimenting with Java, and there is a lot to learn believe me. Happy Learning
Once you have completed the java tutorial I recommend getting J2EE and going through the tutorial that comes with it. It is all about XML and Java. The tutorial assumes you know your Java but assumes you know nothing about XML. If you get through the tutorial you will know both really well. I agree on not going back to C. If you are going that route you may as well go and learn assembly language first. Also, to fully appreciate what you start to learn with the XML and Java later on you may find learning a little about socket programming and internet protocols helpful. I think actually you can find tutorials on these topics at Sun's website. Have fun and work hard at it. There is a lot to learn.
Originally posted by Gjorgi Var: I knew that I can count on you, my new friends... so the message is clear; Java should be my choice... before I start compiling the HelloWorld application and dwelve into the Java matters deeper, I am just curious: Is there anyone of you who entered the Java programming world from a non-IT professional field, anyone who held a non- computer related job and then went about learning Java, passed the SCJP exam and started his/her new carrier? Have the seasoned Java programmers on this forum always been programmers? How did you entered Java? Again, I will be gratefull for any responses
That more or less describes my journey to becoming a programmer. I was an analytical chemist for 7 years, then one day my boss decided he wanted a database built for tracking data. I was the most "computer literate" in my group (by default, I was the only one that really knew Excel, so I was elected) and built my first database in Access. I enjoyed doing it, so I started surfing the web looking for new things to learn about databases and such. I was intrigued by what I read on-line about the IT world in general(I especially liked the salaries I was seeing at the time, remember this was back in '98 )), so I decided to take a programming class at a local community college. Java seemed very much a buzzword in my searches, so it became my language of choice. I did very well in the class, decided I would like to do this for a living and enrolled in master's program in IS. Between my classes(taking advantage of some very good professors and picking the brains of some talented programmers I was lucky enough to share classes with), self study, and talking my boss into allowing me to build a lab information management system for him, I did a TON of coding between early '98 and 2002, when I finally finished my degree. I got my SCJP in 2002, not long after I got my first "real" programming job and have been programming ever since. Don't know if that long winded response helped you much, but hopefully it shows that you can do what you are trying to do. The best advice I can give is code, code, code, and then, just for a little variety, code some more . Books are very good to teach the basics, but you need to be able to apply them, and the best way to do that is to write code. And hang around the 'Ranch, too, you'll learn a lot here. Best of luck, E [ February 26, 2004: Message edited by: Eric Fletcher ]
My theory of evolution is that Darwin was adopted. - Steven Wright
Joined: Apr 01, 2003
But Java is so easy compared to C that you lack a lot of understanding by starting off with Java. It hides all the things that make C difficult.
I agree with Sonny Gill, start with java, cause if you have to start with all the foundations that will show you how java is so great, why not go for a university degree. I think it s better if you keep in mind that OO languages are more interesting over others. Then, if you want, check out why. Also, i'm sure there are conversion courses or crash courses that could be interesting to assist to. [ February 26, 2004: Message edited by: Daniel Curt Atrei ]
Si altas son las torres, el valor es alto - Alberti
Joined: Feb 24, 2004
Thank you Eric Fletcher, for sharing your expirience with us ... As I am learning Java using the Sun tutorial, I also feel the need of additional literature... I remember some time ago of taking a language course and how easy it was: just CD's in the CD player, no books or notebooks needed, half-an-hour a day, could do it anywhere... is there anything as remotely similar as that course but for Java? Or maybe it is not made yet and I would have to make it one day...
Originally posted by Gjorgi Var: ... I also feel the need of additional literature... I remember some time ago of taking a language course and how easy it was: just CD's in the CD player, no books or notebooks needed, half-an-hour a day, could do it anywhere... is there anything as remotely similar as that course but for Java?
Hello Gjorgi, being a greenhorn, myself, I'd like to direct your attention to "Head First Java", a book (really just an ordinary book? No!!) by Kathy Sierry & Bert Bates (both well known here at JavaRanch). Reading this one might help solving your puzzle (java vs. xml) _and_ give you a painless nevertheless sound (and fun!) introduction into the ever-amazing java universe. BTW: starting with a non-OO language vs. starting w. java: do you remember those eye-teasers which - having looked at one for some while - suddenly switch to a completely different picture, which, nevertheless, was (implicitly) there all the time? I think it's somewhat the same with - let's say - C and Java, because in the end for those of us who have started/spent our 'programming childhood' with on non-OO language/non-OO educated brain, we'd surely need(ed) some time 'till the big picture switched to the OO-view whereas, if you are starting right from the beginning with OO, I assume your (first) view of the programming world will be an OO view, too. And maybe, some day you'll find yourself saying: 'Boy, lucky me, that I didn't have to re-invent that stone-age (programming) wheel, again! What a real beauty this Java is!!" So: have fun and good luck! Best regards, Ingo
I got into programming with almost the same path as described in the entry by Eric Fletcher. I was a Chemical Engineer who was a bit bored and kept volunteering for every programming task that came along. I stuck with Engineering for about 5 years, took a 10 year hiatus to be a full time Mom, and then decided to go full steam ahead with an attempt to be a Java programmer. I took a class Java and started sending out resume's. (I didn't take any certification exams) My advantage was that this was about 4 years ago when the field was still pretty hot and there were lots of jobs to be had. The company that hired me took a bit of a leap of faith in hiring me as my most recent programming experience was 10 years old! (Dos environment, differant databases, using Fortran and C!) Luckily it worked out great and I am having lots of fun and success programming in Java. It is a much more competitive field now, I am not sure if this career path would work in the current market. I wish you luck, if you enjoy teaching yourself Java, chances are you will enjoy it as a job too.
Joined: Feb 24, 2004
Following Ingo's advice, I visited local Barnes&Noble store and browsed through the Java section. Yes, there are many books that cover the subject, and the title that Ingo mentioned certainly stands out (book's graphics distract the focus though, but maybe that's only my impression ), but some of them (if not most) reffered to C++ similarities (some titles even had special sections named "This is not C++!" with detailed explanation of differencies between Java and C++)... is C++ pre-requisite for Java? And what would be your begginer's Java book to start with (beside Sun Java tutorial, of course)?
i first learned C, then C++, then java. i'm a certified programmer, and i'm going back through the "head first java" book (i often go back through my old books to refresh my mind/learn stuff i missed/clarify things i don't quite understand). i think it's fantastic. i wish it had been around when i was trying to get certified (it came out just AFTER i passed the test). I see no reason to learn c/c++ first. i think they make java harder to learn... a lot of what you learn is 'wrong' - i.e. it's completly different in java, so why learn it one way, just to re-learn it a new way? the stuff that is the same - what advantage is there to learn it in one over the other? an if-else if-else is the same, so there's no advantage to learning it in one over the other. pick the one that's more useful.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
C or C++ is not in any way required before learning Java. Java was designed with some similarities to C++, probably for "marketing" reasons, but on the whole it should be easier to learn than either C or C++.
Joined: Feb 24, 2004
Thank you so much my friends, for clarifying things for me... I started my happy dive into the Java matter, and I must say I like it, so far... already rewritten and compiled "my" first Java application (notorious "Hello World", as well as some others, very, very simple apps)... and something bothers me; what if I want to print "Hello World" in Cyrilic? I tried writing it with system Cyrilic within the System.out.println () but it threw so many errors while compiling the .java... aren't all Java files saved as Unicode? Am I missing something?
Joined: Oct 12, 2000
Originally posted by Damien Howard: But Java is so easy compared to C that you lack a lot of understanding by starting off with Java. It hides all the things that make C difficult.
but then C hides all the hard parts of Assember which hides all the hard parts of writing machine code directly. Would you advise people start learning to program by writing opcodes directly into a debugger?
Just to clarify, There is absolutely no reason to learn C/C++. The whole reason why Java was created was to provide a better and esay to learn language than C. In many respets is the new 'C' language. Just make sure you understand the concepts of Object Orientated Programming, and make sure you have a good understanding of the items in the list that Sonny Gill wrote out (he is completely right): Sonny Gill wrote: 1. ability to understand problems 2. ability to break a problem down into smaller problems that can be solved more easily. 3. ability to understand abstractions. 4. an understanding of the software development process, and how various technologies, skills, people fit into it. 5. Understand what makes many software projects fail 6. Learn how to manage your time and resources when working on a project --------------------