美文网首页代码基本功程序员每天写1000字
再说:自学的程序员通常缺少什么技能?

再说:自学的程序员通常缺少什么技能?

作者: ABC的C | 来源:发表于2016-11-15 18:37 被阅读2792次

    算法

    经典的计算机科学在这里。没有算法知识的编程就像只有一种锯的木工:你可以完成这项工作,但是它需要很长时间。

    你可以把算法看成一种规律,当你学习写他们的时候,你正在做的是用规律去解决问题。正在使用数据结构、模式和逻辑步骤。

    当你不知道如何去规划你的想法的时候,你不知道如何去写算法。

    除非你学习了算法,否则你不光不会写算法,你也不知道有多少算法其他人已经写了。

    我花了四天试图去解决如何完成一个队列。当我解决的时候,特别为自己感到自豪。直到我发现B.R堆在1963年已经解决它https://en.wikipedia.org/wiki/Heap%27s_algorithm

    设计模式

    这个来自教育或者经验,有多种方式构建你的代码,每个都有错误的时候和正确的时候。你要么需要沿途犯错误,学习什么时候使用每种模式,要么从已经犯错误的人(一个老师)那里学习。

    编程范例

    面型对象编程不是道路。函数式编程和响应式编程也不是,它是一种方式。
    有不同的方式来编程,每种方式都有它的目的。不仅如此,一些编程语言适合一种或者多种范式。

    如果你有一个锤子,一切看起来像钉子。

    把它带入自学编程中,你会发现自己在敲钉子,螺钉,钉书钉和拇指钉。

    我记得一个自学.NET程序员有次告诉我,“这不是编程,除非它面向对象,这也是为什么我不考虑JavaScript这种编程语言。” 这是一个非常,非常有缺陷的思想。

    数据结构

    当然,编程语言会给你针对不同的数据结构基本的想法。但同样,它是一个基本的想法。自学的程序员更倾向只坚持使用他们喜欢的编程语言的数据结构。只是因为某种数据结构不是本来就有的,甚至是你的编程语言中的一个常见的结构,这并不意味着它不能存在。 当然,这也意味着,也许它不应该存在。

    世界非常小,如果它们都可以存在一个数组内。

    测试

    也许这只适用我,在你推送代码到一个环境之前,有很多方法来测试你的代码。 了解如何进行单元测试。

    更重要的是,要学习测试驱动的开发。

    测试你的代码和编写可测试的代码之间是有区别的。
    对我来说,《The Pragmatic Programmer》(https://www.amazon.com/The-Pragmatic-Programmer-Journeyman-Master/dp/020161622X)这本书对我是非常有帮助的。

    相关文章

      网友评论

      • 卢卡Lucar:不是科班,自学的难度真的很大呀,进度超慢。
        Laragh: @极落尘 是这个理
      • 79092d85de53:好多所谓科班出身的不是真爱,平时也就应付考试,也是缺这些
      • wywincl:写得不错
      • 8bd63309284b:要如何学习测试呢?可以推荐网上有相关的教程嘛?还有这句话“要学习测试驱动的开发”不太明白,希望能讲解一下 :no_mouth:
        ABC的C:@四月男孩 百度给的解释挺到位的 。 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。 关于课程和资料,网上一大把的文章和视频。
      • 27403c394045:我是自学的,但我不缺这些课程。自学的大多都很有毅力或者是真的喜欢,他们会更谦逊与好学,缺什么补什么。
        ABC的C: @Megan_zhou 为你的自学能力点赞 这篇文章主要是针对在自学中容易忽略这些知识的朋友写的😊
      • 小超人_:手残看看
      • 陈钢镚学财:好文,有空要提升一下自己。
        ABC的C: @o半醒的狐狸 嗯 加油
      • KKTT007:感觉写的特别棒。很有见解很有对处事的见地。程序不懂╯▂╰。膜拜大神。。开头一种锯的木工,特别贴切形象
        ABC的C: @lan542662 谢谢肯定和打赏😊
      • 科学的超bug:软件工程
        ABC的C: @科学的超bug 对

      本文标题:再说:自学的程序员通常缺少什么技能?

      本文链接:https://www.haomeiwen.com/subject/lvrlpttx.html