
一个好的程序员定义分为三种:兴趣,努力,行业前景
1: 首先你要对前端这个职位这个行业感兴趣,没有兴趣你再怎么去学都是没有用的,比哑巴吃黄莲都更难受。有兴趣后就要懂得培养。
2: 俗话说:人往高处走,水往低处流,努力要讲究方法,你刚毕业不久,我建议我们先好好实习积累工作经验,然后跳出来自己找个公司上班,工作经验会更加丰富,我就是这样
3: 互联网行业正属于当今社会的发展高峰期,首先确定你选这个行业前景是没有错的,非常好,其次 除了前端,你应该去了解后端,和互联网行业的其他职位,程序员不一定都是前端。或许互联网行业的其他职位也很适合你。
在大学里学的专业是前端,这个已经是非常好的了,当今前端的需求量大。也是很景气。希望你能抓住这个机会 不要放弃 踏实一步一步来,成就会来的非常快!
最主要的原因是,创业公司和创业媒体越来越多,他们需要大量的程序员投身到创业这个高风险的行业中,而造神,正是让程序员们自动跳进火坑的绝佳办法。
不是说程序员不能创业,我是说,创业媒体们故意模糊了创造和创业的界限,把程序员们的创造冲动偷换概念,鼓吹了太多不适合的人去创业。
另一个原因是,招聘成本高涨,CTO们为了能提升影响力,不得不频频出席各种大会刷脸。
文笔好的再做做自媒体和技术社群,既能强化个人品牌提高身价,又能在融资的时候提升成功率。
总之,这个行业出现了各种技术大神。
这些大神在普通人类和初级程序员眼里是无所不能的,是他们向往的目标;在中级程序员和高级程序员眼里,这些大神就是他自己,只不过他还没红起来而已于是攀比心理也开始泛滥,全国第三的架构师比比皆是,整个圈子渐渐就浮躁起来。
然而绝大部分程序员,依然是雇员媒体们在包装时,最喜欢按独立开发者的路线来整。
「从小就对技术有天分」、「大学时曾在某编程大赛一鸣惊人」、「写了个APP玩结果一个月有了千万用户」、「从公司离职自立门户三年上市」。
OK,这的确是程序员的一条职业路线图。
但是媒体们不愿意告诉你的是,一:只有极少数程序员是通过这个路线成功的;二:这条线其实需要太多非程序员职位的技能,比如产品设计能力和销售能力。
程序员到底是一个什么职业程序员的四大职业象限这件事造成了两个结果,一是冲动点的程序员跑去创业了,二是不那么冲动的程序员天天觉得自己能创业,能干大事,在现在公司屈才了。
于是就有了这样的画面:雇员们天天抱怨雇主不能提供给他们高管或者独立开发者级别的待遇。
如果不是你自己开的公司,那么雇员同学,你的价值是由你对公司的贡献来决定的。
程序员到底是一个什么职业程序员的价值决定绝大部分互联网公司的程序员职位,没有技术门槛然而不幸的是,绝大部分互联网公司都不是技术驱动的公司。
真的就是鸟哥说的那样,绝大部分技术岗位,其实技术门槛都不高(门槛在工程上,后文细讲)。
技术不过是这些公司的护航舰,而不是破冰船。
先别打我,冷静下来想想,到底有多少你会的那些技术,是你的同行们不会的呢不多,对吧几年前亿级别的搜索还是问题,现在已经到处是通用解决方案了;几年前千万到亿级别的网站和APP解决方案还在大公司手里,现在各个架构大会都讲烂啦,而且其实都差不多;就连DeepLearning,湖南IT培训>
1先进行实验成为本能反应 编译器和运行环境通常能比人更快地解释一个问题。一个优秀的程序员在拿着问题去向别人寻求帮助之前,会自己试试看并判断方法是否有用,而不是直接找一个高级程序员问“我这么做有用吗”。
2对待代码和设计不情绪化 代码就像纸巾:它有用你就用,没用了就扔掉。几乎我们所有人都认为代码复用( code-reuse )很重要,尽管确实如此,但是这也不意味着要像养孩子那样去对待代码。代码没有感觉也不会在乎,它们会像法
3对编程有激情 很多程序员干这一行只是为了挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员的工作。
1自己介绍项目,看对项目的提炼总结能力(也是抽象能力);
2自己印象最深的bug,可以知道大概技术深度;
3设计模式提问,看有没有学习方法;
4语法基础问题,多线,分布,安全等问题,看知识面广度;
5智力问题,看反应能力,分析问题思路等
上述五步基本可知是否是一个好程序猿
计科专业从事软件开发十几年了,主要在浏览器内核领域研究的比较多,最近在研究服务器后台方向,辨别程序员水平高低主要看做出了什么产品,如同现在的程序员主要是项目经验,简历上写的一堆项目经验都是面试的时候主要提及的问题。经常在面试中会问两个关键点:一个是做过什么项目;一个是在项目组中承担什么职务,毕竟参与过和做的多少程度是不一样的,这些都是可以通过一些具体的细节检测出来,问题越具体越是容易看出水准,具体的东西不是能够编造出来的。
有很多技术公司直接不通过笔试,仅仅通过简单的面试就确定工资水准了,最简单的测试程序员水平的直接用笔试的方式,笔试可以把一些细节量化,尽量的细节化也是能测试出程序员基本功的,但这种基本用来测试初级程序员的,很多高级的程序员看到有笔试直接就抬腿走人了,因为有些程序员在一个方向做的时间太长了,很多基本功都忘得差不多了,所以笔试可能不过关,现实中很多程序员笔试不过关,面试还可以,也一样可以做项目说的就是这类人,起码这算是非常优秀的程序员。
有很多公司采用谷歌的方式,直接采用上机写代码的方式检验程序员水平,这种方式比较直接,但在现实中可能消耗的时间以及面试官的精力,目前只有极少数的公司用这种方式,国外的公司用这种方式比较多,这种看基本功非常有效。通过代码可以看到编码习惯以及算法的设计上,都能直接看的出来。
普通的程序员直接看项目的经验,高级的直接看做过的产品,特别是产品主要设计人员,这就是程序员内心的自豪感,毕竟作为一个程序员起码要有自己设计开发的产品,也算是不白做一个程序员,在程序员的职业经历中如果能经历过一个产品从开始设计的初稿到最后推向市场,如果是完整的经历,将是一种巨大的财富,只要经历过一次都会对产品设计有一个比较层次的认识,这种能力需要靠直接的面试语言表达来展示出来,谈下对产品的认识以及产品稳定性性能等方面的总结,能到这个层面起码是高级软件工程师的级别。
当然有些程序员内在的东西不是靠语言或者写代码看出来的,因为一个优秀的程序员不仅仅是代码能力以及框架能力,还有几个非常重要的能力
程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
希望能够帮到你。
自认为不是一个好的面试官,因为我认为在这么短的时间内,准确地衡量出来程序员水平的高低是有比较大的难度的,并且我有多次看走眼的时候,面试的时候觉得能力还不错,但是入职工作了一段时间之后,编程能力不忍直视。
工作之后接触一段时间,我会从这么几个方面观察他们,以判断技术能力的高低和发展潜力。
能不能出活儿、能不能debug
能不能把开发任务按时按质量地完成,当然是最主要的衡量标准了:
解决问题的方法
在开发过程中,难免会遇到没有见过的问题,有些程序员遇到问题无从下手,而优秀的程序员,自有一套解决问题的方法。
分析问题、流程设计的思路
有人会认为,程序员的主要工作就是敲代码,上班大部分时候都是在敲代码,其实并不是这样:
总结问题和改进问题的能力
好的程序员,相同的问题不会犯第二次,差的程序员,总会在一个问题上栽跟头:
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
不请自来,一介码农路过,留下些看法。
程序员主要是有四种综合能力,也就是debug 能力、 performance分析、 保护性编程和 投入产出比。
仅仅独立完成日后必然成高手?在这里不能说一棒子打死,至少对于很多人来说,能独立完成是没什么问题的,有的是因为对业务熟悉,有的是真的基础扎实。但怎么说呢,程序员和浏览器打交道是最多的,现在这个互联网时代,遇到的大部分问题百度都是可以解决的,也就是普通程序员 + 百度 = 超级程序员。 但很多人也没明白具体的原理,甚至都是这个项目抄抄那个项目抄抄的,久而久之虽然解决了平时的业务,但进步的空间却很少,甚至止步不前,写出来的代码也可能存在很多坑,所以,仅仅能独立完成任务的话,离高手还有比较远的一段距离。
如何辨别高手程序员?也就是结合我们一开始列举的那四个能力进行判断。不同级别的程序员,在那综合能力面前,强弱也是不同的。例如在奔溃的或者其他性能调优问题上,即使是面对大量复杂的代码,在信息不全的时候也会一步步的分析,抽丝剥茧缩小范围,最终定位根本原因
,并且最终给出一个好的方案。
如何成为高手程序员?
当然还有看他摘了帽子是否秃顶这样的笑话,就再不赘述了。
第一阶段(黄金):会用编程语言实现需求,比如现在的业务系统,都会找一些会搬代码的人来拼工作量,也就是能自己独立基于搭好的框架实现crud常规 *** 作。
第二阶段(铂金):除了crud,还会有一些自己踩过坑的经验,知道如何处理一些常见问题,或者可以基于搜索引擎快速解决一些异常情况。
第三阶段(钻石):能解决一些疑难杂症和会通过debug部分源码类库查看到这些疑难杂症是如何引发的,并通过编码解决这些问题,还能进行一些局部的性能优化,类似某个系统接口缓慢可以单独去优化。
第四阶段(星耀):会基于整个系统进行设计和规划,根据业务特性选择合适的框架,从源头控制开发遇到问题的频率,可以自主的搭建框架并完善机制,了解各个组件工作原理。
第五阶段(王者):小说里面总是说练武功的永远比不过创造武功的,同样的道理,用框架的也往往不如写框架的,所以写框架的这类人单独分层。
第六阶段(荣耀):其实这个阶段不应该列入进来,因为这类人往往不编码的,只是给出思想;像Hadoop这种框架就是基于人家发表的一些论文(bigdata)进行编码实现的,这类人注重的是思想和算法,区块链,大数据,云计算等等概念的创造和理论的支撑是这类人提出来的,这些人才是真正影响行业走向的人。
程序员的水平高低,不是靠语言或外在表现就能看出来的,不是看他会多少技术、参加过多少项目、写了多少博客,而是看他在实际业务场景中解决问题的能力,尤其是面对一些特别复杂的问题,或在高强度、高压工作状态下解决问题的能力与态度。
技术可以通过学习掌握,但是解决问题、定位问题的能力却不是一蹴而就。大家可能会说,“解决问题的能力”这个太宽泛了吧,可以更具象化吗,有具体的测量方法吗?简单整理了以下几点供参考。
优秀的代码能力
会写出满足需求的代码,早就不是评判程序员水平的标准了。代码编写既要满足业务需求,同时还要考虑后续的软件维护,说得通俗些,既要自己爽,也要别人爽。一个优秀的程序员,会致力于写出更简单、更效率、可读性强、扩展性强的程序代码。
逻辑思维
程序员在日常工作中,需要理解各式各样的业务需求,所以这就需要程序员具备一定的逻辑思维能力。可以说,逻辑思维是程序员的灵魂,因为每一行代码都是程序员逻辑的体现。
debug能力
项目着急上线,发布时出现问题?
业务高峰时段,系统宕机了?
业务催、运营催、用户催、老板催!
各种形态的bug,各种着急的心情,背后无数支眼睛盯得内心慌慌
这些都是一位合格程序员所需要面对的日常。不同的程序员,在解决问题的方法、效率、质量等方面,都各有千秋。一个经验丰富的程序员,能够扛住各方压力,在复杂条件下找到核心问题,通过抽丝剥茧的分析来找到产生问题的原因,并快速进行应对处理,事后及时复盘总结,减少同类问题出现的概率。
学习能力
随之互联网的发展,越来越多的人涌入程序员这个赛道,竞争日益激烈,加之新技术层出不穷,更新迭代快,程序员所使用的语言、框架、模式都会发生天翻地覆的变化。如果不主动学习,你很快就会被落伍淘汰。
沟通能力
这种其实在面试过程中能体现出来,沟通主要是技术沟通,以及和客户之间的沟通,所有技术都不是闭门造车就能搞定的,沟通能让事情推进起来更加顺畅,包括和产品经理之间的流畅的沟通也显得非常重要。程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
责任心
线上出bug了,第一时间响应、处理;
团队项目进度紧张、人手紧缺,主动补位;
又或者,在项目推进过程中如果只是关心自己模块内容,对于整个项目置之不理,只守着自己的一亩三分地。
随着时间轴的拉长,你会发现,有此f技术能力不是最好的,甚至不如你的小伙伴,最后做到了技术主管或经理、甚至更高职位,这里面除了技术实力,还有一个叫“责任心”的东西。
结束语
判断一个程序员的水平高低,核心是其解决问题的能力,而解决问题的能力养成,需要扎实的底层基础来支撑,要综合其代码质量、项目经验、框架能力、逻辑思维等等多方面,不能单看某一方面。
而对于1-6岁的程序员来说,想要成为一个高级程序员,变得越来越优秀,唯有持之以恒去学习、积累、实践、修炼。
----end----
一:50岁的时候,头发还是黑色的浓密的。
二:赚到的钱能保证家人快乐的生活。
三:当公司不要你的时候能成功转型。
其他的例如编程经验、写代码厉害啊什么的根本不值一提。
这就是程序员的面试嘛 :-)
(1)是否能熟练使用所用编程语言的主要功能;
(2)是否知道用合适的数据结构解决问题;
(3)是否知道基本的算法,并且用这些算法解决问题;
(4)只看少量代码的话,从变量命名和程序结构一般能够判断是否是新手;
(5)给出具体问题,能够用程序解决,能考虑到所有的边界条件;
(6)考虑程序的可扩展性,可维护性;
再往高一点走,就需要
(7)面对模糊的问题能够分析并且找到细节和具体的需求;
(8)知道利用已有的库,架构和工具等来解决新的问题,而不是什么都自己实现;
(9)能发现并改进已有程序中的瓶颈;
(10)对整个大项目的程序架构有很清晰的了解,知道相互之间的依赖,以及知道为什么采用这样就架构;
(11)给一个大的项目,能够对整个项目的程序架构和组件进行合理的设计,考虑并行性,低延迟,大数据量等各种需求和应对方式。
带领团队已多年,项目数十个,对判别程序员水平的高低,我有自己的看法,欢迎大家一起交流。
1代码质量。
优质的代码,首先是经得起考验。静态分析工具过一遍,无错误,无警告。当然警告部分需要人工重审,因为静态分析工具不一定完全正确。过了这一关,重要的还须过测试关,少Bug或无Bug的代码,才是好代码。优质的代码带有技术气质和艺术气质。阅读起来,有一种赏心悦目的快感,即工整美观,干净利落,又蕴含着理论常识,运用技巧,精准到位。
2表达能力。
3文档能力。
文档形式包括但不限于PPT,文字,图表,音视频。文档内容包括但不限于API说明,工具手册,项目事项,技术论述,陷阱总结,方案展示,指导手册。文档要求必须是满足公司或部门的规范和格式,否则五花八门的,不利于交流和传承。
以上3点,是我量化判断程序员水平的标准,仅供参考。相比水平,其实我更看重程序员的态度,执行力,时间观念,自学力等等,也是很重要的团队作战能力,也可以说是程序员水平的考量吧。
谢谢大家。
好的程序员是个什么概念的,我认为能为公司创造效益的就是好的程序员,现在在软件公司做程序员看重学历的很少了,只是应聘的时候用学历做个敲门砖而已,我个人认为做一个程序员吃苦耐劳还是第一位的可能你也会明白坐在那里打一天的代码是很累人的,还有就是学会变通,很多时候做程序员忌讳的是转牛角尖哪怕是最后你把问题解决了,毕竟这不是在学校学习的时候了,公司领导是要你出活的,提醒一点就是不要把做程序员想的太难了,看你的问题好像有点顾虑太多了,做程序碰到问题的时候多上网查查还有就是把自己做好的代码保存下来,等你做的程序多了你会发现有时候代码都是复制以前自己做过了的根本就没难度,罗嗦了这么多希望对你能有些帮助。
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVA One很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库 *** 作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。
对 *** 作系统有一定的了解
当前主流的 *** 作系统是Windows,Linux/Unix,熟练地使用这些 *** 作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解 *** 作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的 *** 作系统,是一个很好的学习平台,Linux几乎具备了所有现代 *** 作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对 *** 作系统有一定的了解后,你会发现自己上了一个新的台阶。
懂得网络协议TCP/IP
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/>
不仅仅是一个技术高手,还需要有厚德,创新力,奉献精神,团队管理能力等素养,培养德才兼备型移动互联网高端研发人才,课程中还涉及作为团队技术经理必备的一些课程,一些学员毕业后可以直接达到技术经理级别,你可以百度“好程序员”,能找到你的答案!
程序员不只是会编写程序,更要具备有hack(不是黑客)的能力,去用最优的方法去解决问题。要有hack的精神(大家要把它和crack分清),一种探索的能力,一种创新的能力,这样才能算得上优秀。
1)学习应该从基础打起,不要一开始就尝试最高深的技术。 &seq
2)每看一本书,不要说这章我以前学习过了,也掌握的很好,因此我可以跳过这一章看更重要的了。2g
3)对于作业,遇到不会的尽量不要立刻向别人请教。如果实在解决不了的问题,可以先完成你会的,然后把一些特别的难点提炼出来,向高手请教。fk
3)不要指望书本和行家能帮你解决一切问题,因为并不是所有问题都能由别人教给你。 -
4)向别人请教问题应该把问题说明白。对于错误提示信息应该原样提供出来,不要按自己理解的信息提供。因为既然你自己做不了,说明你理解一般都有问题。ED
5)问问题最好能带代码。IyB7U
6)不要说“编译通过,可是运行时",因为编译错误和运行错误可能根本没有关系。一般来说,编译是语法问题,而运行是逻辑问题。tM>o
7) 书看千遍不如做程序一遍,应该尽量尝试去写程序。^]-[_
8)做程序千个不如做好程序一个。应该尽量完善你现在做的程序,而不要不断开新的计划,而每个计划都虎头蛇尾。eQr8A
9)要想到你不是一个人写程序,而是和大家一起写程序。5Nq7
10)高深的技巧虽然显示了高深的本领,但是对于合作往往是有害的,应该尽量写出简单易读的代码。DIao>N
11)编制程序应该尽量做到自注释,即代码本身一读就懂,好象自己在说明自己的逻辑一样。fD
12)复杂的代码如果实在做不到自注释,应该给出适量的注释。Z\'7
13)注释在修改代码的时候应该相应修改,不能用陈旧的注释去误导别人。@m+
14)代码应该尽量可重用,相同功能的代码应该由相同的函数完成,重要函数应该给出调试信息,以便调试时及早发现问题。hWDg(
15)应该尽量写小函数,每个函数尽量不要超过40行或者更少。这样不用滚动屏幕也许就可以读完整个函数。r
16)对于switch语句,尽量不要有过多的分支,如果分支太多,可以考虑用跳转表。x
17)尽量少使用一些有争议的语句,如goto和三目运算符,既然有争议,它肯定有一定的缺点。0%tn
18)对于goto,许多工程师技术高到可以合理使用,而不至于导致问题。但是你的程序并不一定给你同水平的人看和修改,他们可不能保证合理的读和修改这些相关代码。X:H
19)代码编写时应该有一定的格式,其基本要求是对理解代码有一定帮助。E
20)如果数据是多个模块共有的,应该提供一个封装的类来管理它,并提供一个合适的接口给各个模块。这样,如果数据内容有重大修改,则只要接口不变,基本上可以保证程序不要很复杂的修改。SH
21)应该尽量考虑到数据的并发控制。12Lh-
22)数据的并发控制应该封装在接口内,而不要暴露给其他模块,这样可以减少因为并发原因导致的程序死锁。q
23)数据本身结构不可以太复杂。应该尽量把不相关的数据分割成为两组数据。aSFS,
24)对于数据量比较大的情况,应该考虑数据库。}\',
25)数据库接口应该采用标准ODBC或者ADO接口,尽量不要根据实际数据库DBMS提供的接口来处理,因为你可能在实际使用中更换DBMS。&\'dZjI
26)小的数据可以考虑文件,文件路径应该必须设计成相对路径。jo
27)在一个函数中,应该尽量打开文件后使用完后立刻关闭,这样其他程序可能使用文件。WM ,SG
28)不要尝试把文件全部读到内存中,应该分次处理大文件。y9{
29)编写程序应该提供相关的测试程序,以提供测试手段。0,G0!~
30)应该考虑代码、函数的使用情况,不要超越函数可以使用的范围使用之。s~©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 HKe
1 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。 |x
2 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除 计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻**也是一个很好的途径。 Um9f
3 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。 E)U,w
4 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。 DcQ\\k6
5 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。 8a]4
6 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。 l$
7 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。 OhCpa
8 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming OMEVO
is 99 weat and 1�ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的G
。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个1wv#7
0000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一T1^z
工作,你就可以满足这一条。 5Dvr©中国Java实验室(ChinaJavaLab)技术论坛 -- 中国Java实验室技术论坛 (v%
比较宽的知识面,并且能够时时补充自己的知识和完善自己的知识结构 5
耐心好,特别是在调试和学习阶段,世界上没有聪明的人只有刻苦的人。做开发其实就两件事情学习和改错,在这两件事情中间的开发过程其实是比较简单的 \\K2
永远记住:代码是给人看的而不是给机器运行的,计算机在执行程序时是不怕累的,而人在看代码时是非常累的 q
良好的编码习惯,至少保证自己能够随时看懂几个月前自己所写的代码 P
尽量让你的代码能够很容易的被别人理解,写代码时想想你会不会在两个月后被别人骂 HAh
不要容忍自己犯重复的错误和写重复的代码 c
知道如何做比得到代码更重要 6q``
尽量不要做已经有很多人已经做过的事情 h\\kZqt
学会尊重别人的开发成果,除非不得已不要下决定全面替换以前的系统 o\\>
珍惜自己的时间与工作成果,尽量让别人分享自己的开发成果 b\'0N
避免假设,多思考极端情况与引起错误的可能性,努力减少低级错误 scA}
不要相信至少是不要轻信自己为自己所做的测试结果 mq
懂得坚持自己的开发思路,并懂得理解与吸收别人的思想 !AW
学会与其他人保持一致,但不能放弃自己的开发特色 hq3
懂得向你周围的人学习,不论是开发能力上的还是开发经验上的 PF>
懂得软件结构的的重要性,分析代码前先分析代码的结构 uGK
学会总结,定期总结自己所学会的知识,看看自己前段时间因为各种原因所浪费的时间 )HNUX
学会计划,尽量不要认为通过延长自己的工作时间来完成任务 {|k2
学会正确估计自己的能力和工作时间 2r2
下面这些是我认为一些比较适合我自己的方面,不一定对每个人都合适: BI8&!
多看些杂志,没事情的时候可以看看以前看过的参考书,书中很可能有你以前没有注意到的一些细节 >mti\'
不要太早去做一些与开发无关的事情,因为学习的黄金时期是很短暂的 |<AN
学会分析别人的系统,多看看别人所开发的系统的先进的一面。这里包括别人的开发思路,实现时所采用的结构 m:B@Mq
时常感到自己将被淘汰,经常埋怨自己的不努力 #W
知道自己缺少什么 5Ql\'
强迫自己做一些自己不喜欢做的事情,比如说写文档 9<v7ro
能够有勇气重写自己所开发的系统,但当你重做时你应该采取和前一次不同的工作方式和方法,否则重做就没有必要 y>
将问题简单化而不是复杂化 lo8mPY
将维护时会产生的一部分问题转移到开发时或是设计时来解决 `Hc
有时候也不妨问问自己:我不做开发时去做什么 j`CN
坚持为自己做每周的开发计划,在事情没有做完以前不要轻易转移自己的注意力 x
尽可能多的将你所做的教给别人,因为你有一天可能不再负责这个系统 6}Q
做事一定要有始有终,除非是有不得已的理由否则不要在工作完成前提前离开 si
不要将你为公司做的东西带走,你因该带走的是开发经验和对开发的认识而不是代码和产品 >c{z)
感到累时就休息一下,给自己放个假也无妨,毕竟人不是机器 QI{RaS
做程序员很累的,够你受的,加油吧!l
以上就是关于好程序员:优秀的程序员和一般的程序员差别在哪全部的内容,包括:好程序员:优秀的程序员和一般的程序员差别在哪、北大青鸟java培训:怎样才是一个好的程序员、一个好的程序员应该做到那些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)