﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-chenpingjun1990-随笔分类-SoftwareIndustry</title><link>http://www.cppblog.com/chenpingjun1990/category/17849.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 30 Dec 2011 21:58:45 GMT</lastBuildDate><pubDate>Fri, 30 Dec 2011 21:58:45 GMT</pubDate><ttl>60</ttl><item><title>6 Books Every Programmer Should Own(转)</title><link>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162448.html</link><dc:creator>万川先生</dc:creator><author>万川先生</author><pubDate>Tue, 20 Dec 2011 01:52:00 GMT</pubDate><guid>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162448.html</guid><wfw:comment>http://www.cppblog.com/chenpingjun1990/comments/162448.html</wfw:comment><comments>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162448.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chenpingjun1990/comments/commentRss/162448.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chenpingjun1990/services/trackbacks/162448.html</trackback:ping><description><![CDATA[<p><span class="rdetector_placeholder_before"></span></p>
<h2 class="article-title">6 Books Every Programmer Should Own</h2>
<p>I&#8217;ve seen many lists about the best programming books and I am sure there are a lot of books that are specific to a programming knowledge or technology &#8211; that I have not included in my list.</p>
<p>The books I have chosen are those that are meant to inspire, increase productivity and improve your programming design skills.</p>
<p>Note: This list has no particular order.</p>
<h2>Code Complete 2</h2>
<h4>Steve McConnell</h4>
<p>The main focus of this book to help you improve your programming design skills.</p>
<p><a href="http://www.amazon.com/gp/product/0735619670?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0735619670"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/CodeComplete2.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=0735619670" width="1" height="1" /></p>
<hr />

<h2>The Pragmatic Programmer: From Journeyman to Master</h2>
<h4>Andrew Hunt and David Thomas</h4>
<p>This book focuses on the best practices of programming (i.e. what you should and should not do). </p>
<p><a href="http://www.amazon.com/gp/product/020161622X?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=020161622X"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/PragmaticProgrammer.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=020161622X" width="1" height="1" /></p>
<hr />

<h2>Pragmatic Thinking and Learning: Refactor Your Wetware</h2>
<h4>Andy Hunt</h4>
<p>From the author of The Pragmatic Programmer, this book takes one-step back from programming and focuses on your everyday thinking and problem solving skills.</p>
<p><a href="http://www.amazon.com/gp/product/1934356050?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1934356050"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/PragmaticThinking.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=1934356050" width="1" height="1" /></p>
<hr />

<h2>The Productive Programmer</h2>
<h4>Neal Ford and David Bock</h4>
<p>This book will teach you different tools that you can use to make your programming life more productive.</p>
<p><a href="http://www.amazon.com/gp/product/0596519788?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596519788"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/ProductiveProgrammer.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=0596519788" width="1" height="1" /></p>
<hr />

<h2>Algorithms in a Nutshell</h2>
<h4>George T Heineman, Gary Pollice and Stanley Selkow</h4>
<p>Unless you&#8217;ve memorized the implementation of every algorithm, this book is a handy desktop reference with pseudocode examples.</p>
<p><a href="http://www.amazon.com/gp/product/059651624X?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=059651624X"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/AlgorithmsNutshell.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=059651624X" width="1" height="1" /></p>
<h3>Alternate: Introduction to Algorithms</h3>
<h4>Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein</h4>
<p>This book has become a staple in many undergraduate computer science programs. Containing much more information and details on algorithms.</p>
<p><a href="http://www.amazon.com/gp/product/0262033844?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0262033844"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/IntroAlgorithms.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=0262033844" width="1" height="1" /></p>
<hr />

<h2>Head First Design Patterns</h2>
<h4>Lisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra</h4>
<p>The people at Head First have a way of explaining things in a straight-forward, non-technical approach &#8211; a good tutorial and desktop reference.</p>
<p><a href="http://www.amazon.com/gp/product/0596007124?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0596007124"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/HeadFirstDesignPatterns.jpg" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=0596007124" width="1" height="1" /></p>
<h3>Alternate: Design Patterns: Elements of Reusable Object-Oriented Software</h3>
<h4>Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides</h4>
<p>Also a common computer science textbook by the Gang of Four (GOF), this book has much more information and more detail on design patterns.</p>
<p><a href="http://www.amazon.com/gp/product/0201633612?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0201633612"><img border="0" alt="" src="http://repeatgeek.com/wp-content/uploads/2009/11/GOFDesignPatterns.jpg" modo="false" /></a><img style="border-bottom: medium none; border-left: medium none; margin: 0px; border-top: medium none; border-right: medium none" class=" jfzrfmdroowroqyfgxbr jfzrfmdroowroqyfgxbr" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=link0e-20&amp;l=as2&amp;o=1&amp;a=0201633612" width="1" height="1" /></p>
<hr />

