
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
-49% $17.85$17.85
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Acceptable
$9.40$9.40
Ships from: Amazon Sold by: 2nd Life Aloha

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) 1st Edition
Purchase options and add-ons
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly.
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With Seven Languages in Seven Weeks, by Bruce A. Tate, you'll go beyond the syntax-and beyond the 20-minute tutorial you'll find someplace online. This book has an audacious goal: to present a meaningful exploration of seven languages within a single book. Rather than serve as a complete reference or installation guide, Seven Languages hits what's essential and unique about each language. Moreover, this approach will help teach you how to grok new languages.
For each language, you'll solve a nontrivial problem, using techniques that show off the language's most important features. As the book proceeds, you'll discover the strengths and weaknesses of the languages, while dissecting the process of learning languages quickly--for example, finding the typing and programming models, decision structures, and how you interact with them.
Among this group of seven, you'll explore the most critical programming models of our time. Learn the dynamic typing that makes Ruby, Python, and Perl so flexible and compelling. Understand the underlying prototype system that's at the heart of JavaScript. See how pattern matching in Prolog shaped the development of Scala and Erlang. Discover how pure functional programming in Haskell is different from the Lisp family of languages, including Clojure.
Explore the concurrency techniques that are quickly becoming the backbone of a new generation of Internet applications. Find out how to use Erlang's let-it-crash philosophy for building fault-tolerant systems. Understand the actor model that drives concurrency design in Io and Scala. Learn how Clojure uses versioning to solve some of the most difficult concurrency problems.
It's all here, all in one place. Use the concepts from one language to find creative solutions in another-or discover a language that may become one of your favorites.
- ISBN-10193435659X
- ISBN-13978-1934356593
- Edition1st
- PublisherPragmatic Bookshelf
- Publication dateDecember 14, 2010
- LanguageEnglish
- Dimensions7.5 x 1.2 x 9.25 inches
- Print length330 pages
Frequently bought together

Customers who viewed this item also viewed
From the Publisher
![]()
Seven Languages in Seven Weeks
|
![]()
Seven More Languages in Seven Weeks
|
![]()
Seven Databases in Seven Weeks
|
![]()
Seven Web Frameworks in Seven Weeks
|
![]()
Seven Concurrency Models in Seven Weeks
|
![]()
Seven Mobile Apps in Seven Weeks
|
|
---|---|---|---|---|---|---|
Customer Reviews |
4.3 out of 5 stars 180
|
4.3 out of 5 stars 36
|
4.5 out of 5 stars 64
|
4.2 out of 5 stars 15
|
4.1 out of 5 stars 80
|
3.3 out of 5 stars 7
|
Price | $17.85$17.85 | $22.73$22.73 | $35.17$35.17 | $18.95$18.95 | $29.45$29.45 | $39.12$39.12 |
Subtitle | A Pragmatic Guide to Learning Programming Languages | Languages That Are Shaping the Future | A Guide to Modern Databases and the NoSQL Movement | Adventures in Better Web Apps | When Threads Unravel | Native Apps, Multiple Platforms |
Content Coverage | Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby | Lua, Factor, Elixir, Elm, Julia, MiniKanren, and Idris | Redis, Neo4J, CouchDB, MongoDB, HBase, Postgres and DynamoDB | Sinatra, CanJS, AngularJS, Ring, Webmachine, Yesod, and Immutant | Threads & locks, functional programming, separating identity & state, actors, sequential processes, data parallelism, and the lambda architecture | iOS, Android, Windows, RubyMotion, React Native, and Xamarin |
Editorial Reviews
Review
""I have been programming for 25 years in a variety of hardware and software languages. After reading Seven Languages in Seven Weeks, I am starting to understand how to evaluate languages for their objective strengths and weaknesses. More importantly, I feel as if I could pick one of them to actually get some work done.""--Chris Kappler, Senior scientist Raytheon, BBN Technologies
""I spent most of my time as a computer sciences student saying I didn't want to be a software developer and then became one anyway. Seven Languages in Seven Weeks expanded my way of thinking about problems and reminded me what I love about programming.""--Travis Kaspar, Software engineer, Northrop Grumman
""Do you want seven kick starts into learning your "language of the year"? Do you want your thinking challenged about programming in general? Look no further than this book. I personally was taken back in time to my undergraduate computer science days, coasting through my programming languages survey course. The difference is that Bruce won't let you coast through this course! This isn't a leisurely read--you'll have to work this book. I believe you'll find it both mindblowing and intensely practical at the same time.""--Matt Stine Group leader, Research Application Development, St. Jude Children's Research Hospital
About the Author
Product details
- Publisher : Pragmatic Bookshelf; 1st edition (December 14, 2010)
- Language : English
- Paperback : 330 pages
- ISBN-10 : 193435659X
- ISBN-13 : 978-1934356593
- Item Weight : 1.4 pounds
- Dimensions : 7.5 x 1.2 x 9.25 inches
- Best Sellers Rank: #455,903 in Books (See Top 100 in Books)
- #405 in Introductory & Beginning Programming
- #440 in Software Development (Books)
- #1,023 in Programming Languages (Books)
- Customer Reviews:
About the author

