本文作者:sukai

编程的定性(编程性质)

sukai 07-27 107

  一提到编程,很多人就会认为那是理工科宅男才能做的事。其实不然!

  君不见,从90后维秘超模小kk,到最近大火的日本80岁老太若宫雅子,编程对于个人的学识、年龄和知识背景根本没有限制!

  让我们先来看一个程序员的故事:

  理工科出身的小灰打算学习编程

  学习编程的头一个月,

  小灰如鱼得水。

编程的定性(编程性质)

  学习编程三个月,

  小灰略有疑惑。

  求职和初入职场

  海量的知识扑面而来。

  工作若干年,

  小灰又将面临新的挑战。

  工作之余,

  小灰回想起自己

  编程道路上的得与失,

  不禁感慨道:

  不知道已经在学习编程的

  小伙伴们是否有这种感觉呢?

  今天咱们就详细分析下。

  编程中的理科部分

  1.基本逻辑

  这里的基本逻辑,指的是编程中所涉及的各种基本逻辑元素,比如程序中的循环控制、条件控制逻辑,比如数据库中的SQL查询逻辑,比如多线程的同步异步逻辑等。

  2.算法

  如果说基本逻辑是入门的基础,那么算法就是理科编程的真正难点。可对绝大多数程序员来说,如果不是专门从事算法研究,不是ACM竞赛的参赛者,算法对他来说仅仅是一个大致原理的理解,仅仅是一个API的调用。算法很重要,但是相对于其他能力,算法又显得不那么关键。

  编程中的文科部分

  1.知识

  知识是一个广义的概念。在编程这个领域,知识可以是某种语言规则,比如Java中final类不能被继承;知识也可以是某个底层原理,比如Mysql中Myisam引擎的索引数据文件分离;知识也可以是某种设计原则,比如面向对象的开放封闭原则,比如系统设计的CAP原则。

  或许有人会说,编程当中的知识不需要像文科那样死记硬背,最重要的是“理解”。可是,理解与记忆原本就是密不可分的,不去记忆,谈何理解?历史事件需要理解,法律法规也需要理解,但历史学与法学,并未因此而脱离“文科”这一属性。

  2.经验总结

  如果说编程知识是一条一条清晰的文字,那么编程经验则显得抽象而模糊,很难直接用语言表达。

  深厚的编程经验可以让你写出可扩展性更强的代码,可以让你快速定位出线上的bug,也可以让你设计出高可用的系统。知识由书本得来,经验则是在一次次的采坑中逐渐总结和积累获得。可以说,经验的作用还在知识之上。

  总结起来,在逻辑、算法、知识、经验四个方面,绝大多数程序员花费几个月的时间掌握了编程的基本逻辑,却需要花费五年甚至更长的时间来学习大量编程知识,总结编程经验。算法虽然学习成本很高,但因为过于“专业化”,而居于次要地位。

  由此可见,编程虽然有着一定的理科元素,但还是有更多特征偏向文科。所以,学文科的朋友们,尤其是姑娘们,不要犹豫不要迟疑,勇敢地跟着玛酷向前冲吧!

   请关注玛酷机器人微信公众号,可以搜索:"makcoo_robo"

阅读
分享