带你了解阿里工程师文化

对于什么是工程师文化,很多人都能说出很多关键词,比如:匠心,创新,专业,担当,开放……
然而如果要用一句话来描述什么是工程师文化,如何判断一家公司是不是一家工程师文化的公司,却不是一个很容易的问题。

个人认为要回答这个问题,首先需要从了解工程师是一群什么样的人着手。
扫码加群,获取和阿里工程师交流机会~

工程师是什么样的一种人?

工程师其实就是解决问题的人,他们发现问题,找出规律,使用适当的工具和手段来解决问题。

一个优秀的工程师,需要有敏锐的洞察力,深厚的知识以及丰富的想象力。缺乏洞察力,则无法找到根本的问题,只能头疼医头,脚疼医脚。缺乏知识,面对问题只能束手无策。缺乏想象力,则找不到最好的解决办法。

成为优秀工程师的核心要素是什么?

优秀的工程师需要具备好奇心和理性思维两个核心要素。好奇心是驱使我们探索未知的原动力,缺乏好奇心,就失去了探索和求知的欲望,也无法培养丰富的想象力。而理性思维,则是把握事物本质和规律的能力活动,是工程师能够脚踏实地解决问题的根本。

理性思维是什么?

理性思维包括很多方面,个人认为理性的核心是两点:

  • 相信客观规律
  • 逻辑思维

这里说的相信客观规律只是说相信世界有其规律。因为相信客观规律,所以我们需要观察世界才可能发现规律,同时因为客观世界的复杂性,作为观察者永远只知道部分真相,也只能无限接近而永远也无法得到真理,这也就是老子说的“道可道,非常道”。

而逻辑思维则是我们透过纷繁复杂的现象,分析和理解抽象规律的方法和手段。通过运用抽象与概括、分析与综合,归纳与演绎,对比,找出因果关系等,我们可以梳理杂乱的信息,抽丝拨茧,深刻而冷静地洞察问题本质。

为什么要理性思维?

对于事物有更深刻的认识,能够提高决策的准确性和有效性,同时也更有可能积累可以复现的经验,也就是知识。由于对事物的观察不够深入,人们非很容易把表面的相关性当成规律,比如很多伟大的公司都建有宏伟的总部大楼,会飞的鸟儿都有羽毛,但是我们不能说要成为伟大的公司就应该建设宏伟的总部大楼,而要想飞就一定要给自己粘上羽毛。只有真正认识到逻辑性的人,才有可能洞察其中的真正的规律,找出有价值的理论,比如按照流体力学的理论来设计飞机,而非粘上羽毛。

整个人类的技术发展史其实就是一部理性思维的历史,如果不是历史上的人们用理性思维来观察和了解这个世界,那么今天我们还是非洲草原上的一群猴子。

对于个人而言,理性地看待自己的人生,有助于认识自己,获得内心的平静,做真正想要的自己,简单来说就是活得比较明白。只有这样,才更有可能在自己真正感兴趣的事情上做出成绩,获得成就感。

理性思维不等于自动掌握了一切知识,恰恰相反,运用理性思维的人会认识到自身的不足,知道自己的知识仅仅是对世界非常小的一部分的抽象总结,因此也愿意以更加开放的心态来了解世界上的事物。

是不是有了理性思维就不要感性思维了呢?当然不是这样,人都有感性和理性的两面,感性和理性,可以在这件事情上感性,另外一件事情上理性,或者一会儿感性一会儿理性,取决于到底想要什么。当然能做到快速切换思维模式是很难的,能够做到的人是幸福的,对于普通人来说,他通常会形成思维习惯,并且体现在生活和工作的方方面面。

理性思维不是什么?

理性思维不是价值观,但是理性思维有助于梳理价值观。

理性思维不是万能的,比如碰到经典的掉到水里先救谁的问题的时候,一定不能用理性思维来回答此类问题,不过可以理性地识别这个问题是感性问题,需要切换到感性模式。

理性思维不等于能力,能力还是需要靠学习和训练才能达到,但是理性思维可能有助于学习的效率。

理性思维不是辩论手法,不是玩文字游戏,而是一个人思考的过程。

感性思维是什么?

感性思维就是凭感觉、本能或者直觉行事,其实人类的直觉是千万年来演化出来的生存能力,比如在大草原上碰到猛兽时,先反应过来开跑的肯定会有更高的生存指数,因而也就留存在我们的基因之中。然而今天我们面对的问题早已不是大草原上的猛兽,当我们面对一个复杂的问题的时候,还是依赖感觉来行事可能会碰到比较大的问题。

