﻿<?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>BlogJava-loveispopular-随笔分类-素质培养</title><link>http://www.blogjava.net/loveispopular/category/40137.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 07 Jun 2009 12:56:13 GMT</lastBuildDate><pubDate>Sun, 07 Jun 2009 12:56:13 GMT</pubDate><ttl>60</ttl><item><title>程序员需要具备的基本素质</title><link>http://www.blogjava.net/loveispopular/archive/2009/06/07/280461.html</link><dc:creator>george_chen</dc:creator><author>george_chen</author><pubDate>Sun, 07 Jun 2009 12:02:00 GMT</pubDate><guid>http://www.blogjava.net/loveispopular/archive/2009/06/07/280461.html</guid><wfw:comment>http://www.blogjava.net/loveispopular/comments/280461.html</wfw:comment><comments>http://www.blogjava.net/loveispopular/archive/2009/06/07/280461.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/loveispopular/comments/commentRss/280461.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/loveispopular/services/trackbacks/280461.html</trackback:ping><description><![CDATA[<p><font style="background-color: #cce8cf"><br />
<strong style="color: red">阅读代码</strong>这个技能需要程序员能够具备读懂已经存在的代码的能力，这样的能力可以让程序员分析程序的行为，了解程序，这样才能和开发团队一起工作，继承维护或是改进现有的程序。 <br />
<span style="color: red"><strong>编写程序</strong></span> 编写程序并不包括程序设计。不要以为编程是一件很简单的事情，很多程序员都认为编程只需要懂得程序语言的语法，并把设计实现就可以了。但是这离编写程序还远远不够，使用什么样的编码风格成为编写程序员最需要具备的基本技能。能否使用非常良好的编程风格直接决写了程序员的级别。 <br />
<strong style="color: red">软件设计</strong> 这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能，而系统架构设计直接决定了软件的质量、性能和可维护性。并不是所有的程序在这一方面都非常优秀，但每个程序员都需要或多或少的明白和掌握这一基本技能。 <br />
<strong style="color: red">熟悉软件工程</strong> 每个程序员都应该明白软件工程是什么东西，都应该知道，需求分析，设计，编码，测试，Release和维护这几个阶段。当然，几乎所有的人都知道这些东西，但并不是每个人都很清楚这些东西。现在很多高级程序员都会混淆&#8220;需求规格说明书FS&#8221;和&#8220;概要设计HLD&#8221;。另外，程序员还需要知道一些软件开发的方法论，比如：敏捷开发或瀑布模型。 <br />
<span style="color: red"><strong>使用程序库或框架</strong></span> 一个程序员需要学会使用已有的代码，无论是标论的程序库，或是第三方的，还是自己公司内部的，都需要学会做。比如：C++中，需要学会使用STL，MFC，ATL，BOOST，ACE，CPPUNIT等等。使用这些东西，可以让你的工作事半功倍。 <br />
<strong style="color: red">程序调试</strong> 程序调试是分析BUG和解决问题最直接的能力。没有人能够保证程序写出来不用调试就可以运行正常，也没有人可以保证程序永远不会出BUG。所以，熟练使用调试器是一个程序员需要具备的基本技能。 <br />
<strong style="color: red">使用IDE</strong> 学会使用IDE工具也会让你的工作事半功倍。比如，VC++，Emacs，Eclipse等等，并要知道这些IDE的长处和短处。 <br />
<strong style="color: red">使用版本控制</strong> 一定要学会使用版本控制工具，什么叫mainline/trunk，什么叫tag，什么叫branch，怎么做patch，怎么merge代码，怎么reverse，怎么利用版本控制工具维护不同版本的软件。这是程序员需要明的的软件配置管理中最重要的一块。 <br />
<strong style="color: red">单元测试</strong> 单元测试是每个程序都需要做的。很多单元测试也是需要编码的。一定要学会在xUnit框架下进行单元测试。比如JUnit, NUnit, CppUnit等等。 <br />
<strong style="color: red">重构代码</strong> 每个程序员都需要有最基本的能力去重构目前已有的代码，使代码达到最优但却不能影响任何的已有的功能。有一本书叫《软件的重构》，每个程序员都应该读一下。 <br />
<strong style="color: red">自动化编译</strong> 程序员需要使用一个脚本，其能自动化编程所有的工程和代码，这样，整个开发团队可以不停地集成代码，自动化测试，自动化部署，以及使用一些工具进行静态代码分析或是自动化测试。 </font></p>
<img src ="http://www.blogjava.net/loveispopular/aggbug/280461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/loveispopular/" target="_blank">george_chen</a> 2009-06-07 20:02 <a href="http://www.blogjava.net/loveispopular/archive/2009/06/07/280461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>