Commit b50a60b3 authored by Davis King's avatar Davis King

Cleaned up this page a little bit.

--HG--
extra : convert_revision : svn%3Afdd8eb12-d10e-0410-9acb-85c331704f74/trunk%403493
parent 2e05ee74
...@@ -17,14 +17,15 @@ ...@@ -17,14 +17,15 @@
you would read a short description of something, understand it immediately, you would read a short description of something, understand it immediately,
and begin using it in your application without any difficulty. Obviously, this and begin using it in your application without any difficulty. Obviously, this
depends partly on the background of the user. For example, if you have depends partly on the background of the user. For example, if you have
never written software before then it probably isn't going to be this easy. never written C++ software before then it probably isn't going to be this easy.
</p> </p>
<p> <p>
This page contains references to books, along with my commentary, which explain most of This page is meant to complement the main library documentation by providing
the subjects needed to understand the various parts of the library. In most cases these are references to books, along with my commentary, which explain most of
the books I learned from during the process the background material needed to understand the various parts of the library.
of creating dlib. As always, if you disagree with anything or think I have left out an important In most cases these are the books I learned from during the process
text then shoot me an <a href="mailto:davis@dlib.net">email</a>. of creating dlib. As always, if you disagree with anything or think I have left out
an important text then shoot me an <a href="mailto:davis@dlib.net">email</a>.
</p> </p>
<br/><br/> <br/><br/>
...@@ -35,7 +36,7 @@ ...@@ -35,7 +36,7 @@
<ul> <ul>
<li> <i>Programming: Principles and Practice Using C++</i> by Bjarne Stroustrup <li> <i>Programming: Principles and Practice Using C++</i> by Bjarne Stroustrup
<ul> This is the sort of book you would use in a freshman introduction-to-programming class. <ul> This is the sort of book you would use in a freshman introduction-to-programming class.
So if you are just beginning to study programming and interested in C++ then I think So if you are just beginning to study programming and are interested in C++ then I think
it is probably safe to say this is one of the best books you could read. It is both it is probably safe to say this is one of the best books you could read. It is both
recent (2009) and written by the creator of C++. </ul> <br/> recent (2009) and written by the creator of C++. </ul> <br/>
</li> </li>
...@@ -43,9 +44,9 @@ ...@@ -43,9 +44,9 @@
<ul> This is a great intermediate level C++ book. Most people have heard the jokes about <ul> This is a great intermediate level C++ book. Most people have heard the jokes about
how easy it is to shoot yourself in the foot with C++. This book explains many things you how easy it is to shoot yourself in the foot with C++. This book explains many things you
need to know about the language to avoid doing so on a regular basis. So if you are need to know about the language to avoid doing so on a regular basis. So if you are
writing C++ software then this is a MUST read. I would go as far as to claim that writing C++ software then this is a must-read. I would even claim that
you are a danger to the C++ software you touch unless you know what is in this book. you are a danger to the C++ software you touch unless you know what is in this book.
I'm not kidding. However, the book isn't just about the quirks of C++. It also discusses many general I'm not kidding. Finally, the book isn't just about the quirks of C++. It also discusses many general
software engineering ideas which have wide applicability. So in this software engineering ideas which have wide applicability. So in this
respect it is a great book for any software developer to read. respect it is a great book for any software developer to read.
</ul><br/> </ul><br/>
...@@ -74,7 +75,7 @@ ...@@ -74,7 +75,7 @@
<ul> <ul>
<li> <i>Programming with POSIX Threads</i> by David R. Butenhof <li> <i>Programming with POSIX Threads</i> by David R. Butenhof
<ul> When I was an undergrad, this book was my main resource for learning about multithreading. <ul> When I was an undergrad, this book was my main resource for learning about multithreading.
It was enjoyable to read (as are all the books on this list I think) and covered everything It was enjoyable to read, as are all the books on this list, and covered everything
in great depth without becoming overbearing. Also, despite what the title may suggest, in great depth without becoming overbearing. Also, despite what the title may suggest,
this book is useful for understanding multithreading broadly, not just multithreading this book is useful for understanding multithreading broadly, not just multithreading
on POSIX systems. on POSIX systems.
...@@ -89,7 +90,7 @@ ...@@ -89,7 +90,7 @@
<ul> A lot of people call this book the network programming Bible and <ul> A lot of people call this book the network programming Bible and
this praise is well deserved. If you want a deep understanding of how computer networks this praise is well deserved. If you want a deep understanding of how computer networks
function, including the Internet, then this is the book to read. As with function, including the Internet, then this is the book to read. As with
the Butenhof book above, this is excellent even for people who do not the Butenhof book above, this is excellent choice even for people who do not
intend to write software for Unix systems. intend to write software for Unix systems.
</ul><br/> </ul><br/>
</li> </li>
...@@ -97,7 +98,7 @@ ...@@ -97,7 +98,7 @@
<h3>WIN32 Programming</h3> <h3>WIN32 Programming</h3>
It has been a long time since I needed to refer to these two books. However, It has been a long time since I needed to refer to these two books. However,
they contained information that I couldn't find elsewhere no matter they contained information I couldn't find elsewhere no matter
how hard I looked. So I recommend them in case you need to create or understand how hard I looked. So I recommend them in case you need to create or understand
some low level win32 code. some low level win32 code.
<br/> <br/>
...@@ -143,7 +144,7 @@ ...@@ -143,7 +144,7 @@
<ul> <ul>
<li> <i>Text Compression</i> by Bell, Cleary, and Witten <li> <i>Text Compression</i> by Bell, Cleary, and Witten
<ul> When I was studying data compression this was my most useful <ul> When I was studying data compression this was my most useful
resource. So if you are looking to understand how lossless data compression resource. If you are looking to understand how lossless data compression
algorithms work then this is the book you want. It is completely self-contained algorithms work then this is the book you want. It is completely self-contained
and an absolute joy to read. Note that contrary to one of the reviews on and an absolute joy to read. Note that contrary to one of the reviews on
amazon.com, the book <i>Managing Gigabytes</i> is not the second edition of this book; amazon.com, the book <i>Managing Gigabytes</i> is not the second edition of this book;
...@@ -189,7 +190,7 @@ ...@@ -189,7 +190,7 @@
<ul> At some level real analysis is like a really rigorous repeat of calculus. <ul> At some level real analysis is like a really rigorous repeat of calculus.
So if you already have an undergraduate education in calculus and So if you already have an undergraduate education in calculus and
you are reading things that seem reminiscent of calculus but involve you are reading things that seem reminiscent of calculus but involve
stuff you haven't seen before (e.g. sup, inf, "sets of numbers") stuff you haven't seen before (e.g. sup, inf, "sets of numbers", sequences of points)
then you may be in need of a real analysis book. This one is quite good and should then you may be in need of a real analysis book. This one is quite good and should
be accessible to someone with the usual undergraduate computer science math background. be accessible to someone with the usual undergraduate computer science math background.
</ul><br/> </ul><br/>
...@@ -213,7 +214,8 @@ ...@@ -213,7 +214,8 @@
<li> <i>Practical Methods of Optimization</i> (second edition) by R. Fletcher 1987 <li> <i>Practical Methods of Optimization</i> (second edition) by R. Fletcher 1987
<ul> I love this book. When I got it I literally spent my weekends sitting around <ul> I love this book. When I got it I literally spent my weekends sitting around
reading it for hours. It is a fascinating and well written introduction to reading it for hours. It is a fascinating and well written introduction to
the subject of optimization. I cannot recommend it highly enough. the subject of optimization. This has been my most valuable resource for
learning the fundamentals of optimization and I cannot recommend it highly enough.
</ul><br/> </ul><br/>
</li> </li>
<li> <i>Numerical Optimization</i> by Jorge Nocedal and Stephen Wright 2006 <li> <i>Numerical Optimization</i> by Jorge Nocedal and Stephen Wright 2006
...@@ -255,7 +257,7 @@ ...@@ -255,7 +257,7 @@
mention the KKT conditions, duality, "primal variables", or quadratic programming it mention the KKT conditions, duality, "primal variables", or quadratic programming it
is talking about ideas from optimization. A good book which will explain all this to you is talking about ideas from optimization. A good book which will explain all this to you
is <i>Practical Methods of Optimization</i>. Note that this book calls the KKT conditions is <i>Practical Methods of Optimization</i>. Note that this book calls the KKT conditions
just the "KT" conditions. They are talking about the same thing. Also, duality just the "KT" conditions. It is talking about the same thing. Also, duality
is something that comes up a lot in optimization but in the context of machine learning is something that comes up a lot in optimization but in the context of machine learning
usually people are talking about a particular form known as the Wolfe Dual. usually people are talking about a particular form known as the Wolfe Dual.
</p> </p>
...@@ -275,8 +277,7 @@ ...@@ -275,8 +277,7 @@
<h2>Image Processing</h2> <h2>Image Processing</h2>
<ul> <ul>
<li> <i>Digital Image Processing</i> by Rafael C. Gonzalez and Richard E. Woods <li> <i>Digital Image Processing</i> by Rafael C. Gonzalez and Richard E. Woods
<ul> This is a terrific introduction to digital image processing if you are looking <ul> This is a terrific introduction to digital image processing.
for a place to start learning about this subject.
By and large this book doesn't require any special prerequisites. Sometimes By and large this book doesn't require any special prerequisites. Sometimes
calculus shows up, but not too much. calculus shows up, but not too much.
</ul><br/> </ul><br/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment