一个故事告诉你什么才是好的程序员

简介:

从一个故事说起

在应用开发如此方便的今天,我总是会听到有些人有这样的疑问,“只是做 应用 开发的话,还有没有必要学习诸如操作系统,编译原理这样的课程呢?”,亦或是会听到这样的话,“会用这个框架就行了,它底层是怎么实现的不用去管。”还记得我在大一学 C 语言的时候,就听过有同学说我以后是想从事 Java 开发的,C 语言这种学来应付一下考试就行,指针什么的其他语言又没有,就不用去管啦。

真的是这样吗?刚好今天看到一个有意思的故事,从故事中我看到了答案,这个故事是是艾萨克·阿西莫夫 的科幻巨作《基地》中的一个片段。故事是这样的:


在银河系中,随着战争的蔓延,文明从银河系边缘开始逐渐退化,许多星球虽然还保留着核电站等高科技产品,但是已经不知道它们是如何运作的。

而有这样一颗小行星,我们暂且称之为 科技星 吧,在大战爆发前它搜集了银河系中的各种科学文献,并且汇聚了一大批的顶尖科学家。这颗小行星没有被卷入战争,而是将技术一直传承下去。

科技星周围的星球觊觎它所拥有的高科技,想将之夺取。而科技星又没有自保的武装力量,在这种情况下,科技星如何自保呢?这里最有意思的地方,正是科技星所使用的科技宗教的战略。

当后来其他星球上的高科技出现问题的时候,会向科技星求救。科技星就会派遣工程师前去维修,但是呢,他们将各种身份都进行包装,比如,工程师不叫做工程师,而是叫做“僧侣”,核电站也不叫做核电站,而是叫“圣殿”,维修也不叫做“维修”,而是叫做“祈祷”,也就是说,对核电站维修这一项工作完全被宗教化了!

而此时科技星提供的说法是这样,因为这颗星球上的人做了坏事,比如违反法规,发动战争等等,触犯了神灵,所以神灵剥夺了他们使用能源的权力。而如果想要恢复能源,就必须对自己的行为忏悔,祈求神灵的原谅。所以当工程师进入核电站进行维修的时候,所有的星球居民一起下跪祈祷,而当核电站恢复的时候,大家纷纷称颂神的伟大。


为什么那些拥有核电站星球的人们会对来维修的工程师“膜拜祈祷”呢?其根本原因还是在于核电站这样的高科技对他们而言是神秘的,未知的东西。 尽管他们拥有这样高科技的东西,却没有与之匹配的认知和知识储备。

再回过头来看看一开始的问题,你是否明悟了呢?我们也是掌握着上层应用框架这种“高科技”,我们知道怎么去配置,怎么去调用,就像上面故事中普通星球的人知道怎么启动,关闭核电站一样。但一旦出了无法解决的问题,或者是遇到了什么性能瓶颈,似乎我们能做的,只能去各种技术群里,找那些大神“祈祷”了。

再来说说人工智能

在今天,人工智能这个名词已经逐渐为人们所熟知。而未来,人工智能的应用场景只会越来越广泛,面向 AI 编程也必然会是一种趋势。

那么现在从事于 Web 或是 Android 等应用开发的程序员需要去学习机器学习或是深度学习相关的知识吗?我的回答是 YES 。有人说我又不想从事于人工智能的开发工作,为什么还要去学它呢呢?我想说的是,为了避免成为上面故事中那些普通星球的居民。再过几年,当你碰到一个会跟你说话的机器人或是更加奇妙的事物的时候,我们应该是对它的一些实现细节感兴趣,会有探究的欲望。而不是在那里感慨着造物主真伟大,竟能造出一个这样神奇的东西。

话又说回来,在机器学习或是深度学习的学习过程中其实也很容易陷入到这种只会调用上层 API 而不知底层原理模型的境地。因为在今天,有很多库类都可以让你轻松实现一条语句就直接使用某个算法模型,所以很多人就不再专注于对底层模型原理的学习。在机器学习的学习过程中,相信大多数人应该都看过这样一张图,

我们来看看这张图中 Hacking Skills 和 Substantive Expertise 的交界处,这里叫 Danger Zone,即危险区。意思是如果你只会编程和调用机器学习的 API,调参数,那么你就处于一种很危险的境地。

结语

一个好的程序员,不应当满足于学习到了什么新的技术或者学习了什么新的算法模型。真正有价值的东西,往往是那些人们不乐意去学的底层的,枯燥的内容

我们应该认识到,单单只会上层应用开发或只会调包调模型而不懂底层原理,那这种开发人员的知识体系便如空中阁楼。看起来华丽壮观,但实际上却地基不稳。一旦出现一点问题这座阁楼便会顷刻崩塌,并且无计可施,只能到处“祈祷”。

对未知的事务保持好奇,不断学习,探究事物的本质,原理。在我看来,这才是程序员之道。

相关文章
|
Java 数据库 C语言
我与编程的故事
2017年暑假,高考填报志愿,全工科类完全偏向某专业的学校方向让我无从下手,听闻数学物理的纯理科很难,就把所有志愿专业填成了计算机相关,未曾想过,2020年的今天,我会如此坚定过去的选择。
我与编程的故事
|
Java 程序员
一个“码农”自述的血泪史:当了35年程序员,我最大的遗憾就是没抓住机遇转行
注:这是一个“一子错,满盘皆落索”的故事。兢兢业业干了35年的程序员,最后却认识到,程序员的力量太过微小。无论你写程序有多厉害,你都很难有权力真正改变一些失败的产品、失败的项目。
1444 0
|
Java 程序员 应用服务中间件
程序员们想说的是啥,你真听懂了吗?
如果你依然在编程的世界里迷茫,不知道自己的未来规划,可以加入JAVA架构学习交流群:835544715 里面可以与大神一起交流并走出迷茫。进群免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行!群里不停更新最新的教程和学习方法(进群送JAVA架构...
798 0
|
SQL 程序员
这个程序员太厉害了,上帝要学编程,于是带走了他
1944年,詹姆斯·格雷出生在美国的旧金山,上大学时,凭借不错的数学功底,拿到了数学和工程双学位,并在1969年取得了计算机博士学位。他是结构化查询语言(SQL)的发明者。如果没有他,世界大概不会是今天的样子,自动提款机、网上购物,甚至是Google Earth的问世都要推迟。
1547 0
|
程序员
程序员大牛们的经典语录
原文 程序员大牛们的经典语录 1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;   2、懂得但策略的说不(不会这个准备累死吧,程序员);     3、我考进事业单位,呵呵,没有传说中的那么好环境。
1256 0
|
测试技术 程序员