Showing posts with label Books. Show all posts
Showing posts with label Books. Show all posts

Monday, 29 November 2010

Machine Learning Books and Lectures

Jordan, one of the readers of the blog, wrote to point out some cool references for machine learning, mathematics and artificial intelligence.

Thanks again for all your contributions. I'm a .NET programmer coming from a background of studying politics and Latin American studies so when the moment came that I realized I was interested in A.I., I didn't have many resources to turn to.

I have a collection of books and links that I found very very helpful when I was trying to learn about these concepts. I was thinking they could be useful to some of your readers who were in my shoes two years ago. So without further adieu:


Handbook of Normal Frames and Coordinates

"Handbook of Normal Frames and Coordinates," Iliev, Bozhidar Z. (2006)

“This can be a heavy text, but if you understand the concept, this can take you to the next level - I would categorize this as Topology but has applications in quantum physics, theoretical mathematics, theoretical physics etc...- in context of your blogs - granted this is a dedicated read - I think readers will be able to appreciate and truly understand what a Hilbert Space is after reading this book.”

Linear Algebra

"Linear Algebra," Jim Heffron (2008)

“I liked this one because it was free and is still highly rated - I have also heard great reviews about David Poole's book on linear algebra, but I couldn't get myself to shell out the money when this was free.”

Complex To Real

http://www.complextoreal.com/tutorial.htm

“There are a ton of great articles here - I have personally read the ones on fourier transforms and wavelet transforms - great stuff”

Stanford Lectures - Fourier Analysis series

(free through Youtube or iTunesU)

“Email the Professor for the companion book. At this point it may have been published - but well worth shelling out the dough in any case.”

Bio-Inspired Artificial Intelligence

"Bio-Inspired Artificial Intelligence," Floreano and Mattiussi (2008)

“Excellent reference - fairly in depth for the number of topics it covers, lots of illustrations (illustrations are always a good thing :) and I've also found it to be a useful source for inspiration. I bought this book while I was looking into fuzzy swarm intelligence - it doesn't have all the answers, but I am simply in love with this book.”

Video lectures on Machine Learning

http://videolectures.net/pascal/

“A collection of video lectures featuring very brilliant people - let's face it... if you're doing or are interested in mathematics this complex... you probably don't know too many people who you can talk to / learn from on the subject unless you're in a University studying this kind of thing - these are some great lectures on machine learning - I just recently found this site but wish I had found it sooner - it's great if you're just exploring machine learning or are very well versed in it - however, I fall somewhere in the middle of that distribution so take it for what it's worth!”

Fearless Symmetry

"Fearless Symmetry," Ash and Gross (2006)

Another accessible book to those without heavy training in math - great intro to Galois Theory, the Riemann Hypothesis and several other concepts.

Zero: The Biography of a Dangerous Idea

    "Zero: The Biography of a Dangerous Idea," Charles Seife (2000)

This one is more historical and conceptual than technical but it's a captivating read and will help get you through those hard times when you want to put down that book on K-Dimensional Manifolds, but still need to satisfy your mathematical mind (some say it's never at rest once you catch that "learning bug").

Khan Academy

http://www.khanacademy.org/

Finally,  when you get lost, go here! The Khan Academy is a not-for-profit 501(c)(3) with the mission of providing a world-class education to anyone, anywhere.



 



Thanks Jordan! I hope readers can enjoy those resources as much as I did. Cheers!

Sunday, 21 February 2010

C# is now a better language than Java...

... but I really feel like I need to try Scala.



After some chatting and hearing wonders about this language I decided to try something new. I decided to try Scala.



Here is a list of cool references, not only for Scala, but about programming in general, kindly given by an experienced programmer I met some weeks ago.




 



Books


Programming in Scala: A comprehensive step-by-step guide


~ Martin Odersky, Lex Spoon, and Bill Venners



This book is the authoritative tutorial on the Scala programming language, co-written by the language's designer, Martin Odersky.



Clean Code: A Handbook of Agile Software Craftsmanship


~ Robert C. "Uncle Bob" Martin



Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.



Refactoring: Improving the Design of Existing Code


~ Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts



Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which "too small to be worth doing". However the cumulative effect of each of these transformations is quite significant. By doing them in small steps you reduce the risk of introducing errors. You also avoid having the system broken while you are carrying out the restructuring - which allows you to gradually refactor a system over an extended period of time.



Implementation Patterns


~ Kent Beck



Great code doesn’t just function: it clearly and consistently communicates your intentions, allowing other programmers to understand your code, rely on it, and modify it with confidence. But great code doesn’t just happen. It is the outcome of hundreds of small but critical decisions programmers make every single day. Now, legendary software innovator Kent Beck–known worldwide for creating Extreme Programming and pioneering software patterns and test-driven development–focuses on these critical decisions, unearthing powerful “implementation patterns” for writing programs that are simpler, clearer, better organized, and more cost effective.



Code Complete: A Practical Handbook of Software Construction


~ Steve McConnell



For more than a decade, Steve McConnell, one of the premier authors and voices in the software community, has helped change the way developers write code--and produce better software. Now his classic book, CODE COMPLETE, has been fully updated and revised with best practices in the art and science of constructing software. Whether you're a new developer seeking a sound introduction to the practice of software development or a veteran exploring strategic new approaches to problem solving, you'll find a wealth of practical suggestions and methods for strengthening your skills. Topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. This new edition features fully updated information on programming techniques, including the emergence of Web-style programming, and integrated coverage of object-oriented design. You'll also find new code examples--both good and bad--in C++, Microsoft(r) Visual Basic(r), C#, and Java, though the focus is squarely on techniques and practices.

Amazon Editorial Review



The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)


~ Frederick P. Brooks



The classic book on the human elements of software engineering. Software tools and development environments may have changed in the 21 years since the first edition of this book, but the peculiarly nonlinear economies of scale in collaborative work and the nature of individuals and groups has not changed an epsilon. If you write code or depend upon those who do, get this book as soon as possible -- from Amazon.com Books, your library, or anyone else. You (and/or your colleagues) will be forever grateful. Very Highest Recommendation.



 



Blogs & Online Resources



Joel on Software


A weblog by Joel Spolsky, a programmer working in New York City, about software and software companies.




The Artima Developer Community



Artima.com is a collection of resources about Java, Jini, the JVM, and object oriented design.



Mark's Blog


Mark Russinovich's technical blog covering topics such as Windows troubleshooting, technologies and security. Among other feats, Russinovich was the man behind the discovery of the Sony rootkit in Sony DRM products in 2005.




Object Mentor's Blog



A team of consultants who mentor their clients in C++, Java, OOP, Patterns, UML, Agile Methodologies, and Extreme Programming.




 



People to follow



@unclebobmartin


Known colloquially as "Uncle Bob", Robert Cecil Martin has been a software professional since 1970 and an international software consultant since 1990. In 2001, he led the group that created Agile software development from Extreme programming techniques. He is also a leading member of the Software Craftsmanship movement.


He is founder and president of Object Mentor Inc., a team of consultants who mentor their clients in C++, Java, OOP, Patterns, UML, Agile Methodologies, and Extreme Programming.




@KentBeck


Kent Beck is an American software engineer and the creator of Extreme Programming and Test Driven Development. Beck was one of the 17 original signatories of the Agile Manifesto in 2001.