admin
2023-08-08
推荐文章

什么是真正的程序员?

这篇文章的原文来自:A Little Printf Story作者仿照《小王子》中的情节,通过小 printf 遇见的不同类型的程序员,最后悟出什么才是真正的程序员!文章略长但是耐心读完,你肯会受益良多,下面开始吧!第一章Tips:推荐看完整篇文章,再回过头看一遍第一章。我非常幸运出生在一个电脑和电子游戏还没有普遍的时代。所以我可以和我的小伙伴们一起玩耍,同时发明属于我们的游戏。我们十分会玩:用树枝做成 🏹️。我们可以用树枝做出任何东西,除回旋镖。因为你把树枝扔出去,你需要自己捡回来。(作者这个故事是活跃气氛吗?😓)当我们长大了,上面说的游戏变得很幼稚。你不能把一个松塔当成一个手榴弹,假装拥有神奇的魔法,当其他孩子觉得作为一个成年人很酷,你最终会迫于压力而长大,不过总的来说这也是一个非常幸运的童年。偶然的一次机会我接触了电子游戏和电脑,你可能想沉浸在这个虚拟的世界,这会毁了你。大多数电子游戏:你不能创造,只能反应,浪费你的时间。我在十多岁的时候,参加过即兴表演,在哪里我可以发挥我的创造性。我大学的专业是多媒体,但是我最终却从事编程的工作。因为我觉得编程太酷了!我可以发挥我的创造性,同时又可以挣钱!之后我做了我的第一个游戏。“这不是一个真正的电子游戏。"别人跟我说:“它只是一个 HTML 的表单,而且代码需要简化。”它花费了很多心思和时间,这一席话使我有些沮丧。但是,我意识到如果我想做出被人们认可的东西的话,我还需要学习更多知识。我需要学习真正的编程,从 GUI 工具里的 JS,转到更好的语言:像 PHP。所以我先学习了 JS,后来又去学习 PHP,但是一切并不是很顺利,其他人给我的建议去试试 Python。最后,我学习的是 Python(🎊我也是这样走上 Python 之路的🍻)。但是 Python 中高深一些的东西:lambda 和面向对象编程,让我云里雾里的。后来别人建议我去读一下《计算机程序的构造和解释》,因为它是编程的基础入门圣经。就这样,我知道了 Scheme,后来我又去学习 C 语言。因为大多数的程序员都会 C 语言,同时我旁听了我们学校的计算机课程,跟着他们一起学习。因为,真正的程序员都知道数据结构和数学,但是这些我只略懂皮毛。我开始读技术文章和书,因为程序员的知识更新太快。经过一段时间,我掌握了 Erlang,从而开始了我的职业生涯。(本文的作者写了一本:Erlang 入门书)。十分奇怪的是:我这个没有用 Erlang 做过任何生产级别的开发的人,却得到了一份教 Erlang 的工作。第二章所以我忙于到世界各地演讲、教别人,虽然我讲的这些事情大多都和编程无关,但是大家似乎都相信我是一个真正的程序员。一天,我结束了一个会议坐飞机回家,但是飞机晚点了。我愤怒的敲击着键盘,一个柔弱的声音打断了我:“你好,能请你给我设计一个系统吗?”我:“什么?”“请给我设计一个系统!”我对这个请求很惊讶,我环视四周发现一个渴望成为开发者的孩子。他叫 printf(主角闪亮登场),我觉得这个名字很傻,他的样子如下图:“我还不是很了解计算机,但是你好像是计算机方面的专家。我希望写一个 blog 程序,人们可以使用和访问它。求求你帮我设计一个系统!”这是个令人惊讶的请求,并且我已经二十多个小时没睡了,我不是完全理解他的需求。我告诉他做一个系统十分困难,我不知道他想要做什么,比如需要支持多少访问者、在哪里部署等等,所以我无法根据他提供的少量信息,设计一个合适的系统。“没有关系,给我设计一个系统吧。”所以我做了下面这幅结构图:他看了之后说:“不,这个系统还不够好,请给我再设计一个别的。”所以我又做了下面这个:然后我给他讲解这个系统的工作原理。我的新朋友 printf 十分礼貌地说:“这不是我想要的,它又太复杂而且好多东西都是我不需要的。”我感到十分不爽,我设计的这个系统考虑到了:冗余、监控、备份、缓存、负载、支付、故障转移、部署简单等等。我设计的这个系统都已经可以获得一份可观的咨询费用了!我已经失去耐心了,所以我就画了这个:我又告诉他:“这是你设计的系统,你要的系统在这个黑盒子里。”我希望这个滑稽的答案,可以打发他。但是他的回复让我十分惊讶:“这正是我想要的!”这就是我和小 printf 相识的过程。第三章过了一段时间,我知道了这个小鬼的编程水平。在他的代码仓库只有些小程序、网站的小 demo、琐碎的程序片段。都是些不值得一提的东西。之后他开始着手做一个需要很多模块的大型程序。这个程序需要 socket、磁盘读写、用到真正的数据库。当它第一次跑起来的时候,小 printf 十分兴奋。但是,这个程序还不够好。这个程序需要重构、更好的测试、文档、分析。它只运行了一段时间就崩溃了。然后一次,又一次的崩溃!程序的设置是错误的,日志不工作、磁盘速度不稳定、网络卡顿、bug、编码混乱、数据库需要清理、证书过期、没有异常处理导致问题找不到根源。更多内容,请阅读原文:https://hellogithub.com/article/ec1c37c4204b485bb9e41894a4a13671

到第
共1条

VaporDemo

Vapor provides a safe, performant and easy to use foundation to build HTTP servers, backends and APIs in Swift

友链

赣ICP备2021010021号-1
© 2023 swiftdo
Designed By swiftdo Powered By Vapor
Github