中国有很多成语,比如刻舟求剑、拔苗助长、守株待兔等等,都是感性思维失败的典型案例。

那是不是说感性思维就没有价值了呢?当然也不是这样的,我们还是有很多场合需要做出快速响应,这个时候我们的感觉就非常重要,比如开车时遇到紧急情况,系统崩溃时快速处理。但是这些感觉都需要在不紧急的时候的理性思考,并且通过刻意训练固化到我们的大脑,成为我们的直觉。

那到底什么是工程师文化?

在写这篇帖子之前,我看到了某神贴上一句话,比较有感触:”土壤能种什么不在种子,在土壤……“。虽然不完全赞同这位同学的观点,但是好的土壤和环境确实也是一颗种子长成参天大树的必要条件。

回到本文的主题上来,团队工程师文化不仅仅是工程师的事情,也是整个组织的事情,在我看来

工程师文化就是鼓励好奇心和用理性思维来主导决策的文化。

如果我们只是要求工程师具备理性思维,而领导者和其他合作方都是感性主导决策,是不可能培养出工程师文化出来的。

为什么要鼓励好奇心?

鼓励好奇心意味着鼓励知识共享,鼓励思想的自由交流,包容不同的想法,允许开放的争议。

当然,鼓励好奇心主要在于思想层面,而不是行为层面,一个团队或者组织可以允许自由的思想,却很难允许完全自由的行为。

为什么要用理性思维来主导决策?

首先用理性思维来主导决策并不意味着每个决策都有充分严密的论证,而是决策的因素主要来自于理性的考量,而非感性的认知。

理性思维往往意味着找到深层次的系统性问题,产生更好的经验总结,好的经验总结意味着成功可以复制,一个团队或者组织需要大量的经验积累和传播。虽然说失败是成功之母,但如果没有理性思维的分析和总结得到改进的方法,重复失败一万次也很难成功。即使偶然成功,往往知其然不知其所以然,导致无法大量复制成功的经验,抑或即使知道所以然,也因为缺乏逻辑性的梳理而很难正确的传播,导致学习者反而因此受累。

最后理性主导也不等于感性在决策过程中需要被摒弃,因为:

  • 感性来自于人类千百万年的进化,在信息不充分的时候有其重要的价值
  • 决策往往涉及到人,而人都有感性的一面,而且很多人还是感性思维为主

但是以上两个原因不应该成为凭感觉做决定的充分理由,而是在理性分析问题的时候,需要考虑感性的因素,以及在基于理性思维无法做出判断时,而又必须及时做出决定时可以采取感性思维来做出判断。

如果不是理性思维主导决策的话,一方面很多人会逐渐形成感性思维的习惯,而习惯的力量是非常强大的,一旦形成会反过来影响和强化整个组织的思维习惯。另外一方面则是两种思维习惯的人很容易产生误解和沟通障碍,从而降低团队的协调效率,甚至导致团队方向感不明确,疲于奔命。

感性文化主导的公司能否成长出优秀的工程师呢?

答案当然是可能的,首先在激烈的竞争中生存的组织都有理性的一面,其次大环境和小环境不一定完全一致,最后优秀的人较强的自驱力和自控力,能够自我成长。但是在这种条件下,普通的工程师因为缺乏理性思维的习惯,会难以成长为优秀的工程师,而优秀的工程师也可能因为缺乏成就感而选择离开,总的来说优秀的工程师出现的几率会比较少。

其实这也是一个组织选择成员的方式,如果一个组织需要更多优秀的工程师,则需要提供适合工程师的文化氛围,如果不需要,则当然也不需要提供相应的文化氛围。

总结

工程师文化并不能完全决定一个组织的成败,但是能避免不必要的错误决策,并且能将局部成功的知识应用到更大的范围获得更大的回报,这是一个组织取得长期成功的一个重要因素。

问与答

问:前面说的工程师文化的关键词和本文有什么关系?

答:匠心和专业意味着精益求精,担当意味着责任,这些都是人们对卓越成就的追求,这是人生需求在经过理性思维之后的升华,因为追求卓越才能获得最大的成就感。
创新是理性思维的结果,而非原因。
关于开放,当我们知道自己不知道时,就已经拥有了开放的心态。

问:理性思维是否让我们变得复杂?

答:不是理性思维让我们变得复杂,而是这个世界本来就是复杂的,理性思维只是让我们更加客观地理解这个世界的复杂性。

问:为什么在这儿讨论哲学问题,能帮我解决具体问题吗?

答:一张地图并不能让你环游世界,但是有地图会更方便。

问:关于如何做个优秀的工程师,有没有一句话总结?

