打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
程序员:浮躁世界,我思考(3)

程序员:浮躁世界,我思考(3)

2013-08-01 10:03 佚名 http://tchen.me 我要评论(0) 字号:T | T

我职业生涯起始的公司是神州数码网络公司(DCN)。如果将google或者twitter定义为『优秀』公司,那么,DCN显然处在平庸公司的行 列。好在DCN继承了老联想的底子,还有一批有理想的做系统的牛人。Z君就是这样一个人。

AD:2013云计算架构师峰会超低价抢票中

5. (五)

A language that doesn't affect the way you think about programming, is not worth knowing.  - Alan Perlis

离开Juniper,我选择了创业,创建了途客圈。那是一段奇妙的旅程,一段让我成熟很多的征途。有史以来第一次,我写软件,不是为了我的雇主,我 的payroll,而是为了我的梦想。虽然这段旅程仅仅走了两年我就不得不因为一些个人的原因选择了自我放逐,但这两年,如乔帮主所言,是我开始去连接那 一个个"disconnected dots"。我的编程水平开始极大地发展,我的软件开发思想在不断走向成熟,我越来越觉得自己像是一个真正的程序员了。

重要的是,我开始学习新的语言了。你也许注意到,自从从DCN学习了PHP和Python后,在Juniper我就不再学习新的语言了,部分原因是 我在夯实我这两门语言的水平,尤其是Python的水平,但更关键的原因是我开始固步自封了。C让我成为真正的程序员,Python让我成为聪明的程序 员,我似乎找不到继续学习新语言的理由。

但是,创业改变了这一切。我不得不学习javascript,因为这是客户端唯一的标准。尽管在十多年前我就接触了javascript,并用它做 过一些效果,但那时对javascript的使用,与其说是使用,不如说是误用。在途客圈,我才真正重新认识这门prototype based language。另外,为了权衡究竟什么样的架构更利于未来的发展,我花了很多功夫深入了解ruby,在ruby和python之间进行对比。通过《松 本行弘的程序世界》,我了解了设计ruby时的很多思想。尽管途客圈最终选择了python/django,但这是一次非常有益的对比和思考,它让我进一 步找到了第五个答案:

学通超过一种编程语言,了解尽可能多的编程语言及其优劣,知道解决某个问题的可能的最佳路径。

注意学通和学会是两个概念。学会意味着你能够使用这门语言,会写程序,而学通则意味着更多:

  • 了解语言被创建之出的动机,深刻理解语言背后的思想
  • 掌握如何在线调试(online debugging)和事后分析(coredump analysis)。
  • 掌握语言外延/周边的技术。如JVM之于java,OS/CPU EABI之于C。
  • 掌握如何提升关键代码的效率,如何能够扩充语言的能力。如NIF之于Erlang。

很多在简历中号称精通C的人不知道malloc背后都发生了什么,精通Python的人却无法用meta programming写出干净漂亮的代码。这样的精通其实也就是勉强学会。

按照这个标准,摸爬滚打了十年后,我在C语言上勉强算学通,Python和Javascript只能说学会,Erlang/Ruby刚算了解。

容我再解释一下为何要了解尽可能多的编程语言极其优劣。比如说新开发的软件并发模式要采用STM(Software Transactional Memory),如果在技术选型前,你知道clojure在语言层面,haskell在GHC层面实现了STM,那么,你的选择可能不会局限于你之前所用 的语言。

6. (六)

总而言之,现在完全不可能让时钟倒转了。你不能永远总是对过去也许会发生的事耿耿于怀。你应该认识到你与大多数人一样地过得很好,或许还要好得多,那就应该心满意足了。  - 《长日留痕》

Life is short, [the] craft long, opportunity fleeting, experiment treacherous, judgment difficult.  - Hippocrates

也许是之前的凝视耗费了太多的精力,小宝开始打着哈欠揉眼睛。她回过头来,张开双臂,满眼期待地望着我。我知道,小家伙想要抱抱了。

十年前我根本无法想象十年后我能如此幸运而又意外地拥有她,正如十年后我无法预料她会变成什么样子。我可以为我的职业生涯,还有她的人生 做"deliberate"的打算,但我无法控制结果。过去的十年,我遇到了很多很多十字路口。就像《长日留痕》里说的那样,『你不能永远总是对过去也许 会发生的事耿耿于怀』。重要的是,我做出了选择。我很高兴我的人生经历与大多数人一样丰富,或许还要丰富得多,我很高兴我有很多很多故事讲给我的孩子听。

哦,忘了说另外一个答案,也就是第六个 —— 当然,仅仅对非英语母语的人有效:

能用英文自如地阅读,写作和交流。

一位优秀的程序员究竟该具备什么素养?

在用了近8年的vim之后,我决定,尝试emacs。

原文链接:http://tchen.me/posts/2013-07-27-the-remains-of-the-day.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学习编程太枯燥?12款助你学编程的免费游戏
程序员应该先学哪种编程语言?
适合初学者入门的5种编程语言
学习游戏要学习编程语言吗?十大主流编程语言解析
程序员入门必读 2014十大编程语言推荐
小话计算机编程语言及其用武之地(拼凑之作,欢迎大家拍砖)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服