zoukankan      html  css  js  c++  java
  • 我对于编程的理解(2020-9-6)

      作为一个非科班又缺少对计算机狂热的人,在这个行业已混迹若干年,写出了几万行生产环境帮助他人提高工作效率的代码,但是对于编程本身似乎还没有做过一次正式的思考,今天,在这个特殊的点上,我决定总结一下自己编程经历中的一些私人观点。大多数编程人员的第一行代码是"hello,world",所能确定的是我的第一行代码并非是这个,这也许注定了我就一个非典型的程序员吧。

      我最初对于编程的印象是这个东西似乎挺简单的呀,并不需要复杂的理解力,比微积分和线性代数简单多了呀。这个观点产生在学习编程一个多月后,猛然意识到我所学的编程语言python无非就是关于几个结构和面向对象这些知识点。放眼再去看看其它的编程语言,不管是c语言,java语言,或者c++都如此这般。这让我自信已经理解并且掌握编程。当然在今天看来,这个想法就像一个致力于想要靠画画谋生的人,在明白了颜料有那些颜色和种类后,就自信掌握了画画,甚至已经可以说是一个画家。不过,在那个时候,我确实把自己当做一个画家,甚至一度感觉到了编程这件事情的无聊,因为没有太多新的东西,无非就是使用几个数据和一个面向对象的方法。可是在这个想法产生的同时我完全忘记了一些显而易见的观点,元素周期表无非是100多种元素,然而,这些元素形成的世界是多么的复杂和美丽,欧几里得的几何学无非是根据5条公理,然而,欧式几何学的大厦是何等宏伟而壮丽,再看今天复杂的互联网,基础不就是编程语言,而向更加底层去看,不就是0和1的最基本的组合。

      不过这个印象很快就被现实无情粉碎,当进入企业从事实际的编程,尽管已经熟知了那几个数组和操作已经面向对象的编程方法学,但是,让自己的程序符合预期跑起来却并不是很容易的事情,总会有各种各样的情况和问题发生,有时候一个问题可能要卡好长时间,经常需要加班来完成工作,这个时候,才意识到似乎不仅仅是掌握那几个东西,还需要怎么在实际的业务中拼装和组合这些东西,能够让程序准确正确的跑起来。不过,我是不会被这个击败的,经过一段时间的练习和适应,我就可以写出正确的程序,但是,我似乎有一次看到了编程的顶点,感受到这个事情的无聊。

      然而,我还是太年轻了,终于我碰到了更加复杂的业务,在这里才自己的效率实在太低,按期根本没有办法实现应有的功能,而相比较而言,同事的编程效率要高很多,这明白一定有某些我所没有掌握的东西,当我开始思考自己的工作方式和观察同事的编程工作后,我发现了问题的所在。我的开发流程可以调整,而且调试代码的方式也可以做出优化,而这些可以极大地提高编程的效率,于是我开始致力于改变这些,从而提高我的编程效率。编程是一个工程,我脑海中有了这个想法。

      不过,如果说对编程有飞跃式的认识,那完全是一个偶然的机会,我正好有一段空闲的时间,而且知道了《黑客与画家》和《计算机程序的构造与解释》这两本书。这两本提出了我发自内心赞同却从没有在我的脑海中出现过关于编程的观点,编程是和绘画一样创造力的事情,要和艺术家一样追求美,程序要有良好的易读性,程序的本质是抽象抽象出各种各样的层次,用简洁的代码实现出功能,代码要尽可能少,要清晰明了。既然接受了这些观念,我开始加以运用,在新实现的功能中,不只是满足于只是为了实现功能而编写可跑起来的程序,努力通过抽象以便用尽可能少的代码来实现功能。这些一种有趣的尝试,当然,进度会因之而受损,但是,却会有别样的编程的体验。

      和所有程序员一样,我也不可避免的到了那样一个时刻——认为自己做的东西太过于简单,只是纯业务逻辑的东西,我想要换工作,想要接触新的东西,想要升值,这个时候,是否要学习一个新语言,是否要进入一个新的领域,人工智能,区块链,还是k8s这个。我也渴望设计复杂的算法,和更加高级的东西,做出改变世界的东西,至少能够参与其中。但是这是个最糟糕的需求对于程序员来说,没有原型图,也没有需求文档和开发文档,太简单了以至于复杂到无法具体实施。然而我内心深处相信世界上一定有人从事理想中的编程,掌握着某种魔法,那是和我完全不一样的编程,让一切变得很酷,我想要了解这些东西,而不是只是做一些调用接口和对数据进行操作的基本编程。

      当我被这个问题困扰的时候,却有了一个小插曲,那是一个很不错的机会,我可以去了解我一直调用的接口后端的东西,甚至做一些实际的编码工作,我期待着见识到一些非凡的或者说有技术含量的东西。不过,美好的幻想在现实面前永远是不堪一击的,但是,如果没有被击倒,你就可以站得更稳。当发现依旧是调用更加底层接口而已,实际上依旧是业务逻辑的处理。这个事情对我带来更多的思考,或许并不存在我所说的那种东西,而只是对于基本东西的更加用心的使用而已,因而,我的目标不在于追求所谓新的东西,而在不断精进,熟练使用,然后创造出有趣的东西。

      长久以来,当我们谈到事业的时候,那一定是因为快乐和喜欢,快乐是做这件事的时候最高的奖赏,我们沉浸在那个过程中,感受着生的美好,真心希望时间流逝的慢一点吧。而当我问我对于编程的看法:这无非是一个赚钱的行业,我甚至有些痛心,因为,我卖掉了最重要的东西,而且没有卖一个好价钱,贱卖了。编程应该是一个有意思的事情,为了快乐,为了我自己而编程,是艺术家,是魔术师,造梦师,那键盘的敲击代表新世界临近的脚步声,而深夜窗口透出的微光则是代表着新世界的黎明。

      “少一些功利,多一些热爱,不是追求所谓新的东西,而要去抓住本质的东西,也成为一个创作者。非淡泊无以明志,非宁静无以致远”

      我希望能在这条路上走的更远,而这个感悟也可以以省略号结尾的方式继续进行下去,尽管不会是诉诸笔端.....

      

      

      

    一个会写博客的程序员
  • 相关阅读:
    数组中的逆序对★★
    把数组排成最小的数★★★
    丑数★★★
    整数中1出现的次数(从1到n整数中1出现的次数)
    连续子数组的最大和
    每两个字符串中插入字符串
    linux R环境安装以及注意事项
    JAVA调用R脚本 windwos路径下
    springboot 配置多数据源
    springboot 在配置文件写参数注入到类中
  • 原文地址:https://www.cnblogs.com/znn041622/p/13622267.html
Copyright © 2011-2022 走看看