49

深度思考

 7 years ago
source link: https://www.wolfcstech.com/2018/06/01/deep_thinking/?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2INJ3aJ.jpg!web

如果说深度思考决定人生和事业的话,那什么才是深度思考的体现呢?我想深度思考的体现最主要在三个方面:

  1. 深度。对于自己所处的技术领域,有着非常深入的了解。对于 Android 开发而言,除了参照网上的教程,能够了解各种 API 和第三方库的功能,并把它们用起来,发挥好它们的作用之外,同时还需要对 API 和库的如下方面有一定的了解:
    • 设计目标及设计时的应用场景
    • 设计思想
    • 实现的整体架构及方法
    • 局限性
    • 是否有改进的方法,以及改进的方法是什么
  2. 广度。广度可以有很多个维度来看。对于 API 和某个功能库,在广度方面,需要了解如下的一些东西:
    • 相关功能的竞品
    • 它的竞品相比,它有哪些优劣势
      对于自己在一个项目中承担的工作,则需要从价值、职能分工和技术分工来看:
    • 在价值上,可以把自己所做的项目,放在更大的背景上,放在整个国家和社会,放在整个公司,放在整个大部门的背景上,了解项目对于国家和社会、对于每个用户的价值,项目产生的经济上和社会上的价值,对于整个公司的经营目标的价值,以及对于大部门团队发展目标的价值。
    • 在职能分工上,了解技术上的工作与诸如商务、项目经理、产品经理、策划、运营、交互和设计的不同岗位之间的职责,以及自己的工作是如何与他们一起配合来实现目标和价值的。
    • 在技术上,Android 开发在一个项目中,主要是在做客户端上的工作,客户端上的工作就离不开服务器的配合。对于服务器端的基本知识有一定的了解,对整个的技术上的系统架构,以及 Android 开发在这个架构中的位置有所了解,是非常有意义的。
  3. 效率。如何把事情做的更快更好。
    • 一方面,很多事情做的时间长了,就容易变成重复性的低技术含量的工作。对于重复性的工作,最好可以将它们工具化,自动化。在云课堂这边,在搭建代码质量管理平台时,我们需要为几十个模块创建 Jenkins 工程,这些工程的配置又经常需要根据是否包含单元测试,生成的二进制文件的路径等有一些简单的变化进行定制。这本是一件极为琐碎、繁杂、无趣、重复性的低技术含量工作。我们开发了脚本,支持自动创建 Jenkins 工程,并自动完成配置,大大降低我们这套系统的维护成本。
    • 另一方面,在流程上,与各单位的分工配合上,有时候可以通过做出一定的改变,来使事情做得更快更好。
    • 在工作方面,机器比人稳定可靠得多,因而可以借助于工具,来检查并避免人犯错。

总之,就是在技术上,了解别人不了解的技术细节,能够解决别人不能解决的技术难题,或者可以快速解决别人需要花很长时间才能解决的问题;了解做的事情的背景、价值,以及团队如何协力配合实现目标和价值;在对待工作的方式上,时时考虑如何能够让自己,也帮助团队把事情做得更快更好。

但一时一地所做的具体的事情,只能是抓住一块,暂时搁置其它的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK