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

简介:

从一个故事说起

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

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


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

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

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

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

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


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

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

再来说说人工智能

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

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

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

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

结语

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

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

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

相关文章
|
Java 程序员
话题讨论 | 程序员表白,不光需要“技术”,更需要勇气!
回忆起我们的点点滴滴,我们也有美好回忆。程序员应该如何表白呢 ?很大一部分是不够自信,怕穷,怕拒绝,其实更多的你可能需要的是一份勇气,爱,要大声说出来!恰逢官方正文,在此总结一下我们的点点滴滴,平凡而又伟大。
229 0
|
存储 缓存 前端开发
我想转行程序员,请鼓励一下我
不会游泳,换个水池是没用的。
128 0
我想转行程序员,请鼓励一下我
|
人工智能 图形学
9年3D建模师的感悟—写给还在迷茫中的朋友
不知不觉,从事3d行业已经9年了。今天想把这么久以来积攒的3D建模的学习经验彻底讲一下,希望能对你有所帮助 。
302 0
|
机器学习/深度学习 人工智能 自然语言处理
AlphaCode 能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了
DeepMind 是最新的人工智能研究实验室。它推出了一个可以生成软件源代码的深度学习模型,成果令人印象深刻。该模型被称为 AlphaCode,基于 Transformer,与 OpenAI 在其代码生成模型中使用的架构是一样的。
176 0
AlphaCode 能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了
|
Java 数据库 C语言
我与编程的故事
2017年暑假,高考填报志愿,全工科类完全偏向某专业的学校方向让我无从下手,听闻数学物理的纯理科很难,就把所有志愿专业填成了计算机相关,未曾想过,2020年的今天,我会如此坚定过去的选择。
我与编程的故事
|
运维 前端开发 关系型数据库
来谈谈写作这件事
写作这件事,很多大佬都谈过,但我还是想从自己的角度去谈谈.
|
开发框架 安全 程序员
我编程,我快乐,献给所有的程序员
  最近读了《我编程,我快乐》,里面有一些观点给我了不少启发,特别是一些职业规划的方面的内容。   我编程,我快乐,献给所有的程序员   如果生活的大部分时间都被工作占据着,那么热爱工作就是热爱生活。 比起那些枯燥的简单任务,充满挑战、有驱动力、有回报的工作更能让你有动力在清晨从温暖的被窝里爬起来。工作做得好意味着你在充分发挥着才能。相反,如果工作做得不好,就证明你大部分时间都只能在懊悔,懊悔自己碌碌无为。
182 0
程序员的快乐就是这么朴素无华且枯燥
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我是一个程序员,外行人都以为我是修电脑的,我笑了笑,随意ctrl c+ctrl v了一把,想象着你们因为我的文章而开心不止,我感到充实而欣慰。
1050 0
|
安全 程序员
【观点】如果你不是程序员 该如何雇佣程序员呢
导读:原文来自37signals.com,作者Matt发表的一篇《How to hire a programmer when you're not a programmer》。译文由国内整理编译为《如果你不是程序员,你怎么雇佣程序员呢》。
1056 0
|
Java 程序员 应用服务中间件
程序员们想说的是啥,你真听懂了吗?
如果你依然在编程的世界里迷茫,不知道自己的未来规划,可以加入JAVA架构学习交流群:835544715 里面可以与大神一起交流并走出迷茫。进群免费领取学习资料,看看前辈们是如何在编程的世界里傲然前行!群里不停更新最新的教程和学习方法(进群送JAVA架构...
823 0

相关实验场景

更多