




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、写代码的四个阶段从你拿到第一份码工的工作开始,你就可以说你会写代码了,因为毕竟面试是需要写代码的。然而会写面试的代码于工作是没有太大益处的。仅仅是你必备的一项找工作技能。真正能写出在production也很solid 、很靠谱的代码,可能很多人都经历过类似的不同阶段:第一阶段:抄代码大部分公司对于比较新手的程序员,不太会上手就让你从无到有的开创一个新的代码库。而是在某一个代码库里增加或者修改一个功能。或者至少又类似的代码库可以参照。从产品的角度说,就是增加或者修改一个已有产品的特性。很多时候,公司的代码库已经有了很多类似的代码模块可以参考,而这种代码写起来其实没有太大技术难度,按照前人的写法写
2、就行了。叫抄代码有点偏颇,但是什么意思, 我想很多人都能体会。 我在 Square 的前半年,感觉大部分代码是这么写出来的。其实收获会很大:第一,你见识了这样的系统的架构是什么样子的。第二,很多地方别人为什么要那么写,反复琢磨,琢磨透了,就会学会处理实际编程中的很多技巧。 比如怎么处理并发, 怎么处理异常,怎么减少代码耦合度,等等。第三,很多语言的巧妙之处,系统设计的精巧,这些都是单纯读文章或者读代码很难体会的,自己从需求出发去理解这样的方案,其实学习语言的效率也是事半功倍。第二阶段:学代码当我们对业务逻辑,代码库都比较熟悉之后,这个时候多看看进阶的书和各种学习资料, 我觉得是最有效的。 因为
3、你有了一定的基础,所以阅读起来更容易理解。更重要的,是书本或者资料里提到的一些优化方案或是设计技巧,会特别容易引起共鸣。记得有一次, 我要写一段处理REST API request retry情况下怎么保证request的执行在timeout或是lost等情况下都能保证service的功能函数被且只被调用一次。因为涉及到异步和并发,所以有很多奇怪的情况需要考虑。那几天满脑子里都是在想各种不同的出错场景该怎么处理,如何正确使用 idempotency key 来保证实现的严谨和正确性。就在这个时候,很幸运地看到一段类似情况的处理的代码,当时再读这样的实现,就对其简洁和全面无比欣赏,感觉就像发现了
4、一件设计精巧、打造完美的艺术品似的。工作中从别人、从资料积累的这样的学习慢慢会变多,这个时候,经常可以在对别人的代码审核中给出比较有价值的建议,或者能够对已有代码库做出进一步的优化和完善。第三阶段:心中有代码虽然说很多时候,大家觉得程序员这个职业,年轻人更有优势。我倒真的不是完全认同。一个程序员如果坚持不断的上手写代码,不断思考,不断学习,这样积累下来的经验应该只会让自己不断增值的。前几天和二爷说笑,二爷说,和一些牛人聊技术,聊团队,聊模式,往往之后会觉得技术之外的东西更有帮助。其实就是这个道理,技术不是靠一次能讲清楚的,牛人一次分享会给你一些启发,但是这些启发有多少能转化到产品中,其实还是有
5、很多别的更重要的因素的。所以很多公司都需要挖一些这样的高级甚至高高级的程序员,因为他们是心里面有代码,知道一个service应该怎么写,会有哪些坑。哪怕是写出的只是几十行代码,其实可能都是多少年经验积累下来的最宝贵的经验。第四阶段:心中无代码这句话好像有点虚。最近看了曹政哥的一篇文章从值乎谈执行力,有一段觉得写得特别好。以前我请大牛云风给我们讲过课,讲系统架构设计,他口头语也是,这个什么什么其实很简单,从头到尾你看不到他卖弄什么技术,讲什么特别高深玄奥的东西,但是人家搞出来的系统确实好用,后来提问环节我们有员工问过一些新的技术名词相关的什么什么,云风也很直白,很务实的说我们目前这个需求,用不上
6、什么什么的。我就觉得这是重剑无锋的一个典范;现在云风他们团队分享的skynet开源引擎已经有非常多游戏团队在用,代码量也不复杂,功能也不算丰富,但是很实用的一个轻架构,能极大减少某些类型游戏的服务端开发成本。这恰恰引起了我的一点感触。最近我们Airbnb支付组在重构我们支付系统的API ,大家都知道Airbnb支持191个国家75 种货币几十种不同的支付方式,在设计中需要保持API的简洁,又要留出足够的灵巧性可以方便的扩展和支持任何一种已有的或是新的支付方式。在设计和实现的过程中,所有的编程模式要熟悉,却不可能硬搬任何一种模式。只有真正吃透了需求和所有的编程技巧,才有可能做出干净而实用的方案。(题图作者杨江明也是这个系统的主要架构师。 ) 最后小八卦一下。硅谷码工随着等级的上升,收入不是呈线性增长,很多时候是翻倍地长的。我觉得其实是合理的。所以在初入职场面临的很多选择,其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗领域中的隐私保护与区块链技术的深度融合及合规性分析
- 固体物理总结模版
- 专利合作使用合同范例
- 青岛版二年级下册数学第二单元教学设计
- 以教育为例探讨区块链在增强信息传递中的关键作用
- 光纤面板采购合同范例
- 浙江省钱塘联盟2024-2025学年高一下学期4月期中联考试题 化学 PDF版含答案
- 医疗养老服务经济价值分析
- 医疗科技融合背景下的数据隐私保护技术
- 医疗健康物联网的隐私保护与数据安全
- 合资公司成立可行性研究报告范文
- 2025年中国电子产品租赁行业市场占有率及投资前景预测分析报告
- 2025年中国亮白防蛀固齿牙膏市场调查研究报告
- (二模)2025年深圳市高三年级第二次调研考试物理试卷(含标准答案)
- 2025年陕西省初中学业水平考试英语 例析与指导 试卷示例题
- 广东省广州市越秀区2025年中考一模历史模拟试题(含答案)
- 车门玻璃升降器的设计与运动仿真设计
- 南通大学学生请假单
- v带2级传动设计计算说明书
- TROXLER3440核子密度仪
- 出厂检验报告or合格证模板
评论
0/150
提交评论