梦幻科技

首页 开发教程正文

软件定制开发公司CTO工作经验分享,好的工程师如何学习(上)

梦幻小猫3周前24

  昨天有机会和一位前辈喝咖啡,他目前是一间软件定制开发公司的CTO Sam,和我分享了许多工作、学习上的想法与经验。

  在见面之前,我尝试上网搜寻该公司的相关数据,发现几乎找不到,而公司的站点首页是个console,应该说,长得像console的页面,想要看到任何数据都需要下command line的指令,非常geek(这里我想表达的是称赞的意味)

startup-photos (1).jpg

  以下是我的笔记,当中包含我自己的想法与诠释,所以不是前辈的逐字稿喔

  About Pair Programming

  该公司在客户经费充足的情况下,基本上都会有Pair Programming的安排。对他来说,Pari Programming能够大大提升开发质量与速度。但不是每一个客户都能够了解其价值,这里他用了一个譬喻

  你会想要搭上一架没有经过测试,而且「只有一位」机师的飞机吗?

  他提到,不管在训练还是飞行的时候,一定会配置两位机师,除了能够互相协助之外,更重要的是让senior有机会将经验传承给junior,junior可以在低风险的情况下学习。

  一般来说,一位junior developer进入一间公司,可能有三种状况:

  有senior developer带,而且会先带着你一起做,让你看过best practice之后再放手让你做(也是该公司的做法)

  有senior developer带,但是不会先带着你做,直到你做完之后,再给你回馈与建议

  没有senior developer带,自己搞定所有任务

  有2其实就很不错了,不过1所能够带来的价值更高。除了能够让junior developer在低风险的状况下学习之外,当他成为senior developer后,也会知道如何传承经验。这样的作法基本上就是将工作与培训结合在一起。

  这让我想到Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman这本书,当中重点提到要在software development这条路上持续成长,就要像学徒一般的学习。

  那么,学徒是怎么学习的呢?简单来说,就是跟着前辈边看边学、边做边学。这件在以前看起很理所当然的事情,为什么现在又被特别提出来了呢?因为现代人大部分都在学校里面受教育,认为只要把书本上的东西念完,就可以应付未来在职场上的挑战,工作之后就停止学习(或者是变得不懂怎么学习),但这世界变化快速、挑战也永无止尽,只能抱持着「学徒的心态」持续学习才能够生存。

pexels-photo-1595391 (1).jpeg

  做产品还是接案?Product Company or Dev House?

  两种公司都各有各的pros and cons,但重要的是这间公司的开发文化如何。这里他没有着墨太多,但我认为重要的是哪里有好的环境可以让自己快速成长,而不只是完成一堆工作而已。

  先建好自己第一个技术专长Build up your first forte

  现在技术这么多,到底从哪里开始学呢?他说,先选一条full stack的路来学,至于是什么语言或框架不重要,因为在没有建立第一个baseline之前,其实无从「真正」去判断哪个技术语言或框架比较好

  我好奇问,为什么一定要full stack(全端)?对他来说,能打造出end-to-end的解决方案,才算是真正的工程师。前端、后端、数据库甚至到DevOps其实都息息相关,如果只懂后端而不懂前端,那么就会不知道为什么后端api要这样设计、为什么这里要做A而不是做B。

  另外,也唯有走过一次full stack,才会知道想要打造出end-to-end解决方案时,会遇到什么样的问题。


上一篇:在线教育APP课堂直播软件定制app开发知识付费平台搭建h5源码出售

下一篇:软件定制开发公司CTO工作经验分享,好的工程师如何学习(下)

服务热线

13751415268

qrcode

扫一扫二维码,微信咨询