Bruce Tate is an avid adventurer who enjoys kayaking rivers, indoor climbing, and boating. He is a prominent figure in the Elixir programming language community as a speaker, author, editor, and conference organizer. Bruce Tate's contributions in the field of programming education have made a significant impact nationally and beyond.
The programmer and CEO of Groxio is helping to redefine how computer languages are taught and learned. In 2022, he captained one of the roughly 200 boats to complete America's Great Loop with his wife Maggie. The journey of 6,700 miles spanned two countries, eighteen states, and nine months.
Professionally, he is the author or co-author of more than a dozen books including best-selling Seven Languages in Seven Weeks, Designing Elixir Systems with OTP, and Programming Phoenix. He was involved with the Elixir and Ruby languages early in their adoption curves.
Currently, when he's not on the water, he lives in Chattanooga, Tennessee with his wife and his dog Yeti.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find this programming book well-written and easy to read, providing a good introduction to several different languages. They appreciate its content, with one customer noting it gives three days worth of lessons, while another highlights its coverage of functional language gotchas. The book receives positive feedback for its enlightening approach, with one customer mentioning it provides a good cross section of different paradigms, and customers like its chapter length, with one noting the final wrap-up chapter is excellent. While customers find the book easy to use, some mention it is getting a bit old.
AI-generated from the text of customer reviews
Customers find this programming book engaging and useful, with one customer noting it provides three days of lessons, while another mentions it's particularly effective for beginners and new students.
"...I had a great time working through the seven chapters and learned a lot...." Read more
"...These were an unexpected addition and quite worth reading. In fact, I wish the interviews had been longer and gone into more technical detail...." Read more
"...already, but as it's introducing new concepts, it gives you enough background to follow along, but not so much detail that you're bored...." Read more
"...It is easily one of my 5 favorite programming books...." Read more
Customers appreciate the book's approach to language learning, as it provides a good introduction to several different programming languages, with one customer noting that each language has its own chapter.
"...languages each bring something to the book and represent a number of interesting paradigms. Chapters: Each language has its own chapter...." Read more
"...It also has a couple of different sections for each language, including short interviews with the language designers...." Read more
"...Scala is a language I had wanted to check out, anyway. Erlang is interesting (the "let it crash" philosophy was particularly intriguing)...." Read more
"...PL terminology is encountered and defined throughout and the index is helpful for finding them, but this is not the definitive text for programming..." Read more
Customers appreciate how the book introduces new programming concepts and provides a good cross section of different paradigms, while also being honest about the limitations of each language.
"...He is also pretty honest about the limitations of each. I had a great time working through the seven chapters and learned a lot...." Read more
"...lot like "Programming Collective Intelligence" in that it introduces you to new concepts for even experienced developers...." Read more
"...pointing out the significant differences, and the kinds of problems each one is best at solving...." Read more
"...thoughts on the direction of languages and a good cross section of different paradigms such as prolog declarative vs functional in haskell and OO in..." Read more
Customers enjoy the writing style of the book, finding it a pleasure to read and easy to understand, with one customer noting the author's generally humble approach throughout.
"...Although the typesetting is easy to read the top and bottom margins are unpleasantly tight...." Read more
"...His writing style is a pleasure to read. Take your time with this book...." Read more
"...The author's writing style is first person and conversational...." Read more
"...; but at least he does not claim to be... the author is generally humble throughout the book...." Read more
Customers appreciate the chapter length of the book, with one customer noting that each chapter contains a series of simple examples, while another mentions that the final chapter provides a great summary of the core ideas.
"...Then, each chapter contains a series of simple, complete, well-paced examples...." Read more
"...and an excellent final wrap-up chapter (more on it later)...." Read more
"...of computer programming languages, and this is summarized nicely in the final chapter...." Read more
"...Some books are just glorified manuals.......this book is much deeper.....it's everything you need (in the google age) ...in a book - it's simple ,..." Read more
Customers find the book easy to use, with one mentioning it is fairly simple to install and another noting it is comfortable for developers to understand.
"...the language and presenting it in a fashion that is comfortable for a developer to understand...." Read more
"...language is available as open source on-line, and they're all fairly simple to install...." Read more
"...it's everything you need (in the google age) ...in a book - it's simple , clear, and shows you all the gotchas for a functional language if you..." Read more
Customers note that the book is getting a bit old.
"...problem is that the book was written in 2010, so a few parts seem a bit out of date...." Read more
"...Book is getting a bit old (languages are a bit old) but it is still an interesting practical approach to new language discovery...." Read more
"I believe this book is already outdated because some of the languages are dead or dying...." Read more
Reviews with images

