Book recommendations

  • Thread starter gordon.is.a.moron
  • Start date
G

gordon.is.a.moron

Hello, what books do you generally have in your arsenal? I'm looking
for suggestions
with regards to algorithms, design patterns and SQL which all need
buffing up. Preferably
Java based, but doesn't have to be. First I'd say the GoF Design
patterns book, but I'm not sure what else I should get, especially
algorithms.

Cheers,

Gordy.
 
D

Daniel Pitts

Hello, what books do you generally have in your arsenal? I'm looking
for suggestions
with regards to algorithms, design patterns and SQL which all need
buffing up. Preferably
Java based, but doesn't have to be. First I'd say the GoF Design
patterns book, but I'm not sure what else I should get, especially
algorithms.

Cheers,

Gordy.
Good design pattern books:
Refactoring, by Fowler
Refactoring to Patterns, by Kerievsky
Design Patterns, by Gamma, Helm, Johnson, and Vlissides

Overall good resources:
Google: http://www.google.com
Java API docs: http://java.sun.com/j2se/1.5.0/docs/api/index.html
This newsgroup.

:)
Good luck
 
J

John T

Hello, what books do you generally have in your arsenal? I'm looking
for suggestions
with regards to algorithms, design patterns and SQL which all need
buffing up. Preferably
Java based, but doesn't have to be. First I'd say the GoF Design
patterns book, but I'm not sure what else I should get, especially
algorithms.

Cheers,

Gordy.
Oracle Database Programming with Java and Web Services Kuassi Mensah
ISBN: 1555583296

Head First Design Patterns ISBN: 0596007124

Thinking In Java ISBN: 0131872486

Design Patterns In Java ISBN: 0321333020

Head First Object-Oriented Analysis And Design ISBN: 0596008678
 
A

Ashoka!

Oracle Database Programming with Java and Web Services Kuassi Mensah
ISBN: 1555583296

Head First Design Patterns ISBN: 0596007124

Thinking In Java ISBN: 0131872486

Design Patterns In Java ISBN: 0321333020

Head First Object-Oriented Analysis And Design ISBN: 0596008678

Books are passe, :) If you want to be up to date internet is a much
better resource because you can get to the information you want
quickly. I would like to qoute my Systems instructor in college Dr
Umar Saif (Who by the way has tought in MIT) "Books are written to
make money not to make you learn something, if you want to learn
something look a latest research papers and journals"

regards
Usman
 
M

Mark Space

Hello, what books do you generally have in your arsenal? I'm looking
for suggestions
with regards to algorithms, design patterns and SQL which all need
buffing up. Preferably
Java based, but doesn't have to be. First I'd say the GoF Design
patterns book, but I'm not sure what else I should get, especially
algorithms.

Cheers,

Gordy.

I found the books from MySql Press to be pretty good.

http://dev.mysql.com/books/mysqlpress/

They are obviously focused on MySql, but concepts do bleed over. And I
like the MySQL software anyway... ;)

Concrete Mathematics is good for basic discrete maths. There's a PDF
available free, of an early edition, Google for it.

Some guy named Knuth wrote a book on algorithms, you might check it out. ;)
 
L

Lew

Mark said:
I like the MySQL software anyway... ;)

De gustibus non disputandum est, praeter in Usenet.

I have used MySQL in production work, and it works, but I prefer other DBMS
products.

MySQL syntax has non-standard elements, and if you forget and leave tables as
type "Engine=MyISAM" you lose many relational features (like foreign keys).

-- Lew
 
M

Mark Space

Lew said:
De gustibus non disputandum est, praeter in Usenet.

I have used MySQL in production work, and it works, but I prefer other
DBMS products.

MySQL syntax has non-standard elements, and if you forget and leave
tables as type "Engine=MyISAM" you lose many relational features (like
foreign keys).

What I liked about the beginning MySQL book was that they started by
talking about normalization. I had that in my college text books (long
since sold back) but it was nice to see someone try to start from first
principles.

Good point about non-standard extensions, that could trip somebody up.

And yes, you have to specify the engine, be the default one is pretty bad.
 
C

Chris Uppal

Ashoka! said:
Books are passe, :)

I see the smiley...

If you want to be up to date internet is a much
better resource because you can get to the information you want
quickly.

It depends on what you are looking for. For the subjects the OP mentions, I
don't think that resources other than books are any real use at all.

I would like to qoute my Systems instructor in college Dr
Umar Saif (Who by the way has tought in MIT) "Books are written to
make money not to make you learn something, if you want to learn
something look a latest research papers and journals"

That is /terrible/ advice. If Saif were addressing a class of post-graduate
students then it would have made some sense (especially as they would probably
be too poor to pay for books, so saying "don't" would be a good way to grab
their attention). But for a well-established field like basic CS algorithms
and design techniques, the valuable stuff was worked out decades ago (more than
half a century in many cases), and the relevant stuff simply won't be /in/ the
"latest research papers and journals".

Also, the papers -- except for the occasional review paper -- don't even
attempt
to give a balanced overview of a field (or subfield). So even if you are
working in one of the areas where the important stuff is still under active
research (and there are plenty of those); the working programmer who just wants
to get a job done this week rather than make a multi-year study of the
available papers, will find it very difficult to "navigate" the field to find
the results which are /actually/ relevant to the job at hand.

-- chris
 
C

Chris Uppal

Hello, what books do you generally have in your arsenal? I'm looking
for suggestions with regards to algorithms

I found that Sedgewick's 1-volume books on algorithms (in various languages)
were pitched about right for me. A good balance between being so introductory
that you read it once and then never look at it again, and so comprehensive as
to be unusable for a beginner.

