本文作者James Long为Netflix公司工程经理。
在React Conf上,一些人询问我如何才能成为一名更好的程序员。出于一些愿意,很多人觉得我是一名优秀的开发者,并且认为我的建议值得采纳。因此我决定写下这样一篇文章,把我这些年的经验分享给所有人。
关于我:我今年32岁,有着10年的编程经验。但是直到最近今年,我才获得了真正的自信。但是直到现在,我还是一直在挑战自己。这种自我怀疑和挑战的感觉永远不会消失,因此你只能努力忽略这种感觉,不断尝试、不断积累经验。
首先我要说明一点,有很多种方式都可以帮你提高编程技巧,你需要找到最适合你的那一种方式。我在这篇文章中所介绍的技巧,只是我觉得有用的方式。
• 找到那些能启发你的人,但是不要把他们当做偶像
这些年来,我敬仰过很多人,他们让我认识了很多新技术。我完全相信他们的每一句话,研究他们的代码,并且从中获益良多。这些人高效、有才华,而且很会启发别人。你应该找到这样的人,让他们不断启发你、教导你。
然而,你却不能把他们偶像化。如果你看看他们平时的工作和生活,你就会发现他们和你别无二致。其次,不要盲目的笃信他们;如果他们的一些做法或是想法和你不一致,你可以尝试与他进行交流。正是这种不断的交流,才催生了一些高效的对话。
• 不要菲薄自己的工作
一些新入行的程序员很容易觉得自己的工作做的不够好。一些有经验的程序员也会如此,尤其是那些刚刚进入一个新领域的程序员。在我看来,一些优秀的创意和想法正是那些新程序员所提出的,因为新人更容易发现某种技术的改进空间,而老鸟们早已经习惯了这种技术,而没有改进意愿。
你的每一项工作都有自己的价值。最差的情况下,即使你的想法并不正确,你所在的社区已经你自己也能更好的理解为何你的想法没有成功。
• 不要害怕休息和调整
每天都会有新的技术出现,你很容易感觉自己一天不学习,就会被淘汰。其实真实情况并非如此。学会休息能让你更好的工作。我发现自己在休息的时候更能获得新的想法。
其实很多新出现的技术都只是在炒冷饭而已。真正革命性的东西只会每几年出现一次。你可以在Hammock Driven Development上了解那些真正有意义的创新。
• 学会忽略无用技巧
让自己快速成长的重要方式之一,就是要学会忽略那些对你帮助其实并不大的无用技巧。换句话说,就是要“明智的利用时间”。一天只有那么多时间,如果你把时间浪费在没用的东西上,那你获得成长的时间就会变少。
何为无用技巧?这取决于你的工作性质,在我看来,无用技巧包含:语言句法和library API等。学些一个新的ES7 JS句法不能让你成为一名更好的程序员,有那个时间还不如学学编译器的工作方法。虽然这些东西也很重要,但是我推荐你将时间用在深层概念的学习上,这些东西能让你在未来很多年里都能获得更多收益。
我经常问别人一个问题:你是否把大量时间花在让代码更好看上。如果你也是这样,我建议你不要在这方面浪费太多的时间,无论你把代码写的多好看,它未来肯定会被修改许多次。你更应该专注在你想要解决的核心问题上,之后在考虑如何对代码进行抛光。
• 重温过去的研究
当你对一个想法感到兴奋的时候,你很可能会立刻坐下着手操作。但是在此之前,你更应该看看前人是否已经解决了这个问题,并且弄懂他们的解决方式。很多时候,通过了解前人的解决方式会彻底改变我自己的想法。
你还应该学会阅读学术论文。有很多论文都使用代码代替了数学术语,这些论文读起来都不是太困难。过去30年间,我们已经积累了大量的计算机学术论文,如果你学会从这些论文中提取知识,很快你就会成为行业内的思想领袖。
如果你想要阅读论文,你可以在GitHub上找到Papers We Love这个repo,这里有很多优秀的计算机专业论文。
• 挑战大型项目,挑战自己
没有什么东西能和经验相媲美。不是每一个人都坐在能进行实验的职位上,但是如果你有时间的话,可以挑战一些大型的项目。你甚至不需要完成这些项目,只要试着解决一些你以前不熟悉的问题,你就能学到很多宝贵的东西。
老实说,我自己非常不喜欢这种感觉:不知道自己身处何方,不知道何去何从,觉得问题过于复杂,超过了自己的能力。这种感觉非常不舒服。但是一旦克服了这种情绪,让自己坚持下去,我的能力就又提升了一些。
让自己走出舒适圈的最好的方法之一,就是学习一个新的语言。对我来说,年轻时做的最正确的一件事,就是学习了Scheme。这是一个非常基本的语言,它强迫你用函数式风格解决一切问题,但是它的好处是能让你非常透彻的理解代码的工作方式。学习Scheme给我带来了巨大的好处,这种好处一直到今天还在发挥作用。
我推荐你去做下面这些事情。它们在我的职业生涯当中都发挥了巨大的作用。学习其他一些东西也能让你成为更好的编程人员,但是我所列举的,都是在我身上验证过的东西。
原文来自:SDK.cn
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。