答:保持好奇心,多问为什么,理性思考。

问:哪里可以和阿里云工程师面对面呢?

答:答案来了,阿里云实习生招聘啦

团队工作

阿里云块存储团队隶属阿里云基础产品事业部,承接阿里云及阿里巴巴集团内部块存储服务,营收高达数十亿,产品形态包括 ESSD 云盘、SSD 云盘、高效云盘、本地盘、共享盘、快照、动态迁移服务,以及研发中的持续数据保护,跨多中心云盘。目前无论是营收,用户数、数据量、机器规模在国内遥遥领先,我们正在勇攀全球最高峰的路上。

我们团队主要负责:

分布式系统跟踪、APM(Application Performance Monitor)、消息通信队列等工作,挑战分布式系统下的高性能、高可用难题;

负责块存储海量集群运维管理,DevOps平台构建及落地,建设高可用的智能运维平台;

负责构建可靠的数据链路和数据服务,挑战海量数据ETL,挖掘海量存储业务数据,算法驱动智能块存储系统。


你的一个优化点正在被我们以百倍甚至万计的放大,诚挚邀请有志之士加入我们 !


职位介绍

一:基础平台研发工程师

岗位要求

1. 本科及以上学历,硕士博士优先,计算机、数学、信息管理等相关专业为佳;

2. 扎实的编程基础,熟悉C/C++/Python/Go等编程语言;

3. 全面扎实的软件知识结构,掌握操作系统、数据结构、网络系统等专业知识;

4. 具备独立工作能力和解决问题的能力、善于沟通,乐于合作,勤于总结;

5. 优选条件:

(1) 强烈的好奇心和坚韧不拔的意志,良好的数理基础和工程能力,是加分项。

(2)不满于课堂所学,积极参加校内外相关大赛或积极参与开源社区组织者优先;

(3)有分布式跟踪相关领域研究方向者优先


二:数据&算法工程师

岗位要求

  1. 本科及以上学历,硕士博士优先,计算机、数学、信息管理等相关专业为佳;
  2. 熟练掌握JAVA/Python/Go,有较好的系统知识、性能意识、清晰的代码能力
  3. 熟练掌握分布式计算spark/storm/flink等计算引擎的一种或多种
  4. 熟悉深度学习以及常见机器学习算法的原理与算法,熟悉最优化理论,能熟练运用聚类、分类、回归、排序等模型解决有挑战性的问题
  5. 熟悉关系型数据库、分析型数据库的一种或多种
  6. 优选条件:

(1) 对高并发、高稳定可用性、高性能、大数据处理有过实际项目及产品经验者优先

(2) 在时序数据或分布式系统领域有高质量文章者优先

机会先到先得,扫码加群少年们~


作者:阿里云云栖号
链接:https://zhuanlan.zhihu.com/p/45646303
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


#阿里云##实习##内推#
全部评论

相关推荐

03-31 21:35
已编辑
西安电子科技大学 Java
谨以此篇,记录自己荒废的曾经和不甘的心情。倒是没想到还有这精力在这搞文艺🤕。晚上面的阿里云一面,被打烂。太过分的没有危机感,两周速成的Java,在此之前的就一个没有深入学习就是照葫芦画瓢的旧技术栈的小项目,实验室其他项目也没有深度参与😮‍💨。还以为是暑假实习就五六月份着就可以了,被这“金三银四”赶鸭子上架似的。焦虑不安😔。上周硬着头皮肘了美团和饿了么的笔试,自己的处女面和表现的不错答的很多的第二面,我还挺满意的。甚至让我安心到觉得八股也就这样了。看不进去我周围的人很强,不是专门贩卖焦虑的强,是他们早有计划早有安排早在,学习。而我不自知。明明是知道的,上个这研究生就是给自己玩了四年的大学做个缓冲,就是为了到自己想去的岗位多一份可能。但我抛到脑后,但我👇不自律。从项目出发,问了半小时,就打倒我很多,也就没有手撕了。也许面试官也是愣了一下的,我居然没有其他问题问了。面经:从项目出发,问表的设计,问UUID为什么选择他(项目业务需要),让自己选你怎么选?我答的也不满意,嘴染,答的点被面试官一句:你的意思是业务需要是吧。到其他的ID选择答出大概然后被追问。问为什么用雪花,那我用其他的比如自己设就用时间戳当作ID行不行?我答的东扯一下西扯一下,没有纲领。问MySQL事务的特点?事务的特点是怎样去实现的?卡壳,竟然一时之间没有想起来,后面去回答也是突然想起来,没有纲领,潦草。问MySQL的锁?脑子白到居然反问面试官你是不是想问间隙锁?其实我是知道的,我才看了的,专门对MySQL的锁做了总结。问你用了消息队列?你为什么要用Rabbit MQ而不用其他的,你是出于什么考虑?只答概念没有实质,没说出消息队列之间为什么有这样的效果差异。问消息队列的场景题进行优化,最死亡的来了,我说了用死信队列进行正常队列中消费者消费不下将一些消息放在死信队列的说法。😶潦草收尾我的表现,我是无感的,没什么可说的,这就是我。在处女面之前我的焦虑和不安,那也是我。在只有笔试的遮盖布下,但今天我的面貌才被揭开罢了。面试,是综合素质的体现,至少比笔试。我不甘。还有,今天尊敬的面试官,谢了🫡。潦草收尾来不及表示感谢,秋招我再来。 #面经#  #暑假实习#  #阿里云#
查看7道真题和解析
点赞 评论 收藏
分享
04-02 21:12
已编辑
门头沟学院 C++
1. 读写锁如何实现?2. 如何实现线程池?线程池里放了多个任务后,这些任务怎么分配到各线程的?3.哈希表的原理是什么?4.怎么实现对一个树结构进行广度优先遍历?5.栈内存和堆内存的区别?栈为什么分配速度快?它具体怎么分配?6.当使用new创建一个新的数组,它指针是虚拟地址还是物理地址?什么时候回真正映射到物理内存?7.https加密原理是怎么样的?8.如果有个假冒服务器,它也可以跟你握手吗?1. 读写锁是一种并发控制机制,允许多个线程同时读取共享资源,但写操作需要独占访问;初始化一个互斥锁(用于保护共享转态),初始化一个条件变量(用于阻塞等待的线程);读锁:如果没有写线程正在访问,允许读线程进入;写锁:如果没有读线程或写线程正在访问,允许写线程进入;解锁:读线程解锁时,介绍读取计数;写线程解锁时,通知等待的线程;2. 线程池,通过三个类实现,(1)线程类,用于控制线程的启动和停止,以及维护一个指向事件循环的指针;(2)程池类:用于管理线程,包括初始化线程数量,已经放置一个任务队列,每来一个事件就放到队列里,如果有空闲线程就唤醒去执行;(3)任务函数的接口类,写一个基类,自己通过子类来自定义函数;线程池收到任务后,会把任务放到共享的任务队列里面,每个线程会在循环里去拿任务,拿到任务时要加锁互斥,谁先拿到就执行。另外还可以考虑给任务添加优先级3. 通过哈希函数将将键值映射到数组索引,再用数组存储键值对。举例:像C++中的unorder_map,使用链地址法解决冲突,在哈希冲突时把多个元素放到同一个桶里链表中。当存储的元素跟数组大小的比值超过一定阈值,会进行自动扩容;4.  广度优先遍历就是对每一层进行遍历,用队列实现;先把根节点入队,出队时访问,然后把它的子节点按顺序入队,一直到队列为空;5. 栈由操作系统自动分配回收,存储函数的现参、局部变量、返回地址等;堆是通过new/delete或者malloc/free由程序自己分配释放,能分配更大的内存,但可能会出现内存碎片等问题;操作系统在底层对栈提供支持,会分配专门的寄存器存放栈的地址,另外它的入栈出栈操作也十分简单,并且由专门的指令执行,所以下来会很快;堆的操作是由C/C++函数库提供,在分配内存的时候需要一定的算法寻找合适大小的内存。并且获取堆的内容需要两次访问,第一次访问指针,第二次根据指针保存的地址访问内存,因此堆比较慢。6. 并不是物理内存,而是虚拟地址,后面需要通过页表和MMU(内存管理单元)来映射到物理内存;操作系统采用懒加载策略,只有在程序访问这块内存时,才会将虚拟内存页映射到物理内存。也就是说,程序触发缺页中断时,操作系统才会分配物理内存并更新页表来完成映射。7. 客户端会发送一个Client random + TLS版本号 + 支持的密码套件列表的信息给服务端,服务器回应一个Server random + 自己的数字证书;客户端通过证书认证机构(CA)来验证证书是否合法,确认服务器身份后,用服务器的公钥加密一个pre-master发回给服务器;服务器用私钥解密得到该数;后面的就使用这个生成的会话秘钥client random + Server random + pre-master进行对称加密传输;8. 如果是一个假冒服务器,它的证书没有权威CA的签名,或者证书域名不匹配,客户端会提示不信任,阻止连接。CA:是证书颁发机构,负责签发;证书:由CA颁发的电子文件,包含公钥、身份信息和CA的签名等;
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务