工作程序员 一年换3份工作近一年还是没感觉,改换职业吗

您当前的位置: >
发布时间: 10:12  阅读:次  作者:admin  文章来源:网络 字体:
  苏珊&萨默维尔(SusanSommerville)喜欢老师这份工作,她最开始教幼童,后来教青少年。然而,她是第一个承认执教是个苦差事的人:&这份工作令人疲倦。你会过于投入其中。&
  尽管这份工作让她的生活有目标,但她发现,目送孩子们离开去上大学和工作让她伤感。&我想知道,我在一个更广阔的天地里能不能行。&她渴望体验&一些不同的东西&。
  因此,在30岁的时候,萨默维尔辞掉了全职工作,回到大学学习职业心理学。在完成硕士学位的过程中,她到专业服务普华永道(PwC)进行研究,偶然发现组织顾问这种职位&&直到今天,现年45岁的萨默维尔依然在这个领域工作。
  当时萨默维尔申请了工作并且被聘用。在工作的初期,她被&冒牌货综合征&困扰。她回忆,当时的自己常常担心&被聪明人看穿:我会被揭穿吗?&
  在一家大公司工作是一次重大转变。&如果这一年干得不错,我能拿到奖金,当时这个想法让我震惊。作为教师,动力源于内在。&
  然而,萨默维尔能从容应对新职业生涯的其他方面:毕竟,在同事面前做演示,比在一屋子青少年或者7岁儿童面前讲课轻松得多。
  萨默维尔建议她的同事在转行的时候考虑教书。如果他们听从了她的建议,他们就加入了英国《金融时报》专栏作家露西&凯拉韦(LucyKellaway)的行列。在为英国《金融时报》工作31年后,凯拉韦不久前宣布她将接受再培训并转行做一名数学老师;她还力劝其他四五十岁或者更年长的人士效仿。
  放弃一段职业生涯,去做一些完全不同的事情,这个梦想令人心驰神往。然而,现实远非这么简单,一家支持&职场再出发&(encorecareer)的社会组织的创始人马克&弗里德曼(MarcFreedman)说。所谓&职场再出发&是指,人们在职业生涯的后期开启新篇章,从事有益于社会、有意义的工作。
  &转行是一个痛苦和时断时续的过程。这个过程令人困惑;我们没有像(为青少年提供指导的)大学那样的一整套机构,来指导更年长的人们如何转行。&弗里德曼希望更多机构能够帮助处于职业生涯中期的人们接受再培训,比如凯拉韦所在的NowTeach(现在教书吧)开拓性项目。
  弗里德曼说,那些成功改换职业的人明白,过渡或许需要很长时间。这些人在投入培训前还会探索多个选项。弗里德曼建议为过渡期储蓄一些资金。
  重要的是工作经验,以及与目前做着你希望从事的工作的人们谈一谈这份工作的现实情况,而不要纵身一跃投入未知世界。弗里德曼建议改换职业的人通过实习、无偿服务或者董事会职位&先试后买&。&你需要亲自试好。&
  弗里德曼表示,太多人没有花费足够的精力去探索各种其他选择。&他们梦想着当律师或者银行家,然后云开雾散,他们不费吹灰之力就追寻了自己的梦想。这是一种浪漫的幻想。&
  商业心理咨询机构Nicholson McBride的负责人简&克拉克(JaneClarke)表示,最重要的事情是&了解你为何(在现在的工作中)不快乐&。&人们不会认真思考这个问题。认识到你喜欢哪些部分,分析企业、同事和工作-生活平衡很重要。&她说,理解你从何处获得自己的身份认同也很重要。&对于一些人来说,能够对人说我在某处工作或者我是做什么的真的很重要。&
  克拉克建议,那些想要迈出这一步但又不知道该往哪个方向去的人应该仔细审视他们的整个职业生涯,挑选出让他们感到快乐的部分。
  位于伦敦金融城、为改换职业者提供帮助的Escape School的贝卡&沃纳(BeccaWarner)表示,促使人们做出这一选择的常见契机包括有了孩子、父母一方去世和达到某个年龄阶段。&这通常会促使人们思考,我在如何度过自己的一生,我将为这个世界留下些什么?&
  两种宏观趋势应该有利于更年长的改换职业者。第一种是,由于人们的预期寿命延长、养老金储蓄减少,更多人将会比之前的几代人工作更长的时间。第二种是,自我雇佣和合同工作的兴起让一些人能够慢慢以自由职业者的身份走上新的职业道路。&你可以先小试一把,&沃纳说。
  杰弗里&斯坦福(GeoffreyStanford)转行过很多次,从军队、到咨询公司、到投行再到教职。斯坦福在当银行家的时候就很注意,不让自己变得依赖高薪资。&人们被按揭贷款困住了。我妻子和我都很清楚,我们不愿被卷入那种生活方式。&
  收入或者地位的变化,或者再培训时期,都可能影响与伴侣的关系。如果你的伴侣认为精致的饮食很重要,那么当他们第十天晚上只能吃烤豆子配吐司,他们可能会感到失望。斯坦福建议&与你的伴侣保持开诚布公的对话,不仅仅谈论你的工作,也谈论什么是重要的。你必须表明自己的想法。&
  EscapeSchool的研究发现,那些离职去追寻梦想的人们反映,他们的满足感更强、感觉自己的生活更有目标。尽管他们的收入通常会减少,但他们并没有表达金钱方面的不满。&人们重新调整了他们与金钱的关系。他们适应了,&沃纳说。
  对在近10年前离开法律业成为美发师的萨莉&阿诺德(SallyArnold)而言,事情就是如此。先后在年利达(Linklaters)律师事务所的私募股权团队以及消费品企业联合利华(Unilever)的法务部门工作后,她意识到,法律让她感到不快乐。
  尽管在联合利华工作不像之前在年利达那样&没日没夜&,但阿诺德无法想象自己作为一名律师的未来。转行的契机在她和男友分手之后出现了。卖掉公寓的阿诺德发现,她有足够的钱在维达尔&沙宣(VidalSassoon)美发学校学习一门课程。当美发师让她的预算大幅减少。
  &你想不到你有多能适应。过去不得不时刻小心,这很困难。我比我过去挣得少多了,但我也快乐多了。你可以调整你的生活方式和支出。很多人想要改行,但感到自己被捆住了手脚。(用更少的钱生活)是完全可能的。&
  改换职业者必须做好准备,应对将自身的焦虑和嫉妒投射出来的同侪。&人们会变得非常戒备,&阿诺德说,她被告知美发&浪费智商&又&不挣钱&。
  回到学校学习,并且发现与你一同学习的人年纪都比你小,这可能是一种巨大的改变。贾森&沃伦(JasonWarren)与比他小10岁的学生们一同接受培训,成为了一名建筑师,他发现这段经历令人鼓舞。
  &我当时渴望参加学习,不会因为宿醉而请假。在现实世界中生活过以后,重返校园当学生对我的意义比以前大得多。&您的位置:
