I want to learn Java programming, but have no experience. What language should I start with, and what books are best to use?
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$8 Answers
It is used in a few Information Systems courses as the introductory language. Java is closely related to C and as a result, the procedural constructs of the language transfer easily.
I recommend this book:
http://www.amazon.com/Introduction-Java-Programming-Comprehensive-Version/dp/0136012671/ref=sr_1_4?ie=UTF8&s=books&qid=1252522126&sr=8-4
"Introduction to Java Programming, Comprehensive Version"
This book is what I consider a full course replacement. It is carefully outlined with the basic constructs that every programmer must know (if's, loops, array's, functions, classes, etc). The difference in this book (and the value) lies in the examples, exercises and review questions.
If you're anything like me, you learn by doing. I need to be presented with a problem to solve and then figure out how to solve it. That problem needs to be carefully constructed so that the lessons I learn by solving it can be easily applied and extended. This book does those things.
The only thing that I might warn against is that if this is your first foray into programming, that you may have more success in a traditional classroom setting. Programming seems exciting - it is one of the backbones of the Internet after all - but starting to learn about programming can be dry and sometimes monotonous. A community college may offer you the support, guidance and comradeship that independent learning and a book can't.
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Since I was the one to develop Sun's first "Java Programming for Non-Programmers" (SL-110), I would suggest THIS class. I don't know if they've changed the class since I left Sun 10ish years ago, but they have created a web-based course based on my course as well...
I created it to be very hands on with a practical (and a very fun) exercise. (Street light controller).
*Ego back to "normal"... *
http://www.sun.com/training/catalog/courses/WJB-110-SE6.xml
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$
Java is a good programming language. Java programmer are also in demand everywhere. ^^
By the way, you can buy the book here: http://www.amazon.com/Java-2-Complete-Reference-Fifth/dp/0072224207
Good luck on Java! I know you'll do good! :) I'll also leave links for you to check for online tutorials...
http://java.sun.com/developer/onlineTraining/index.jsp
http://www.javapassion.com/javaintro/
http://math.hws.edu/javanotes/
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$When you register the book on-line, you get access to additional content including video tutorials and additional addendum. The book comes with a CD with all of the developer's tools you will need to install in your Windows environment.
Borders with significant technology selection, usually have this book in stock. If you can get yourself a coupon through Borders Coupons, you can get as much as 40% off.
http://www.deitel.com/Books/Java/JavaHowtoProgram8e/tabid/3415/Default.aspx
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$http://oreilly.com/catalog/9780596004651/
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$Pesonally I'd rather start out learning with a language where you can get more done with less effort, as I'd rather spend the time learning programming concepts and figuring out how to get interesting things done than learning the nuts and bolts of the language.
Anyway, for Java...
YouTube has a series of lectures from an introductory programming course at Stanford which are supposed to be very good. First one here:
http://www.youtube.com/watch?v=KkMDCCdjyW8
Stanford has also made the all the course materials available to everyone.
I haven't done more than skim any of this stuff myself, as I learned to program a long time ago in a galaxy far far away. :)
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$http://mindview.net/Books/TIJ4 (latest)
http://www.mindviewinc.com/Books/ (free editions)
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$If you have never learned a programming language before then I highly recommend that you start with Javascript (e.g. HTML pages that include script code in them). While there are some significant differences with Javascript and Java, they share much of the same basic syntax (the notation used for writing the code like "x = x + 1;") and Javascript is an object oriented language like Java (this means that the language consists of objects such a "Employees" with methods that let you perform functions such as "sort" or variables such as "first name" that are associated with the object).
Javascript is a good starting off point for a new programmer primarily because:
1) You need no tools to program in it. You can simply write an HTML page in an editor like Notepad or even MS Word and load the file directly in your browser locally and the javascript will run. One of the most confusing things when working with a more complex language like Java is getting the development environment (e.g. Eclipse, TeamStudio, etc..) up and running. This will probably frustrate you at first and will delay the amount of time that it takes to start really learning the language (and not just get up and running to be able to start learning the language). Just type this into a file:
simple page
/body>
Save it as "helloword.html" and load it in a browser and you'll see the javascript working. Off you go!
2) There is good basic support for Javascript debugging in the browser (I recommend Firefox 3.x for this as there are some good built in tools)
3) There are incredible references online that make finding answers easy on Google (just Google "Javascript tutorial" and you'll see what i mean)
If you are an experienced programmer then basically any book you buy on Amazon will get you started enough to dabble and experiment:
http://www.amazon.com/Introduction-Java-Programming-Comprehensive-Version/dp/0136012671/ref=sr_1_4?ie=UTF8&s=books&qid=1252549668&sr=8-4
What you will find with more recent languages like Java is that you'll constantly use search engines as your main learning/reference tool. You won't look up the appendix in the book to find out what page the description of a "for" loop is on. You'll just type "java for loop" into Google.
Lastly, if what you're really asking is "I want to learn how to program, what language would be best to start with" i would consider:
1) What type of software do you want to work on? While most languages are in use today, the more recent web-application languages are PHP and Ruby/Rails. If you want to write back end enterprise server software you may find Java useful. if you want to write iPhone apps then learning Java will be a waste of time as they limit iPhone development to a language called ObjectiveC (http://developer.apple.com/iphone/library/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/)
2) Do i want to make a living off of your programming skills? In this case Java is not a bad choice as there are many jobs on eLance etc.. in Java. That said the momentum in Web2.0 apps is toward PHP and Ruby/Rails (RoR)
Amazon
Wikipedia
Search results
You can leave an optional "tip" with Mahalo's virtual currency, Mahalo Dollars. If you are asking a difficult question that might require some research, or if you'd like a wide variety of feedback, a higher tip often leads to more answers to your question.
M$