博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读到良葛格的反思"Hello World"
阅读量:6985 次
发布时间:2019-06-27

本文共 1522 字,大约阅读时间需要 5 分钟。

分享一位台湾的朋友良葛格的一篇文章。其实编程确实没有表面上看起来的那么简单,程序员耗尽脑力,冒着谢顶的风险奋斗。却往往被一些牟利的教育组织骗生源的表述为“程序的世界就是这么简单”,很多人奔着高薪就蒙头闯了进来,面临巨大的精神压力后又放弃的经过我面试的都不少了。其实要沉淀下来是需要多年的磨练与思考才能积累下来的。一个“老姜”不论是速度、质量、代码风险、扩展性...都是新手无法比拟的。现在面试的新人我都会跟他说这是一个坑,巨坑,你还愿意来吗?你会面临不断的学习,跟上日异月新出现的新技术,要具备超强的自学能力。

所以你读了下面的这篇文章后,以后教授新人就不要再演示“HelloWorld就是这么简单”之类的话了。

下面引用良葛格的文章

第一個Hello World的出現是在Brian Kernighan寫的"A Tutorial Introduction to the Language B"書籍中(B語言是C語言的前身),它用來將Hello World文字顯示在電腦螢幕上,自此之後,很多的程式語言教學文件或書籍上,已經無數次的將它當作第一個範例程式。

為什麼要用Hello World來當作第一個程式範例?基本上是因為它很簡單,初學者只要鍵入簡單的幾行程式,就可以令電腦執行指定的指令:顯示Hello World。我自以前到現在也是用它來教導一些人如何撰寫它的第一個程式,直到近來,我突然產生一個問題:「現今所有的軟體設計問題到底是什麼?是不是根 本上我們教育軟體設計人員的方向就錯了!?」

電腦呈現出現實生活中的種種活動與概念,並去除這些活動與概念中難以掌握與更動的要素,尤其是圖形化介面的產生,將桌面環境模擬於虛擬世界中,並擴 充了一些特性,從而使得人們覺得操作電腦是容易的、命令電腦 是容易的、改變電腦上的一切也是容易的。

這種觀念也漸漸深植在軟體設計人員的心中,至少是大多數人的心中,要改變程式中的幾個字符是這麼的容易,容易到完全不需要成本,事實上這是一種過於 天真的樂觀主義。

Hello World不經意的表現了一種暗示:「看!就是這麼簡單,我就可以在電腦上顯示Hello World。」有些文件或書籍甚至直接明示了這一點。

Brooks在The Mythical Man-Month中說的:「電腦編程基於十分容易掌握的介質,程式設計人員通過非常純綷的思維活動 - 概念以及靈活的表現形式來開發程序。正是由於介質的易于駕馭,我們期待在實現過程中不會碰到困難,因此造成了樂觀主義的彌漫。」

正因為介質容易掌握,我們誤以為我們可以自由的透過它來實現我們腦中的思維,這是一種邏輯上的謬誤,因為我們根本無法確切的掌握我們的思維,即使我 們有了最容易掌握的介質。

我們一開始就忽略了人類思維的複雜性與難以掌握,而強調電腦所創造的虛擬世界之易於駕馭,學習者是如此,匆匆的學習,急於掌握這種介質,教育者也是 如此,著重於教授如何透過即定的語言來掌握這種介質,而忽略了訓練學習者去掌握自己思維的複雜性與概念的建全性。

過去我們所能掌握的介質就像是木頭,我們試圖雕塑腦中的一個形象,但苦於對木頭塑形的難以控制,現在我們有了更易於塑形的泥土,我們誤以為我們可以 任意的實現腦中的想法,然而事實上並非如此,不受控的思維反到會使得我們在一陣忙亂之後,只得到一身的狼狽。

使用Hello World程式本身並沒有什麼錯誤,它展現了一個程式該有的元素,錯誤的重點又是在於人,至少從現在開始,我們不應該在展示了Hello World之後,宣稱設計程式就是這麼的容易,我們或許該說的是:「小心,就因為它是這麼的簡單,您要小心控制您的思維,不然程式就會狂亂!」

转载地址:http://sgtpl.baihongyu.com/

你可能感兴趣的文章
《Photoshop Lab修色圣典(修订版)》—第1课深入讨论
查看>>
Chromium 操作系统即将支持所有 SBC 单板电脑
查看>>
《CCNP安全Secure 642-637认证考试指南》——第8章 配置与实施路由式数据面安全...
查看>>
Remix OS PC 版面向全球开放
查看>>
Debian GNU/Linux 9 将切换至 GCC6 编译器
查看>>
《VMware 网络技术:原理与实践》—— 3.2 以太网
查看>>
《程序员的修炼——从优秀到卓越》一一1.6 勿以专家自居
查看>>
《Adobe Illustrator CS5中文版经典教程》—第0课0.5节使用绘图模式
查看>>
AngularJS 的自定义指令
查看>>
《CCNA ICND2(200-101)认证考试指南(第4版)》——第1章定义生成树协议
查看>>
什么样的 RPC 才是好用的 RPC
查看>>
《Adobe Premiere Pro CC经典教程》——14.6 特殊颜色效果
查看>>
Debian 项目不再提供 CD 格式的 ISO 镜像
查看>>
《设计团队协作权威指南》—第1章1.3节甘为螺丝钉
查看>>
Mozilla 将 Firefox 的命运与 Rust 语言捆绑在一起
查看>>
android 屏幕保持唤醒 不锁屏 android.permission.WAKE_LOCK
查看>>
《Unity 3D 游戏开发技术详解与典型案例》——1.3节第一个Unity 3D程序
查看>>
Airbnb数据科学团队进化论:如何由内而外实现数据驱动
查看>>
如何用机器学习预测超售,避免美联航“暴力赶客”悲剧
查看>>
css细节(实习第1天)
查看>>