《像程序员一样思考》书评

出版社:人民邮电出版社
出版日期:2013-6
ISBN:9787115316585
作者:V. Anton Spraul
页数:256页

程序员一直都是一个值得骄傲的群体

“一旦我们能够像程序员一样思考,就要为自己的技能感到自豪。如果有人叫你码农而不是程序员,奚落你说一只受过良好训练的鸟也能啄出到没,你可以反驳说自己并不仅仅是编写代码的,而是用代码来解决问题。当你坐在面试桌前面接受未来雇主或客户的面试是,你要相信不管自己所面试的工作需要什么,你都能够满足其要求。”这是这本书的最后一段话,不知道为什么,现在程序员的自豪感越来越弱,或许正是因为没有良好的解决问题思维导致大部分程序员(包括我自己)都还停留在东拼西凑、复制张贴、出错改错、不出错拍手的层次。是啊,这个层次哪来的自豪感,不自卑就不错了。真的打算在这个领域发展的话培养程序员的思维是很必要的,看了这本书我突然有点后悔完了三年才看到,才明白原来我这三四年跌跌撞撞明白的这些思维方式原来都可以在这本书上面很好的找到。明锐、好奇心、坚韧、开放、奉献都是程序员所必须的。新手看这本书可能会让有些思维模式在自己的脑海里有个影响,以后的某天突然想起“这个问题可以用这种方式来解决”;而一个老手的话看这本书的话可能会让自己琢磨用到的某些方法有一个跟为系统的说明,“啊,其实我上一个项目里面就是用的这种模式,只是现在才知道这种模式叫xxx”。最后给我们这个群体鼓鼓气,你看看你周围那么多东西上面都跑着Code,作为Coder的我们不应该自豪一把吗?

始终不要忘了,编程的初衷是为了解决问题

偶然的机会看到这本书,“思考”这个字眼深深吸引了我,本以为是一本“技术论述”偏少的书,然后作者一直围绕“如何用编程来解决问题”来展开。每一个问题都具体分析,辅以具体的例子和代码,让人读起来头脑非常清晰。本书其实一直想传达给大家的是,“如何像一个好的程序员一样优雅有效地解决实际问题”。第一章引入“问题”以及“如何解决问题”,之后的第二章引入“基础语言”,说了C++的基本使用,从而使得后续的章节阅读代码不会有障碍。第三章的“数组”和第四章的“指针”,其实非常值得回顾,但是总体而言讲得比较基础,浓缩成一道直接的题目也许也就说明了问题了。第五章“从过程编程过渡到面向对象编程”,开始“用类解决问题”。第六章“比较透彻”地分析了递归的思想,每一个程序员都应该对“函数调用”,“系统堆栈”,“活动记录”有一个清醒的认识。第七章“讨论了代码复用”,是实话这是一个十分巨大而复杂的话题,软件工程这么多年,着力解决的核心问题不就是“如何复用已有代码和组件”吗?第八章“总结如何培养程序员的思维”,有一定的借鉴意义。总的来讲,本书的主旨大意是十分棒的,在纯碎技术讨论之外,跟大家分享思维方法,这在编程领域是比较匮乏的。整本书阅读基本上是在地铁上阅读完成的,建议大家也用些琐碎时间读读罢了。思维的养成还是需要在解决实际问题的时候慢慢体会:-)

Book Review: "Think Like a Programmer" by V. Anton Spraul

转:http://www.linuxjournal.com/content/book-review-think-programmer“Rewire your Brain”. The quote from the back of this book couldn’t have said it any better. I acquired this book to add to my every growing list of programming and scripting books in hopes that I can work through some of the ‘humps’ in my troubleshooting skills. Before I get started in this quick review I’ll give you a little background.I started out dabbling in programming with Basic, utilizing QuickBasic back in the early 90’s, from there I self-taught myself C and Java programming but quickly forgot everything I learned. Fast forward 10+ years to where I spend a majority of my time scripting in Bash, Perl, and Powershell, with minor dabbling in C (mainly patching Linux, reading other’s code, or AVR programming). So when I saw this book I figured ‘hey, the back of the book says I don’t necessarily need C++ programming, this just might be up my alley’.Okay, let's get that one thing out of the way before I start my review. Just because the back of the book says, and I quote “Just because the books examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular languages....”, if you don't know any of the fundamentals of C++, be it classes, arrays, memory allocation, etc then in all honesty you either need to pull out your C++ fundamentals books (like I had to) and brush up on your C++ or read the book for some of the really good problem solving examples. I would say 90% of this book deals with C++ examples and problem solving that has to do with C++ coding examplesWill this book make you a better programmer? Will it teach you to write better code, better syntax? No. However, this book will teach you what you are doing wrong in your code, how to streamline your code, and how to step back, take a breather and re-evaluate it for better or worse. Though I haven’t touched a line of C++ code in over a decade I was able to read this book (and even take some of the examples, turning them into C) and learn some of the mistakes I have made over the years. There were many times where I had been frustrated writing a program or a script, and in my frustration I turned out convoluted, obscure code that made absolutely no sense yet it ran in some twisted, duct tape and twine way. Had I read this book previously, taken a step back and utilized the steps illustrated in the book to properly evaluate what my end goal was then my end results would be the same (code runs) yet with fewer problems along the way.So onto a quick look at the book. The first few chapters go over problem solving skills outside of the programming environment, like puzzles and day-to-day problem solving- utilizing critical thinking and analytical thinking to solve real world problems before you jump into your programming environment. From there the author goes into the skills necessary to problem solve in a programming environment, and then immediately jumps into the C++ examples.Each example is broken down by chapter with each chapter guiding the reader in the ‘best practice’ scenarios for effective problem solving. Concluding each chapter is a list of programming exercises that the reader can complete, of which I highly recommend.At the end of the book is a concluding chapter on problem solving that wraps up everything the reader has read on the examples and exercises outlined in the book.My thoughts? If you have no C++ background I would honestly look elsewhere unless you want to pick up the book for the 2 or so chapters on ‘non C++’ problem solving guides. However if you are a student learning C++ or a veteran C++ programmer, I highly recommend adding this book to your ever growing bookshelf. You just may change the way you re-evaluate writing your code. I know I did; after reading this book I started going through scripts and code I have written in the last 15+ years and shaking my head in disbelief. Time to pick up my notebook and problem solve old scripts.


 像程序员一样思考下载


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024