无数的人问过类似的问题:怎么样才能做一个好的程序员?
在回答这个问题之前,首先得明白什么是好的程序员,这样才有方向和目标,可是这事情太主观,可能各人的标准千差万别。
不谈那些传奇性的独自一人做出伟大事情的特例,也不谈什么上天入地,上帝大牛的诡论,以下是我比较认可的,在通常的项目开发中,一个好程序员的标准。
在项目开发中,一个程序员的能力等于其解决问题的能力。假如想有个尺度来衡量这个能力的话,一个程序员的能力可以用能完成任务的规模和难度来衡量。
因为难度上不好那么筒单的划分,并且在一般的项目开发中 (非研究性项目),任务的难度主要来自于任务的规模带来的复杂度,这里把任务从规模上大致的划分为1个函数=>1个 类=>1个功能=>1个模块=>1个项目。
更细致的划分时,函数、类、功能、模块、项目本身也有简单和规模大小之分。
◆ 一个初学编裎的人总是从最小的函数和类开始学习的;
◆ 一个程序员能基本无误的完成项目中的一个功能算是合格。
在此之前,对项目的生产力为负,即为他布置任务、沟通和为他修补bug的时间其实要多于自己直接完成该功能的时间。也就是说,项目中存在这个水平的程序员纯粹是为了培养人才。
◆ 能较好完成一个完整模块的程序员算是较好的程序员, 也是一般项目中的主要幵发者;
◆ 能完成整个项目的裎序员才能算是好的裎序员,在多人 项目中可做主程。
在同等水平的裎序员之间,一个对某领域问题有所了解,一个对该领域完全不了解,完成该领域同样任务的效率差了不止一个数量级。
这就是我们通常所说的经验的作用,这种经验可以看作是知识积累。—个程序员的知识积累很大程度上决定了其解决问题的能力。
这是一个知识大爆炸,知识刷新频率让人无法追赶的时代。
一 方面,面对一个稍有难度的任务,难免会有超出自己现有的知识范围的时候,此时自学能力决定了你能多快的完成此任务;另一方面,你的自学能力决定了在平时的工作过程中,你积累知识的多少。
自学能力强的人,即使没有人指点也总能在项目的代码中学到东西;而反过来,学习意愿弱的人写的代码被别人重构后, 也不会想想,这段代码是否改的更好了以及为什么。
从较长的尺度上(比如一个人的工作生涯)来看,一个程序员知识积累的多少只决定于其自学能力和他对编程本身的兴趣。
在一个分工明确的项目中,程序员需要和产品(策划)沟通来理解产品,和上级沟通以理解自己的任务,和同事们沟通以正确的理解要接入的模块。
在自己完成模块时让别人正确的理解模块的接口,在不写文档时,正确的口头沟通非常重要,需要写文档时,文档的写作能力也算做是沟通能力的一部分。
其实转了这么大个弯,怎么样做一个好的程序员的问题可以转为问怎么提高自己解决问题的能力?
沟通能力、对工作负责任的态度、对代码的追求,很大程度上由性格决定,我不知道实际中怎么简单的去提高,这里只稍微 的谈谈我对知识积累的一些看法吧:
a、培养兴趣,技术工作总是辛苦的,编程尤其如此。
假如你对此没有浓烈的兴趣,不能从编程本身找到很多乐趣,那最好就不要奢求能成为一个好的程序员了。对编程的兴趣也是我一般招聘初级程序员时最大的要求。
b、什么样的环境决定你有什么样的知识积累,决定了你的品味,决定了你会以什么方式来做事,这个除非有强大的意志力。
c、不要停留在自己学习的舒适区,假如你的工作仅仅是以前工作的简单重复,你会工作的很轻松,同时也很难有提高。
吃饭睡觉写代码,基本都程序猿的大部分生活了,作为从事最累的职业之一的我们终于有了自己的节日,那就是1024。1024向程序员致敬,向自己致敬,向未来致敬。
互联网注定是一个不能安宁的行业,有一些人在努力引领变化,有一些人在努力适应变化,有一些人在被时代的浪潮淘汰。这个世界唯一变的就是变化,人生唯一不能停的就是学习,说到底,要想不被淘汰,只有不断的学习。
国外有个词叫做10x Programmer,直译是以一当十的程序员。我并不认为一个技术大牛能完成10个普通程序员的工作,技术大牛会花1/10的时间把工作做完,然后用剩下9/10的时间平衡生活、爱好和未来,所以我仅把10x Programmer叫做10倍速的程序员。
仍是要永远 ctrl+v,永远拿来主义。仍是要时时刻刻对美好满怀期待,对未来充满渴望,对经典心怀敬畏。要记住啊,能原创而不原创,有源码而远源码,才是最无知的成熟。
优秀程序员有哪些好的习惯:1. 想清楚,再动手写代码,2. 不交流,就会头破血流,3. 文档没人看,但还是要写,4. 一定要写注释,5. 别指望需求会稳定
我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情
分析自己的处境; 做适合自己的选择; 以成长为目的,担负起更多责任,打破对做事的认知; 把握机遇,去锤炼自己; 抛弃一些懒惰,多一些积极;向牛逼的人靠近,向给你提供条件帮助你学习的老师靠近。以上结合了我自己的经历,希望文章能更形象。
现在身处跳槽高峰季,作为即将跳槽的我,在这里分享几点建议给大家。众所周知,找工作的前提是面试,面试的前提是过了简历,过了简历的前提是你怎么投。
程序员在其职业生涯中,健康问题尤为突出。但是大部分程序员只顾码字,却往往忽略了自身的健康问题。这或许是因为写代码太入神,也或许是因为来自老板的压力太大。
一个厉害的程序员,都会有一个牛逼哄哄、有辨识度有个性的英文别名。在公司同事中很更好的称呼,这篇文章翻译整理了一下适合程序员的英文名字
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!