<p>If you are interested in exploring other programming books and reading reviews, check out <a href="http://www.programmingbooks.org/" modo="false">ProgrammingBooks.org</a>.</p><img src ="http://www.cppblog.com/chenpingjun1990/aggbug/162448.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chenpingjun1990/" target="_blank">万川先生</a> 2011-12-20 09:52 <a href="http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162448.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The Secret to Being a Successful Programmer(转)</title><link>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162447.html</link><dc:creator>万川先生</dc:creator><author>万川先生</author><pubDate>Tue, 20 Dec 2011 01:29:00 GMT</pubDate><guid>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162447.html</guid><wfw:comment>http://www.cppblog.com/chenpingjun1990/comments/162447.html</wfw:comment><comments>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162447.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chenpingjun1990/comments/commentRss/162447.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chenpingjun1990/services/trackbacks/162447.html</trackback:ping><description><![CDATA[<h2 class="article-title">The Secret to Being a Successful Programmer</h2>
<p class="article-title">&nbsp;</p>
<p><span class="rdetector_placeholder_before"></span>You are reading this because you want to discover the secret to being a successful programmer. If the secret is all you care about, go ahead and scroll down to the bottom of the page because that is where you will find it. </p>
<p>If you are still reading this, I will explain to you why there is a secret to being a successful programmer. </p>
<h2>Being Good Isn&#8217;t Good Enough</h2>
<p>When you learn any type of skill, such as a new programming language or even a physical sport &#8211; professionals or experts will often say to you, &#8220;If you want to get better, you have to practice, practice, practice.&#8221; </p>
<p>I believe this statement true in the sense that if you practice you will become a <em>better</em> programmer or athlete, but you will not necessarily become <em>successful</em>. </p>
<h2>What is Success?</h2>
<p>Everybody has their own definition of what success is &#8211; what does success mean to you?</p>
<ul><li>Success is accomplishing goals?</li><li>Success is making a lot of money?</li><li>Success is making the world a better place?</li></ul>
<p>I don&#8217;t believe that Success is one thing, but rather a combination of all the above. </p>
<p>So how do you get there? How does one become successful? </p>
<p>If you look back at my example of learning a new skill. Which of the definitions of success will directly result by becoming an expert?</p>
<p>Unless your goal was to learn a new skill (or master a skill), you will have only become successful in accomplishing goals. Just because you are good at something doesn&#8217;t mean that you will make a lot of money or put you in a position to change the world. </p>
<p>So what&#8217;s missing? </p>
<h2>The Secret</h2>
<p>The secret to being a successful programmer (or anything else) is: <strong>creativity and original thinking</strong>. </p>
<p>A successful programmer is one who is knowledgable (knows language, concepts, architecture, etc.), but can also use this knowledge to create or conceptualize.</p>
<h3>Success as making money</h3>
<p>If you believe that success is making a lot of money, you need to look at the concept of doing business. In business you can compete on two different levels: price and value. </p>
<h4>Price</h4>
<p>You can make a decent salary if you are a good programmer (defined as having a detailed understanding of programming languages and concepts) &#8211; but what is going to make you stand-out against the next programmer? </p>
<p>If you were interviewing for a job and all the candidates had the same knowledge, same background, and same skills &#8211; the person who would be hired would be the one asking for the least amount of money.</p>
<p>The scenario above is probably unrealistic for established programmers (but probably more true for recent college graduates). Despite what you may think, you may already have a creative/original side.</p>
<h4>Value</h4>
<p>Value is not a comparison of price vs. features &#8211; but rather what makes you unique against alternatives. The perfect example of this is to look at the Apple iPhone. </p>
<p>Today you could make the argument that the Droid has more features than the iPhone. Does that mean that the Droid has more value because it cost less? </p>
<p>So how can Apple charge more for something that is equal (or fewer) in features?</p>
<p>This is where creativity and originality come into play. </p>
<p>When the iPhone came out it was one of the most original smart phones around. To this day, every smart phone manufacturer has been trying to &#8220;copy&#8221; everything about it: touch screen, App Store, Games etc. </p>
<p>The original creativity continues to live on in the product &#8211; and allows the iPhone to maintain its demand. </p>
<p>The same can be said about why Google tends to hire PhDs &#8211; through their dissertations they have proven their ability to think originally and offer a creative solution.</p>
<h3>Next Steps</h3>
<p>If you are already an expert programmer, you are already half way there. Creativity and original thinking can be learned, it just might not seem like that because they are &#8220;right-brained&#8221; skills, compared to the &#8220;left-brained&#8221; skills of programming. </p>
<p>To start thinking about success:</p>
<ol><li>Define success as it applies to you.</li><li>Think about where you want to be.</li><li>Start thinking (creatively) about how you can use your skills to achieve your success.</li></ol>
<p class="article-title">&nbsp;</p> <img src ="http://www.cppblog.com/chenpingjun1990/aggbug/162447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chenpingjun1990/" target="_blank">万川先生</a> 2011-12-20 09:29 <a href="http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>10 Websites On How To Be A Better Programmer(转)</title><link>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162446.html</link><dc:creator>万川先生</dc:creator><author>万川先生</author><pubDate>Tue, 20 Dec 2011 01:26:00 GMT</pubDate><guid>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162446.html</guid><wfw:comment>http://www.cppblog.com/chenpingjun1990/comments/162446.html</wfw:comment><comments>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chenpingjun1990/comments/commentRss/162446.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chenpingjun1990/services/trackbacks/162446.html</trackback:ping><description><![CDATA[<h2 class="article-title">10 Websites On How To Be A Better Programmer</h2><br />
<p><span class="rdetector_placeholder_before"></span>We all want to be better at the things that we do. Why? Perhaps it will lead to less work, less stress, a sense of pride or more money. </p>
<p>Whatever your motivation for improving your skills &#8211; the point is that your skills are not static; however, there are different ways that you can approach improving them. </p>
<p>Below are 10 websites that I have found (both old and new) that offer suggestions on how programmers can improve their programming skills. </p>
<p>In no particular order:</p>
<h2>1. <a href="http://secretgeek.net/6min_program.asp"><font color="#7a3737">8 ways to be a better programmer in 6 minutes</font></a></h2>
<p>SecretGeek takes you through modifying your development environment and utilizing tools to improve your coding. Most of these tasks can be done in 6 minutes if you are familiar with your IDE or coding environment.</p>
<hr />

