杂七杂八:心得、体会、教训

Posted by Liber Sun on August 1, 2018

名句

Talk is a 💩 ,show me the code!!! 跟最优秀的人在一起工作学习、那么你再不堪,也是比较优秀的人 那是程序员最初的梦想:改变世界。 多思考、多总结、多请教,保持好奇心,多问一句是什么、为什么,才能探索到奥秘。 以老板展现出来的宽容作为对自己的要求,是一种非常愚蠢的行为。

写给工程师的十条精进原则-云鹏

感谢美团技术团队提供的一系列技术文章,这里是对写给工程师的十条精进原则-云鹏的二次内容提取。

原则一:Owner意识

认真负责是工作底线,自己交付的东西必须复杂,项目中的每一个文档,每一行代码都要认真完成,要对其质量进行负责。 积极主动,不再计划中的任务工作,仍然要具备积极主动的精神取面对。要主动推动问题的解决,而不是视而不见。积极发现问题、暴露问题、推动团队的进度,保证项目顺利推进。在分内工作的同时,对于分外的工作也要投入。

原则二:时间观念

做事有计划,工作分主次

原则三:以终为始

先想清楚目标,然后努力实现。,明白自己想要什么,再为之奋斗。 带着目的去学习,不要做无头苍蝇

原则四:闭环思维

意见可以提,想法可以有,但是请最终落实到行动。 一个人是否靠谱,就看他能否左到凡是有交代,件件有着落,事事有回音。闭环思维就是一种即使的反馈闭环,如果别人给我们分配了一个任务,不管完成的结果如何,一定要在规定的时间内给出明确的反馈。 真正的闭环,要求我们对工作中的事情都能够养成良好的思维习惯,沟通要有结论,通知要有反馈,To Do要有验收。

闭环思维还要求我们一定时期的主动的进行阶段性反馈。

原则五:保持敬畏

君子之心,常怀敬畏`,当我们进入到一个新的团队,请先暂时忘掉之前的习惯,要尽快学习团队既有的规范,并且让自己与团队保持一致。

当然在我们充分了解之后,如果实在有不妥之处,可以全员讨论。其实,让规范与约定与时俱进,也是另一种形式的敬畏。

原则六:事不过二

孔子云:“不迁怒,不贰过”,在错误中反思与成长,才能让我们成为更优秀的人。

原则七:设计优先

忽略前期设计,后期开发周期会大幅度拉长,并且出现及其多的维护代码。

原则八:P/PC平衡

产出与产能必须匹配。在系统的不断叠加功能的同时,必须同时通过优化系统架构来提供稳定的扩展。当然也不能一味提高产能而没有任何产出。

原则九:善于提问

勤于提问,只有在争辩中,才能诞生最好的主意和决定。 懂得如何提问,批判精神的同时要思考可能的解决方案。

原则十:空杯心态

保持“空杯心态”这一原则要求我们时刻进行自我检视与反省。

程序员的思考

编程不止CURD。

计算机基础

计算机基础是所有编程语言的根基,不理解计算机运作原理就无法真正理解编程的意义。 需要理解进程、线程、堆栈、内存寻址、函数调用……

java

熟练掌握 Java 需要你学习到 Java 特性的每个角落,不需要记住每个类和方法,但需要深刻理解每个特性的意义。 需要理解反射、泛型、容器、注解、并发….

XXX框架

对于框架: 我们第一步是学会使用。学习框架的基本用法能够帮助你完成绝大多数开发任务,掌握了高级用法能够提出更好的解决方案。学习框架没有捷径,在工作中一遍一遍地练习是唯一的方式。

第二部是理解原理,理解原理就是要理解框架的灵魂。这是一个程序人员从体力劳动进阶到脑力劳动的门槛。不理解原始只能做写代码的工具,理解原理才能成为真正的开发工程师。

第三部就是涉及框架。试着去实现一个简化的Spring,实现IOC,实现AOP。你会发现,你以前学到的所有关于java的知识,泛型、容器、反射、注解、设计模式以及重构等都会用到。通过设计框架,能够深刻地理解这些 Java 特性和框架的设计原理。

应用技术

茫茫多的技术栈,能做的就是多看多学多练。他就像我们大学上的那些专业课,学的时候觉得可能一辈子都用不到,但是在某一个瞬间,或许就成为了你的亮点优势。

编程的本质

程序=控制+逻辑+数据 优秀的代码都是实现了控制、逻辑和数据的分离,实现了很好的解耦和灵活性。

  • 数据容易理解,就是程序的配置数据、静态数据和运行时数据
  • 控制是程序的主流程,一般在微内核或框架底层实现,控制逻辑一般与具体业务逻辑关系不大,它只是定义了流程。
  • 逻辑就是具体的业务逻辑,在特定约束下被控制流程调用产出符合预期的数据。

从控制、逻辑、数据的维度去理解框架、设计框架、优化代码,就能成为优秀的程序员。