即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

编程其实是文科

微信 顶级程序员 8℃ 0评论

点击上方蓝色字体关注「顶级程序员」


编程究竟是文科还是理科?


还用问?编程当然是理科喽!或许很多人会不屑地回答。



然而,情况真的如此吗?


让我们先来看看一个程序员故事,或许里面有着你我的影子。

学习编程的小灰


多年以前,工科出身的小灰打算学习编程




学习编程的头一个月,小灰如鱼得水




学习编程三个月,小灰略有疑惑




求职和初入职场,海量的知识扑面而来



工作若干年,小灰又将面临新的挑战




工作之余,小灰回想起自己编程道路上的得与失,不禁感慨道:


文科还是理科?


若要评判编程是文科还是理科,我们需要首先明确一下文科与理科的各自特征。


文科:以知识和经验总结为主,例如历史学、法学





理科:以计算和逻辑推理为主,例如数学



当然,绝大多数学科都不是纯粹的文科和理科,而是两者均有涉及。其中有些学科更偏重文科,但也具有少量理科成分,例如地理学。

也有部分学科更偏重理科,但具有少量文科成分,例如化学、生物学。

对于这些“混合型”学科,我们往往依照其侧重点,来划分文理科。因而毫无疑问,地理学属于文科,生物学属于理科。


那么,对于“编程”这样一门学科,究竟是文科成分占主导,还是理科成分占主导呢?让我们来做一些具体分析。


编程中的理科部分:


1.基本逻辑



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


诚然,逻辑是学习编程的基石,但逻辑绝不会成为一个程序员从初级走向高级的门槛。因为这些逻辑的学习成本真的不高,只要方法得当,一个十二三岁的普通孩子也可以轻松掌握。


2.算法



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


编程中的文科部分:


1.知识



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


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


2.经验总结


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


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

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


由此可见,编程虽然有着一定的理科元素,但更多的特征仍旧偏向文科,足以把整体定位成文科。

如何学好这门文科?


无论编程的真面目是文是理,作为一个程序员,我们都需要热爱自己的职业。算法和设计思想是天马行空的艺术,项目研发则是脚下泥泞坎坷的道路。做好程序员,最重要的是踏实和耐心,希望各位亲们都能一步一个脚印,走出属于自己的路。

—————END—————

看完本文有意思?请分享给更多人

小伙伴们,你怎么看!

欢迎长按下图关注订阅号梦见,收看更多精彩内容

转载请注明:CodingBlog » 编程其实是文科

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情
(21)个小伙伴在吐槽
  1. 文科文科,因为好多代码都是固定背下来的
    轉身回頭淚傾城2017-02-16 12:15 回复
  2. 地理是理科谢谢,我是一枚地理理科生,希望大家能多了解一些gis
    兔叽敲可爱2017-02-16 12:15 回复
  3. 知识和经验总结被定义为文科,有点武断。
    天蓬元帅2017-02-16 12:20 回复
  4. 艺术文~
    生活的仰角2017-02-16 12:21 回复
  5. 呵呵
    杨鹏飞2017-02-16 12:23 回复
  6. 文理结合不就叫工科吗?我就是工科好吗
    最强蕾蕾2017-02-16 12:26 回复
  7. 做算法分析和优化的人估计会笑死了。
    时间,总有脚。2017-02-16 12:28 回复
  8. 貌似好多理科职业都需要记忆吧!/冷汗/冷汗
    亚瑟王2017-02-16 12:42 回复
  9. 不对,文科解决「是什么」,理科解决「为什么」,而编程解决的是「想做什么」
    f•ﻌ•l2017-02-16 12:45 回复
  10. 只能说明你还弄明白什么叫编程/偷笑
    。。。2017-02-16 12:56 回复
  11. 工科:把想法付出实践,以一定形式组织和呈现出来。文科有实践活动吗?
    何志坚2017-02-16 13:23 回复
  12. 扯远了
    江海涛PPV2017-02-16 15:46 回复
  13. 看出来了,小编是文科生
    Buggie2017-02-16 15:49 回复
  14. 反正经验是真的,编程确实时间积累型的工作,无论是你有了几年工作经验或是有老鸟带着飞,这些都是经验的不同形式。
    Default2017-02-16 23:07 回复
  15. 感觉看完了这文章,什么都好像没发生,小编说了些有的没的,扯这些感觉并没有什么用啊
    老蔡2017-02-16 23:58 回复
  16. 呵呵 这是脑子有泡了
    YueJun2017-02-17 03:24 回复
  17. 我赌10包卫龙辣条小编文科生/哈欠/哈欠/哈欠/哈欠
    专抢小孩棒棒糖🍭2017-02-17 10:06 回复
  18. 文科+理科+社会科学
    Alex2017-02-17 11:50 回复
  19. 文科和理科的区别在于研究对象的不同,文科主要以政治,经济,人文为研究对象。地理在高中属于文科,但是到了大学是属于理科。理科一般是自然科学,所以编程属于理科。每个学科都是通过实践经总结两颗来,按作者的定义,所有学科都是文科了。
    冷弦2017-02-17 22:00 回复
  20. 都需要学点逻辐和统计
    王卫干2017-02-19 08:22 回复
  21. 小编小编,当然文科生啦!/偷笑
    Jaylan2017-02-20 15:12 回复