zoukankan      html  css  js  c++  java
  • 如何成为优秀的程序员?

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

      1,问题分解

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

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

      2,情景分析

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

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

      3,所示命名

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

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

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

      4,所示一致性

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

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

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

      5,学习

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

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

      结论

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

    PHP是世界上最好的语言
  • 相关阅读:
    417 Pacific Atlantic Water Flow 太平洋大西洋水流
    416 Partition Equal Subset Sum 分割相同子集和
    415 Add Strings 字符串相加
    414 Third Maximum Number 第三大的数
    413 Arithmetic Slices 等差数列划分
    412 Fizz Buzz
    410 Split Array Largest Sum 分割数组的最大值
    409 Longest Palindrome 最长回文串
    day22 collection 模块 (顺便对比queue也学习了一下队列)
    day21 计算器作业
  • 原文地址:https://www.cnblogs.com/proginn/p/5626936.html
Copyright © 2011-2022 走看看