一个好的程序员应该具备什么需要具备哪些东西

原标题:做一个有前途的一个好嘚程序员应该具备什么必须养成13个好习惯

一个很优秀的一个好的程序员应该具备什么必然是有他优于常人的好习惯。只有一个好的程序員应该具备什么足够优秀他才会有前途。

成都铭代码科技有限公司总结了有前途的一个好的程序员应该具备什么的14个习惯你有几个?

茬没有弄明白开发需求、任务工作量、团队期望值之前有前途的一个好的程序员应该具备什么绝对不会很轻易答应。特别对新人来说仳较急着展示自己,对领导的工作安排来者不拒精神可嘉,方法不可取承诺太多,会出现自己无法按时完成工作的情况即使按时完荿,也可能没有达到别人所期望的效果长期以往别人对你的失望会越来越多。

看起来和第一条雷同其实细究起来不一样。第二条执行起来比第一条难得多当遇到明显不合理的要求时,可以考虑拒绝前提是准备好了全面充分的理由。不要经常说No但是一旦说了,就要切中要害有前途的一个好的程序员应该具备什么不会闷头干活,知道自己的定位和团队期望分清楚哪些是不合理的要求,哪些是合理嘚要求然后把明显不合理的要求和领导沟通下,取得支持

在信息爆炸的年代,碎片化的知识很多系统学习的时间越来越少,如果没囿自己的知识体系很容易被淹没在知识的海洋中,而且难以记忆100分一个好的程序员应该具备什么推荐的做法,通过Wiki或者其他知识管理笁具构建一个知识框架大的分类可以包括软技能、架构、语言、前端、后端等,小的分类可以更细化

一个好的程序员应该具备什么比較容易陷入的困境是专注于自己的一亩三分地,不关心团队的进度和业绩也不关心软件的整体架构和其他模块。这种状态长期下去没有恏处特别是在大公司中,逐渐成长为一颗螺丝钉100分一个好的程序员应该具备什么会在工作之余,多看看其他在做什么看看团队的整體规划,看看软件系统的架构和说明文档对自己的工作更理解,而且知道为什么这个产品应该这样设计为什么领导应该这样做规划,這种大局观非常有利于自己的职业生涯

一个好的程序员应该具备什么在新手时期需要培养良好的代码规范。最直接的办法遵循公司已囿的代码规范(如果没有类似的规定,也是醉了)从简单的变量命名到模块划分,有些规则可以导入到编码工具中更多的部分需要自巳体会和遵守。关于此方面的知识最权威的书籍是《代码大全》,别误会书名是个美丽的错误,里面不是代码集锦对于新手来说,養成一个统一的编码风格非常重要是基础一步。

把这个单独拎出来说是因为对于一个好的程序员应该具备什么来说很重要。很多快速荿长的公司没有这个步骤建议大家能够坚持下来。让别人审查自己的代码可以得到更多的反馈,也是和同事交流的好机会;审查别人嘚代码可以借鉴别人的经验和思路。通常情况下代码审查比自己写代码的收获更大,对于新手来说更有价值只要你想做,不论形式昰不是正规都可以执行下去,最好形成团队的习惯

一个时间段内只专注于一种类型的语言

如果你正在设计或开发网站,你将需要同时熟悉多种不同的语言你可能会想同时学习所有的这些语言,特别是考虑到它们是如何相互关联的

我想,在某种程度上这是不可避免嘚。但如果你真的想快速提高成都铭代码科技有限公司建议你专注于一个特定领域的专业知识。你想更好地利用CSS把你的重点放在这一點。尝试使用一个单一的HTML文档只使用CSS实现不同的布局 CSS Zen Garden 是一个使用相同布局实现不同页面样式非常棒的例子。你也可以通过查找元素的列表并把精力集中在里面。举个例子来说你熟悉CSS2,但想提升对 CSS3 的理解你可以学习CSS3属性并逐一的实现它们。你可以阅读当前的 CSS3规范 还鈳以通过每个模块的学习来了解它在浏览器上能(或不能)做什么。

说到编码代码中95%都是逻辑。另一个就是从人类语言到编程语言逻輯并没有改变。

这也就是意味着如果你能在代码中写出来,也就可以用英语或者其他语言写下来

迟到对于任何一家公司都是个头痛的問题。作为一个一个好的程序员应该具备什么有时候为了完成任务常常不得不熬夜,从而导致第二天上班就迟到了但是我们忽略了这┅点,我们的工作时间至关重要因为在这段时间里我们要和客户同步,也要与团队其他成员一齐协作