<h2>2. <a href="http://www.codinghorror.com/blog/2007/01/how-to-become-a-better-programmer-by-not-programming.html"><font color="#7a3737">How To Become a Better Programmer by Not Programming</font></a></h2>
<p>Jeff Atwood reflects on interviews he read about with Bill Gates. Bill says that you cannot improve your programming skills only by programming, you must become familiar with your surroundings and work environment.</p>
<hr />

<h2>3. <a href="http://www.flipcode.com/archives/Being_A_Better_Programmer.shtml"><font color="#7a3737">Being A Better Programmer</font></a></h2>
<p>Written almost 10 years ago, Danny Burbol mentions 10 ways that you can improve &#8211; many of which can be applied to life: know your limits, fix it, don&#8217;t hack it, don&#8217;t get personal, etc.</p>
<p>There is also a nice summary of his points at the bottom of the page.</p>
<hr />

<h2>4. <a href="http://www.codelathe.com/blog/index.php/2009/04/07/5-sure-fire-ways-to-become-better-at-programming/"><font color="#7a3737">5 sure-fire ways to become better at programming</font></a></h2>
<p>This site focuses on programmer passion and interest; and attempts to look at the role of a programmer as similar to a mason. </p>
<p>This could be alternatively titled, &#8220;5 sure-fire ways to know if programming is right for you.&#8221;</p>
<hr />

<h2>5. <a href="http://www.programming4scientists.com/2009/03/03/4-ways-to-become-a-better-programmer/"><font color="#7a3737">4 ways to become a better programmer</font></a></h2>
<p>This site takes a simplistic approach to becoming a better programmer. I don&#8217;t want to give away the 4 ways, but these could easily be applied to becoming better in any profession.</p>
<hr />

<h2>6. <a href="http://rc3.org/2010/04/25/becoming-a-better-programmer/"><font color="#7a3737">Becoming a better programmer takes exercise</font></a></h2>
<p>This site focuses on the why of programming. We might know how conceptually a sorting routine works, but you never truly understand it until you attempt to implement it. </p>
<p>I always say don&#8217;t wonder how things work, do some research to know how things work.</p>
<hr />

