|Print List Price:||$29.95|
Save $11.96 (40%)
Penguin Random House Publisher Services
Price set by seller.
Cracking Codes with Python: An Introduction to Building and Breaking Ciphers Kindle Edition
|New from||Used from|
Kindle Feature Spotlight
Try Kindle Countdown Deals
Explore limited-time discounted eBooks. Learn more.
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
What other items do customers buy after viewing this item?
Would you like to tell us about a lower price?
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
As a Code Cracking tutorial, it is, as declared in the book sub-title, an "Introduction". You'll see how various algorithmic strategies can be used against comparatively simple ciphers. The techniques include frequency analysis, word pattern matching and dictionary tests for decrypted text.
But the book is more about Learning Python than it is about Cracking Codes. Upon completing it you'll emerge a journeyman Python programmer and a novice cryptographer.
After a rollicking introduction to Cryptography the book launches into an introduction to Python from the very basics, like starting IDLE and using variables and strings. If you’re already familiar with Python you can skip these chapters but it ramps up quickly and everything introduced has a direct application to cryptography.
Each chapter starts with a helpful introduction to the cipher and a list of topics covered in the chapter. You then get to see the full Python program for the task at hand, and then the author discusses the code line by line or section by section. This could be overwhelming to a beginning programmer, to sift through dozens or hundreds of lines of code. But the alternative, starting simply and building up the code, runs into the problem of the user not knowing exactly where new code goes or how much each block is indented, and so on.
By the halfway point of the book, if the reader has been coding along, they will have seen and used everything from if __name__ == ‘__main__’, lists and code tests to “%” formatting and writing to files using Python. The second half includes even more topics an expert Pythonista should be proficient with, like dictionaries, tuples and regular expressions. Not to mention they’ll have learned about cryptography topics like frequency analysis and the Vigenère Cipher through hands-on programming projects.
The code is well commented, but line numbers are added to the code snippets, unlike what a reader sees when they are using IDLE. This might be confusing at first.
Code not working? The book has its own online “diff” tool into which you can paste your code and it will show you where your code differs from the code in the book.
I like the Practice Questions at the end of each chapter! They’re not trivial and they make sure the reader is practicing the chapter’s lessons through doing.
Long story short (too late?), this book is a clear, engaging introduction to Python and to Cryptography, and learning the two together makes it a fun and useful application of Python and a masterful project-based Cryptography course.
By chapter 3, readers learn how to save and run programs. I like that the book covers good programming practices and not just the basics. While I know Python, the book was a good review. I had forgotten a few things like __name__ from disuse. I like that the book included performance testing and complexity of algorithms.
Towards the end of the book, the code examples are quite long. Normally, I don't like this in a book, but there were great comments.
In conclusion, I recommend this book for anyone who wants to learn Python/programming and is interested in security or puzzles.
I give this book 9 out of 10 horseshoes.
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.