Fantastic book!
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on April 10, 2011Bruce Tate does an amazing job cutting to the heart of what makes seven programming languages special in about 50 pages each. He is also pretty honest about the limitations of each. I had a great time working through the seven chapters and learned a lot. At the start of each chapter, you have to figure out how to download and install a compiler/interpreter for your os. The book does not cover that part of the process which is fair enough. Then, each chapter contains a series of simple, complete, well-paced examples. Type them in, and be amazed how much you learn in 50 pages.
This book is not (and never claims to be) a comprehensive introduction to any of the languages. In some sense it is better as it shows the strength of each, almost like an advertisement. He is trying to get you excited about each language. Going into this book, I had some familiarity with Ruby and Haskell but knew virtually nothing about any of the other five. On the two languages I had used before, those chapters were solid and I even learned a few things. Of the other five, Tate did his job and got me excited about Io. Since reading that chapter, I have been diving in to Io. The others were interesting, but Io caught my attention.
The book is a little heavy on the functional languages: Erlang, Scala, and Haskell. Given that I am already Haskell fan, the Erlang and Scala chapters felt like a missed opportunity to me. Of course, everyone who reads the book would probably want a different list of seven.
- Reviewed in the United States on November 9, 2010Background: I stumbled across the author's blog post announcing his intention to write the book while looking for materials comparing language paradigms instead of particular languages (object-oriented, logical, functional, prototype, etc). The as yet unwritten book sounded like exactly what I was after (thus my enthusiastic anticipation). I purchased an electronic copy of this book from the Prag Press beta program about six months ago and began reading the chapters as they were completed and released. My paper copy just arrived from Amazon today. Thus I can comment on the whole content of the book and the physical object.
Languages: While the languages covered (Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell) are excitingly (painfully?) trendy the list is not without merit. In the introduction the author explains that he arrived at the list by asking readers and edited from there: swapping Io for JavaScript and excluding Python thereby making room for Prolog. One could debate the choice of Io over JavaScript (particularly in a post Node.js / Common.js world) and make a case for including Smalltalk as the canonical OO language over Ruby; however, the chosen languages each bring something to the book and represent a number of interesting paradigms.
Chapters: Each language has its own chapter. Each chapter has five sections:
- an introduction to the language covering topics like it's history, place in the modern language landscape, paradigm, etc
- 'Day 1'
- 'Day 2'
- 'Day 3'
- and a conclusion with a few parting words / 'the moral of the story is...'.
The boundaries between days are not particularly meaningful but roughly build from "here's the syntax" to "here's an interesting thing you can do with this paradigm". By Day 3 each chapter has moved beyond trivial "hello world" examples; not surprisingly then, the pace of progress is brisk and the details of how to get up and running with each language are largely left to the reader.
Each language chapter includes an interview with a user/creator of the language (Matz, Steve Dekorte, Brian Tarbox, Martin Odersky, Joe Armstrong, Rich Hickey, Philip Wadler / Simon Peyton-Jones). These were an unexpected addition and quite worth reading. In fact, I wish the interviews had been longer and gone into more technical detail.
In addition to the seven language chapters there is an introductory chapter that has the sort of information normally found in the pre-page-numbering introduction to a book (explanation of the book's contents, intended audience etc) and an excellent final wrap-up chapter (more on it later).
Length: I easily completed each language chapter in a weekend. The first and last chapters are very quick reads. Seven weeks should be more than enough time to work through the book.
Subjective annoyances:
- The quality of the physical book (not great) will be familiar to regular Prag Programmer shoppers. It is not up to O'Reilly standards (it's more like an Apress book). Although the typesetting is easy to read the top and bottom margins are unpleasantly tight. The outside margin leaves room for notes which I like, but the book is awkwardly square. For $22 what does one expect?
- Each chapter attempts creativity with a supposedly allegorical popular culture reference threaded through it (ex: Io = Ferris Bueller). I found these more distracting than informative. I'd include naming the chapter sections "day n" as similarly failed attempts and wish that instead attempting wit (ex Io Day1: An Excellent Driver) they had substantive names. Obviously this is totally personal opinion, you might like it.
Outright Disappointment: I wish that the individual chapters went into significantly more depth comparing the motivations for and consequences of each language design. While the key features of each language are demonstrated with annotated code samples and explanatory text little is offered in the way of discussion comparing across language. For example the Scala chapter (selected at random) is on pages 121-166 in the index under "Scala" the only references outside its own chapter are found on pages 302, 303, 305-306, and 308 (all in the final wrap-up chapter). I view this as a real missed opportunity given the books unique approach/content. The final wrap-up chapter seems to be the only place with this sort of cross-language discussion and as a result it is both excellent and much too short.
Conclusion: An interesting book that I enjoyed reading and expect to return to in the future. The physical book is of so-so quality and as such the electronic book may be the right product for you to buy. The missed opportunity (and loss star) are for a disappointing failure to draw cross-language comparisons within the text of each chapter.
----------
Update: [...]is a 45 min talk on the book / topics in the book.
- Reviewed in the United States on November 28, 2010I find this book to be a lot like "Programming Collective Intelligence" in that it introduces you to new concepts for even experienced developers. You're expected to know a lot about programming already, but as it's introducing new concepts, it gives you enough background to follow along, but not so much detail that you're bored. It also has a couple of different sections for each language, including short interviews with the language designers. You can learn ruby anywhere, but it's going to take you a while to find out what makes it unique, whereas this book gets right to what's important, with no boringness. You can get through one language a day, or faster if you don't bother trying to do the examples or questions, but those were well-chosen. The book is a little too playful at times (describing Ruby as like Mary Poppins), but it's entertaining and makes it less dry (ex. in a description of a possible mistake someone might make when programming Io it states "If that line of code is buried deeply into a complex package, Io just puked in your car.").
- Reviewed in the United States on May 13, 2015If you are not self motivated, do not by this book.
If you want to really learn 7 programming languages, do not buy this book.
Anyone else who is on this page, looking at this particular book, buy it and buy it now. It is easily one of my 5 favorite programming books. The author's ability to pick out important syntactical differences between languages is perfect. His writing style is a pleasure to read.
Take your time with this book. I found I could have done 7 languages in 3 weeks, as I was enraptured, but I took extra time to discover each language on the side, and that's really the intent of this book. Stop and discover things on your own. Get a feel for each language and their benefits.
This should be read both by current professionals, as well as second year and beyond college/university students who want to understand why there are so many languages and brush the surface of syntactical nuance.
Top reviews from other countries
- Raja WaliaReviewed in India on January 6, 2018
5.0 out of 5 stars Five Stars
very good book.
-
noodle71Reviewed in Spain on May 31, 2013
5.0 out of 5 stars Perfecto
Recomendada lectura para programadores expertos y principiantes. Te enseña distintos paradigmas de programacion y aprendes a comprender más rápido como funciona todo
-
Stefan MackeReviewed in Germany on May 5, 2011
5.0 out of 5 stars Super Überblick über aktuelle Programmierkonzepte, eher nichts für Anfänger
Ich habe das Buch, anders als der Autor vorschlägt, nicht gelesen und währenddessen die Programmierbeispiele praktisch ausprobiert (außer bei der ersten beschriebenen Sprache Ruby), sondern direkt runtergelesen, weil ich lediglich einen tieferen Einstieg in (aktuelle) Entwicklungen der verschiedenen Programmierparadigmen (Objektorientierung, funktional, logisch, Prototype) bekommen wollte, ohne diese praktisch anzuwenden. Und dafür ist das Buch wirklich super! Bruce Tate zeigt anhand von sinnvollen Praxisbeispielen mit sehr vielen Quelltextauszügen die Vor- und Nachteile der einzelnen Sprachen (Ruby, Io, Prolog, Scala, Erlang, Clojure und Haskell) auf und geht insbesondere auf die jeweiligen Vorzüge ein, die das Programmieren einfacher machen ("syntactic sugar"). Für alle, die die Sprachen auch in der Praxis ausprobieren wollen, liefert Tate nach jedem Kapitel Online-Quellen und Tipps für interessante Miniprojekte.
Dabei folgt er einem sehr sinnvollen Aufbau. Bei den ersten behandelten Sprachen werden allgemeingültige Konzepte von Programmiersprachen eingeführt und anhand von Beispielen erklärt (z.B. Pattern Matching, Rekursion, Closures, Futures) und bei den Sprachen im hinteren Teil des Buches wieder aufgegriffen und vertieft. Dabei streift Tate wirklich viele aktuelle Entwicklungen insbesondere aus dem Bereich der funktionalen Sprachen: 5 der 7 Sprachen sind entweder komplett oder in Teilen funktional. Ich kannte bislang von den vorgestellten Sprachen lediglich Prolog, sodass mir das Kapitel hierzu als kleine Auffrischung meiner Kenntnisse diente. Ich war überrascht, wie viele (hilfreiche) Konzepte es aus Prolog inzwischen in andere Programmiersprachen geschafft haben.
Für Anfänger ist das Buch wohl eher schwierig zu verstehen, da nicht lange gefackelt wird und viele grundlegende Kenntnisse vorausgesetzt werden. Für fortgeschrittene Programmierer, insbesondere aus dem Bereich der Objektorientierung, ist es jedoch ein super Buch, um einmal über den Tellerrand zu schauen. Gerade heutzutage, wo die funktionalen Sprachen immer wichtiger werden (aufgrund der guten Parallelisierbarkeit), sollte jeder Entwickler einen Blick riskieren und schauen, welche Konzepte er für seine eigene Arbeit übernehmen kann. Durch die Vielzahl an unterschiedlichen Sprachen wird das Buch definitiv nicht langweilig und man kann es richtig verschlingen.
- Avid ReaderReviewed in the United Kingdom on October 13, 2016
5.0 out of 5 stars A Book to Open Your Mind
This is one of my favourite programming books. It's also one of the books which has had a profound influence on me. I've read it cover to cover several times now.
I've been programming for many years, and have also managed developers and teams of developers. But I've mostly programmed in C, C++, and Java (plus managed developers of the same). This book has opened my eyes to what else is available.
On the first reading, I loved Ruby, quite liked Io, hated Prolog, liked Scala, quite liked Erlang, loved Clojure, absolutely hated Haskell. I bought Scala and Erlang books, coded a bit, and read loads of stuff on the web.
On the second reading, I skipped Ruby (too much like good old C/C++/Java, although highly productive), didn't like Io, loved Prolog (amazing how it can solve a Sudoku puzzle on its own, just by telling it the rules), began to go off Scala (high gravitational pull from Java), loved Erlang, liked Clojure, and Haskell started to grow on me.
As an aside - about this time I inherited a team which was working on an app which had been ported to Clojure, followed by the Clojure developers moving on. The remaining developers thought that their career had stalled, and they wanted to get back to the mainstream (Java). We found it almost impossible to hire Clojure developers. Please don't berate me on this - I like Clojure and its ethos, and the story says more about large IT departments than it does about Clojure.
All of this Clojure, Erlang, and Haskell was getting me into functional programming. As a manager I'd been concerned about how we could get best value out of modern multi-core servers, and solve the seemingly intractable problem of how to code multi-threaded software in a reliable and developer-efficient way. Functional programming seemed to give some hope - especially Erlang.
I read several Erlang books, and Joe Armstrong's (one of the designers of Erlang) PhD thesis. I bought and read Bratko's Prolog book, and even "Real World Haskell".
Erlang is my absolute favourite language (and I like its syntax, so no great temptation to move to Elixir). Given its close relationship with Prolog, I need to get more into Prolog too. And Haskell has become a friend. I suspect I may end up being a Haskell developer.
All this has been triggered by "Seven Languages in Seven Weeks". Thank you, Mr. Tate.
-
Leandro Krug WivesReviewed in Brazil on November 19, 2014
5.0 out of 5 stars Aprenda várias linguagens em 2 meses
A proposta do livro é dar uma visão geral de 7 linguagens de programação atuais. As linguagens envolvem diferentes paradigmas e conceitos. Claro que não há aprofundamento, mas é ótimo para quem quer ter uma noção rápida e prática.