2014年成为好程序员的7种途径(节译)

程序员有办法,没有吗?如果你还没有计划,可以参考其他人的想法并在新年付诸实践,甚至最聪明的家伙也有成长空间。由Kevlin Henny编写的《每个程序员必知的97件事》包括了以下专家。

1.责备别人代码之前先看下你的代码

要对你自己的假设和其他人的假设提出质疑,不同厂商的工具或许有不同的假设,有时候同一厂商的不同工具也有这种情况。

当别人发现了你不能重现的bug时,去看看他们正在做什么,他们可能在做你从来想不到的事情,或者按不同的顺序在操作。

我个人原则是,如果我有个无法确定的bug,我首先考虑编译器的问题,然后再查看栈异常。特别是在增加了跟踪代码之后使得问题发生了变化时。让人抓狂的多线程问题是另一个bug的诱因。当一个系统引入多线程时,所有支持简单代码的建议都会成倍增加。调试和单元测试将不能依据任何一致性来找到bug,因此设计的简单性是最高准则。

因此,在你开始归咎于编译器之前,记住Sherlock Holmes的建议,“如果你排除了不可能的(impossible),那么无论剩下什么,不管多么不可能,它们一定就是了”,还可以参考Dirk Gently的,“如果你排除了不可信的(improbable),那么无论剩下什么,不管多么不可能,它们一定就是了”。 —Allan Kelly

2.持续学习

这是一个有意思的时代。由于全球化的发展,有很多人和你做同样的工作。你需要保持学习以确保竞争力,否则,你将会变成做同样工作的恐龙,直到某一天,你不再被需要,或你的工作被外包给了其他便宜的资源。

因此你打算怎么办?一些雇主比较大方,为你提供培训,提高你的技能。其他雇主或许压根不会抽出时间或资金做培训。保险起见,你需要对自己的教育负责。

这里有些确保你学习的方法,许多都能在网上免费找到:

看看书、杂志、blog、twitter和网站。如果你想深入某个科目,考虑加入邮件列表或新闻组。

如果你真的想专注一门技术,就动手写代码。

...

6个必备的Drupal面试题

你正在招聘Drupal开发工程师吗?你知道如何甄别好的开发工程师吗?

我的一个客户让我列出问题清单,通过讨论这些问题来评估应聘者的技能水平。我列出了涵盖全面Drupal开发经验的6个问题,经过20分钟的面试你就清晰地了解应聘者的Drupal水平。

1.你经常向客户推荐哪些module?

在问问题之前,你先看看drupal.org上面Drupal module用法的网页。应聘者应该能够提到一定数量的前30个的module。

让应聘者逐个解释推荐的理由,他们应该能给你一个冠冕堂皇的说法。如果他们推荐一个特别冷门的module,就问它支持的程度。

问题如下:

...

怎么加速缓慢的网络连接

对于大部分人来说,家庭网络连接比十年前快了很多,除了今天某些地方5M连接速度好像非常快了。不要放弃互联网视频——你可以做一些事情来最大化性能,很多地方不用花一分钱!

第一步:一个好的路由器

不过,首先需要注意的地方,需要花一点钱:好的路由器。

你的ISP可能给你提供了一个基本的无线路由器,或许你在黑色星期五抢的价值30美元的路由器,它很可能不会使连接发挥全部潜力。投资一款有质量的路由器会改变很多。

找一个能够提供包优先和QoS功能【注1】的路由器,你就可以选择哪个程序和电脑可以优先占用可获得的带宽,还可以限制它们。比如,你不想让bt下载一整天全速运行。

对于DIY类型,像Tomato USBDD-WRT等第三方路由器防火墙值得一看。只要路由器有兼容芯片组,你就可以刷自定义防火墙,增加大量功能(包括QoS)而不用花大钱从商店里搞到那些饱受摧残的路由器。有些公司甚至卖预装好DDWRT的路由器。

第二步:

技术上的设置也可以试试,包括更改DNS,运行一下Gibson Research的 DNS benchmark tool,它会很快显示出向你电脑响应最快的DNS。假定你了解如何访问路由器管理界面,你可以忽略下面的,插入它列出的两个最好的DNS,就可以节约几毫米的lookup时间。

另外,缓存代理服务器也可以加速冲浪。Squid不错,可以自由选择——你不必准备一个空闲的Linux机器。有windows可执行程序,这得感谢Acme...