design patterns

Don't expect too much from books on design patterns -- they aren't a good place
to learn design.

There are good books with the words "design patterns" in there titles, but they
aren't good /because/ of "design patterns" (in fact they tend to be good in
inverse proportion to the emphasis they place on patterns).

Read the GoF book, by all means, because it is part of the standard vocabulary
of the programming world.


No idea. If you want a small suggestion, then if you get a chance to browse
several books, then look at how each explains outer-joins. If an author can't
explain them clearly and simply, and in a way that gives you an understanding
of why you would /want/ to use them, then s/he probably isn't all that good at
explaining other stuff. Also the books should be /short/ -- there is nothing
in SQL (especially SQL used from a programming language rather than as a report
generator) to justify a long book.

-- chris
 
P

Patricia Shanahan

Chris said:
I see the smiley...



It depends on what you are looking for. For the subjects the OP mentions, I
don't think that resources other than books are any real use at all.



That is /terrible/ advice. If Saif were addressing a class of post-graduate
students then it would have made some sense (especially as they would probably
be too poor to pay for books, so saying "don't" would be a good way to grab
their attention). But for a well-established field like basic CS algorithms
and design techniques, the valuable stuff was worked out decades ago (more than
half a century in many cases), and the relevant stuff simply won't be /in/ the
"latest research papers and journals".

I think it depends on what you are doing, just as much as who you are. I
am a Ph.D. student. A few weeks ago I needed to learn SQL. The latest
research papers on query optimization would have been absolutely useless
for my purpose. The local book store had several introductory how-to
books on SQL, and the one I picked worked fine for what I needed.

On the other hand, when working in industry, with plenty of money for
books, I've had situations in which I already had the general picture,
but needed to know about the latest research results. For that, there is
no substitute for reading academic papers.

Patricia
 
G

gordon.is.a.moron

On Mar 9, 3:09 pm, (e-mail address removed) wrote:> Hello, what books do you generally have in your arsenal? I'm looking

Good design pattern books:
Refactoring, by Fowler
Refactoring to Patterns, by Kerievsky
Design Patterns, by Gamma, Helm, Johnson, and Vlissides

Overall good resources:
Google:http://www.google.com
Java API docs:http://java.sun.com/j2se/1.5.0/docs/api/index.html
This newsgroup.

:)
Good luck



Thanks, I'll look at those books. I already have used the Java API's
etc., but
since I'm abroad just now I only have access via net cafe's etc.,
hence my
reason for book suggestions (I should've mentioned this initially,
really.)

Gordy
 
G

gordon.is.a.moron

I found that Sedgewick's 1-volume books on algorithms (in various languages)
were pitched about right for me. A good balance between being so introductory
that you read it once and then never look at it again, and so comprehensive as
to be unusable for a beginner.


Don't expect too much from books on design patterns -- they aren't a good place
to learn design.

I take it you simply learn by experience, or practice?
There are good books with the words "design patterns" in there titles, but they
aren't good /because/ of "design patterns" (in fact they tend to be good in
inverse proportion to the emphasis they place on patterns).

Read the GoF book, by all means, because it is part of the standard vocabulary
of the programming world.


No idea. If you want a small suggestion, then if you get a chance to browse
several books, then look at how each explains outer-joins. If an author can't
explain them clearly and simply, and in a way that gives you an understanding
of why you would /want/ to use them, then s/he probably isn't all that good at
explaining other stuff. Also the books should be /short/ -- there is nothing
in SQL (especially SQL used from a programming language rather than as a report
generator) to justify a long book.

There's a bookshop that has a book like this, not sure how good the
explanation
of outer joins is, I'll take another look. It does cover normalisation
but no BCNF,
not that the latter is particularly important.
 
G

gordon.is.a.moron

I found the books from MySql Press to be pretty good.

http://dev.mysql.com/books/mysqlpress/

They are obviously focused on MySql, but concepts do bleed over. And I
like the MySQL software anyway... ;)

Concrete Mathematics is good for basic discrete maths. There's a PDF
available free, of an early edition, Google for it.

Some guy named Knuth wrote a book on algorithms, you might check it out. ;)

Knuth, that's the one. You see I do have references for these things,
but they're
10.5k miles away, so I can't remember them. The MYSQL stuff might be
interesting,
I've used MYSQL with J2EE, but my database desig wasn't up to much
really, so
they may be useful. Cheers.

Gordy.
 
C

Chris Uppal

(e-mail address removed) wrote:

[me:]
I take it you simply learn by experience, or practice?

I think that must be it. Of course, you start to gain experience the minute
you first even think about how to write your very first program; and every time
you write a line of code, or read a line of someone else's code, you are
gaining experience and putting in the practise.

Naturally, if you are in a position to write moderately substantial programs
(ones big enough that you can see design /options/ and think about which is
best and why) then you'll learn faster. Similarly if you work with existing
designs (good designs, that is ;-)

(As an aside, why do so many shops insist on putting beginner programmers --
ones without a practised design sense -- onto maintenance work ? When (a)
their lack of design intuition will mean they are likely to miss the existing
design (and thus fail to follow it in their replacement code), and (b) it is
putting then in a poor position to /gain/ a design intuition. It seems dumb to
me -- maintenance is a /skill/ and if a person can't at least design and write
new code (under some supervision) then s/he is likely to make an unholy mess of
changing existing code.)

-- chris
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,776
Messages
2,569,603
Members
45,190
Latest member
ClayE7480

Latest Threads

Top