修炼一名程序员的职业水准& 转贴
发贴人:221.200.166.*发贴时间:【】[]
修炼一名员的职业水准&
&&&&&&作者:林庆忠,1990年毕业于昆明工学院计算机专业,后又于1999年
毕业在南京大学& &&&&&&完成工程专业硕士的学习,现供职于CNPC旗下的一个行业研发中
心,因为在网上看了许多有经验的各路开发人员写的好帖,一时手痒兴起,
也凑一篇壮壮声势。
&&&&&&& &&&&&&假设你是一名专业毕业的本科学子,如何在工作中修炼成为一名有较
高职业水准的员呢,本文试图总结作者从事15年开发工作的感想,希望
对有志成为职业员的人有所帮助,并借此机会感谢原昆明工学院计算机系的
和智玲老师和张怀宁老师,特别感谢我的硕士导师,南京大学计算机系的博导郑
国梁教授 &&&&&&注:本帖言辞尖刻,乃作者脾气秉性使然,你看着有气,就请多多见
谅,放下别看了 &&&&&&& &&&&&&就是一系列按步骤进行的操作序列,它有好多种级别,比如最低级的
微、次低级的汇编、高级的各种编程语言、最高级的脚本语言
,也许我列的不对,但没关系,我要说的是不管是那个级别的,其本质都是
操作的逻辑序列大多数系统和应用都是建立在高级编程语言上的,比如C、
C++、C#、FORTRAN、BISIC、JAVA等等,就让我们只关注这一级的编程能力吧
因此一个员的逻辑能力不高,他永远都不能成为一名具有合格职业水准
的员,我们在下面的讨论有关编程能力的方方面面,最终都是为了最大程度
地提高和实现一名员的逻辑能力 &&&&&&& &&&&&&一、掌握基础知识:十六年寒窗的持续积累 &&&&&&从7岁读小学起,经过16年的学习,你从专业本科毕业后,必须完成以
下几门专业课程的学习:计算机组成、操作系统原理、汇编语言、数据结构、编
译原理、数据库原理、工程、结构性设计语言(PASCAL、C)、面向对象设计语
言(C++、C#)、计算机网络等,你最好还懂一些算法分析、分布式系统、计算
机图形学、形式逻辑、人工智能原理、设计模式、构架/框架等研究生的
课程,16年来,你积累的除了知识,更重要的是形成最适合自己的学习方法和工
作方法这些是你具备员职业水准的基础能力,不要受什么计算机怪杰
之类传奇的影响,那不过是小概率事件,而且这些怪杰们就算没有读过本科
和研究生,也往往自学了大多数专业课程,很可能比在校学习的学生对这些课程
的精髓部分理解的更好,还有他们的工作方法和思维方式是特别而高效的,但普
遍性差,可以借鉴,不宜模仿好,所以现在你只需要问问自己,那些课程和知
识都学会并掌握了吗?是,那就准备好进行实践了 &&&&&&& &&&&&&二、在实践中提高:成为一名高水平的Coder &&&&&&好了,你毕业了,在校功课都不错,也找了一个专业对口的工作,你想大
展鸿图了,可是别急,你的翅膀还不够硬,不信我们说来看看 &&&&&&通常,你在工作中都会用到某一种单位/公司固定的操作系统和编程语言开
发环境,比如Windows、UNIX、LINUX等操作系统,又比如用VC、VB、PB、Delph、
JAVA、Motif/XWindow、QT、OpenGL、OpenInventor等编程语言和开发环境,我们
在后面把它们合称为开发环境就在校学习的有关开发环境的知识而言,大概你
距工作需要的差距是不小的,当某个操作系统和编程语言环境成为你的饭碗时,
就不应也不能用通过课程/认证考试之类的眼光和要求来评价你的能力,即使你能
考100分你需要深入地学习该操作系统和编程语言环境的各类开发手册的所有内
容,你会说大多数你都用不上,其实你既对又不对,对的是单从使用的角度而言
,你确实用不上开发手册的大多数内容,比如庞大的VC开发类库和复杂的开发环
境,你在实际工作中能用到的不到总数的1/10或1/5,不对的地方在于,你用到的
部分不是孤立存在的,它们是整个体系中的一部分,只有对整个体系有了一个较
完整的了解,才能得心应手、随心所欲地用好你用到的部分,你才算初步具备在
这种开发环境下进行Coding的职业水准(还远不够员的职业水准呢),而这只
是刚开始如何才能真正掌握一种开发环境的全面的知识呢,最原始的办法就是
读开发指南/教程、参考手册,一般来讲,学习开发指南/教程时,你是一个
认真的人,都会完成5/10~7/10左右内容的学习和练习,你想成为职业选手,
就应该完成9/10以上内容的学习和练习参考手册不同,大多数所谓的“员
”们只是用到了才翻翻,这差的太远了,你应该象读开发指南/教程一样,每个环
节都要读,比如VC,参考手册中的每个类,类的每个函数,都要读上几遍,它们
往往是一小伙一小伙地纠缠在一起使用的,开始时读得你毫无头绪、心烦意乱,
不要紧,还有一手呢,你开发环境安装的全面,它们往往都有开发商做的
demo例子可看,你就进入另一个境界了,开始时你关注demo中的具体技术,后来
你发现这些demo的写的都还算不错,结构简单但合理,你真的用心,就
一定能发现一些个别的demo是极品,它所展现的逻辑结构是你设计不出来的
,你现在有点更关心它的设计构架,甚于对你原始目的(某种相关的技术/技
巧)的关注,这时的你,开始了从一名Coder向一名Programmer的转变,你会忍不
住要看看开发商提供的源,比如.h和.cpp,通常你会找到include路径下所有
的.h,你才知道,哇!好多好多东东在参考手册中都没提到,你要学的太多
了,没时间顾及其它的业余爱好了,现在知道为什么员是年轻人的职业了吧
,你要有足够多的时间才行,即使你的智商有160你走到这一步,在你工作
的团队中,已经是经常有人向你请教技术问题,经常有人请求你帮忙debug,你已
是公认的“高手”了,别得意,因为你仍然是个Coder,为什么这么说呢,你想想
,你已深入了解了这个开发环境中的各种技能,知道一名Coder如何用好这些东西
,可是你能设计的出提供给Coder们用的东西吗?唔……,你想了想,可能还不太
行对了,就是这样,你还是一名小我境界的员呢,本质是个Coder,当然已
是一名高水平的Coder了,然而你需要进一步登堂入室才能成为一名真正的员
&&&&&&让我们继续吧,通常你都是从精通一种编程环境开始的,假设你已经较为
精通在Windows下用VC开发了,这时在技术和技巧方面你将面临一小一大两个
挑战,第一个小挑战是公司/单位改换了开发环境,比如用LINUX下的QT交互
语言工具进行开发,你不过是把前面掌握VC的过程再来一遍,由于在主观上经历
了VC工具的学习过程,在客观上各种开发环境都有太多相似的方面,这回你掌握
的应该较快要小心,在这时第一次诱惑之门打开了,因为你感觉良好,看!这
回这么快,我就这么好地掌握了新的开发环境,你开始关注其它暂时还用不到的
同类环境,比如VB、Delph、JAVA,如饥似渴地掌握各种开发工具,证明自己的学
习能力和价值,但你忘了一点,你仍然是个Coder,只不过是一个在好多开发环境
下都能编程的Coder,就像你生活在中国,因而精通了汉语,工作需要你又掌握了
英语,然后你就来了劲,把俄语、日语、阿拉伯语、拉丁语,等等等等,都学习
个遍,我只能说,有点BT你忘了自己是个职业人,同一类的东西工作中用得到
才需学习,太多太多的Coder们喜欢在一起比较和炫耀自己会掌握了几种开发工具
,不信你看看招聘时的求职书就知道了,sigh!他们中绝大多数人永远都只能停
留在这个层次上,心浮气躁,一生都再也当不成真正的员了总结一下,其
实你在这时需要的是对自己掌握新开发环境的能力的自信,而不是一遍遍地重复
来证明自己第二个大挑战就是你明白了只掌握VC是不够的,你发现自己有点浅
薄,有很多东东你会用但你不太懂,很多方面支持VC编程的知识你都没掌握,比
如操作系统的源码、网络协议知识、Windows& &&&&&&的注册表、进程和线程的基础知识、硬件驱动方面的知识、ActiveX、
Windows&庞大的& &&&&&&API,又是一个等等等等,这些基础知识的学习和掌握可是要花费大量时间
的,你再一次深切地感到时间太不够用了,因为这时的你大概有许多俗务缠身了
,所以有点沮丧,还不用提IT业每天不知有多少新东西在发布,KAO,永远都跟不
上,越拉越远了哎!别气馁,振作一点,你还是忘记了自己是个职业人,既然
好多东东在工作中你永远都没机会用,那么干嘛要学呢?用什么才学什么,最多
预测到马上要用什么,先一步学什么好了,要知道没有人是真正的、无所不精的
全科大夫,除非你是神,但你还在耐着性子看这篇文章,你肯定是个人嘛 &&&&&&OK,一般工作后三五年,你经历了上述过程,经受了诱惑和考验,终于明
白了一个道理:你要的是强劲的学习知识的能力,是对某种知识/技能的有深
度的精通,一种摸到它的根的深度,而不是已掌握的技能的种类和数量这时无
论谁用他掌握了多??只有蔑视
通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习IT知识
能力的自信,一个员一生都要不停地进行高强度的学习,用心问问自己,有
没有这个自信?别用虚荣心来骗自己哦,没有的话,那就不必花费你宝贵的
时间向下看了,作者在此感谢你有耐心看到这里,现在建议你关闭这篇文章,趁
着年轻,当机立断转行吧! &&&&&&三、注重逻辑:成为一名职业员 &&&&&&好,再前进一点点,你就要成为一名职业员了,让我们继续来完成这
个任务吧!我们在前一节提到过,“你发现一些个别的demo是极品,它所展现的
逻辑结构是你设计不出来的,你现在有点更关心它的设计构架,甚于对
你原始目的(某种相关的技术/技巧)的关注”,其实你是在关注这个demo作者
的思维逻辑,所有的本质就是逻辑技术你已经较好地掌握了,但只有完成
逻辑能力的提高,你才能成为一名职业员打一个比方吧,你会十八般武艺
,刀枪棍棒都很精通,但就是力气不够,所以永远都上不了战场,这个力气对程
序员而言就是逻辑能力(其本质是一个人的数学修养,注意,不是数学知识)逻
辑能力也是逐步提高的,开始时你一定是用直观的逻辑能力来编程的,怎么想就
怎么编,不对就再改,在改进中提高自己的逻辑能力,从直观逻辑能力提高到抽
象逻辑能力,这是很正常的提前说一句吧,到达逻辑能力的至高境界,其表现
是用数学语言来描述问题和问题的解决办法,高度抽象!好,说回来吧,你要提
高逻辑能力,最快的办法就是读别人写的结构优秀的优秀的代码是百读不
厌的(这句话是我抄来的),暂时放放对其中某种技术和技巧的关注吧,你要推导
和学习的是这些好的逻辑结构,它们是被精心设计出来的你可以先捂住这
个demo,自己设计一个功能相同的结构,然后比较一下demo的结构
,差距较大,那你就不应简单地改进一下,而是要把demo作者设计的过程在
心里复原一遍,做到这一点也许有点困难,但这种事干的多了,你就会越干越快
,越来越得心应手,你的逻辑能力飞速提升,你能看得上的逻辑结构优秀的
开始不多了,下一步就是练习从工作中开始吧,你有空闲,你需要做至少
两类练习,一类是算法练习,所有的经典算法都是经典的逻辑,题目有的是,像
个好学生一样吧,每年的国内国际编程竞赛都有逻辑要求非常高的题,你可以只
选一两道难题来做做当你可以把复杂的单递归(只有A调A)变成非递归
时,已经不错了,你能看得懂双递归(A调A、A调B、B调A、B调B都有),
我为你鼓掌!你不必往下看了,我有点不好意思啦DD班门弄斧,你快滚蛋吧!
另一类是把以前和当前你工作中你不满意的推倒重新设计一遍,这非常重要
,省时省力,因为你熟悉需求,技术上也没问题,目的就是改进的逻辑结构
,很划算哦,唯一要克服的就是:你对推翻以前工作中那点小小成就的心理障碍
,你真想优秀,说句粗话:这点心理障碍算个屁,一遍遍反复地推倒已有的
成果只能使自己快速进步,放手干吧,没什么好可惜的,马恩早就在《共.产.党
宣言》里说过了:在这个过程中,你失去的只有锁链(禁锢你思想的锁链) &&&&&&让我们来总结一下,经过自我否定后,再生的你尽管对过去的“业绩”还
有一些眷恋,但已是一个初步具备职业水准的员了,掌握了相应的技术和技
巧,具备了较高的抽象逻辑思维能力,最主要的特征是:能自觉地自我否定,不
断地追求更高水平的逻辑能力 &&&&&&在这个过程中,你能注意以下一些小的方面,你前进的步伐也许会快
一些 &&&&&&l&&&&&&&&& &&&&&&从编译原理的角度来理解你工作中使用的高级语言,你做到这一点,
至少有两个好处,第一个好处是避免一大堆低水平重复出现的编译错误一名优
秀的Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制
在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求
一次编译通过,而一名职业水准的员,应该进一步做到即使用purify这类的
工具来检查源码,也不会存在严重的内存泄露第二个好处是可以提高源码的可
读性和效率规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括
号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响执行的效
率,反过来,控制好递归调用和循环内的if语句才是提高效率的关键,要全
力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归转换成非递
归,要求还是较高的哦! &&&&&&l&&&&&&&&& &&&&&&避免思维陷阱,只要你是人就一定有自己的思维惯性,这一定又会表现在
你的逻辑中,有时你就是从这个惯性中跳不出来(谁都有这个时候),但要心
里有数才行,所以你需要帮助,你有几个水平相若或更高的职业伙伴,太好
了,当遇到花30分钟还打不下的bug时,就别浪费时间了,找他们吧,最要紧的是
能思路清晰明确地表述你的问题,通常你自己在这个过程中或者伙伴中就有人把
问题解决了,又快又好另外,有几个可以良性竞争的职业伙伴是人生的一件幸
事,1+1>2,大家各有所长,你最好做到及时公开你的成果,技不压身嘛,IT发展
的这么快,你再优秀,那点东东也没有什么值得隐藏的,所以你可以技术或水平
不够高,但千万不可以让真正具有职业水准的选手鄙视你的职业品质和行为 &&&&&&l&&&&&&&&& &&&&&&有自己debug的特点,下面的说法作者不敢太肯定,只是经验之谈即使在
VC这种高度完善的开放环境下,你仍然应该要求自己仅凭打印语句就能debug这
也有两点好处,第一个好处是,遇到bug你会认真想问题所在,而不是用debug工
具一步步简单地追踪卡在哪儿了,你定位bug范围的方式是从大到小、从粗到精,
这是一种自顶向下的思维方式,而用工具追踪,容易形成自底向上的思维方式,
这不算好,你应该先看到森林,再看到树木我反复提及:就是逻辑过程,
大多数从main函数开始,是由数据结构和功能子组成的一个树形结构的
逻辑过程(要认清即使是面向对象的语言也是一样的),它的执行过程是深度
优先的,但你定位bug应该是广度优先的,好好想想这一点,嗯?第二个好处是强
迫你思考并记住而不是用工具看到调用过程,你大脑的抽象逻辑思维能力和胳膊
上肌肉的力量一样,都是练出来的,你的bug是结构上的逻辑错误引起的
,这一点就非常重要了,顺便说一句,最难打的bug就是逻辑结构错误导致的
bug你要是真正明明白白地认识到这儿了,那我就没什么东西可以告诉你了总
之,员的职业水准:生产效率和质量,主要是取决于源码中bug的数量和
debug的速度,而不是取决于编写源码的速度给你一个我自己定义的考查一个职
业员的指标:一个合格水准的职业员,编程的时间算一份的话,其
累计debug的时间不能超过一份,真正职业高手累计debug的时间应该控制在0.5份
以下,如何?你关上门悄悄问问自己,你花费在编程和debug上的时间比例是多少
?你把员作为自己一生的职业,那么就永远都要牢记一点:追求做一个0& &&&&&&bug的优秀员!这是任何一个想成为职业员的人的理想,请相信:
坚忍不拔地追求实现这个理想将让你出类拔萃! &&&&&&l&&&&&&&&& &&&&&&做好的单元测试,这是另一项考查你是否是一名具有合格职业水准的
员的一个必要指标其实在你拿到需求的时候就要准备单元测试用例了,并
且这些用例将直接影响你的详细设计(有关设计本来是该放在第四节讲的)
我们还是打比方吧,当你拿到一个需求时,除了分析它静态的功能外,还应明确
它动态的操作/执行过程,把这个动态过程明确地用流程图画出来,比如分为A~Z
的26步,其中A又可以进一步分解为A1~A5的5步,直到不能再分解为止又比如
说A3步不可分解了,那么你应该把A3步的正常操作和所有五花八门的异常操作都
列出来,确保正常的操作肯定正确,异常的操作起码不退出才行这样你就
要写好多好多的测试用例,说句老实话,我也从来不写!但我一般会列一个提纲
,比如A3步有正常的操作a、b、c、d、e共5项,异常的操作有f、g、h、i、j、k
、l、m、n共9项,你在进行单元测试时都应该跑一遍,这样的都还不敢说质
量如何好,但起码可以说较稳定吧!要想在进行单元测试时干得快、效率高
,那么在进行详细设计时,你就应该把A3步中对所有正常操作和异常操作的判断
都设计好,在编程实现A3步时,使得的结构合理高效,对不对?所以,
你在工作中是割裂地看待工程中从需求、分析、设计、编程、测试等各个环
节,恐怕水平很有限喔!但你在分析需求时就能看到测试的问题,并改进设
计和实现,为此做好相应的准备工作,嘿嘿,整个开发过程你的效率会高很
多,通常你在一个开发团队中就会高度自信的,你已越过当一名偏颇、露骨的高
手的境界,成为一个平静的高手,这可是The& &&&&&&best&in&the& &&&&&&best!,用周星星的话说:是高手之高高手,因为别人看不出你高在哪儿
,没见你有什么高招或特拚命干,但反正你就是干得又快又好、又省力关于进
行单元测试还有很多复杂的方法,在此本文只提到了最基本的一点,目的是让你
在工作上考虑周全、安排有序,其它的自己琢磨吧,没有人能替你吃饱饭! &&&&&&l&&&&&&&&& &&&&&&你是用C++编程,我再简单谈谈有关内层释放的一个小技巧,就是对
所有你编写的类,在构造和析构函数中加打印语句,统计每个类在运行时构
造和析构的地方,是配对的,那么起码没有对象类一级的内层在运行结
束时没有释放,然后你就可以把打印语句删掉了,招数虽土,但管用! &&&&&&l&&&&&&&&& &&&&&&还有其它一些好习惯,在这里我随笔写一些,你要是有不同看法也请一笑
过之吧编程时应该对齐缩进,一个缩进用一个tab键,一般是4个空格,严格遵
守开发团队的编程规范也是非常重要的一个子不应超过30行(不算空行),
其内多重循环不应超过3层,否则都应该分裂成两个子,个别算法可以长
一些,但也不宜超过200行通常一个类的所有成员函数总和不宜超过1500行,多
了就应该考虑分解成两个类(这个工作最好在设计时就完成)每完成一小段
,比如15~30行,就立即编译运行,不要假装高手,先敲它一大堆,再编译
运行,妄想一次成功,体验一种假爽的、虚荣的快感,或炫耀给别人看,这么做
只能证明自己是一个不折不扣的傻瓜,装酷而已因为只要有一次不成功,你就
会花费大量的时间来调,别人的进度在这时就远远地超过你了,平常心是道
,还是修炼真功夫吧!孙子兵法里关于这一点有明确的阐述,我就不引用了,但
建议你真的不要这么干,除非你确实就是这样总是一次就成功的天才,那你还看
这篇文章干什么呢?我又不是写给你们这些天才们看的再就是有学会买好书、
读好书,关于计算机和方面的书太多了,时间有限,比如有一个叫侯捷的家
伙,几乎写的每本书都不错,张国峰的C++编程也不错,这只是我的个人意见啊
,好书多着呢,列出来比这篇文章长好多倍,我就不多说了还有一招,要是你
运气好,能搞到一些著名系统的源码,好好读读吧,在此我只能告诉你,
Linux操作系统的一些源码不错,是开放的,你可以合法地搞到,其它的不要说是
我建议你侵犯知识版权啊! &&&&&&四、天生神力:成为系统分析员 &&&&&&本来就论述如何成为一名职业员而言,本文已基本完成任务了,但《
菜根谭》有言:竭世机枢,似一滴投于巨壑,穷诸玄辩,若一毫置于太虚既已
乘兴到此,何妨多置一毫于太虚呢,作者不才,干脆尽兴写算了 &&&&&&你要是运气好,直接进入了一个严格规范生产的企业就业,刚开始就
应该是按别人做好的设计来实现编程,你可以有机会直接学习设计,当
你积累的足够多了,能够对其中的一些设计提出好的改进建议,而且干得又快又
好,就会渐渐地展露头角,我相信你终有一天成为一名设计人员(注意,不是
产品设计人员),步入系统分析员的行列,但这还需其它的一些条件和自我修
炼你在一个不规范的企业工作,那也不错,你很可能直接就有机会进
行设计,然后开发、测试,甚至还不得不自己定义需求,把开发过程的
各个环节走一个遍,当然这样对你的要求更高,而且你也不容易得到及时有益的
指点,在正态分布的情况下,你应该是成长的很慢但不管就业的单位如何,如
果你决心要成为顶尖职业选手,通常什么客观困难都阻挡不了你,然而你个
人的因素可能会阻止你的前进下面提出的观点纯属一己之见,伤人自尊之处作
者在此提前道歉,并建议你除非对本文有强烈的兴趣,否则就请直接看第五节或
放下别看了丑话已说在前头了,在各种开发组织的发展过程中的事实也证
明,只有少数员能成为系统分析员,我想这一点不是我杜撰的吧,因此你要
是在看接下来的部分时感到气愤难当,那也实在没着,纯属活该,因为作者只是
在说明自己的观点而已,你最多可以呲之以鼻,表示一下你的轻蔑好了,但没有
任何理由可以骂人! &&&&&&作者自己没有到微软面试过,但身处行业,关于微软的许多东东当然
还是有耳闻的,据说微软招聘一名员要过五个已经成为微软员的面试关
,而且是一票否决制,又据说大多数面试题并非编程,而是一些有关逻辑和智力
的题,作者私下也做过许多流传的微软面试题,并对此做法深以为然的本
质就是逻辑,所以几十年前就有人提出编程是一门艺术,而艺术是要靠天份的,
这一点少有人反对一个人的逻辑能力可以不断提高,但其能到达的终极逻辑能
力的层次必定为其天生智力所限制,这一点就让人不易接受了好笑啊!人们可
以公开承认自己没有某种或全部的艺术天份,但要说自己逻辑天份不够,换句话
说承认自己笨、IQ不够高,往往是要怒发冲冠的,其实这又有什么区别呢?话都
说到这儿了,再次建议你不够自信,就跳过这一节吧,直接看第五节,好吗
? &&&&&&好了,把话题说回来,你已经成为一门合格的职业员了,要想成
为从事系统设计的职业系统分析员,第一件事就是悄悄找一个标准智商测试
的网站或其它渠道,严格认真的测一测自己的智商,IQ低于130& &&&&&&(正常智商是110),就请别费劲了,打消掉成为系统分析员的念头吧!好!
好!先请你冷静一下,好好想想,其实微软面试时就是在测你的智商和逻辑数学
素质呢,这就是本节的标题为“天生神力”的原因,因为设计就是从无到有地进
行创造,无论是还是其它行业都一样,可以有借鉴的,没有现成的,设计就
是创造!你IQ在130以上,又决心要当一名职业系统分析员,其实你不过
是要准备好吃更大的苦而已,有什么好虚荣的呢? &&&&&&修炼还是从基本功开始的,过程和成为一名职业员差不多必须使用
设计工具这一点是不用多说的在工作中,你基本上遇到的是两类方式的设计,
一个是结构化设计,另一个是面向对象设计,就个人经验而言,面向对象的设计
更好你工作中不得不采用结构化的设计,你必须熟练地掌握数据流图和控
制流图的分析和设计,一般来讲,你把一个中用到的数据模型设计好了
,针对功能化的流程,不难设计出数据流图,但下一步设计控制流图才是挑战,
你按照需求走不通设计好的控制流图,那么你或别人在按照这个设计编程实
现时,必定也走不通,没有奇迹会发生,还是在设计阶段严格要求吧,又有一点
需要牢记:返工是最慢的当你在进行控制流图的设计时,也不要妄想得到需求
人员提供给你明确的指点,通常他们要是能够把需求的功能和操作次序写完整的
话,你应该就感恩戴德了,从需求中整理出功能、操作的拓扑次序和条件是你作
为系统分析员的职责看看,要是没有一点图论的基础和拓扑学的入门知识,你
是当不好一个职业系统分析员的,即使你天赋不错,必要的数学和逻辑素质仍然
不可或缺也不用气馁,永远没有最好的设计,只有更好的设计,反复地进行设
计迭代,勇于推翻旧的设计,你将快速进步你在工作中是采用面向对象进
行设计的,那就更有利了,有关面向对象设计的书太多了,不用作者在此多费口
舌,建议精读一本经典的书,比如北大邵维忠等编译的《面向对象的分析》,有
些方法和技巧可能过时,但其逻辑的基本原理是非常正确的,其本质是,你在逻
辑上是如何认识这个世界的,你就是如何设计体系结构的,然后读读其它书
,触类旁通,自己创造机会多实践,成功自然会到来的,总之,不管是结构化设
计还是面向对象设计,评价一下自己的系统设计方案吧,有好多指标呢,比
如是否均匀和平衡?局部独立性强不强?有没有歧异的结构?有没有层次太多或
太少?有没有某个层次太大、太广?是不是逻辑结构先复杂了再化简的?还是只
会设计简单的,复杂不起来(这一点是笨哦,出现多次,请你不要意气用事,
转行吧)?最重要的一点,是否容易理解、实现和改进?你自己会得出评价的如
果有机会看到别人的设计,一定不要错过学习的机会,自己推导一遍,认真比较
比较,获益会较多 &&&&&&走到这一步,你就应该关注设计模式了,首先还是学习,这方面的好书有
的是,但一般在工作中用到的设计模式较为单一,应该多尝试一下其它的设计模
式其次必须要明白设计模式不是设计思路,也不能代替设计思路,比方你要从A
到B修一条路,设计模式只是让你选择,是修水泥的还是柏油的?是高架路还是普
通的,但线路必须你自己定,而线路就是设计思路,模式对思路是有影响,但不
能代替,所以你的智商高达250,我相信你直接用汇编语言也能写出面向对象
的来第三在此有一个陷阱,很多系统分析员生搬硬套设计模式,全然不懂
如何融会贯通,在你的一项具体工作中,往往是以一种设计模式为主,其它模式
为辅的,思维不拘泥于形式才是关键,而且也为你到达更高的设计的境界做
好准备 &&&&&&唉!都不知该怎么向下写好了,因为已达到作者水平的极限了,我胡乱说
一点,你凑合看吧设??这
句话是李小龙说的,不是我说的再拾人牙慧一把,类比一个故事吧,金大侠在
《倚天屠龙记》里讲到张无忌初学太极,学会的标志是把刚学的招数全忘了,记
住的是太极的道理和精神,和李小龙有些相似喔,设计也一样,忘记所有的
设计模式,随心所欲进行设计才是至高境界,所以你能到达多高的设计的境
界最终将取决于你的哲学素质,这一点实在是不好写啊,你自己领悟吧!作者只
有祝福了! &&&&&&五、职业人的终极目标:全面修炼,成为Leader &&&&&&这一节更不好写,涉及到太多其它非技术方面的因素,特别是个人人生观
和世界观的修炼,本帖的点击率超过作者私下期望的一个数值,那我就争取
尽力厚着脸皮再补上吧我只说一句,虽然大家都知道开发是一个团队性的
工作,但追求参与一个大型系统的成功开发,是一名人员的本能,就像
拿破仑说的不想当元帅的士兵不是好士兵,所以不追求实现大系统的人员,
也不是一个好的职业人员,但你只有成为Leader,领导一个优秀的开发
团队,才有机会实现这个终极职业目标,对不对? &&&&&&好吧,不管你现在的感受如何,我都谢谢你能读到这里!我不习惯假歉虚
,就不说什么作者水平有限,本文抛砖引玉,欢迎大家批评斧正之类的客套话了
,虽然作者水平确实有限所以我认为你尽管有权砸砖,但实在没必要搞回帖、
或回骂、或顶之类的玩意儿,我只是尽兴写一点多年从事开发工作的体验,
因此接下来我就高挂免战牌,不回复任何回帖了再次谢谢你能有耐心读到这里
!希望本文对你有所裨益,祝你成功!再见!
向好友推荐本贴:&&&& 标题:《修炼一名程序员的职业水准& 转贴》&&&& 地址: .cn/Article/200604/showp1.html
发表您的评论
点评字数 0
?尊重网上道德,遵守中华人民共和国各项有关法律法规
?承担一切因您的行为直接间接导致的民事刑事法律责任
?本站管理人员有权保留或删除其管辖留言中的任意内容
?本站有权在网站内转载或引用您的评论
?参与本评论即表明您已经阅读并接受上述条款
?共同建立健康的网络社区,请向管理员举报不良帖子
?举报邮箱:

我要回帖

更多关于 程序员一年经验工资 的文章

 

随机推荐