<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>llj098&#039;s weblog &#187; 实用主义</title>
	<atom:link href="http://liulijin.info/blog/post/tag/%e5%ae%9e%e7%94%a8%e4%b8%bb%e4%b9%89/feed/" rel="self" type="application/rss+xml" />
	<link>http://liulijin.info/blog</link>
	<description>你把青春献给我</description>
	<lastBuildDate>Mon, 26 Jul 2010 06:58:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>最近的体会</title>
		<link>http://liulijin.info/blog/post/recent-experience/</link>
		<comments>http://liulijin.info/blog/post/recent-experience/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 08:33:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[随想]]></category>
		<category><![CDATA[实用主义]]></category>

		<guid isPermaLink="false">http://www.liulijin.cn/post/my-pragmatism1/</guid>
		<description><![CDATA[难得倒休在家，前一段时间忙的像疯狗一样，下面的日子一样不会好过多少，还好，今天有这么一个短暂的休息。昨天10点钟在床上就不知不觉的睡着了，今天又来一个午休，基本上恢复的差不多了。想想这么久没写博客了真是罪过，趁着自己有时间，赎个罪。 实际上，每写博客并不是因为自己真的没有这几十分钟时间，因为一篇博客，简单一些的话，半个小时之内可以搞定它，只能说自己懒惰。前段时间，实在困倦的情况下，我都徘徊在豆瓣和gigapedia 这两个网站之间，在豆瓣上面找一些评论比较好的书，然后在gigapedia上面down下来（没法子，穷人，只有看盗版书了，自抽一下）。心理面就多了一些满足和幸福感，好像书下载下来了，这些知识也都属于自己了一样，:D&#160; 下载下来之后，放到dropbox 中，我准备在 dropbox 中维护一个个人的图书馆，把自己看过的，要看的，都下载放进去。感觉 skydrive 更加好一些，毕竟有25G 的空间，可是上传实在不方便，还是用 dropbox 吧。 这段时间虽然很忙，但是闲暇时间还是读了一些技术书籍，这引发了我一个思考：为什么我之前对于书籍的印象如此的不好，现在开始逐渐的转变了呢？。不怕别人笑话，我就是这么一个土人，曾经认为不用看书，只要写你的代码就够了。现在想想，这自然不对，然而，我为什么会有这样的想法呢？我觉得，这大概有两个原因：1.因为我自身比较土鳖，视野太窄，没有能够接触一些经典书籍，认为所有的书籍都想那些土鳖书籍一样无聊 2.性格浮躁，这点原因更加重要一点，懒得去读，过于实用主义，拿来主义，这些东西是什么都没有弄清楚，就认为看这些东西没用。 性格浮躁，决定了我肯定是实用主义，看到了什么东西想到的会是这东西对当下有什么作用，我觉得这是有些不好的，人总不能太急功近利了，不能太只顾眼前了。同样的，正是这样的原因，造成我的基本功会不扎实，这点自己已经有体会。 正是这样实用主义，我“恨”透了本科学校中的大部分课程和教材，说实在的，我没有资格来否定211大学选取的教材，但是，很多（我没说全部）教材让我“痛苦”，甚至让我对“看书”这两个字都产生很大的偏见。然而，光说这些书籍，可能往往都是一些很好的书目，甚至是经典。也会听到很多人在社区里面说，要是重新来过一定要在学校里面学好那些基础课程。在我看来，这样的想法不错，这样的说法多多少少会有些误导人，我觉得，就算把这些人重新送回学校，或者一些在学生看了上面的话，面对着我们大学老师的讲课方法，以及原来的教材，很多人一样会在《微机原理与接口技术》课上一样会睡觉。 对于这点上面，我不得不说一些国外的书籍，我不会有这样的感觉，它们会让你很轻松愉快，会让你产生共鸣。这段时间我每天晚上睡觉前会在床上看《the art of unix programming》，仅仅是睡觉前在床上看书，不知不觉的就看了一半多，里面的 unix精神深深的打动了我: Keep it simple and stupid .于是也就有了一些事物的评判标准，用这种原则思考以前的写的代码，看过的书籍，自然也会衡量一下大学中令我“痛苦”的教材，虽然这样的准则来衡量书籍并不是很合适，但是简单，清晰的道理，在哪里都会适用，有些大学教材，我看不到这两点，好像它们的存在就不是为了实用，不是为了清晰。 说道实用，我看了一个推荐图书列表：站在巨人肩上 原文地址：http://devlicio.us/blogs/billy_mccafferty/archive/2007/11/12/standing-on-the-shoulders-of-giants.aspx Foundational Texts What follows are key texts that every OOP &#8230; <a href="http://liulijin.info/blog/post/recent-experience/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>难得倒休在家，前一段时间忙的像疯狗一样，下面的日子一样不会好过多少，还好，今天有这么一个短暂的休息。昨天10点钟在床上就不知不觉的睡着了，今天又来一个午休，基本上恢复的差不多了。想想这么久没写博客了真是罪过，趁着自己有时间，赎个罪。</p>

<p>实际上，每写博客并不是因为自己真的没有这几十分钟时间，因为一篇博客，简单一些的话，半个小时之内可以搞定它，只能说自己懒惰。前段时间，实在困倦的情况下，我都徘徊在豆瓣和gigapedia 这两个网站之间，在豆瓣上面找一些评论比较好的书，然后在gigapedia上面down下来（没法子，穷人，只有看盗版书了，自抽一下）。心理面就多了一些满足和幸福感，好像书下载下来了，这些知识也都属于自己了一样，:D&#160; 下载下来之后，放到dropbox 中，我准备在 dropbox 中维护一个个人的图书馆，把自己看过的，要看的，都下载放进去。感觉 skydrive 更加好一些，毕竟有25G 的空间，可是上传实在不方便，还是用 dropbox 吧。</p>

<p>这段时间虽然很忙，但是闲暇时间还是读了一些技术书籍，这引发了我一个思考：为什么我之前对于书籍的印象如此的不好，现在开始逐渐的转变了呢？。不怕别人笑话，我就是这么一个土人，曾经认为不用看书，只要写你的代码就够了。现在想想，这自然不对，然而，我为什么会有这样的想法呢？我觉得，这大概有两个原因：1.因为我自身比较土鳖，视野太窄，没有能够接触一些经典书籍，认为所有的书籍都想那些土鳖书籍一样无聊 2.性格浮躁，这点原因更加重要一点，懒得去读，过于实用主义，拿来主义，这些东西是什么都没有弄清楚，就认为看这些东西没用。</p>

<p>性格浮躁，决定了我肯定是实用主义，看到了什么东西想到的会是这东西对当下有什么作用，我觉得这是有些不好的，人总不能太急功近利了，不能太只顾眼前了。同样的，正是这样的原因，造成我的基本功会不扎实，这点自己已经有体会。</p>

<p>正是这样实用主义，我“恨”透了本科学校中的大部分课程和教材，说实在的，我没有资格来否定211大学选取的教材，但是，<strong>很多（我没说全部）</strong>教材让我“痛苦”，甚至让我对“看书”这两个字都产生很大的偏见。然而，光说这些书籍，可能往往都是一些很好的书目，甚至是经典。也会听到很多人在社区里面说，要是重新来过一定要在学校里面学好那些基础课程。在我看来，这样的想法不错，这样的说法多多少少会有些误导人，我觉得，就算把这些人重新送回学校，或者一些在学生看了上面的话，面对着我们大学老师的讲课方法，以及原来的教材，很多人一样会在《微机原理与接口技术》课上一样会睡觉。</p>

<p>对于这点上面，我不得不说一些国外的书籍，我不会有这样的感觉，它们会让你很轻松愉快，会让你产生共鸣。这段时间我每天晚上睡觉前会在床上看《the art of unix programming》，仅仅是睡觉前在床上看书，不知不觉的就看了一半多，里面的 unix精神深深的打动了我: Keep it simple and stupid .于是也就有了一些事物的评判标准，用这种原则思考以前的写的代码，看过的书籍，自然也会衡量一下大学中令我“痛苦”的教材，虽然这样的准则来衡量书籍并不是很合适，但是简单，清晰的道理，在哪里都会适用，有些大学教材，我看不到这两点，好像它们的存在就不是为了实用，不是为了清晰。</p>

<p>说道实用，我看了一个推荐图书列表：站在巨人肩上 原文地址：<a title="http://devlicio.us/blogs/billy_mccafferty/archive/2007/11/12/standing-on-the-shoulders-of-giants.aspx" href="http://devlicio.us/blogs/billy_mccafferty/archive/2007/11/12/standing-on-the-shoulders-of-giants.aspx">http://devlicio.us/blogs/billy_mccafferty/archive/2007/11/12/standing-on-the-shoulders-of-giants.aspx</a></p>

<p><strong>Foundational Texts</strong></p>

<p>What follows are key texts that every OOP developer should read, without exception, regardless of experience or platform.&#160; The order of the list is the order that I suggest reading them.&#160; These texts focus mainly on writing better, maintainable code with a transition to solid object oriented design.</p>

<ul>   <li>     <p><a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194890611&amp;sr=1-1">Code Complete, 2nd Ed.</a> by Steve McConnell</p>   </li>    <li>     <p><a href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194890799&amp;sr=1-1">Refactoring</a> by Martin Fowler</p>   </li>    <li>     <p><a href="http://www.amazon.com/Refactoring-Workbook-William-C-Wake/dp/0321109295/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194890990&amp;sr=1-1">Refactoring Workbook</a> by William Wake</p>   </li>    <li>     <p><a href="http://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0131489062/ref=sr_1_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194890923&amp;sr=1-1">Applying UML and Patterns, 3rd Ed.</a> by Craig Larman along with a companion text of <a href="http://www.amazon.com/UML-Distilled-Standard-Addison-Wesley-Technology/dp/0321193687/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892127&amp;sr=1-1">UML Distilled, 3rd Ed.</a> by Martin Fowler</p>   </li>    <li>     <p><a href="http://www.amazon.com/Object-Oriented-Design-Heuristics-Arthur-Riel/dp/020163385X">Object-Oriented Design Heuristics</a> by Arthur Riel</p>   </li> </ul>

<p><strong>Apprenticeship Texts</strong></p>

<p>These texts help one move from focusing on the code to seeing the implementation from a higher viewpoint and improving the integrity of the project as a whole.</p>

<ul>   <li>     <p><a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X">The Pragmatic Programmer</a> by Andrew Hunt</p>   </li>    <li>     <p><a href="http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892049&amp;sr=1-1">Patterns of Enterprise Application Architecture</a> by Martin Fowler</p>   </li>    <li>     <p><a href="http://www.amazon.com/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892545&amp;sr=1-1">Test-Driven Development</a> by Kent Beck</p>   </li>    <li>     <p><a href="http://www.amazon.com/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892312&amp;sr=1-1">Refactoring to Patterns</a> by Joshua Kerievsky</p>   </li>    <li>     <p><a href="http://www.amazon.com/Head-First-Design-Patterns/dp/0596007124/ref=pd_sim_b_img_5/104-5590703-8892739">Head First Design Patterns</a> by the Freemans and a companion text of the gang of four&#8217;s classic work, <a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892927&amp;sr=1-1">Design Patterns</a>, for post-read reference</p>   </li> </ul>

<p><strong>Journeyman Texts</strong></p>

<p>These texts move towards more &quot;putting it all together,&quot; wrangling the software development process, and getting into the &quot;science&quot; behind computer science.</p>

<ul>   <li>     <p><a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959">The Mythical Man-Month</a> by Frederick Brooks</p>   </li>    <li>
   <p><a href="http://www.amazon.com/User-Stories-Applied-Development-Addison-Wesley/dp/0321205685/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893426&amp;sr=1-1">User Stories Applied</a> by Mike Cohn</p>   </li>    <li>     <p><a href="http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445/ref=pd_bbs_sr_2/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893313&amp;sr=1-2">Agile Software Development</a> or <a href="http://www.amazon.com/Principles-Patterns-Practices-Robert-Martin/dp/0131857258/ref=bxgy_cc_b_text_b/104-5590703-8892739">Agile Principles, Patterns, and Practices in C#</a> by Robert Martin</p>   </li>    <li>     <p><a href="http://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/ref=sr_1_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893068&amp;sr=1-1">Applying Domain-Driven Design and Patterns</a> by Jimmy Nilsson</p>   </li>    <li><a href="http://www.amazon.com/Rapid-Development-Steve-McConnell/dp/1556159005/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893732&amp;sr=1-1">Rapid Development</a> by Steve McConnell </li>    <li>     <p><a href="http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893572&amp;sr=1-1">Extreme Programming Explained, 2nd Ed.</a> by Kent Beck <strong>and</strong>/or <a href="http://www.amazon.com/Agile-Project-Management-Microsoft-Professional/dp/073561993X/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893621&amp;sr=1-1">Agile Project Management with Scrum</a> by Ken Schwaber</p>   </li>    <li>     <p><a href="http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262032937">Introduction to Algorithms</a> by Thomas Cormen</p>   </li> </ul>

<p><strong>The Beginnings of Mastery</strong></p>

<p>These texts help hone your skills along with improving the efficiency and effectiveness of your team.</p>

<ul>   <li>     <p><a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194892820&amp;sr=1-1">Domain Driven Design</a> by Eric Evans</p>   </li>    <li>     <p><a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893210&amp;sr=1-1">Working Effectively with Legacy Code</a> by Michael Feathers</p>   </li>    <li>     <p><a href="http://www.amazon.com/Agile-Estimating-Planning-Robert-Martin/dp/0131479415/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893967&amp;sr=1-1">Agile Estimating and Planning</a> by Mike Cohn</p>   </li>    <li>     <p><a href="http://www.amazon.com/Lean-Software-Development-Toolkit-Managers/dp/0321150783/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194893508&amp;sr=1-1">Lean Software Development</a> by Poppendiecks and their companion text, <a href="http://www.amazon.com/Implementing-Lean-Software-Development-Addison-Wesley/dp/0321437381/ref=bxgy_cc_b_text_b/104-5590703-8892739">Implementing Lean Software Development</a></p>   </li> </ul>

<p><strong>Mastery Texts</strong></p>

<p>Although not to be seen as compulsory as the above texts, what follows will assist in taking you into the realm of pure computer science.&#160; At the very least, they serve to demonstrate that our work has solid foundations in quantitative science.</p>

<ul>   <li>     <p><a href="http://www.amazon.com/Art-Computer-Programming-Fundamental-Algorithms/dp/0201896834/ref=pd_bbs_sr_2/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194894598&amp;sr=1-2">The Art of Computer Programming, Volume 1: Fundamental Algorithms, 3rd Ed.</a> by Donald Knuth along with volumes <a href="http://www.amazon.com/Art-Computer-Programming-Seminumerical-Algorithms/dp/0201896842/ref=sr_1_4/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194895650&amp;sr=1-4">2</a>, <a href="http://www.amazon.com/Art-Computer-Programming-Sorting-Searching/dp/0201896850/ref=sr_1_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194895841&amp;sr=1-1">3</a>, <a href="http://www.amazon.com/Art-Computer-Programming-Fascicle-Combinatorial/dp/0321534964/ref=sr_1_3/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194895889&amp;sr=1-3">4</a> (and its derivative works)</p>   </li>    <li>     <p><a href="http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/ref=pd_bbs_sr_1/104-5590703-8892739?ie=UTF8&amp;s=books&amp;qid=1194894667&amp;sr=1-1">Concrete Mathematics: A Foundation for Computer Science, 2nd Ed.</a> also by Donal Knuth</p>   </li> </ul>

<p>&#160;</p>

<p>仔细看这个列表会发现一个有意思的现象，就是所谓的一些基础书籍没有出现在foundational texts 列表里面，出现的却是一些OO，重构，代码大全之类的书籍，而在第三阶梯，journeyman texts 里面出现了《introduction to the algrithm (算法导论)》在最后一个阶梯 mastery texts 里面是 knuth 的TAOCP 以及《具体数学》。您是不是感觉这顺序好像和我们所认识到的尝试好像是相反的？</p>

<p>从工作半年来的体会来看这个推荐列表，还是有一定的道理。首先，它的定位并没有想把你培养成为科学家，而是让你逐渐的做好项目，做完善项目，伴随着实践与思考，逐渐到达大师水平。</p>

<p>也说不好谁对谁错，我还记得我们著名的大学生“偶像”李开复先生还推荐我们说，应该在本科阶段把TAOCP搞定了。</p>

<p>不管怎么样的顺序，还是依靠自身不断地努力和学习，可是接触东西的顺序，可能就会根据性格的不同而不同了。</p>

<p> <img src='http://liulijin.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://liulijin.info/blog/post/recent-experience/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
