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

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

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

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

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

当后来其他星球上的高科技出现问题的时候,会向科技星求救。科技星就会派遣工程师前去维修,但是呢,他们将各种身份都进行包装,比如,工程师不叫做工程师,而是叫做“僧侣”,核电站也不叫做核电站,而是叫“圣殿”,维修也不叫做“维修”,而是叫做“祈祷”,也就是说,对核电站维修这一项工作完全被宗教化了! 而此时科技星提供的说法是这样,因为这颗星球上的人做了坏事,比如违反法规,发动战争等等,触犯了神灵,所以神灵剥夺了他们使用能源的权力。而如果想要恢复能源,就必须对自己的行为忏悔,祈求神灵的原谅。所以当工程师进入核电站进行维修的时候,所有的星球居民一起下跪祈祷,而当核电站恢复的时候,大家纷纷称颂神的伟大。

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

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

再来说说人工智能

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

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

话又说回来,在机器学习或是深度学习的学习过程中其实也很容易陷入到这种只会调用上层 API 而不知底层原理模型的境地。因为在今天,有很多库类都可以让你轻松实现一条语句就直接使用某个算法模型,所以很多人就不再专注于对底层模型原理的学习。 我们来看看这张图中 Hacking Skills 和 Substantive Expertise 的交界处,这里叫 Danger Zone,即危险区。意思是如果你只会编程和调用机器学习的 API,调参数,那么你就处于一种很危险的境地。 结语 一个好的程序员,不应当满足于学习到了什么新的技术或者学习了什么新的算法模型。真正有价值的东西,往往是那些人们不乐意去学的底层的,枯燥的内容。 我们应该认识到,单单只会上层应用开发或只会调包调模型而不懂底层原理,那这种开发人员的知识体系便如空中阁楼。看起来华丽壮观,但实际上却地基不稳。一旦出现一点问题这座阁楼便会顷刻崩塌,并且无计可施,只能到处“祈祷”。 对未知的事务保持好奇,不断学习,探究事物的本质,原理。在我看来,这才是程序员之道。

转载于:https://juejin.im/post/5c20c47e5188256d0e5aef17

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

  1. 一个故事告诉你,学习编程是否需要天赋?

    学习编程需要天赋吗? 一个故事告诉你,学习编程是否需要天赋? 1.你适合学习编程吗? 有的时候我也会怀疑我自己,我到底适不适合学习编程呢?感觉身边的同龄人都好牛X: 1.985/211 2.阿里/百度 ...

  2. 什么才是真正的程序员?

    作者 | 削微寒 责编 | 王晓曼 出品 | CSDN 博客 第一章 (推荐看完整篇文章,再回过头看一遍第一章) 我非常幸运出生在一个电脑和电子游戏还没有普遍的时代.所以我可以和我的小伙伴们一起玩耍, ...

  3. 什么才是厉害的程序员?

    有一个读者问我:你认为一个程序员具备什么样的能力,才算得上是厉害的程序员? 我答:拥有解决问题的能力的程序员. 这个回答貌似有点抽象,不要紧看下面的文章你会慢慢有所了解.  一.解决问题的能力 很多年 ...

  4. 怎样才是理想的程序员

    转自:http://bbs.csdn.net/topics/391061326 第1个一点点:专注眼下 见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条.他们往往有各式各样的小梦想,比如 ...

  5. 为什么公司宁可高薪招一个新员工,也不愿意给老程序员涨一点工资?

    我做了十多年的研发部门管理,这种问题我们可以理解为行业现状,如何去理解呢?我就拿西安的软件行业来说! 西安算是除了北上广深之外比较优质的软件产业城市,但是有一个现象是西安一直无法摆脱的魔咒,那就是二十 ...

  6. 人人都能成为程序员?不,我要告诉你:“ 你不适合做程序员”

    [文章来源微信公众号:每天学编程] 我的一位同事,他带他读小学的孩子去学钢琴,通过关系找了一位有点名气的退休的老教师,学费不菲.他说其实他并不知道为什么要学,但是看到那么多孩子都在学钢琴,他想,他的孩 ...

  7. 一个月薪3W,但有点失败的北京程序员的真实生活!!!

    月薪30K的北漂一族都过着什么样的生活? 在很多人眼里,月薪30K的生活至少是这样的:左手手握一杯星巴克,右手持握plus手机,出入写字楼,杰克大卫叫着,徒手撸系统,单针戳光盘,一星期7件格子衫不重样 ...

  8. 【头条网给你一个机会做代言人】征文大赛三等奖:程序员联盟

    [头条网给你一个机会做代言人]征文大赛三等奖-参赛文章 最近喜获头条网举办的[头条网给你一个机会做代言人]征文大赛三等奖,虽然不算什么. 不过有网友要求我发参赛文章,不才在此献丑了: 大家好! 我叫谢 ...

  9. 看完GitHub官方的2021年度报告,才发现原来全球程序员好像都在卷呐

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源|David 小咸鱼/新智元 7300万开发者在365天里能做什么? 最近,全球最大开发者社区GitHub重磅发布2021年度报 ...

  10. 【鲁班学院】一个三年工作经验和月薪16k的java程序员应该要具备什么样的技能?...

    大家好,我是鲁班学院的阿琰!我是有着三年工作经验的Java程序员. 目前一线城市的薪资水平在13到16K之间,但是找工作的时候并不仅仅有工作经验就行了,还需要一定的专业知识.如果你野心更大,想要进阿里 ...

最新文章

  1. h.264 视频解码的一点小经验(ffmpeg)
  2. javaee概览_Java 9概览
  3. Python文件拷贝函数
  4. wsadata wsadata;为什么不通过_注册公司之公司名称核准,知道为什么你的核名一直不通过吗?...
  5. Docker - 安装并持久化PostgreSQL数据
  6. RabbitMQ-Java实现Publish/Subscribe订阅模式
  7. [转] MongoDB shell 操作 (查询)
  8. java 注入为空_Spring @Autowired 注入为 null
  9. 反垄断重锤字节跳动,投资业务原地熄火 腾讯阿里争做“普通公司”
  10. Web框架-SSM框架
  11. 如何刷新微信服务器小程序版本,微信小程序线上更新版本流程及如何运用
  12. 访达前往文件夹_MacOS实用技巧之Finder(访达)的使用
  13. Mac电脑CPU、风扇转速、电池电量等硬件参数监控免费小插件-iStats
  14. html5使用websocket发送(PCM)音频数据到服务器,再转在wav文件
  15. layui——下拉框监听
  16. 10款国外免费VoIP服务
  17. 高德地图搜索附近地址所遇到的问题
  18. 从零开始学C语言之第一节
  19. 2021-11-23 WPF上位机 96-Modbus通信代码的封装
  20. python中beautifulsoup是什么,Python Beautiful Soup简介

热门文章

  1. 仿真作业3:噪声通过DSB-SC解调器
  2. Prometheus自动发现Exporter实现方案(一看就懂)
  3. 再谈KMP/BM算法(II)
  4. 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) D】Count The Bits【数位DP】
  5. html缓存失败是什么,HTML5离线“应用程序缓存错误事件:清单读取失败(-1)”...
  6. Raki的读paper小记:TriggerNER: Learning with Entity Triggers as Explanations for Named Entity Recognition
  7. 炼丹中遇到的一些BUG
  8. 快速突破算法之位运算
  9. 565.数组嵌套(力扣leetcode) 博主可答疑该问题
  10. 开发中常用正则表达式