<h2>7. <a href="http://www.codercaste.com/2009/11/06/12-tips-that-will-make-you-a-better-programmer/"><font color="#7a3737">12 Tips That Will Make You a Better Programmer</font></a></h2>
<p>Spyros Panagiotopoulos points out 12 areas of which programmers should be familiar (e.g. Version Control, Commenting, etc.) </p>
<p>I feel more often than not programmers know they should do certain things, but just skip to coding for the sake of time. </p>
<hr />

<h2>8. <a href="http://sixrevisions.com/web-development/5-good-habits-that-will-make-you-a-better-coder/"><font color="#7a3737">5 Good Habits That Will Make You a Better Coder</font></a></h2>
<p>Matt Ward approaches becoming a better code from the perspective of a web developer. The obvious way to get better at something is to read about it and practice. </p>
<p>I find his approach to writing logic through comments intriguing. I agree that writing pseudocode beforehand definitely makes coding easy. </p>
<hr />

<h2>9. <a href="http://haacked.com/archive/2007/01/30/Better_Programming_By_Programming_Better.aspx"><font color="#7a3737">Better Programming By Programming Better</font></a></h2>
<p>Phil Haack picks up where Jeff Atwood left off in <a href="http://www.codinghorror.com/blog/2007/01/how-to-become-a-better-programmer-by-not-programming.html"><font color="#7a3737">How To Become a Better Programmer by Not Programming</font></a>. </p>
<p>Comparing programming to a sport, becoming a better programmer doesn&#8217;t lie in the experience that one has but the effort he/she puts in to identify weaknesses in your current skills.</p>
<hr />

<h2>10. <a href="http://www.joelonsoftware.com/articles/fog0000000043.html"><font color="#7a3737">The Joel Test: 12 Steps to Better Code</font></a></h2>
<p>In another post from over 10 years ago, Joel Spolsky notes that there are things that all programmers should practice if one is to produce quality code. </p>
<p>The 12 steps are actually questions that you can ask yourself to gauge the quality of your software development environment. </p>
<hr />

