Danny Kalev是《ANSI/ISO Professional Programmer's Handbook》及《The Informit C++ Reference Guide: Techniques, Insight, and Practical Advice on C++》两本书的作者,他分享了一些建议,对那些寻求提高自身专业技能的程序员大有裨益。

姓名:

Danny Kalev

Danny Kalev Avatar

工作经验:

我从1988年以来一直在编程。我最初编程用的是DEC VAX 11/750(1980年10月推出)的机器,即便在当时那台机器也算是老古董了。然而,它却是学习编程的绝好方法,因为它支持多种不同的编程语言,例如PL/1(我仍然喜欢)、DCL(DEC的专有脚本语言)、Fortran、以及后来的C语言。20世纪90年代中期,我参与了一个规模巨大的移植项目,该项目是将以色列内政部办公室的国民登记处数据库转换为现代的、客户端/服务器架构。它是使用C++的最早期项目之一(在1994年)。之后我先后跳槽到几个专注于多媒体流的新兴创业公司——多媒体流在20世纪90年代末期是个热门话题。在那以后,我成了个体户。我已经写过三本C++的书,而且于2003年在Informit上开办了C++每周专栏,延续至今已有九年多。如今,我是几家IT公司的顾问。我主要的专业技能领域仍是C++及面向对象设计。我还会举办与这些主题相关的讲座。

VAX 11/750

VAX 11/750

最显著的成就:

  • 在2000年荣获以色列商会系统分析师优秀奖,随后出版了《ANSI/ISO Professional Programmer's Handbook》一书。
  • 在2004年以最优成绩获得语言学硕士学位。
  • 以书本形式出版《The Informit C++ Reference Guide》。

最常用的编程语言:

C++

建议:

如今每当我编写新的C++代码时,我会意识到同一程序与两三年前的样子相比差别是如此之大。那是因为C++的变化很快,即便是存在了30年后的今天依然如此。然而不仅仅是C++标准的变化影响着我的C++代码。作为程序员,我们始终在学习如何改进我们的做法。有两个因素导致了需要持续阅读——语言变化及技能改进。

要是你想成为优秀的程序员,你就必须投入大量时间去阅读C++杂志、一流作者的新书、订阅专业讨论组及论坛的内容、并与你的同事互相切磋。学习是永不结束的持续过程。除了接触新的编程技术和设计风格、阅读专业资料以外,还要自习精准的技术术语(technical terminology)。例如,规范4则(canonical four)(特指构造函数、析构函数、拷贝赋值运算符、赋值运算符)被作为那些特定成员函数的正式名称。同样地,C++中没有方法(method)——它只有成员函数(member function),因此我发现我总是把那些仍在谈及方法和属性的人搞得一头雾水,然而在C++中方法和属性都不存在。这并非吹毛求疵或偏执——没有精准、专业、统一的术语,你将无法阅读你的编译器的在线文档,更不用说专业性更强的资料了,例如C++标准本身的文本内容。

总而言之,阅读的资料一定要比你编写的内容多得多,而且要坚持阅读高质量的资料(read much more than you write, and stick to high quality material)。对那些侮辱你智商的烂书说白白。而是应该抬高准星,着眼于专业的、最新资料。那么做就对了。


查看英文原文:"The Best Programming Advice I Ever Got" with Danny Kalev

来自更多程序员的建议参见“我收到的最佳编程建议”(The Best Programming Advice I Ever Got)系列文章

“我收到的最佳编程建议”系列译文

  1. 千万别碰其他人的代码!——Russ Olsen
  2. 在你让代码可重用之前,应该先让代码可用。——Bill Wagner
  3. 在着手对代码进行额外修改之前,应该花点儿时间去理解位于异常/堆栈跟踪顶部的错误消息。——Obie Fernandez
  4. 调试前的思考十分重要——Rob Pike
  5. 编写更少的代码。——Russ Olsen
  6. 阅读的资料一定要比你编写的内容多得多,而且要坚持阅读高质量的资料。——Danny Kalev
  7. 翻译中……