如果能够搭乘时光机,我会给还没成为软体工程师的自己这九个建议

收藏:313

如果能够搭乘时光机,我会给还没成为软体工程师的自己这九个建议

最近在 Medium 看到 一篇文章 关于作者 Manuel Ebert 发表了从神经科学系转换跑道成为了软体工程师,在软体业工作所得到的一些感想。文中讲述了身为软体工程师或者是希望未来成为软体工程师的人该有的心态,在这里与大家一同分享。

作者也说了:「如果我更早知道这些,并且提早以这种心态为未来做準备,这会使我的工作容易些」。也因此,她写下了这个列表给年轻时候的自己。

聪明才智被高估了

很多人认为一定要非常聪明才能够成为软体工程师。的确,如果你够聪明再加上拥有好的表达能力会帮助你在你的求学生涯中轻易地度过。但是这是一种天赋也是一种诅咒,你会发现当你不费吹灰之力的学会对你理所当然的东西的时候,你的同学们却得付出额外的努力来超越你,但他们所花费额外的努力所学习的东西往往在未来成为了在工作上最重要的事。像是:勤奋、坚持以及社交等。这类的事情因为你太聪明了,你不曾体验过也就不能够有切身的体会。

我们举例来说:往往你会在同学中遇到比较超群的人,你想了个半死也想不出来的东西,他可能觉得理所当然。或者是当你组成了读书会想要讨论作业或者是你不懂的地方,因为你一个人无法单打独斗,所以你必须结交朋友进行团战,往往你很不幸的有个聪明的同学不需要任何人帮忙或者是嘲笑你们很笨。但是别担心,你所经历的一切都会成为你未来重要的基础,当年一起学习的朋友可能在未来成为你重要的人脉,又或者说你绞尽脑汁的这个学习的过程,让你在未来遇到任何问题的时候都会养成这样子的思考习惯,像是:我这样子想对了吗?有没有更好的想法?能不能够在更优化我的解答?

当然,拥有聪明才智毫无疑问的可以帮助你在这个行业中有很好的开始,但在这个行业上或者是其他各种行业上的成功需要的不止是聪明才智,还需要纪律、努力、可靠的人脉以及别做个混蛋!

为你工艺感到自豪

不论你做出什幺,你都要为你自己的工艺品感到自豪。如果你写了一个软体,那幺除了你有了成品之外,整个成品出产的过程中,你还有了很多的规划,像是你思考过你的软体该有什幺样的功能,你研究过目前有哪些开源软体可以使用、你学习过 paradiams 以及程式语言来帮助你完成这个软体、你找出而且修正了你在编写程序中所出现的错误、你将你的程式码美化使其更浅显易懂并且维护它。如果你对于你所做过的这一切都不感到愉快,而只是当成是为了出产成果的一个必经之路,那幺你永远无法在个领域做的很出色。

有个很好的方式可以显现你对于你正在建造的工艺品感到非常的荣耀:进行一些宠物专案,这些小专案并不侷限于想要解决什幺当前立刻需要解决的问题。而你之所以着手进行这些小的专案只是因为你很享受这整个过程。有趣的是,很多我们现在天天在使用的产品,其实都是来自这些小的专案。举例来讲,当初 Facebook 就是马克的一个 Pet Project 。

学习新的工具

花点时间去真正的下功夫学习一些新的工具,而不是单纯的去扩张知识。你必须要亲身去学习这些可以帮助你完成任务的工具。举例而言:你可能知道 Angular.js 是做什幺用的,但是光这样子还不够,你要花时间去学习怎幺样使用它,亲自去试试看。 这里也延续了上述的宠物专案,每次你想要做一些新的东西的时候,你也要试着用新的方式来做。我们要有一种宠物专案很有可能会失败的心理準备,也因此我们并不需要投注我们大部份的心力,我们该做的是每次都在专案中学习到一些东西。即使今天这个专案失败了、或者是你对它失去兴趣了又或者你发现这个挑战难度可能有点过高,你还是会学到些东西而不是因为这个失败对你造成伤害或者让你自尊受挫。 在这里作者也推荐了一些值得学习的东西像是:

Github 以及 Git

相信这一点已经是有点老生常谈,在 Github 上会有很多可以值得参考的程式码,Git 也可以帮助我们更有效的管理我们的专案。除此之外,同学或朋友或者是同事之间进行所谓的 Code Review 也是很重要的。让你的程式码受到大家的审视,停止使用这些只有你看得到的程式码来分析数据,因为其中可能有很多的 Bug !

Inkspace 、Adobe Illustrator 或 Sketch

利用这些绘图软体来进行图片以及数据图表的后置处理,学会用这些东西比光使用 Matlab 或者是 matplotlib 来得更容易些。

Sublime Text

学会使用一个编辑器以及快捷键可以省去你不少的时间,Sublime Text 相对 Vim 或者是 Emacs 亲切可人的多了。

学习如何表达

表达能力也是重要的一环,多看点 TED talk 看看这些人是怎幺样利用 15 分钟讲出一段很吸引人的故事。在镜子前练习你所学到的技巧,因为你的身体你的声音也会是一个很重要的工具。

Python, R, HTML and Javascript

这些基本的知识可以帮助你成功,如果你对于这些基本的都已经熟悉了,那幺你可以玩玩看一些函式库或是学习一些新的领域,像是自然语言处理、机器人、音乐合成或者网路爬梳等。

要像是个股东

每每当我们说到公司的最佳利益的时候,通常我们指的是股东们的最佳利益。因此,你该问一个问题是:对你的执行长或者是你的主管而言,谁才是股东?对他们而言股东的利益有多重要?如果你的老闆觉得只有他才是这间公司的股东的时候,那代表你该以最高速度逃离这间公司了。因为很有可能的你会因为他们的利益而被牺牲。因此,你必须早点发现这一点,如果你不被当成股东一般看待,快点逃跑吧!不论你有多爱这份工作,单方便的付出是不行的。除非你真的很喜欢被虐,但是很遗憾工作不像是日剧,即使你无怨无悔的付出,老闆可能不止不把你当一回事,还在背后踢你下水。

Shipping it

Shipping it 最近在科技业中成为一个相当流行的词彙,Ship 代表的是出货,顾名思义就是将你的产品从仓库中拿出来并且送到客户手上。但这个词彙真正想要表达的意思是,在你的产品交付到客户手上之前,你之前的付出都毫无价值。製作一项产品最重要的就是让它给客户使用,因此与其花好几年做到你拥有一个完美的产品,你应该要先将基本的东西迅速完成,确保其功能之后赶快出货!毕竟在你花时间调试自己的产品的时候,可能有人已经抢在你前面将产品发表了,而你也就损失了市场。

了解 80/20 理论

80/20 理论在这方面而言是你花大约 20% 的时间将你的产品 80% 功能完成之后,花 80% 的时间,确保你在这最后的 20% 没有任何地方出错。这件事情为什幺这幺重要?因为大多数的人往往低估了一个专案所需要花的时间,工程师或者是科学家尤甚。这往往跟经验有关,你知道的越多,你往往可以预期这在未来会发生的错误或者是其他的一切可能发生的边界条件。举例而言,笔者当初的就学的学校建立的售票系统就是没有考虑负数而造成整个系统停摆。。所以,如果你没有经验,你就把你认为需要在这个项目上花的时间乘以五,然后预期你在五分之一的时间到了的时候可以完成大部份的功能。

你并没有出卖你的灵魂

大部份在你工作时,常常会遇到一些人愿意投资你,这些往往出自他们的最大利益。,但这并不代表他们拥有你的灵魂,可以叫你做任何你不愿意去做的事情。

离开你的舒适圈

一般而言,要离开自己的舒适圈继续学习是不容易的,当你在自己的舒适圈的时候,你发现你已经会了很多东西,但是如果你想要学习的更多,你就必须离开这个圈子。作者以下图作为举例,往往你学习不到任何东西,如果你一直停留在自己的舒适圈里面,又或者你因为恐慌而无法有效率的学习。因此最好的平衡点就是,在你感到恐慌之前,这是你最好的学习点,在这里你可以学得最多,改变的也最多。当然这样子说或许有点抽象,笔者认为 Manuel 想要表达的是,你应该要从自己可以施力的地方开始,然后一步一步的学习更多。举例而言,你想要学习怎幺使用 Node.js ,你最起码要知道一些 Javascript 的基本。否则你就是把你自己丢入了所谓的恐慌圈,你发现你什幺都不懂,又什幺都要学。

如果能够搭乘时光机,我会给还没成为软体工程师的自己这九个建议
 图片来源:Medium
静下你躁动的心

你的心就像是猴子,往往会想要抓住最近的那根树枝。往往,你心中有很多的点子、想法、灵感。在做某一件事情的时候,你往往想到了下一件事情,想到了或许你可以用这个点子去做某些事。这样子的想法被称为是联想性思维,对于创造力是一种很好的提升。但是,有的时候你更需要的是专心与集中。总结上述所说的,只有集中才能够帮助你一步一步的去完成目标。 当然,Manuel 在最后也提到,这些想法未必适合所有的人。但是让自己在心理层面做好準备这一点是毋庸置疑的。毕竟,态度决定一切。

欢迎加入「Inside」Line 官方帐号,关注最新创业、科技、网路、工作讯息
如果能够搭乘时光机,我会给还没成为软体工程师的自己这九个建议