以下这篇文章应该是从哪里摘抄过来的,但时间过去比较久,已经忘记。
至于,为什么今天又贴出来呢?我觉得写的不错,也有类似感受。
前言
编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。
编程是一个没有极限的职业,所以要成为一个成功的程序员,你必须超越现有已存在的极限。在程序员职业生涯的开始阶段,他们将面临许多挑战,面对困境,他们之中有一些人将会放弃,而只有少数人会坚持到底,并成为这个领域的领头羊。
是的,编程有时候很有趣,但更多的时候很枯燥,需要强大的内心,坚持,才能有所突破。
工作过程中,其实更多是解决问题,在问题没有解决之前,都是一次次挑战,大部分人都受不了,坚持不下去。这也是为什么,程序员工资相对其他岗位尚可。
要成为优秀的程序员,架构师,以下几个阶段是必不可少的:
入门阶段:大概1年
1.调试技巧
程序员不但需要创建代码,而且当软件不按预期方式工作时,程序员还必须能够快速而有效地解决问题。所谓解铃还须系铃人,99%问题都是程序员自己解决起来效率是最高的。因此不管什么项目、软件,学会调试,掌握必要调试技巧都是很重要
因此,与其更改所有代码,还不如在创建程序时制作适当的流程文档,以便你可以快速检查代码并尽快找到问题。制作正确的文档可以方便你快速调试程序,而不浪费时间。
像常规第三方辅助工具,像GDB之类,那是需要很熟练才可以。编写代码的时间肯定小于调试的时间,事先不充分调试,事后等着哭吧
初级阶段:1~3年
2.解决问题的技巧
当一名普通的程序员获得项目/模块时,他们会直接写代码。但一名成功的程序员会试图找出代码出现问题的根源,并通知团队领导或项目负责人。因为有时在文档化项目需求并启动项目后,或者甚至在完成项目后,我们才会在项目中遇到一些问题。所以最好在出现问题之前先找到问题。
此外,快速地找到解决问题的方法。
工具辅助:可以大概猜测问题所在
排除法,二分法,等等定位问题。
仔细观察问题发生的现象(条件)---猜测哪些地方可能导致---仿真、日志分析(过程输出),验证你的猜测---继续实验。
能够证明是对的,证明不对的。都是好方法。
3.对工作的热情
我们的工作时间大多为朝九晚五,但是当你对工作迸发激情时,那么不要到了休息日就将工作束之高阁。一直工作直到完成它。当然,我的意思不是说如果你没有解决方案,还得成天垂头丧气对着电脑,我的意思是如果你已经接近于完成的时候,那么索性一鼓作气搞定吧。(做事不拖拉,也是必须的;如果问题比较容易解决,应该是快速解决)
你的经理或高层将会欣赏你的工作,并且当你有一个良好的环境时,你的激情将会越发高昂。
另外,在没有工作的时候也不要无所事事。不妨尝试构建一些新的应用程序(局部重构?优化工作一直持续的。。。),这将有助于使你更加热爱你的工作。
如果你完成了自己的模块,不妨抽点时间熟悉下你前置模块跟后置模块的基本功能,这对你理解业务很有帮助,也对你今后做好更好的模块有很大帮助
中级阶段:3~5年
4.愿意学习新技术
随着技术的不断进步,我们学到和实施的技术会很快地过时。所以,作为一个程序员,你就需要更新你的技能,保持与时俱进。市场上出现的所谓新技术通常由一些进程和语法变化而构成,但逻辑是相通的,所以你可以很快地掌握它。
怎么学习新的语言?当大家没有人熟悉这一方面的?如何自学?从哪些地方入手?怎么算学会了呢?
5.团队心态
作为开发人员,你始终是团队中的一员,因为你只有在设计师、业务人员、分析师和销售人员等团队成员的帮助下,才能非常高效地实现你所期望的成果。
如果你不能和团队实现合作,那么你将永远无法达成目标。
都很重要,一个软件要得到不同人认可,是非常困难的。因此,必须要保持团队精神,并且乐在其中才是重中之重。团队,不仅仅是同行的,像业务、项目经理、产品经理都是的
有时候,别人会帮你拓宽思路,不局限在一个死胡同里。
高级阶段:5~以上,自我循环
6.业务视角
在IT公司任职程序员很容易,但完美型程序员总是会专注于业务目标。这样你才能从高处超越而不仅仅只是工作于应用程序。只有以业务为重点的程序员才能为提高新项目的效率和运营提出可能的建议。
软件做出来最终是拿来使用的,一个不好用的软件我觉得是个失败的软件。
站在用户角度、多关注业务需求、提炼成代码,才是正确的方法
7.不气馁
因为截止日期的紧促,所以编程也是一个高压的职业。更有的时候看上去我们似乎一事无成。那些蹩脚的程序员可能会因此而气馁而停止工作。但伟大的程序员会冷静地处理紧张局势,然后继续奋斗。
招聘的时候:一般都有“能够承受压力”,就是指这个
8.懒惰…我的意思是更高效!
当有很多任务并且快没有时间来完成项目的时候,这时只有“懒惰”的程序员才能找到更好和最快的解决方案,因为他非常了解如何才能事半功倍。
如果你想找到做事的最好方式,那么就去问懒惰的人;很多时候这些所谓的懒人会找到最好、最快和最有效的方法,因为他们总在试图寻找更高效的路径方法。
这里也不绝对,因为有时候,往往最笨的方法是最有效的方法,要灵活多变。
这个,需要经验的积累。每个软件做完,得学会总结整理,时间一长你就会积累很多,而这些积累都将为你以后项目更快、更有效率完成。
9.处理失败的能力
作为一名程序员,我们很少能够在第一次尝试时就成功,所以失败几乎是确定的。请将失败视作是一个挑战,而不要因此一蹶不振溃不成军。耐心和坚持对于想要在编程方面取得成功是非常重要的。
10.主动投入研究
编程语言只是宏伟蓝图中的一部分。一名优秀又成功的程序员总是试图为雇主编写可有效工作的代码,并帮助解决业务问题。有时,这是需要你做一番挖掘和探究的。
知其然 而不知其所以然,是不对的、不够的。
以上几点,我认为都很重要,并不分前后顺序,要根据项目特点来说的。
这么多年经验告诉我,仅仅是对语言很熟悉,是远远不够的。