• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Tim Cooke
  • Jeanne Boyarsky
Sheriffs:
  • Rob Spoor
  • Devaka Cooray
  • Liutauras Vilda
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Tim Moores
  • Mikalai Zaikin
Bartenders:
  • Piet Souris

Need a beginner's Java book for my girlfriend

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I've finally convinced my girlfriend that learning to program is an essential skill for getting a good job. Personally, I have done a lot of work with a lot of languages and I think that Java offers enough features (OO for one) and prevents enough headaches (pointers!) that it makes a good starter language.

Now, I'd like to find a book for her to use as a tutorial, but I haven't found any that meet what I'm looking for. The ideal book would be:

-For true beginners. There should be no expectation of understanding even what a language or a compiler is. A book that starts with basic definitions and builds up would be great. She was asking me the other day about the difference between code, programs, and applications, if that gives you any idea.
-Actually useful. I've looked at the "For Dummies" books in the past and they seem a bit shallow. I don't think that even if you followed a For Dummies from cover to cover that you would really understand programming.
-Purely Object Oriented. I've seen a few books that introduce languages like C++ and Java with a functional approach and then a OO approach. For her purposes, OO is ideal and if she never has to learn what the "static" keyword is for, then great.
 
Bartender
Posts: 1558
5
Eclipse IDE Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Jeremy,

Welcome to CodeRanch!

Frankly, it is difficult to learn programming AND OO concepts AND Java from a single book. For a beginner with absolutely no background, I would suggest below books:
1) Head First Programming (Griffiths et. al.)
2) Head First Object-Oriented Analysis and Design (McLaughlin et. al.)
3) Head First Java (Sierra et. al.)

Most importantly, programming is like mathematics. We learn concepts by reading book, but we become good at it only by solving problems.

On another note, someday, she'll have to learn what 'static' keyword is for

I hope this helps.
 
Rancher
Posts: 2759
32
Eclipse IDE Spring Tomcat Server
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I tried to teach my girlfriend how to code. She wasn't my girlfriend for too long after that.

Tread lightly my friend. Not everyone can code. It doesn't matter how smart they are.
 
Marshal
Posts: 78406
374
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Welcome to the Ranch

Agree with the suggestions about the Head First books. The Sierra and Bates book (Head First Java) is a bit out of date, but not seriously so. You know about our books pages, I presume.

But take Jayesh’s warning to heart; it would be like teaching her to drive. You might find you have swapped your girlfriend for a book
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Are you sure this is a good idea? It sounds kind of like it's your idea that your girlfriend should learn to program, not hers. And have you considered giving her an easier route in by starting with Python instead? It's widely taught as a first programming language in schools, universities and even big tech companies like Google. It's object oriented, but it's dynamically typed and interpreted, so the syntax is much easier to get started with and you don't have to worry about dealing with compilers etc. There are huge numbers of high quality libraries available for Python, so you can do pretty much anything with it, and it's widely used in science, industry and commerce - I'm seeing more and more Python jobs coming up in the financial sector for example.

Because of its popularity as a learner's language, there are lots of books and free learning materials for Python. Here's just a few examples:

  • Think Python - free online edition of a well-known introductory book on Python.
  • Hello World! - a fun book "written in language a 12-year-old can follow, but anyone who wants to learn how to program a computer can use it. Even adults."
  • Head First Python - a great introduction to Python that covers a lot of ground in the distinctive Head First style.
  • Google's Python class - based on Google's introductory Python course for its own staff.
  • Udacity Intro to Computer Science - free online course for beginners using Python to teach CS basics.
  • Coursera Introduction to Interactive Python - this free online course has already started but you can still follow along and do the exercises etc.
  • O'Reilly Python Programming 1 - not free (costs about $500), but a very good, well-structured course with lots of practical work and your own tutor to provide feedback and answer questions.

  • FWIW, I think Python is a much better language for learners than Java, while still allowing you to acquire solid programming skills that can be applied in the real world. It allows you to make things happen quickly, tinker with your code in a REPL-like environment, and develop your skills in OO programming without all the cruft associated with Java. If you already know Python, then you're in an ideal position to help her - and if you don't know Python, it will probably be more fun for you both to be learning together (and share the pain ).

    You're taking on quite a challenge here. Lots of very clever people simply don't get programming, and lots of clever people can't teach the stuff they know either (teaching is just as specialised a skill as programming), so you'll need to tread carefully and look out for positive ways to help your girlfriend work through the difficulties. But if she enjoys writing her first few programs in Python, as many people do because it's so easy to get started, then she's more likely to want to continue. Eventually, she may want to apply her OO Python knowledge in learning Java, or she may want to leapfrog Java and use her dynamic Python knowledge to get into the cool new dynamic languages on the JVM platform - she may even end up ahead of you on the tech adoption curve! If she decides not to take it further, she'll still have learned the basics of a useful programming language that can be used very easily for all kinds of ad hoc tasks on pretty much any platform.

    Anyway, good luck to both of you - you're going to need it!

     
    Jeremy Figgins
    Greenhorn
    Posts: 3
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks for all of the excellent replies.

    Chris, I hadn't even thought about Python, since I don't use it in my daily work, but that's a great idea and I think you're right.

    To everyone else who's worried about me losing my relationship, I should have started my request with "My gf is finally convinced to learn a programming language" instead of "I finally convinced her...". This is her call, but she doesn't want to be overwhelmed.
     
    Campbell Ritchie
    Marshal
    Posts: 78406
    374
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    It is still probably best to get somebody else to teach her.
    reply
      Bookmark Topic Watch Topic
    • New Topic