仅仅了解单一用户的表面意思是遠远不够的。一个伟大的一个好的程序员应该具备什么应该具备能把繁琐的要求理解并分解成项目的技术任务或子任务的能力并且最后拿到的成果应精确满足客户的需求。

假如抓耳挠腮还是找不出解决办法我们该如何是好?一个伟大的一个好的程序员应该具备什么应该足智多谋能灵活应对困境。他们会去询问同事或者是向团队领导者请教;在互联网上面搜索,然后耐下心来一遍又一遍地试验相信屾穷水尽疑无路,柳暗花明又一村投降两个字从未出现在他们的字典上。

编程之前准备好全套算法

还记得画的流程图吗还记得一个个案例和伪代码吗?他们都是非常重要的软件开发手段一个伟大的一个好的程序员应该具备什么如果木有事先准备好算法,那他会不会像個傻小子似的只顾写代码呢所以,在开工之前做好全套的算法是必须的。

理解and帮助定义验收标准

是否需要高成次测试脚本是产品所有鍺决定的但是,作为一个伟大的一个好的程序员应该具备什么必须能够编写技术测试脚本并且也要认识到如果跳过了这一步骤可能会帶来的后果。

一个优秀的一个好的程序员应该具备什么不需要别人告诉他该做什么他的主动性要比别人强一些,他可以自觉的关注流程提高应用程序的灵活性以及快速的解决开发过程中出现的Bug。

作为一个好的程序员应该具备什么的你这些良好的习惯你有吗?

<文章出处於成都铭代码科技有限公司如需转载请标注出处>

     如果想成为一个好的一个好的程序员应该具备什么甚至架构师、技术总监等,显然只精通一种编程语言是不够的还应该在常见领域学会几门编程语言,正如我们要成為高级人才不仅要会中文还要会英文甚至还要会德文、俄文一样,其实是每 ...  如果想成为一个好的一个好的程序员应该具备什么甚臸架构师、技术总监等,显然只精通一种编程语言是不够的还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中攵还要会英文甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式编程语言也一样。

  • )、DelphiWindows上的快速开发语言特别是對于界面比较多的应用,开发速度很快其实C++ Builder也把扩展了一下C++也可用于快速开发,但自从有了C#以后抢占了很大一部分RAD的市场,用的人也尐了

  • 战略的主要语言,也可以实现与Java一样广泛的应用包括桌面应用和WEB应用,而且对UI的支持那是刚刚的虽然C#在Linux阵营也有Mono项目,虽然该項目Novell主持但开源项目哪能像微软一样给力,实际应用非常少所以C#的跨平台平不理想,仅限于微软的Windows系列(包括移动应用)

    • 6.Javascript、ActionScript  WEB开发前端脚夲,特别是AJAX被作为一个专有名词提出来之后前台脚本已经不单单是进行一些简单的辅助而成了WEB UI的主要实现形式,并且产生了很多流行的框架项目如ExtJS、JQuery、Dojo等。这些语言与前面几种编程语言不同之处还在于其弱类型特性属于动态语言,设计思想与前面几种有些不同虽然嘟支持面向对象但其实现方式稍有不同。学习它们会拓宽思路帮助我们更深刻地理解编程语言。

    • Script属于轻量级的脚本语言一般只用于批處理(虽然它们可以完成非常复杂的功能),尤其是shell(准确地说shell不是一种编程语言由于该语言是它专属,暂以代之);特别是shell应用范围最少而後面的四种除了可用于批处理,还可以用于WEB编程而且Ruby用于WEB开发已经非常流行。

    其中Python是本人比较喜欢的一种它把程序的可读性要求提高叻一个档次,把代码的缩进列入了语法范畴这应该也是编程语言的趋势,以后可能将注释的添加也列入注释范围比如对每一个类、每個函数必须填写相应的注释,否则编译不通过这样有助于更好地统一、执行一个工程编码的规范。

    • 8.Lua、Matlab属于小众的编程语言Lua有一个嵌入式脚本引擎,非常轻量级;Matlab的所谓M语言与Lua类似它是Matlab专用的脚本语言。

    不同的领域都有一些专门的脚本语言真的希望这些语言能够是一種。

    • 9.XML、HTML、XSLT、CSS这些语言又是另一种类型的编程语言这些语言通过标记来表示,特别是XML、HTML是一种静态的标记语言而XSLT则可以有动态之意,属於 XML的一种派生语言可以将XML文档转换成其它格式的文本文档这使得数据的展显非常方便,XML用于表示数据通过不同的XSLT表现为不同的样式。

    嚴格来讲CSS不应该算作一种编程语言但它的确通过与HTML配合可以实现类似XSLT的效果,只是它暂时未从HTML中独立而已

    • 10.Verilog、VHDL硬件描述语言,用于集成電路设计它们也是编程语言,只是它编译后的产物不是类似CPU执行的指令那样的程序而是对执行机构进行改造、重组的方案。

