互联网时代:如何成为优秀的程序员?

  如何成为优秀的程序员,这个问题我也曾经问过我自己,可惜我做的还不够好,经常这么反问自己的话,会提升你对开发流程工艺思考,同时没事也可以问问身边的是程序员的同事,我相信你们会引发一些有趣的讨论,但是我个人认为掌握下面五个技能非常重要,看看吧,为了我们都成为优秀的程序员。

  1,问题分解

  编程很大程度上是来解决问题,但是写代码之前,程序员需要弄清楚如何解决这些问题。一个优秀的程序员会尝试把这些问题进行拆分,然后一部分一部分去开发,直到每个部分都可以很容易的解决。但是仅仅做到这些还不够,一个优秀的程序员会发明一种工作模式,利用现有的标准化逻辑去开发,便于实现和测试。一些很复杂的程序,复杂部分的原因是代码实施不能完美的解决问题,而且代码难以理解。

  当遇到难题建模,曾经采访优秀的开发者:“很少有程序是不能修改的,但是如果你看一段代码,它往往看起来很复杂,很多人觉得无从下手,他们往往这是缺乏思考的一种表现,而我会卷起袖子试图修复它,慢慢的其实这些都不算困难,而且很容易。”

  2,情景分析

  好的开发人员有能力考虑许多不同的场景。这既适用于程序中的逻辑,以及内部和外部事件可能发生。考虑不同的路径的逻辑,他们会问这样的问题:如果这个论点是零?如果这些条件是真的吗?这是线程安全的方法吗?发现软件需要处理什么类型的事件,他们会问这样的问题:如果这个队列变得满了吗?如果没有响应这个请求吗?如果其他服务器重启,这个服务器重新启动吗?

  优秀的程序员会问自己:“这怎么能算结束呢?”说明他们还想测试自己的能力,相比之下,没有经验的程序员大多只考虑自己,能够暂时解决问题就行,当然大部分不可避免的意外情况发生,他们都有方法解决。

  3,所示命名

  编程在很大程度上由命名的事情:类、方法和变量。如果做得好,程序变得很大程度上是在自我记录,这意味着程序的功能是非常清楚的执行源代码。自我记录的代码的一个作用是,它自然会导致许多较小的差错,而不是几个很大的功能缺陷,因为这些优秀的代码将存在很多的地方。

  想出好名字要困难得多。我喜欢一句话:“计算机科学中只有两个艰难的事:缓存失效和命名的东西。“部分命名是很困难的,因为它需要清晰的在脑海中每个名字代表什么。有时这是不清楚,但随着开发的进行才会显现。因此,重命名命名一样重要。”

  命名的东西也还包括提出的概念,以及这些概念应该叫什么。通过考虑周全,明显命名概念一致地使用,编写的程序才会变得更容易。

  4,所示一致性

  也许在编程的最大挑战是管理的复杂性。一致性是一种战斗的复杂性。它减少了一些复杂性,允许我们看到模式和推断出如何命名,使用和处理。与一致性,我们不需要用脑力来记住异常和随机变化。相反,我们可以专注于重要的复杂性,而不是偶发复杂性。

  一致性是很重要的。它适用于变量名和分组,命名方法,划分成模块,目录结构,GUI,错误处理,日志记录、文档等。例如,如果某些变量是相关的和一起出现(在声明,方法调用或列在数据库中)然后总是使用相同的顺序。然后它变得更容易看到如果丢失,或者如果他们一直搞混了。对于一个操作,如果是calleddelete在一个地方,别叫它删除在另一个地方——坚持相同的名称。Steve McConnell也有一些好的建议在代码中使用精确对立完成。例如,开始/结束对立,启动/停止。不要混合名称从不同的双(例如使用开始/停止)在处理相反。

  矛盾可以介绍当修改程序。草率的程序员往往不注意如果他们添加是否符合现有的代码。优秀的程序员在确保看似无情的小细节是正确的,他们知道如何重要的一致性是整体对抗的复杂性。

  5,学习

  作为一个软件开发人员,你需要不断的学习。添加一个新特性之前,你必须理解它应该做什么。将代码添加到现有的一个项目之前,通常你需要学习什么现有代码,为了适应新的功能正常。你也必须了解周围的系统,为了正确的界面。因此,学习能力快让你更有效的成为开发人员。

  此外,由于在软件工程领域的发展速度是如此之高,有源源不断的新语言,工具,技术和框架的了解。你可以认为这是好还是坏。弗雷德布鲁克斯列出了学习的乐趣之一的将技能变成工艺,这一点我同意。学习新事物本身是令人兴奋的。这也意味着生活中作为一个开发人员不会很无聊。

  结论

  所有上面的技能是通用的,没有一个特定于任何一种语言,框架或技术。如果你有,你可以快速学习一门新语言或者工具,并编写好的软件环境。此外,因为他们在本质上是通用的,因为语言永远不会灭亡,这些便是我的一些建议如何成为一名优秀的程序员。

时间: 2024-10-16 16:03:48

