COMPUTER SCIENCE BOOKS
THE MOST RECOMMENDED COMPUTER SCIENCE BOOKS IN THE UNIVERSITY
The Open Syllabus is
a curious initiative that seeks to collect and analyze all the curricula of
English-speaking universities (so far they cover the United States, United
Kingdom, New Zealand, Australia, and Canada, although the second version of the dataset promises
to be much broader).
At the moment they have focused on the analysis of the books that each university the course recommends as reading. For example, if we focus on computing, the ten most commonly recommended books are the following:
i.
Artificial Intelligence: A Modern approach. Stuart
Russell and Peter Norvig.
ii.
C: How to Program . Paul Deitel and
Harvey Deitel.
iii.
Starting Out With C ++: From Control Structures through Objects. Tony
Gaddis
iv.
Introduction to Algorithms. Thomas
Comment et al
v.
Fundamentals of Database Systems . Ramez
Elmasri and Shamkant Navathe
vi.
Discrete Mathematics and its Applications. Kenneth
Rosen
vii.
Operating System Concepts. Abraham Silberschatz
viii.
Modern Operating Systems . Andrew
Tanenbaum and Herbert Bos
ix.
Computer Networks. Andrew Tanenbaum
and David Wetherall
x.
Computer Organization and Design: the Hardware / Software Interface. David
Patterson and John Hennessy
So far
nothing out of the ordinary. Many classics (which I already had to read in
my student days) that cover fundamental concepts and stand the test of time
(and yes, this includes the "winner" as much as it seems to us that
artificial intelligence has advanced recently, its fundamentals They are still
the same). In addition, many of them have been updated with new editions.
But I
have gone a little further and I have reviewed the top 200 of the most
recommended books in computing and I have had quite a few surprises. Most
not very good. Some of my impressions.
VERY LITTLE
PRESENCE OF "MODERN" PROGRAMMING LANGUAGES IN PROGRAMMING COURSES
C / C ++ and Java remain the "safe"
option for teaching introduction to programming. There is only one book on
python, although it seems that at least the best computer science departments are introducing Python in introductory programming courses.
Interestingly,
there are more books on Perl than on Python. And there is no JavaScript.
Keep in
mind that here we are talking about recommended books. That there is no
JavaScript does not necessarily mean that JavaScript is taught in so few
universities that it does not appear in this ranking. There could be many
professors teaching JavaScript programming without recommending any JavaScript books. Or
that the variability of JavaScript books that is recommended is so high that
there are none with enough citations to get their head in the
ranking. Although being honest, it seems unlikely that this is the case 😉. I believe that
there is a clear correlation between what this ranking says and what happens in
reality (but I wanted to remind you of the context so that no one draws hasty
conclusions).
MODELING, WHO SAID MODELING?
More than a surprise, this is simply a
confirmation. Despite the great importance ( for me ) of software modeling, the presence
of modeling books in this list is reduced to the classic books of the founders
of the UML language, which in my opinion are not the best
option to learn UML.
Nothing
that talks about domain-specific languages or other modeling languages
(like SysML, business process modeling, ..).
AND DON'T TALK TO ME ABOUT SOFTWARE ENGINEERING ANYMORE
Something as basic as software engineering seems
to be less of a priority in computer science studies, which only include the
classic The Mythical Man-Month:
Essays on Software Engineering in the top 100 books.
The
absolute absence of development method books is also surprising. Not even
the all-powerful agile methods have managed to appear in this top 200. It seems
that for some, computing is reduced to programming, and above all programming
operating systems and databases 🙂
CLEAR ABSENCE OF EVERYTHING ELSE
Everything is written on
the score, except the essential - Gustav Mahler
Perverting
a bit of the original meaning of this phrase by Mahler (but I love it), I also
miss books about everything that accompanies programming in development the process from the collection of requirements to software tests. Not to
mention continuous integration systems. And much less of the social or
economic aspects.
We
don't even talk about free software at the university, when most of our systems
are either developed as open-source or depend on open source projects.
And
yes, I know there are so many exceptions to all these
complaints. Fortunately!. But it is that I believe that ALL students
deserve to be exposed to these topics as part of their basic education in
computer science. With forgiveness of the theoretical computer scientists,
but I have not built a compiler in my life (and I did two entire courses
dedicated to this) and it would have been much better for me to dedicate fewer
compilers and more to testing (on which I did zero courses the grade).
Or as Antonio Vallecillo masterfully
summarizes, it seems that at the university we train programmers, and
when not, we train scientists but not engineers.
Top 10 Recommended Books on the Computer Industry
This list originally published by The Enquirer in 2006 is thinking of the "nuts" for reading everything about the history of the computer industry, companies and their protagonists.
It is a selection that combines some
fairly recent titles with other classics, although I would definitely say that
the list is more "modern" than "classic". It is
arranged backward and I have added the links to Amazon, where you can buy the
books directly (most of them are in English and have never been translated,
surprisingly):
- 10. Accidental
Empires, by Robert X. Cringely. The history of the glorious years of the computer science companies.
- 9. Start-up,
by Jerry Kaplan. The Go
Corporation Failure Story.
- 8. High
Stakes, No prisoners, by Charles
Ferguson. The history of the company that created FrontPage.
- 7. Just for fun, the autobiography of Linus Torvalds, creator of Linux.
- 6. The
Cathedral and the Bazaar, by Eric
Raymond. Essays on programming. It can
be read online .)
- 5. Revolution in the Valley, by Andy Hertzfeld. The story of Apple was told by one of its first engineers. In Spanish: Revolution in Silicon Valley. (Wicho posted a review ).
- 4. In A search of Stupidity, by Merrill
Chapman. Marketing stupidities applied to the computer industry.
- 3. The
Maverick and His Machine, by Kevin Maney. The
history of IBM.
- 2. The
Search, by John Battelle. (Available in
Spanish: Search ). The history of Google.
- 1. Only the
Paranoid Survive, by Andrew Grove. The history of Intel.
Of the list, I have more or less half
and I am missing the other half, which I will try to add to La Pila ™ ...
Although the other day, when reviewing it, I saw that this pile is already too
long (for example, of the four that I have from this selection I've only read
two; another two are on the stack and one on Amazon's wish list ).
This type of the list can always be nuanced or can be improved and also for
personal tastes (and editors) there are a lot. Perhaps it will encourage
Wicho to propose a vote for geek books that
we have long wanted to mount, continuing the tradition (see geek movies and geek series we
organize around here, or geek novels according
to The Guardian ).
Personally, and without having read
them all, I think that Hackers or The Cluetrain
Manifesto for their influence are classics that should
be; maybe also The Soul of a
New Machine, which was a Pulitzer Prize winner. Regarding
the Apple world, it could be said that Apple
Confidential is more complete and precise than Revolution
in the Valley (and even From Pepsi to
Apple could be given a chance.)
No comments