程序工程师经验谈 2018 程序啪啪啪
程序工程师经验谈
心态
- 不能浮躁
- 先思后问
- 先自己动手
- 少形式(概念)多行动
- 关注细节
- 学且持
- 专注:做基础技术的专家
- 我们坚持选拔一流的人才,坚持做一流人才的乐土,坚持我们的技术理念,专注地去做集团最需要我们去做的事情,持续钻研,不断提升我们的技术能力。希望将来,核心系统的每一个人走出去,都能够成为各个领域的资深专家。
- 服务:做业务问题的解决者
- 不能够应用于业务的技术不是好技术。为此,我们必须更加强调我们的服务意识,去贴近和了解业务,学会从业务使用者的角度来考虑技术问题,真正深入到业务之中去,解决好业务问题和需求,会让我们的服务和产品更有竞争力和生命力。这对我们来说非常重要。
- 创新:做技术创新的领跑者
- 技术创新可以创造更大的价值。创新从哪里来?需要从我们做业务问题解决者的敏感嗅觉中来,从我们的专注精神、过硬的技术能力中来。我们要不断挑战自己,做别人做不了的事情,我们一定会是最有技术活力的团队!
- 急不来
- 需要学与能够学的东西很多
- 时间有限
- Eg: Android的整个系统,需要对整个领域有认识,不是1~2年可以的。
- Linux Kernel
- JVM
- Android Framework
- IPC
- 多多交流
- 与人
- 对人生的看法,娱乐类的事情
- 生活话题
- 同行业
- 行业现状
- 发展趋势
- 同工作
- 解决方案
- 经验
- 业务
- 工作
- 生活
- 同事
- 如何完成工作
- 如何应对困难
- 工作方法
- 与人
- 幽默
- 乐观
- 庆祝自己的每一次成功
- 谦虚
- 任何事情没有那么简单
- 承认自己并不是最顶尖的程序员-知不足。
- 三思
- 估算解决问题所需要的时间。为自己定一个时间限制。
- 避免形式主义
- 不要过于注重程序的“设计模式”。
- 警戒
- 消极、软弱无主见、虚伪、对前途渺茫、混乱无序、怨由心生、虚伪做作、学习时间少、无规划性、代码质量低、手忙脚乱、技术永远停留在“打铁”水平、术业无专攻、低调、迷茫、心态不稳、思想徘徊、生活困难、开发难度大、维护难度大、压力大、难沟通、不满、被动、拿不起放不下、进退两难。
- 如何增加收入
- 先要替公司赚到钱,承担责任,一个员工才能拿到钱。
- 一个方向,是转向关注业务。具体说来,包括成为产品经理,或称为对产品需求负有责任的技术兼业务高手。
- 第二个方向,是作为技术领导,将自己的技术与管理结合起来,提升整个团队的战斗力。
- ToBeACreator
- 理想:Create a thing to change the world
- 平时: Thinking, discussing, Create, study
- 关注: 算法与结构、新产品、新工具
- Care: 架构、优化、成本、格局
本事
- 设计
- 经验
- 方法
- 专注于细节
- 表达
- 沟通
- 多说“是”,少说”不是“
- 明确架构师的职责,给出如何构建的方案
- 所考虑的替代方案
- 项目风险(以及可能的规避策略)
- 基于的假设条件
- 需要指出的突出问题
- 清楚解释你说“不”的原因
- 特殊场合才说“不”
- 特定环境,和公司策略不符合
- 无法完成,或者优先级不够高
- 给出原因
- 抑制想自卫的冲动
- 等待,接受别人所说的话
- 倾听建议来改善合作
- 理解别人与自己沟通的目的
- 才思敏捷的回答别人的问题
- 关注是谁在问问题
- 想出三点解释,如果可能的话,包含一条支持这些解释的商业根本原因
- 如果对方要求你做出某个决定,暂停并思考你所说的话对单位的影响
- 如果你的答案有消极影响,要展示别的答案也是“有问题”的
- 多说“是”,少说”不是“
- 沟通
- 前瞻性
- 管理
- 进度控制
- 项目预测
- 并行处理
- 风险管理
- 扩展
- 发展趋势
- 研发
- 革新
- 编程
- 编程语言是一种语言,随着时光推移,只要你理解了一种语言的原理,你会发现各种语言之间的相似之处 。最重要的,让语言去适应项目,反之亦然。
- 经常备份代码。
- 不断学习
- 技术
- 思维
- 习惯
- 提携新人
- 分享
- 传授
- 重构
- 检查
- Rule of three 称为"三次原则",指的是当某个功能第三次出现时,才进行"抽象化"。
- 回顾
- 检查
- 编写文档
- 测试
- 编码
- 可用
- 可读
- 可改
- 无错
- 优雅
- 别让任何人绑架你的工作节奏
- http://www.iteye.com/news/26663
- Tips
- 预估工作周期
- 理解你没写过的软件的功能
- 把复杂的问题简单化
- 把复杂的问题分解成若干个小问题
- 调整代码,为迭代预留空间
- 发现并修复漏洞
- 上述问题与其他成员协作完成
- 如果你直接和你的用户交互,还有更多的建议
- 把用户需求翻译成改进计划
- 深入浅出,把复杂的意思用简单的方式向用户传达
- 明晰每一个尚待解决的问题
- Important
- 但是在这些职责之上,最重要的是在了解目标用户的基础上设定目标
- 不能让别人的期望凌驾于你的创作自由之上。你必须自主把控这个创造的流程。
- 在软件开发的过程中,你才是那个决定什么时候达到什么目标的人。
- 架构师
- 软件架构师应具备的十大特点
- http://www.iteye.com/news/29681
- 看了这些信息,个人感觉与架构师还差距很大,另外在移动互联网时代的开发,需要的架构就更加平面.
- 目前没有对行业的把握
- 没有机会做具体的业务
- 如何解决
- 将目前做的事情系统化,实例与产品化
- Android ROM
- 借助语言与完整开发一个项目中涉及的各步骤,进行体系化学习
- API
- 完整构建
- 多平台
- 将目前做的事情系统化,实例与产品化
- 看了这些信息,个人感觉与架构师还差距很大,另外在移动互联网时代的开发,需要的架构就更加平面.
- 了解相关领域的技术知识
- 在你想要成为架构师的相关技术领域,必须具备扎实的专业知识和过人的本领。
- 超强的分析、设计能力
- 编码与验证性测试(POC)
- 熟悉该组织整个技术栈,并能使用各层的技术熟练地编码。 能快速实现验证性测试。
- 架构设计的实力
- 能为原始需求提供架构方案。
- 考虑周全:工具和框架的采用、安全性、性能和扩展性、依赖关系、集成、效益。
- 熟悉软件开发生命周期(SDLC):需求、分析、设计、测试、打包、部署。
- 建模语言或工具
- 能使用不同的建模语言或工具,向其他架构师、开发者、项目经理等人,阐述架构。
- 架构框架
- 能证明架构的可行性,包括其业务、应用、数据、基础设置方面。 了解TOGAF和ZACHMAN框架就更好了。
- 沟通能力
- 能与开发人员、测试人员、商业分析师、上级经理沟通无阻,无论在口头上和书面上。
- 布道
- 能讲解该行业的市场、技术知识。 能为全队提供培训课程。
- 销售、甚至售前
- 能参与售前工作(尤其对于软件服务业):制定技术方案、使用各种预算工具估计方案的规模和成本、与销售对象互动。
- 演讲技巧
- 优秀的演讲技巧,有助于以下活动:华丽的计划书和技术文档、PPT演讲、布道。
- http://www.iteye.com/news/29681
- 软件架构师应具备的十大特点
职场人的习惯
- 个人目标
- 别指望谁能推着你走
- 从依赖变为独立
- 忠诚于自己的人生计划
- 个人修炼
- 选择放弃什么更难
- 别指望谁能推着你走
- 企业目标
- 绩效
- 正确处理,积极应对
- 价值观
- 理解积极的一面
- 绩效
- 社会目标
- 远离角斗场的时代
- 共赢
- 换位思考的沟通
- 为他人着想
- 1+1>2
- 集思广益
- 远离角斗场的时代
tags: Review
成长
- 时间
- 目前的工作
- 深入业务细节
- 对整体的影响
- 对整体的把握
- 利用其他资源
- 整合资源
- 节省资源
- 形式
- 从小到大
- 从局部到整体
- 从开发人员到产品设计/架构师
- 不要泛泛、要想想
- 定位个人成长,争取方向早成
- 一名程序员十年技术之路的思考与感悟
- http://www.iteye.com/news/29541
- 学习成长、合作共赢、总结呈现、思考前行
- 技术成长
- 1.借助导师、同事资源。这样可以让自己快速解决遇到的问题,少走很多弯路。
- 2.系统化的学习工作所需要的是基础知识,而不是到百度或谷歌查资料解决。
- 3.除了工作中需要的新知识外,建议在工作一段时间后再回头系统性学习相关专业基础知识。
- 4.借助平台学习成长。
- 与项目共成长
- 5.如果可以对自己进行细分定位会更好。
- 结合自身情况以及工作需要,对自己有一个更加细分的定位,这样做精力才能聚焦, 更有可能快速在你所做的领域不断深入,进而成为专家。而如果你想要成为一个综合性的人才,也可以考虑通过阶段性专注于某一细分领域,重点学习积累,具有一 定深度后再切换重点关注领域。
- 随着经验的增长,从精兵变成骨干,我们所从事的工作会逐渐由简单直接变得复杂综合且无法独立完成,这时候就需要团队协作甚至跨团队、跨部门推进。这个时候就需要我们很好地协调平衡各方资源,推进项目达成目标,并将团队的业绩最大化展现,获得肯定。在这个过程中,要注意以下几点。
- (1)保持开放的心态。
- (2)找到一些对大家都有帮助,大家又都感兴趣或可以学到新东西的事情。
- (3)注重成果总结和展现。
- (4)注重平时的资料积累。
创建@
2011-02-11
最后修改@
2014-11-03