

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Denmark.
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) [Tate, Bruce] on desertcart.com. *FREE* shipping on qualifying offers. Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers) Review: for experienced developers - I 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."). Review: Much (perhaps over) anticipated - Background: 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 desertcart 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.






| Best Sellers Rank | #1,132,683 in Books ( See Top 100 in Books ) #621 in Introductory & Beginning Programming #1,146 in Software Development (Books) #2,385 in Programming Languages (Books) |
| Customer Reviews | 4.3 out of 5 stars 183 Reviews |
S**R
for experienced developers
I 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.").
M**T
Much (perhaps over) anticipated
Background: 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.
L**.
Broaden your knowledge of computer science
Great book to get better at Computer Science (rather than just programming). This book is a great way of getting a feel for other languages, why they were created, what mindset do you need to have to use them to correctly. Reading it made me a better programmer overall, I haven't used most of the languages for my work but it enabled a bunch of discussions with programmers 10/20 years more experienced than I am. Book is getting a bit old (languages are a bit old) but it is still an interesting practical approach to new language discovery. Took me about 7 weeks, as advertised, to cover the material (~ 4h/week)
G**B
I was amazed at how much I remembered and how much I ...
Pragmatic Programmers just released the first draft of Seven More Languages in Seven Weeks, written by Tate and a few others, and I found myself downloading this rather than digging my paper copy out of storage. Coming back to it, I was amazed at how much I remembered and how much I had forgotten. But the one thing that has stuck with me is thinking through different ways of thinking things through. For most of the languages in this book, I saw how they worked, did the easier exercises and called it good. But I was left intrigued by Erlang and worked through Simon St. Laurent's Introducing Erlang even though I have no need of the language. Fast forward a year and I'm learning R to sort through company data more easily and all of a sudden a functional mindset is extremely valuable for me to have. Coming from the dark ages when amateurs wrote everything in BASIC and done a little bit of C++, Java and Javascript, I would have been lost without my Erlang background. Seven Languages in Seven Weeks was written to stretch your brain and show you that assumptions about programming based on the language you use most can limit you while learning new languages gives you new ways even to use old languages. For me, it's a winner. I learned a language I've never used in real life since, but had I not done so, I would have been baffled by a language (R) that I've been learning and using for the last year or so. I highly recommend this for anyone who has to solve problems on a computer but keeps turning to the same tricks for the same problems instead of breaking new ground.
C**E
Seven languages, yes; seven weeks, maybe not
In a way, it's almost as if this book (and the subsequent book with seven more languages) was written specifically for me...except for the "seven weeks" part. I have an erratic schedule, so staying with the day-by-day pattern didn't work for me. Nevertheless, the choice of languages was very helpful for me, personally (as always, other readers will likely disagree). The chapter on Ruby was a nice introduction to a language I'd seen mentioned a lot of times, but knew very little about it. Io was relatively uninteresting, but did help explain how a similar language, JavaScript, works. Prolog was fascinating, albeit limited, and is the oldest language described in this book. Scala is a language I had wanted to check out, anyway. Erlang is interesting (the "let it crash" philosophy was particularly intriguing). Clojure and Haskell were languages I'd already started studying on my own, and even though I've done a modest amount of Clojure learning, this book's superficial coverage of that language was still very helpful (perhaps the author included more relevant information about Clojure?). The focus of the book is on the progress of computer programming languages, and this is summarized nicely in the final chapter. I liked how each language chapter ended with a description of the strengths and weaknesses of each language. The only significant problem is that the book was written in 2010, so a few parts seem a bit out of date. Also, there are a few minor omissions in the book...so it's helpful to visit the publisher's website to view the forum there.
R**.
love the idea more than the book itself
I like the idea of this book more than the book itself. Granted, Tate took on a daunting task: how do you introduce seven divergent languages with seven divergent styles and seven divergent intents in the space of one book? The mission is a good one at least: introduce apprentice or journeyman programmers to a diverse array of programming languages and styles to help thing break out of their comfortable little already-known toolkit. The approach is at least a half-way decent one: introduce a language, give three days worth of lessons (plus homework) and then use that to bridge into the next language/style. But it also comes across as very surface-level. Tate even comes right out and says in many instances that he is just barely scratching the surface of each language, that he is giving some language feature a barely cursory overview, or else leaving it out all together. So you wind up with your appetite whetted but without any satisfying take-away knowledge (e.g., my experience here with Scala and Clojure), or else you're turned off to that language all together (e.g., my experience with Io and Prolog).
W**N
A For Effort
Bruce 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.
H**N
A Software Vacation
I wasn't sure what to expect but it turned out to be much more than I hoped for. After nearly 30+ years of coding experience I found myself wandering around blindly in the world of computers. When I started there were two languages Cobol and Fortran. Language references were only a couple of hundred pages long, even for Fortran. There was this thing called Algol which was trying to unify the computer world but it was hard to find. For the last ten years I have been working for an unenlightened organization that is only interested in the bottom line. Unfortunately, what they never figured out was that a lack of vision usually leads you to a technological cliff somewhere. Anyway, I saw the title and I was intrigued. After reading the book I now know just how much I have missed. While I have spent my time trying to get acceleration vectors to integrate into velocity vectors which integrate into position vectors the world has gone several different directions. Also, some very bright people have tried to teach computers how to deal with this modern world. Bruce's book describes both their successes and their frustrations. I suspect that Bruce will prove to be a profit. Early in the book he offers the speculation that his book is going to set off a book selling frenzy. I suspect that this will prove to be true. I have ordered three language references for two languages that I didn't know exists. I ordered one for a language I had run into a few years ago but it has grown greatly. What compels me to write this is Bruce's final paragraph "Finding Your Voice." Finally, I understand why I have spent the last thirty years programming computers. It was a long, twisted way to get some place but finally I understand why I had to do it. Thank you Bruce!!
Trustpilot
2 months ago
1 week ago