梦幻科技

首页 开发教程正文

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

梦幻小猫3周前36

  续写软件定制开发公司CTO工作经验分享,好的工程师如何学习(上)本篇为上下两文,详情请继续往下看。

  接着打造“T型技能“Then,build“T-shaped skills”

  当精通一条full stack后,接着你就可以挑选full stack当中你有兴趣的一段,做横向的发展,去了解同样的一个问题,可以如何被不同的工具、方法给解决,不同工具和方法的pros and cons分别是什么。之所以能够这么做,是因为你已经有了一条baseline、有足够的知识可以去做比较。

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

  建立第二个技术专长Next,build your second forte

  T-shaped skills完成到一定程度之后,接下来,就可以选择建立另外一条forte。这里他其实也不知道要如何选择,但他说在你所拥有的forte,至少有一个是目前是市场的热门需求(至少要能够生存),另外一个可以是自己的兴趣。重点是,要学「解决问题的方法」而非工具(技术)本身

  技术循环的概念“The Tech Cycle”

  他提到了「技术循环」的概念,这也是整段对话中我觉得最有趣的地方。他说,当有新的问题需要被解决的时候,人们总是会先回头看看过去的技术,有哪些技术、解决方案是可以被用在新问题上。

  他举例两个例子,一个是cable modem(就是上网的时候会唧唧叫的机器)& 3G网络传输,都有用到模拟信号与数位信号的转换技术。根据他的说法,当年因为DSL出现而失落的工程师们,到了3G网络时代又再度找到了舞台,而年轻一辈的工程师完全不懂为什么这些人懂这种东西。另外一个例子是购物时常看的购物明细单(或收据),与Kindle的画面呈现技术,其实背后的解决方案也是类似。

  所以如果行有余力,可以开发自己的第二个forte,除了拓展自己的知识与能力之外,未来也有可能在某个时候,成为世界上最热门的解决方案之一。

  看懂使用者故事Understand“user story”

  但很妙的是,他对于junior developer的期待,并不是精通full stack中所有的技术细节,而先是要「看懂user story」

  他说,他期待当junior developer看到一个user story的时候,能够

  能够理解这里要解决的问题是什么,能够为客户带来的价值是什么?

  能够知道如何为这个user story打造end-to-end的解决方案,或是创造deliverable value

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

  能够问出关键问题

  能够点出问题,并找到解决方案,或建立假设

  看起来跟技术比较没有关系,但要达到这样的期待,需要对于技术能够解决的问题、能够带来的价值有深度的了解。

  工具背后我们在解决什么问题Problem behind tools

  在学习新工具与技术的时候,也别忘记去了解其底层的运作,在我们遇到问题的时候,使用这些工具可以帮助我们解决「我们看得见的问题」,但很多时候这些工具的底层,默默的帮我们处理很多「我们看不见的问题」。

  工具日新月异,但问题会一直存在,只会在不同的时间点,被人们用不同的工具所解决。所以真正重要的是,要学习到「我们在解决什么问题」。

  可读性高方便测试的代码Readable & Testable Code

  他认为代码(或程序语言)最重要的是「可读性」与「可测试」,如果别人很难理解你写的代码,那么未来将会很难维护或改进。若以程序语言来说,他提到Ruby是一个非常易读的语言,但有人诟病它的性能不够好,他说放心,只要是易读、方便进行测试的程序语言,只要有人持续使用,有一天性能问题将会被解决。

  (Ruby 3.0将在2020年12月释出,性能将有大幅提升)

  就这样一路聊了将近两个小时,很感谢他和我分享这么多想法和经验。聊完后觉得自己和真正的software developer还有一大段距离,但对于未来的学习方向也更加明确了点。


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

下一篇:良品率提升管理解决方案(YMS,Yield Management Solution)

服务热线

13751415268

qrcode

扫一扫二维码,微信咨询