<p>I think we can all become better programmers, but we need to start with wanting to become a better programmer &#8211; and that involves putting forth the effort to improve.<br /><input id="rdetector_data" value="YTozOntzOjQ6InRhZ3MiO2E6ODp7czozOiJ1cmwiO3M6Nzc6Imh0dHA6Ly9yZXBlYXRnZWVrLmNvbS90ZWNobmljYWwvMTAtd2Vic2l0ZXMtb24taG93LXRvLWJlLWEtYmV0dGVyLXByb2dyYW1tZXIvIjtzOjU6InRpdGxlIjtzOjQ0OiIxMCBXZWJzaXRlcyBPbiBIb3cgVG8gQmUgQSBCZXR0ZXIgUHJvZ3JhbW1lciI7czo0OiJsaW5rIjtzOjEzNjoiPGEgaHJlZj0iaHR0cDovL3JlcGVhdGdlZWsuY29tL3RlY2huaWNhbC8xMC13ZWJzaXRlcy1vbi1ob3ctdG8tYmUtYS1iZXR0ZXItcHJvZ3JhbW1lci8iPjEwIFdlYnNpdGVzIE9uIEhvdyBUbyBCZSBBIEJldHRlciBQcm9ncmFtbWVyPC9hPiI7czoxMzoiY2F0ZWdvcnluYW1lcyI7czo5OiJUZWNobmljYWwiO3M6MTM6ImNhdGVnb3J5bGlua3MiO3M6NjU6IjxhIGhyZWY9Imh0dHA6Ly9yZXBlYXRnZWVrLmNvbS9jYXRlZ29yeS90ZWNobmljYWwvIj5UZWNobmljYWw8L2E+IjtzOjEwOiJhdXRob3JuYW1lIjtzOjg6ImRoaXJzY2hsIjtzOjk6ImF1dGhvcnVybCI7czoyNToiaHR0cDovL3d3dy5yZXBlYXRnZWVrLmNvbSI7czoxMDoiYXV0aG9ybGluayI7czo0ODoiPGEgaHJlZj0iaHR0cDovL3d3dy5yZXBlYXRnZWVrLmNvbSI+ZGhpcnNjaGw8L2E+Ijt9czoxMjoicG9zdF9vcl9wYWdlIjtzOjQ6InBvc3QiO3M6MjoiaWQiO2k6NjIzO30=" type="hidden" name="rdetector_data" /><span class="rdetector_placeholder_after"></span></p> <img src ="http://www.cppblog.com/chenpingjun1990/aggbug/162446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chenpingjun1990/" target="_blank">万川先生</a> 2011-12-20 09:26 <a href="http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Top 5 Things that are Important to Me as a Programmer(转载)</title><link>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162445.html</link><dc:creator>万川先生</dc:creator><author>万川先生</author><pubDate>Tue, 20 Dec 2011 01:24:00 GMT</pubDate><guid>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162445.html</guid><wfw:comment>http://www.cppblog.com/chenpingjun1990/comments/162445.html</wfw:comment><comments>http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chenpingjun1990/comments/commentRss/162445.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chenpingjun1990/services/trackbacks/162445.html</trackback:ping><description><![CDATA[<h2 class="article-title"><span style="font-size: 12pt">Top 5 Things that are Important to Me as a Programmer<br /></span><br /></h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No matter what your field of work, we all have areas where we want to succeed. I&#8217;ve tried to identify the top 5 things that are important to me in life. <br />These are areas of my life where I want to be successful.</p>
<h2>5. Professional Development (Non-Technical)</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As a programmer, not everything is technical all the time. We will have to give presentations, have meetings or communicate with end-users. For these <br />reasons, I try to focus attention on improving my soft skills as well.</p>
<h3>Toastmasters</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To improve my speaking and leadership skills, I&#8217;ve joined a local Toastmasters group. Toastmasters has helped me immensely by offering opportunities <br />to speak, lead meetings and network &#8211; skills which are rarely taught in academia or in the workplace. See <a href="http://repeatgeek.com/social/belonging-to-professional-organizations/"><font color="#7a3737">Enhance Your Skills By Belonging to Professional Organizations</font></a><br />for more information about what takes place during a Toastmasters meeting.</p>
<h3>Reading books</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reading technical books all the time gets boring. I will try to mix in a non-technical book into my reading schedule every so often such as biographical or interview books<br />&nbsp;to understand about how other people think and do things (e.g. <a href="http://www.amazon.com/gp/product/0071636080?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0071636080"><font color="#7a3737">The Presentation Secrets of Steve Jobs: How to Be Insanely Great in Front of Any Audience</font></a>) or fiction<br />&nbsp;(e.g. <a href="http://www.amazon.com/gp/product/0385504225?ie=UTF8&amp;tag=link0e-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0385504225"><font color="#7a3737">The Lost Symbol</font></a>).<br /></p>
<h2>4. Professional Development (Technical)</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Since technology changes so frequently, I placed my technical development on a higher level than social skills. Most of you reading this blog might categorize this similarly.</p>
<h3>New Languages and Technology</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Keeping up with the latest and greatest technologies can be a difficult task for most programmers. Not only does it take time to learn a particular technology, but you really <br />don&#8217;t start to appreciate its usefulness until you start using it in a project.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;My primary resource for acquiring knowledge on technology is my subscription to the Association for Computing Machinery (ACM). One of the many subscription benefits is <br />being able to access Safari Books and Books 24&#215;7 &#8211; this allows me to read and reference over 1,000 books online. </p>
<h3>Sharing of Knowledge</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I believe that the sharing of knowledge is just as important as the acquisition of knowledge. This blog&#8217;s purpose is just that &#8211; to share my insight and know-how with you.<br />If you don&#8217;t have a blog or the time to keep up with one, there are plenty of websites that you can visit where you can answer questions asked by your peers or read about the <br />latest advancements in technology see <a href="http://repeatgeek.com/technical/17-websites-for-sharing-programming-knowledge/"><font color="#7a3737">17 Websites for Sharing Programming Knowledge.</font></a></p>
<h2>3. Health</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One of the topics that seems to never go away and revived each year with New Year&#8217;s resolutions is health. I know many people take their health for granted (I&#8217;m guilty of it too). <br />One of the first and easier steps that you can take to living a healthier lifestyle is to become aware of what you eat and review your exercise habits. </p>
<h3>Exercise</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I typically don&#8217;t like to exercise, especially when I don&#8217;t see instant results. However, when I do, I usually feel less tired and more motivated to do other things. Many people will <br />make excuses saying that &#8220;I don&#8217;t have the time&#8221;. You need to make it a habit &#8211; make it a part of your daily routine, just like showering and brushing your teeth.</p>
<h3>Eat Healthy</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When people think of eating healthy, they probably think of eating salads and vegetables all the time &#8211; this is not the case. </p>
<blockquote>
<p>&#226;&#8364;&#339;The virtue of justice consists in moderation, as regulated by wisdom.&#226;&#8364; &#8211; Aristotle</p></blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like this quote by Aristotle, you can eat healthier without giving up the foods that you love &#8211; just have them in <em>moderation</em>. I&#8217;m not an expert on nutrition, but I always make&nbsp;<br />sure to eat breakfast, lunch and dinner. By becoming aware of how many calories that you consume daily, you can start to make your own choices about what you should and shouldn&#8217;t<br />&nbsp;eat.</p>
<h2>2. Career</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Work is important, after-all if you don&#8217;t count time spent sleeping, you probably spend more time at work than at home. We were all hired for what we are able to contribute to the company, but what can your company contribute to you?</p>
<h3>Staying Challenged</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Is your assigned work keeping you challenged? This has been a red-flag for me in the past when I considered finding a new job. If your day-to-day tasks aren&#8217;t challenging, is there something else you can do in your spare time to keep you challenged? Try ask your manager if there is a project that you can work on that uses a different technology or if you can <br />work to improve any existing processes. </p>
<h3>Training</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I would recommend taking advantage of any type of training (both internal and external) that your employer offers. Most employers will continue you pay you your hourly wage while you are attending training, as long it benefits the company. If you want to advance your career with an advanced degree, look into a tuition reimbursement program if your employer <br />offers it.</p>
<h2>1. Family and Friends</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I&#8217;ve saved the best for #1. Whether you are single, married, have children, etc. we all need someone in our lives that reminds us that there are other things that important in life. </p>
<h3>Support</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Who do you rely on when you have personal problems? Similarly to what I was mentioning earlier about sharing technical knowledge, the same is true for personal knowledge &#8211; <br />try help out emotionally if your friends and family need advice or someone to talk to. n the future, hopefully your friends and family would return the favor to you, if you needed their assistance.</p>
<h3>Appreciate Your Time</h3>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;There is a time to be serious and a time for just letting go and having fun. Have fun spending time with your family, since it is one of those things that can be hard to come by. Everything else I&#8217;ve mentioned: professional development, health, and career are controlled entirely by you and your goals.</p><img src ="http://www.cppblog.com/chenpingjun1990/aggbug/162445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chenpingjun1990/" target="_blank">万川先生</a> 2011-12-20 09:24 <a href="http://www.cppblog.com/chenpingjun1990/archive/2011/12/20/162445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>不会失业的十大软件技术(转)</title><link>http://www.cppblog.com/chenpingjun1990/archive/2011/10/01/157283.html</link><dc:creator>万川先生</dc:creator><author>万川先生</author><pubDate>Sat, 01 Oct 2011 03:20:00 GMT</pubDate><guid>http://www.cppblog.com/chenpingjun1990/archive/2011/10/01/157283.html</guid><wfw:comment>http://www.cppblog.com/chenpingjun1990/comments/157283.html</wfw:comment><comments>http://www.cppblog.com/chenpingjun1990/archive/2011/10/01/157283.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/chenpingjun1990/comments/commentRss/157283.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/chenpingjun1990/services/trackbacks/157283.html</trackback:ping><description><![CDATA[<div>技术仅仅是一种元素,新的技术总是曾出一穷,<a href="http://www.ad0.cn/netfetch/" target="_blank">NetFetch</a>认为更重要的是你的学习能力和解决问题的能力。<br /> 下边让我们来看看这些<strong>免于失业的十大软件技术</strong>吧。<br /> <br /> 1. XML<br /> <br /> 　　首先，你要了解XML。我不是说仅仅是XML规格本身，还包括一系列相关的基于XML的语言：最重要的是  XHTML、XSLT、XSL、DTDs、XML Schema  (XSD)、XPath、XQuery和SOAP。那些在过去5年内从未碰过键盘的人，可能不知道XML为何物。XML是一种文本文件，使用与HTML类 似的标记。XML能定义一个树状结构，并能描述所含的数据。<br /> <br /> 　　XML最好的一点是既能存结构化数据也能存非结构化数据。它既能存贮和描述&#8220;规格的&#8221;(regular)表格数据，也能容纳和描述&#8220;粗糙的&#8221;(ragged)文件数据。<br /> <br /> 　　XHTML是现今写HTML的首选方法。因为它是形式完好（well formed）的XML，比起古老的、通常是畸形（malformed）的HTML文件，XHTML格式的文件更容易处理。<br /> <br /> 　　XSLT和XSL是用于把XML文件转成其它格式的语言。可转换的格式包括：文本文件、PDF文件、HTML、以逗号为分隔符的文件，或其它XML文 件。 DTD和XML  Schema描述XML文件所能包含的内容的类型，并让你&#8220;验证&#8221;XML文件内容的合理性，而不用写特殊代码以确保内容符合规则要求。<br /> <br /> 　　XPath和XQuery是用于从XML文件中抽取单个项目或一组项目的查询语言。XQuery扩展了XPath，因而更重要。XQuery与XML的关系正像SQL与关系数据库的关系。<br /> <br /> 　　SOAP是Web服务之间的一个标准通讯协议。尽管你不需要对SOAP标准一清二楚，你应该熟悉一般的schema和它的工作原理，以便能应用这门技术。<br /> <br /> 　　2. Web服务<br /> <br /> 　　Web服务是XML流行后的一个直接产物。因为你能用XML描述数据和物件，因为你能用schema确保XML文件内容的合理性，因为XML是基于文 本的规范，XML为跨平台通讯标准提供了一个极其方便的基本格式。如果你还从来没碰到Web服务，你可能很快就会碰到，在未来5年内，你几乎肯定会碰到。 熟悉Web服务十分重要，因为它是目前所有跨不同机器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。不管你需要与否，Web服务是迈向互用性 的重要一步。<br /> <br /> 　　XML工作组主席John  Bosak曾说XML&#8220;给Java一些事做&#8221;。实际上，Web服务让所有语言都有了一些事做。Web服务让在大型机上运行的COBOL应用软件能调用在手 持设备上运行的Java应用程序、能让Java  applet与.NET服务器交谈、能让微机软件与Web服务器无缝连接，并提供了一个相对容易的方法，让企业不光能向外界提供数据，还能提供功能，而且 是一种与语言、平台和位置都独立的方法。<br /> <br /> 　3. 面向对象的编程<br /> <br /> 　　很多程序员仍认为OOP是象牙塔里的技术。但如果你想一下是什么语言在过去的10年里占主导地位，你就会理解OOP不是象牙塔里的技术。OOP从 Smalltalk开始，传到C++和Pascal  (Delphi)。Java使OOP大踏步地迈向主流，几年后的VB.NET和C#则完全确立了OOP的优势地位。尽管这些语言中的多数并不要求你必须会  OOP，但我觉得如果你不了解OOP的基本概念也不知道如何应用这些概念，你能找到的编程工作将越来越少。<br /> <br /> 　　4. Java、C++、C#和VB.NET<br /> <br /> 　　我把这些语言列在一起，并不是建议你成为每一种语言的专家。我的理由是：学习编程最有效的方法之一是看代码，而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。<br /> <br /> 　　在过去几年，各语言的能力越来越接近。现在，你可以用VB.NET写Windows服务、Web应用程序或命令行程序。即使你只使用一种语言，你也应 该学一些其它语言，以便能看懂那些样例，并将其翻译到你所用的语言。这4种语言是基本核心，还有其它一些满足不同需要、颇具用途的语言，如 FORTRAN、 COBOL、APL、ADA、Perl和Lisp。<br /> <br /> 　　5. JavaScript<br /> <br /> 　　尽管名字有些相像，但Java  与JavaScript并无关联。为什么一个脚本语言会如此重要呢？因为所有主流浏览器都用JavaScript。如果你需要写Web应用程序，你就有足 够的理由学JavaScript。JavaScript可以用作ASP或ASP.NET的服务器语言，也可以当做用于扩展XSLT的功能语言  (functional  language)。JavaScript是Mozilla/Netscape中用于激活基于XUL的程序接口的首选语言。JavaScript的一个变 种ActionScript是Flash MX的编程语言。将来，JavaScript很可能成为新设备的编程语言，以及大型应用软件中的宏语言。<br /> <br /> 　　与JavaScript相对照的是VBScript。尽管Microsoft的软件对VBScript有良好的支持，但VBScript在未来的开发 工作中很可能是一个糟糕的选择。就是Microsoft也倾向于用JavaScript（或Microsoft自己的变种：JScript）写客户端程 序。在选择脚本语言时，请选择JavaScript。<br /> <br /> 　　6. 正则表达式（Regular Expressions）<br /> <br /> 　　查寻关系数据库可以用SQL，查询XML可以用XPath和XQuery，查询纯文本文件则可以用正则表达式。例如，你可以用一个命令从一个HTML 文件中查找并删除所有的注释。各种开发语言内置的一些简单的文本查询功能，如"IndexOf"函数或VB中经典的"InStr"函数或"Like"操作 符，根本不能与正则表达式相提并论。现在，各种主要的开发语言都提供使用正则表达式的途径。尽管正则表达式本身既难懂更难读（是回到早期计算机时代的一种 倒退），但它却是一个功能强大而且未被充分利用的工具。<br /> <br /> 　　7. 设计模式<br /> <br /> 　　正像OOP通过把对象分类以简化编程一样，设计模式对一些普遍的对象之间的交互进行分类，并赋予一个恰当的名称。OOP用得越多，设计模式就越有用。一些最常用的模式的名称已经变成了软件开发领域共同使用的术语，所以要跟上信息的主流，你就要对设计模式有相当的理解。<br /> <br /> 　　8. Flash MX<br /> <br /> 　　如果你需要在客户端得到比HTML和CSS更多的图形和更强的编程功能，Flash是你的答案。用Flash编程比开发Java applets或写.NET代码要快得多，也容易得多。<br /> <br /> 　　在最新版本 (MX) 中，Flash不仅仅是画图和制造动画的工具，它已经成为一个编程功能强大的开发环境：能调用SOAP  Web服务，也能调用远端服务器上的ColdFusion、Java或.NET程序。Flash无处不在。它的引擎存在于世界上大多数客户端计算机，包括 手持设备、置顶盒、甚至是新的书写板电脑。所以使用Flash能大大扩展你的程序的应用范围。<br /> <br /> 　　9. Linux/Windows<br /> <br /> 　　熟悉Linux。在一台旧机器或新机器上安装Linux。下载图形用户界面，在其基础上写一些程序。安装Apache，写一个Web应用程序。这个世 界不再仅仅是属于Windows，这种趋势可能还会持续下去。如果你是一名中坚的Linux开发人员，那就抛弃你对Windows的憎恶，看看你能否做一 些 Windows编程。Windows能继续在台式电脑上称王是有其原因的，这不仅仅是因为Microsoft控制了这个市场。<br /> <br /> 　　没人知道你们公司会在什么时候决定从Linux转向Windows（或从Windows转向Linux），或者你想跳到一家用另一种平台的公司，或者你想出了开发一个杀手软件的好主意，所以你要争取拥有在不同操作系统上的编程经验。<br /> <br /> 　　10. SQL<br /> <br /> 　　尽管SQL不像本文讨论的其它技术那样新，而且SQL的重要性在未来10年内很可能降低，但它仍然是一项基本技能。很多开发人员还没有掌握这门技术， 或掌握得不够，不足以有效率地使用它。不要依赖具有图形用户界面的SQL生成器替你做事情，你要自己手工地写查询命令，直到你熟悉基本的SQL语法为止。 了解SQL不仅能帮助你日后学习XQuery，你还有可能马上发现能简化或改进目前项目的方法。<br /> <br /> 　　培养好奇心<br /> 　　最后，（对，我意识到这是第11门技术），好奇心是你最重要的技能。要去尝试各种东西。新语言或新技术对你当前或将来的工作可能有用，也可能没用，但 并不是你所学的每一件事都是为了工作。不要害怕失败，万事开头难，学新技术也是如此。大多数失败是因为人们希望太快地学到太多的东西。要对每一点进步感到 满意，不要让时间（或缺乏时间）妨碍你。相反，你要安排时间留心、研究、试验新的开发技术和工具。<br /> <br /> 　　你可能永远也没有必要成为这些技术的专家，而且我的选择可能根本不适合你的特殊情况，但通过培养好奇心，你将会发现你应该了解的东西。</div><img src ="http://www.cppblog.com/chenpingjun1990/aggbug/157283.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/chenpingjun1990/" target="_blank">万川先生</a> 2011-10-01 11:20 <a href="http://www.cppblog.com/chenpingjun1990/archive/2011/10/01/157283.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>