`
eriol
  • 浏览: 405588 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何成为一个卓越的程序员(2)——在产品上投资

阅读更多

在产品上投资

- 学习钓鱼

- 学习行业是如何运转的

- 寻找良师

- 做一名良师

- 练习,练习,再练习

- 做事的方法

- 站在巨人的肩膀上

- 在工作中,将自己自动化

 

      如果你真正了解你所工作的行业详情,那会大大提高你的工作效率。你不需要懂得每个行业的每一细则,但你至少应该了解最基础的规则。

 

      在你读书或者工作的时候,想一想工作中你不完全懂的问题。你可以问自己这两个问题:它是如何工作的?为什么会发生这种情况? 

 

      清楚知道自己是否对某一知识真正理解的最好的办法就是把你的理解讲给别人听,让他们明白。因为当你向别人讲授的时候,你就必须回答一些拟可能从未想过的问题。通过讲授,我们的那些知识死角就会暴露出来。做别人的导师也会产生积极的社交效果。在职业关系网中,比起那些熟人来说,导师和学生的关系时最紧密的、忠诚的,在这种关系网中,可以很好地解决难题或者寻找工作。

 

      选择一个软件开发方法论,并且挑选一本有关此方法论的书,登陆相关网站,加入一个讨论此问题的联络组。从批判的角度来研究此方法论。此方法论的优势和弱点在哪里?在你的工作中,执行它的障碍是什么?研究完一个,再换一个继续研究。对比他们的优势和弱点,想一想如何能把它们结合起来。

 

      研究大师的作品是成为大师的一个重要步骤。可以通过参加开源的项目来学习优秀的设计理念。选择一个项目,像读书一样研读并且做笔记。归纳出好的方面和坏的方面。至少找到一个你可以借鉴的技巧或模式。再找到一处缺点,提醒自己再开发软件的时候不要犯这类错误。当你以一种批判的视角去看这些程序的时候,你就会开始培养自己的品味。阅读程序还能够让你知道哪些方法是已经存在的,从而不必再去开发,节省了时间。

 

      挑选一个你经常重复的工作,为它编写一个代码生成器。从简单的部分做起。不要管这个代码生成器的重复使用率,只确保它能节省你的时间。想办法提高生成代码的抽象等级。可以研究一下模型驱动架构(MDA)。想想如何用你日常使用的工具来应用MDA概念。

 

      从以技术为中心的思维方式向以解决方案为中心的思维方式转变。 

 

箴言:

  • 要主动问,不要等着别人来告诉你。Don't wait to be told. Ask!
  • 只有了解了一个行业后,你才能创造性地有所建树。You can't creatively help a business until you know how it works.
  • 可以依赖别人,但要确保这个人是靠得住的。It's OK to depend on someone. Just make sure it's the right person.
  • 想要弄明白自己是不是真正懂得某一知识,那就把它讲给其他人听。To find out whether you really know something, try teaching it to someone else.
  • 做导师不会下岗。Mentors tend not to get laid off.
  • 在极限处练习。Practice at your limits.
  • 想要拥有自己的步骤,那就执行它。If you want to feel you own a process, help implement it.
  • 从现有程序中得到领悟。Mine existing code for insights.
  • 用现有程序来反思自己的程序。Use existing code to reflect on your own capabilities.
0
0
分享到:
评论

相关推荐

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    第1章 敏捷——高效软件开发之道 第2章 态度决定一切 1. 做事 ...9.1 只要一个新的习惯 9.2 拯救濒临失败的项目 9.3 引入敏捷:管理者指南 9.4 引入敏捷:程序员指南 9.5 结束了吗 附录A 资源 索引

    程序员的心里-王垠

    王垠在其文章《程序员的心里》中探讨了一个深刻且普遍存在的问题——程序员行业内存在的心理疾病现象。这些问题不仅限于个体层面,更是反映了整个行业文化的某些弊病。本文将深入分析文章中提到的几个核心病症,并...

    开源ERP项目Gooderp_Addons.zip

    让开源成为众包6、参照现有ERP软件构建业务伙伴支持网络和实施工具包7、通过大量读写代码培养和发现具备openobject平台二次开发能力的程序员What——关于GOODERP产品1、GOODERP是托管在github上的一个开源ERP项目2、...

    人工智能生成物著作权归属之域外法研究——以英国、美国、欧盟和澳大利亚为例.pdf

    以谷歌和百度等技术巨头为例,它们在人工智能的研发和部署上的投资巨大,并预计这一数字将在未来继续增长。这些投资的背后,是人工智能技术在搜索引擎、语言识别、自动驾驶汽车以及人类基因组等领域的广泛应用,这些...

    软件工程思想(做程序员与软件开发)

    《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特,构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。 详细目录: 第一章 软件工程基本观念 1.1 软件工程的目标与常用模型...

    非程序员2001-28

    3. **按步骤说明需求**:通过“step-wise”的方式结构化组织需求,例如,将“从ATM机取现”这一需求拆解成多个具体的步骤,每个步骤都能够映射到UML活动图中。 4. **需求的重用与管理**:支持在不同项目间复制和重用...

    软件工程思想-讲述软件开发和做程序员的道理

    4.2 可行性分析案例——投资软件公司失败的教训 4.2.1可行性分析案例之一 4.2.2 可行性分析案例之二 4.2.2 可行性分析案例之三 4.3 需求分析为什么困难 4.3.1 客户说不清楚需求 4.3.2 需求自身经常变动 4.3.3 分析...

    做人、做事,做架构师——架构师能力模型解析

    成为一名优秀的架构师,意味着你需要在“个人特性”和“技术技能”两方面下足功夫。在这个能力模型中,架构师的能力被分为“技术专业能力”、“人际关系能力”和“业务能力”三大核心。 首先,技术专业能力是架构师...

    Chet Sonic 程序插件详解

    它在AI领域的表现非常出色,在全球范围内都受到了各大公司的关注和投资,成为了AI领域排名第一的公司。除了功能强大之外,OPPO i也在用户体验方面做了很多改进,比如增加了语音识别、图像识别等功能,让用户使用起来...

    物理专业应该掌握的计算机技能No.3——运用LateX写作论文.pdf

    Leslie Lamport在此基础上开发了LaTeX,简化了用户界面,使得非程序员也能轻松使用。 LaTeX的出现极大地降低了撰写高质量论文的门槛,特别是对于包含复杂数学公式的科技文档。它允许作者专注于内容创作,而无需关注...

    Linux桌面梦想实现有多远——从生涩到成熟的小企鹅.pdf

    这一历程可以类比为生物进化,Linux,象征性的以企鹅作为吉祥物,逐渐在众多厂商和政府的支持下,成为了一个能够独立应对各种挑战的平台。 Linux桌面的历史始于1990年代,当时的Matthias Ettrich在Linux新闻组中...

    程序员 杂志\05-03.pdf

    - **背景介绍**:Justin Frankel是数字音乐播放器领域的先驱之一,他在1997年发布了第一版Winamp,迅速成为当时最受欢迎的音频播放器之一。 - **技术创新**:Winamp不仅支持多种音频格式,还提供了高度可定制化的...

    给你的公司建个网站.docx

    总的来说,建立和维护一个公司网站是一项长期投资,但其带来的收益——如增强品牌影响力、扩大市场覆盖、提高客户满意度以及降低运营成本——远超过投入。因此,无论企业规模大小,拥有一个高质量的网站已成为现代...

    《IT学生解惑真经》——解决计算机学生的职业疑惑

    在面对市场需求时,书中的"做什么样的软件才能赚钱"和"学什么样的知识才能赚钱"这两个主题,会引导学生理解当前市场的热点技术,如人工智能、大数据、云计算等,以及如何通过学习这些技术来提升就业竞争力。...

    89 人工智能《8企业中的人工智能调查报告》、人工智能(AI)到底是什么?——什么是AI、什么不是 AI ?.docx

    - 深度学习,依赖神经网络的复杂模型,其在图像识别和语音识别上的出色表现,使接受率从2017年的34%跃升至2018年的50%,增长率最高。 - 自然语言处理(NLP)和计算机视觉的接受率也有所上升,分别达到了62%和57%,...

    藏经阁-从码农到CTO再到CEO过程中的认知升级.pdf

    【藏经阁-从码农到CTO再到CEO过程中的认知升级.pdf】这本书讲述了作者刘小明从程序员逐步晋升为CTO(首席技术官)再到CEO(首席执行官)的心路历程,以及在这个过程中认知的不断提升。刘小明在经传集团及美美发公司...

Global site tag (gtag.js) - Google Analytics