Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Apr 10, 2012, 04:26 PM   #1
chrono1081
macrumors 604
 
chrono1081's Avatar
 
Join Date: Jan 2008
Location: Isla Nublar
Whats your favorite...Java book?

Hi guys,

I have a chance to land a Java developer position (I hope I get it since it'll be my first programming job). I don't know Java, which I made completely clear to the company but since they liked the fact that I know a lot of C++, Objective-C, C, and have experience with a bunch of different API's they decided to give me a shot.

I'm trying to prepare incase I do get the job so I came here to ask...what is your favorite Java book? I want to go pick one up soon.
__________________
Mac Pro (2010): 3.33Ghz Intel Xeon (6 core) - 24 GB RAM - NVidia Quadro k5000
Macbook Air (2010): 2.13 Ghz Intel Core 2 Duo - 4GB RAM
chrono1081 is offline   0 Reply With Quote
Old Apr 10, 2012, 04:29 PM   #2
Angelo95210
macrumors 6502a
 
Angelo95210's Avatar
 
Join Date: Jan 2009
Location: Paris, France
Not specifically for Java, but for programming in general I like the O'Reilly books.
Angelo95210 is offline   0 Reply With Quote
Old Apr 10, 2012, 05:06 PM   #3
Mac_Max
macrumors 6502
 
Join Date: Mar 2004
I like Bruce Eckel's work. He has a free ebook version of his 3rd edition of Thinking in Java. http://www.mindviewinc.com/Books/downloads.html

He has a 4th edition which is available for purchase and covered Java 5 (the brand newest version is 1.7 and I don't think people have really moved to it from 1.6 en mass yet).

That's the best I can think of as a language reference. Java is fairly mature so you can certainly learn from slightly older material if you prefer not to shell out $30-$50 for a book.

Also, do you know what sort of technology stack will you be working with? This is where concepts and technologies change far more often. Are you going to be doing Java SE (Standard Edition - Desktop) or Java EE (Enterprise Edition - Server side (web))? Swing, JavaFX, or other?

These aren't likely super critical questions to know the answers to (unless your employer made it clear they expect you to know it coming in) but it'll affect what other tutorials you should work through.

Aside from that, the only other morsel of wisdom I have for you is that you should get Java's reference/value passing paradigm correct from the start. This is something I find that most Java books totally screw up by trying to be waaaay too complicated/technically correct from the start. I like the simple example in this StackOverflow thread:

http://stackoverflow.com/questions/4...s-by-reference

This will likely help you in an interview or programming test (as well as when actually working with Java).
Mac_Max is offline   0 Reply With Quote
Old Apr 10, 2012, 05:25 PM   #4
willieva
macrumors 6502
 
Join Date: Mar 2010
Another vote for Thinking in Java. Java does things differently than C++, and it helps to think differently when using Java. This book definitely helps with that.

And learn some design patterns while you're at it. The java libraries will make more sense if you understand the patterns behind them. Headfirst Design Patterns is a good place to start.
willieva is offline   0 Reply With Quote
Old Apr 10, 2012, 05:32 PM   #5
Mac_Max
macrumors 6502
 
Join Date: Mar 2004
Quote:
Originally Posted by willieva View Post
Another vote for Thinking in Java. Java does things differently than C++, and it helps to think differently when using Java. This book definitely helps with that.

And learn some design patterns while you're at it. The java libraries will make more sense if you understand the patterns behind them. Headfirst Design Patterns is a good place to start.
Very true. You can also get by with the Gang Of Four's original as well. On the other hand, when reading anything about patterns make sure your signal-noise dial is set properly because there are a lot of Architecture Astronauts out there.
Mac_Max is offline   0 Reply With Quote
Old Apr 10, 2012, 05:39 PM   #6
chrono1081
Thread Starter
macrumors 604
 
chrono1081's Avatar
 
Join Date: Jan 2008
Location: Isla Nublar
Quote:
Originally Posted by Angelo95210 View Post
Not specifically for Java, but for programming in general I like the O'Reilly books.
I've heard these are good. I'm hoping the Barnes and Noble near me has them so I can thumb through them. (Our Barnes and Noble doesn't have much of a computer section :/ )

Quote:
Originally Posted by Mac_Max View Post
I like Bruce Eckel's work. He has a free ebook version of his 3rd edition of Thinking in Java. http://www.mindviewinc.com/Books/downloads.html
Thanks! I LOVE Bruce Eckel! I have his "Thinking in C++ Volumes 1 and 2" and they are fantastic.

Quote:
Originally Posted by Mac_Max View Post
Also, do you know what sort of technology stack will you be working with? This is where concepts and technologies change far more often. Are you going to be doing Java SE (Standard Edition - Desktop) or Java EE (Enterprise Edition - Server side (web))? Swing, JavaFX, or other?
Sadly I do not :/ They did mention that it could interface with web elements depending on what team I got put on. I passed the resume test, phone interview, and I had a face to face interview, now I'm nervously awaiting the outcome of that interview *bites nails*

During it they did say they had a list of Java questions incase I knew Java, I let them know I didn't but I would gladly attempt to answer their Java questions. I got all of them correct accept for one. The one I got wrong, which was Java specific and asked what everything inherits from in Java. I didn't know it but I gave a theoretical example from another language which they seemed to like.

Quote:
Originally Posted by Mac_Max View Post
Aside from that, the only other morsel of wisdom I have for you is that you should get Java's reference/value passing paradigm correct from the start. This is something I find that most Java books totally screw up by trying to be waaaay too complicated/technically correct from the start. I like the simple example in this StackOverflow thread:

http://stackoverflow.com/questions/4...s-by-reference

This will likely help you in an interview or programming test (as well as when actually working with Java).
Thanks! I'll give that thread a look.

Quote:
Originally Posted by willieva View Post
Another vote for Thinking in Java. Java does things differently than C++, and it helps to think differently when using Java. This book definitely helps with that.

And learn some design patterns while you're at it. The java libraries will make more sense if you understand the patterns behind them. Headfirst Design Patterns is a good place to start.
I saw the Headfirst Design Patterns book and it looked pretty good. I'll have to give it a whirl.

Thanks guys for the advice (and if anyone has anymore advice please feel free to add!). I plan on grabbing a few books since thats how I roll with programming languages :P
__________________
Mac Pro (2010): 3.33Ghz Intel Xeon (6 core) - 24 GB RAM - NVidia Quadro k5000
Macbook Air (2010): 2.13 Ghz Intel Core 2 Duo - 4GB RAM
chrono1081 is offline   0 Reply With Quote
Old Apr 10, 2012, 06:22 PM   #7
Angelo95210
macrumors 6502a
 
Angelo95210's Avatar
 
Join Date: Jan 2009
Location: Paris, France
Quote:
Originally Posted by chrono1081 View Post
I'm hoping the Barnes and Noble near me has them so I can thumb through them. (Our Barnes and Noble doesn't have much of a computer section :/ )
You can find them on Amazon. And also on torrents if you want to review them first. But buy them after... !!
Angelo95210 is offline   0 Reply With Quote
Old Apr 10, 2012, 06:36 PM   #8
balamw
Moderator
 
balamw's Avatar
 
Join Date: Aug 2005
Location: New England, USA
Quote:
Originally Posted by Angelo95210 View Post
You can find them on Amazon. And also on torrents if you want to review them first. But buy them after... !!
Why torrent when you can get a trial account or subscribe to Safari Books Online for less than the price of a single book. Many books from major publishers are there, including OReiily.

http://www.safaribooksonline.com/browse-library/Java

B
__________________
MBA (13" 1.7 GHz 128GB), UMBP (15" SD 2.8 GHz), UMB (13" 2.4 GHz), iMac (17" Yonah), 32GB iPad 3 WiFi+LTE, 64 GB iPad WiFi, 32 GB iPhone 5, Airport Extreme
balamw is offline   0 Reply With Quote
Old Apr 11, 2012, 02:25 AM   #9
Angelo95210
macrumors 6502a
 
Angelo95210's Avatar
 
Join Date: Jan 2009
Location: Paris, France
Quote:
Originally Posted by balamw View Post
Why torrent when you can get a trial account or subscribe to Safari Books Online for less than the price of a single book. Many books from major publishers are there, including OReiily.

http://www.safaribooksonline.com/browse-library/Java

B
Wow thanks I didn't know this. Thanks!
Angelo95210 is offline   0 Reply With Quote
Old Apr 11, 2012, 07:48 AM   #10
mluisbrown
macrumors newbie
 
Join Date: Dec 2011
Location: Lisbon, Portugal
Quote:
Originally Posted by chrono1081 View Post
I have a chance to land a Java developer position (I hope I get it since it'll be my first programming job). I don't know Java, which I made completely clear to the company but since they liked the fact that I know a lot of C++, Objective-C, C, and have experience with a bunch of different API's they decided to give me a shot.
Before I start, let me say I've worked as a Java developer for the last 12 years, having previously worked with C and C++. However, I'm currently working in my spare time as an iOS developer with Objective-C. I don't have a book recommendation for you, but I do have a question, or at least something for you to think about: as someone who already has Objective-C experience (one of the currently hottest skills people are looking for) why do you want to be a Java developer?

Let me be clear, Java is currently by far the most used programming language, and it's here to stay. Java developers will be in demand for the foreseeable future. Java is also (IMHO) a very nice and programmer friendly language to develop in. The Eclipse IDE (which is almost certainly what you'll use) is awesome. You can use a Mac for Java development (with Eclipse) even if the rest of the team uses Windows or Linux, and there's no problem, your code will run just the same as everyone else's on the server. However, Java is becoming the new COBOL. It's the language used in back end application servers for large enterprise projects. It's no longer 'sexy', and it's not 'the future'.

The future is mobile development, especially for iOS. Yes, Android development is done in Java, but Android development is not where the money is.

It all depends of course what you want to do, and obviously if you're keen to get your first programming job, you have fewer options. It's great that they're willing to overlook that you have no Java experience, because you'll pick it up quickly. Just don't forget your Objective-C

I guess what I'm trying to say is: "If you've already got experience making Ferraris and Porsches, why do you want to get a job making minivans?". Again, I make a living "making minivans", but I'm desperate to break out and start "making Ferraris"
mluisbrown is offline   1 Reply With Quote
Old Apr 11, 2012, 10:46 AM   #11
mydogisbox
macrumors member
 
Join Date: Jan 2011
Quote:
Originally Posted by chrono1081 View Post
I saw the Headfirst Design Patterns book and it looked pretty good. I'll have to give it a whirl.
I would like to put in a note of warning here about the Headfirst Design Patterns book. The book has a lot of extremely well explained and illustrated concepts and I would certainly recommend it, however, the book feels like it was written for middle schoolers (at least IMO). Don't be put off by the target audience, it has a lot of good material.
mydogisbox is offline   0 Reply With Quote
Old Apr 11, 2012, 11:26 AM   #12
Mac_Max
macrumors 6502
 
Join Date: Mar 2004
Quote:
Originally Posted by mluisbrown View Post
Before I start, let me say I've worked as a Java developer for the last 12 years, having previously worked with C and C++. However, I'm currently working in my spare time as an iOS developer with Objective-C. I don't have a book recommendation for you, but I do have a question,

... snip ...

I guess what I'm trying to say is: "If you've already got experience making Ferraris and Porsches, why do you want to get a job making minivans?". Again, I make a living "making minivans", but I'm desperate to break out and start "making Ferraris"
I suppose I can't really speak for him but I'd imagine he's happy to break out of his current industry and into software development.
Mac_Max is offline   0 Reply With Quote
Old Apr 11, 2012, 11:31 AM   #13
mluisbrown
macrumors newbie
 
Join Date: Dec 2011
Location: Lisbon, Portugal
Quote:
Originally Posted by Mac_Max View Post
I suppose I can't really speak for him but I'd imagine he's happy to break out of his current industry and into software development.
That was my guess too, I wonder what his current industry is...
mluisbrown is offline   0 Reply With Quote
Old Apr 11, 2012, 12:08 PM   #14
balamw
Moderator
 
balamw's Avatar
 
Join Date: Aug 2005
Location: New England, USA
Quote:
Originally Posted by mluisbrown View Post
That was my guess too, I wonder what his current industry is...
From other threads the OP is still pretty fresh out of school.

http://forums.macrumors.com/showthread.php?t=1348190
http://forums.macrumors.com/showthread.php?t=1316901

B
__________________
MBA (13" 1.7 GHz 128GB), UMBP (15" SD 2.8 GHz), UMB (13" 2.4 GHz), iMac (17" Yonah), 32GB iPad 3 WiFi+LTE, 64 GB iPad WiFi, 32 GB iPhone 5, Airport Extreme
balamw is offline   0 Reply With Quote
Old Apr 11, 2012, 01:18 PM   #15
Mac_Max
macrumors 6502
 
Join Date: Mar 2004
Nice, congrats to the OP!

There are far worse options than Java jobs (and this is coming from someone who doesn't like working with Java). Say, Winform VB6 development for a mortgage company IT department (and yes these jobs still exist, and thank God I've never had one haha).
Mac_Max is offline   0 Reply With Quote
Old Apr 11, 2012, 02:05 PM   #16
chrono1081
Thread Starter
macrumors 604
 
chrono1081's Avatar
 
Join Date: Jan 2008
Location: Isla Nublar
Quote:
Originally Posted by mluisbrown View Post
Before I start, let me say I've worked as a Java developer for the last 12 years, having previously worked with C and C++. However, I'm currently working in my spare time as an iOS developer with Objective-C. I don't have a book recommendation for you, but I do have a question, or at least something for you to think about: as someone who already has Objective-C experience (one of the currently hottest skills people are looking for) why do you want to be a Java developer?

Let me be clear, Java is currently by far the most used programming language, and it's here to stay. Java developers will be in demand for the foreseeable future. Java is also (IMHO) a very nice and programmer friendly language to develop in. The Eclipse IDE (which is almost certainly what you'll use) is awesome. You can use a Mac for Java development (with Eclipse) even if the rest of the team uses Windows or Linux, and there's no problem, your code will run just the same as everyone else's on the server. However, Java is becoming the new COBOL. It's the language used in back end application servers for large enterprise projects. It's no longer 'sexy', and it's not 'the future'.

The future is mobile development, especially for iOS. Yes, Android development is done in Java, but Android development is not where the money is.

It all depends of course what you want to do, and obviously if you're keen to get your first programming job, you have fewer options. It's great that they're willing to overlook that you have no Java experience, because you'll pick it up quickly. Just don't forget your Objective-C

I guess what I'm trying to say is: "If you've already got experience making Ferraris and Porsches, why do you want to get a job making minivans?". Again, I make a living "making minivans", but I'm desperate to break out and start "making Ferraris"
This will be my first programming job, and although I'd like to program with Objective-C I'm having a hard time finding places where I live that use it.

The place I am applying to seems like a great start to land my first programming job. Instead of throwing me in sink or swim style they'll train me how to program for their systems and then if I pass the training I'll move to one of the programming teams. (I would be utterly ashamed of myself if I didn't pass the training!)

Quote:
Originally Posted by balamw View Post
Yep, fresh out of school at the ripe age of 30 :P Better late than never I suppose

I've worked in IT for the past 10 years supporting Windows desktops and servers and various other things and I'm trying for a career change. (Don't get me wrong I like regular IT stuff, I just want to try something new).

----------

Quote:
Originally Posted by Mac_Max View Post
Nice, congrats to the OP!

There are far worse options than Java jobs (and this is coming from someone who doesn't like working with Java). Say, Winform VB6 development for a mortgage company IT department (and yes these jobs still exist, and thank God I've never had one haha).
Thanks!

And I totally forgot about VB6. Its one of the reasons I left my first college. We had it for a year and I was so mad because I knew even back then no one used it.

The second reason was because after the first year they had a big meeting with all the students explaining they lied about their accreditation

My second school was well thought of (although honestly when I went the computer science program sucked) but I had to leave it and switch to a school with online options since I took an IT job overseas (it was in a war zone so a local campus wasn't an option). Sadly the online school I picked, although fully accredited with actual campuses is not well thought of so I'm trying to bury it with experience by landing any programming job I can
__________________
Mac Pro (2010): 3.33Ghz Intel Xeon (6 core) - 24 GB RAM - NVidia Quadro k5000
Macbook Air (2010): 2.13 Ghz Intel Core 2 Duo - 4GB RAM

Last edited by chrono1081; Apr 11, 2012 at 02:16 PM.
chrono1081 is offline   0 Reply With Quote
Old Apr 13, 2012, 07:39 PM   #17
iShater
macrumors Demi-God
 
iShater's Avatar
 
Join Date: Aug 2002
Location: Chicagoland
I am mentoring a new guy at the office. The two books i told him to check out for core java are Head First Java and Learning Java. These arw a good start especially if you already know how to program in another OO language.

Since most companies do enterprise java, your next should be to learn more aboutJava Enterprise Edition. Oracle has good tutorial PDFs an dthere quite a few books out there. However, that space is huge.

Today most of the work is done using frameworks so make sure to build a good foundation. I even recommend studying SCJP exam books after you finish the first two i listed.

Hope this help.
__________________
Insert signature here.
iShater is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Java 6.x security risk (?) vs Java 7.x and broken apps w/ v7.x installs? mgiamo Mac Basics and Help 1 Dec 15, 2013 04:48 PM
All iPads: Whats the best app for pdf book reading on the ipad? Alundra iPad 6 Sep 6, 2013 08:11 AM
Chrome on OS X -- Java plugin / Java 7 vs Java 6 Issue booyahbooyah Mac Applications and Mac App Store 4 May 31, 2013 10:13 AM
Whats yor favorite make and model case? why? Bchagey iPhone Accessories 11 Oct 6, 2012 12:38 PM
Installed Java 7.07 but doesn't show up in Java preferences? -mattias- OS X 10.8 Mountain Lion 21 Aug 31, 2012 05:49 PM

Forum Jump

All times are GMT -5. The time now is 08:02 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC