许多人都问我类似这样的问题 “我应该学什么才能拿到一份编程工作?” 或者 “我怎么才能在硅谷当上工程师?”

又比如下面这个:

我需要一点建议。我已经 33 岁了,我得离开做支持的岗位,哪怕不能做全栈开发至少也能谋个 DevOps 的工作,但是太贵了。我应该先学什么呢?各位有什么建议吗?

言下之意通常是应该学什么技术才能找到一份工作。就好像你的技术选择就是某种银弹似的。

想知道一点秘诀?其实学什么都没关系。

任何你听说过的技术都可以。你 Google 的时候是不是找到了 1 万个以上的结果?那就说明有公司在生产当中用到了。

只要有公司用,你就可以找到工作。

不错。但是我得警告你一下:流行度变高的技术找起工作来要比越来越不受欢迎的要更容易。所以 FORTRAN 或者 COBOL 就不要选了。

第 2 个警告—如果你是程序员或者开发者,那技术的选择就要重要得多。但如果你是工程师,那技术选择就没那么重要了。这也是工程师平均比程序员贵 2 万美元的原因。

作为软件工程师,你真正的工作并不是写代码。而是把人工概括的业务需求转化为计算机可以遵循的详细需求。

你的工作是提问题然后找出产品人没想到的边界情况。你的工作是帮助运营定义足以自动化的流程。

当然,最后你还是要写代码,或者可能你会把规范转交给写代码的,但是你的真正工作是想出规范。哪怕这个东西只是在你写代码前在脑子里形成的。

不要仅仅学习技术,还要学习如何用技术解决问题。

此处的关键是你必须跑一场马拉松。有什么东西能够让你保持 10年 的兴趣吗?也许不会是某个技术栈或者语言,而是你想解决的一个问题。

假设你就是上面那位做支持的人。你应该做什么才能找到更好的工作呢?

首先,你可以先看看自己目前的工作。你有没有遇到什么问题或者每天都要做的重复性工作呢?也许你可以对那些东西进行自动化。

开始挖掘。学习解决问题需要学习的东西。

然后你可以看看周围。你的团队有没有什么在执行一些很烦的流程?流程有没有改进的可能?或者有没有一些你不用但是可以让大家的生活更好过的流程?

然后你可以着手去解决那些问题。深入研究。学习需要学的东西。能够把宽松的问题转化为代码的人远比只会接受严谨的指令来写代码的人有价值得多。

恭喜你!现在你是工程师了。你需要技术去解决现实世界的问题。而且你甚至都不需要别人告诉你规范!

面向问题的学习不仅是掌握知识最有趣的方式,而且还能教你所有必要的边缘技能。像把模糊变成明确、搜索解决方案,深入代码寻找 bug,与用户交谈,测试以及随手学习新技术等技能。学习一切东西!

如果这样还是不行,还不知道要用什么技术的话,那就去 HackersNews 上面找 “招聘” 类的帖子(或者参考10 大流行编程语言之类的文章)。一个月下来大概就能收集到 600 到 900 份高品质的工作需求。这些大都会列出自己使用的技术。

读读那些帖子。统计一下技术词汇的频度。选出最热门的 3 个。然后通过解决你的问题来学习之。

不过需要警告你的是,流行库和框架每 2 到 3年、语言、服务器和数据库等核心技术每 5 到 10年 就会彻底更新一次。

所以不要只顾着埋头研究技术,不妨集中精力学习如何学习和解决问题。成为一名工程师。

余下全文(1/3)

本文最初发表在36氪,文章内容属作者个人观点,不代表本站立场。

分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注