我是一个伟大的程序员,但一个可怕的算法障碍者

这是2013二月写的一篇老文章,并发表了我的老博客。我出版这里因为它契合了社会当它第一次发布。基本的想法是继续发展网站,像rejected.us和豪厄尔的很受欢迎的微博的兴起。
我是一个伟大的程序员,但一个可怕的算法障碍者。这是一个最近一直在重压我的想法,我想在这个主题上收集其他开发者的感受。
我在1999年开始了我的专业发展生涯。我仍然在中学,但我的父亲聘请我在他的软件公司。我的职责是为了更新我们的网站,但我最终窃听其他开发商来帮助我学习。
我拿起Perl,然后加入到PHP和前端Web开发的领域待了舒适的十二年后。
当涉及到建立大型系统,了解这些系统的细节,并实际写他们,我做得很好。我可以写优雅的代码(相信它的存在),和真正理解的编程。我做的所有事情,一个软件工匠:写测试,使尽可能多的学习新技术,磨练了我的工艺工作和开源工作,并建立系统,将规模需求和客户的要求。
我甚至有一个计算机科学的学位,从我认为是一个伟大的大学。
但是,我觉得我是一个糟糕的算法障碍者。
叫我写一个复杂的算法(甚至一个已经发现了),我开始变得紧张得手心出汗的紧张。这是一个症状,你也有吗?要真正能够在代码中表达一种算法,我真的要花很多时间去理解它这样做。
我知道,一个算法只是一系列的步骤来完成一个问题。我指的是复杂的算法,如排序,递归合并策略,加密和压缩,以命名一些。
我最自豪的成就是写大学的A*算法,我的第一个数据结构与算法类。我花了几个小时在物理上绘制图表,并保存节点被推上和关闭的堆的写表。
我甚至保留了图纸,因为我很为他们感到骄傲(点击下面的链接看到的草图)。
A* Sketch #1 A* Sketch #2 A* Sketch #3 A* Sketch #4 A* Sketch #5

它归结为是我经常遇到的问题,看到一个复杂的问题的基本算法。我曾经面试过亚马逊,没有过去,第二轮因为我无法在一个他们问我的问题看到底层的算法(对整体结构的问题,然而,我在就好了)。幸运的是,这不是你要么有或不。一些程序员确实有一个自然的能力,看到底层的算法的一个问题,但如果你不能,它可以学习。
我是独自一人感觉到这一点吗?其他的程序员也在和这个斗争吗?这是冒充者综合征的表现?我很享受大学,但我没有努力学习,因为我应该有。如果你是一个计算机科学专业的大学现在和很多这不来自然,我敦促你:请花时间在你的研究。真正学习在课堂上提出的算法。如果你在你的职业生涯中从未真正使用它们,至少它会让你感觉更像一个程序员。

翻译来自:https://viccherubini.com/2013/02/i-am-a-great-programmer-but-a-horrible-algorithmist