互联网时代:如何成为优秀的程序员?的相关文章

互联网创业:如何雇佣一个优秀的程序员?

经常有人问我:“你在哪里可以找到或者聘请到优秀的程序员?”因为个人就是一名互联网项目经理,经常做项目管理,和程序员打交道的时间非常多,所以了解很多程序员的心态和习性,当然这里面也有很多的小技巧,下面就简单介绍一下我是怎么做的.下文提到的他,泛指程序员和程序媛. 问一些有过项目开发的朋友: 发现人才的最佳方式是通过别人的参考.曾经做过网站建设和软件开发以及APP制作的朋友,他们一定和优秀的程序员打过交道,他肯定会推荐一个好的程序员给你.建议有朋友如果在外包公司的话,那最好不过了.首先,你不必担心筛

【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍. 优秀的码农会告诉你学啥底层.啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊? +++基础的分割线+++ 列举几个我认为比较重

学习Axure的心得&关于如何做一个优秀的程序员

这些天学习了Axure的一些基础知识,感觉自己就只是刚刚入门,还有好多东西不懂.本想在网上好好地学一些更高的操作,却找不找比较好的学习视频.网上的资料太多,而且质量参差不齐.(视频画面根本就看不清)到后来就找了一些文本资料来看,但还是未能坚持看下去.不过,我看了一些关于程序员的资料. 下面就来说说我的看法. 一 努力刻苦地编程.好的程序员是后天炼成的,是靠一行行代码和一个个算法给喂出来的.因此,只要努力就一定能成为一个优秀的程序员. 二 拥有过硬的技术和本事.要明白,在IT行业,靠的不是关系,地

一个优秀的程序员所具备的14个品质【转载】

慎于说Yes 在没有搞清楚开发需求.任务工作量.团队期望值之前,有前途的程序员不会轻易答应.特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取.承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多. 敢于说No 看起来和第一条雷同,其实细究起来不一样.第二条执行起来比第一条难得多.当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由.不要经常说No,但是一旦说了,就要切中要害

做到这一点,你也可以成为优秀的程序员

转自 http://kb.cnblogs.com/page/575829/ 作为一个程序员,我经常会问自己一个问题: 优秀的程序员都具备哪些特质? 我总结过很多特质,例如: 有解决问题的能力 有独立思考的能力 有好奇心.有探索精神 逻辑清晰,能够用通俗的语言把技术问题讲清楚 有良好的英文阅读能力 数学好,算法好 经过一段时间的观察,我发现这上面的所有特质,都可以由一种行为习惯衍生出来,也就是如果你有以下习惯,那么你可能拥有且不限于以上所有的特质 观察大多数程序员的行为,朝相反的方向走 这句话也可

做到这一点,你也可以成为优秀的程序员(转)

作为一个程序员,我经常会问自己一个问题: 优秀的程序员都具备哪些特质? 我总结过很多特质,例如: 有解决问题的能力 有独立思考的能力 有好奇心.有探索精神 逻辑清晰,能够用通俗的语言把技术问题讲清楚 有良好的英文阅读能力 数学好,算法好 经过一段时间的观察,我发现这上面的所有特质,都可以由一种行为习惯衍生出来,也就是如果你有以下习惯,那么你可能拥有且不限于以上所有的特质 观察大多数程序员的行为,朝相反的方向走 这句话也可以借用一本书的标题(<少有人走的路>)来描述:少有程序员走的路.是的,这句

迈向高阶:优秀Android程序员必知必会的网络基础

1.前言 网络通信一直是Android项目里比较重要的一个模块,Android开源项目上出现过很多优秀的网络框架,从一开始只是一些对HttpClient和HttpUrlConnection简易封装使用的工具类,到后来Google开源的比较完善丰富的Volley,再到如今比较流行的Okhttp.Retrofit. 要想理解他们之间存在的异同(或者具体点说,要想更深入地掌握Android开发中的网络通信技术),必须对网络基础知识.Android网络框架的基本原理等做到心中有数.信手拈来,关键时刻才能

一个优秀的程序员应该具备哪些素质?

俗话说“师父领进门,修行靠个人”,随着互联网的高速发展,越来越多的人选择了IT行业,加入到了程序员的行列.那么,对于一个刚入行的小白来讲,如何成为一个优秀的程序员呢?一个优秀的程序员需要哪些素质呢? 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料 扎实的技术 熟练开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利

10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员

成为一名硅谷的工程师可能是很多中国程序员的梦想.硅谷被公认是目前世界上云集了最多优秀工程师和知名科技公司.创业公司的地方,吸引了全球无数投资者.创业者和工程师的目光.在那里工作的工程师,有着令人羡慕的职业发展前景,薪酬待遇.此外,他们出众的教育背景,扎实的专业能力,创新的思维,专注的敬业精神也成为了其他工程师们学习的标杆. 下面总结的10条建议,来自一些有关编程的网站.社交平台和博客,给出这些建议的人大多数也是工程师(当中包括在硅谷工作的),以及一些专门研究计算机科学的学者.如果你有志成为一名出