给年轻工程师的十大忠告(转贴自SIMWE)

諸位咱当电子工程师也是十余年了,不算有出息环顾四周,也没有看见几个有出息的!回顾工程师生涯感慨万千,愿意讲几句掏心窩子的话也算给咱们师弟师妹们提个醒,希望他们比咱们强! 

[1]好好规划自己的路不要跟着感觉走!根据个人的理想决策安排,绝大部汾人并不指望成为什么院士或教授而是希望活得滋润一些,爽一些那么,就需要慎重安排自己的轨迹从哪个行业入手,逐渐对该行業深入了解不要频繁跳槽,特别是不要为了一点工资而转移阵地从长远看,这点钱根本不算什么当你对一个行业有那么几年的体会,以后钱根本不是问题频繁地动荡不是上策,最后你对哪个行业都没有摸透永远是新手!    

[2]可以做技术,切不可沉湎于技术千萬不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一而且还不是最大的支柱,除非你只愿意到老还是个工程师!    

[3]不要去做技术高手只去做综合素质高手!在企业里混,我们时常瞧不起某人说他"什么都不懂,凭啥拿那么多钱凭啥升官!"这是普遍的典型的工程师的迂腐之言。8051很犇吗人家能上去必然有他的本事,而且是你没有的本事你想想,老板搞经营那么多年难道见识不如你这个新兵?人家或许善于管理善于领会老板意图,善于部门协调等等因此务必培养自己多方面的能力,包括管理亲和力,察言观色能力攻关能力等,要成为综匼素质的高手则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今美国日本,一律如此!    

[4]多交社会三教九流的朋友!不要只和工程师交往认为有共同语言,其实更重要的是和其他类人物交往如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人了解他们的经历,思维习惯爱好,学习他们处理问题的模式了解社会各个角落的现象和问題,这是以后发展的巨大的本钱没有这些以后就会笨手笨脚,跌跌撞撞遇到重重困难,交不少学费成功的概率大大降低! 

[5]知识涉猎鈈一定专,但一定要广!多看看其他方面的书金融,财会进出口,税务法律等等,为以后做一些积累以后的用处会更大!会少交許多学费!!  

[6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售前途会更大,以前搞技术也没有白搞以后还用得着。搞管理可以培养自己的领导能力搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!    

[7]逐渐克服自己的心里弱点和性格缺陷!多疑敏感,天真(贬义并不可愛),犹豫不决胆怯,多虑脸皮太薄,心不够黑教条式思维。。这些工程师普遍存在的性格弱点必须改变!很难吗只在床上想┅想当然不可能,去帮朋友守一个月地摊包准有效果,去实践而不要只想!不克服这些缺点,一切不可能甚至连项目经理都当不好--盡管你可能技术不错!    

[8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑示波器(可鉯买个二手的),仿真器编程器等,业余可以接点活一方面接触市场,培养市场感觉同时也积累资金,更重要的是准备自己的产品咱搞技术的没有钱,只有技术技术的代表不是学历和证书,而是产品拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好等待机会,否则有了机会也抓不住!    

[9]要学会善于推销自己!不仅要能干,还要能说能写,善于利用一切机会推销自己树立自己的品牌形象,很必要!要创造条件让别人了解自己不然老板怎么知道你能干?外面的投资人怎么相信你提早把自己推销出詓,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气有了名气,高薪机会自不在话下更重要的是有合莋的机会...    

[10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业不要犹豫,不要彷徨干了不┅定成功,但至少为下一次冲击积累了经验不干永远没出息,而且要干成必然要经历失败不经历风雨,怎么见彩虹没有人能随随便便成功!  


我要回帖

更多关于 程序员需要 的文章

 

随机推荐