• 我理解的优秀软件工程师


    最近越来越多人的在谈论 全栈工程师 (full stack),从某种意义上来说,一个优秀的工程师,必然是一个全栈工程师,或者至少一两种跨语言、平台工作的能力。 就我个人的理解,来探讨一下如何定义一个优秀的工程师。

    简单版本

    聪明、好沟通、自我驱动、有激情。

    复杂版本

    • 有扎实的基础知识。理解计算机、操作系统、编译、链接、装载等各个环节的原理;理解网络原理;熟悉常见算法和数据结构。
    • 深刻的理解至少一门计算机语言。有完整的用一种语言实现一个产品的经历,有10万行以上的编码经验;完整掌握整套工具链。
    • 有良好的学习能力。可以阅读英文文档,经常上几个活跃的英文网站看文档、代码。可以在几个星期内上手一门语言。
    • 良好的沟通能力。可以有条理的描述事情、问题;能根据对方的背景,用对方更能理解的语言沟通;习惯编写友好的文档;有良好的心态接受挑战,并从中找到积极因素。
    • 良好的自我管理能力。可以在复杂繁多的问题里,找到最能推动项目前进的点;在有限的时间内,达到既定目的,并能控制风险。
    • 有追求更好最佳实践,更佳方法的激情。

    除了上面列举的具体能力,还有一个非常重要,或者可能最重要的是,知道自己什么东西不懂。

    虽说列举了很多,但个人感觉还不够。一个以技术为导向的公司,顶级工程师的能力直接决定了整个公司的能力。

    最近观察美国的几个小而美的互联网创业公司,几乎都有很好的技术实践,有的创始人更是跨 产品设计、视觉设计、软件设计、文档编写的更大范围的 full stack。

    关于作者:

    Tiger

    weibo: @Tiger_张虎, 云巴 (yunba.io) 创始人,yunba.io 云后端服务。 JPush 创始人,原CTO。 Oracle VM 创始团队成员。

  • 相关阅读:
    Qt中不同类型数据之间的相互转换
    数组传参
    sizeof和strlen区别
    打印字符‘烫’
    vivado hls(1)
    时序约束方法(2)
    FPGA浮点数定点化
    FPGA设计思想与技巧(转载)
    视频采集显示总结
    Verilog code
  • 原文地址:https://www.cnblogs.com/yunba/p/4564123.html
Copyright © 2020-2023  润新知