设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

做程序员你需要明白这九件事

2014-8-15 13:41| 发布者: joejoe0332| 查看: 3490| 评论: 0|原作者: 科技报橘|来自: 科技报橘

摘要: 当然从前我在研究科学时就写过很多软件。如果你想要看懂 40G 的脑部扫描资料,你必须捲起袖子写些语法来处理这些数据,而我一直都是个很好的程序编写者。但直到我辞去了我的学术工作(可能也告别了我的学术生涯)并 ...

(本文为 Medium 驻站作家 Manual Elbert 撰写,以下以第一人称叙述)

三年前我在巴塞隆纳的神经科学实验室工作,忙着把电极贴到人身上、教认知系统的课,而现在我靠着设计、编写软件维生。

当然从前我在研究科学时就写过很多软件。如果你想要看懂 40G 的脑部扫描资料,你必须捲起袖子写些语法来处理这些数据,而我一直都是个很好的程序编写者。但直到我辞去了我的学术工作(可能也告别了我的学术生涯)并开始在一个小而有野心的新创公司工作之后,我才真正知道什么是软件工程师,以及在这一行是怎么回事,并不是知道更多程序语法、资料库、演算法跟设计模型就好。

如果我在读研究所之前就知道这些事情就好了,将会让我的工作生涯变得更轻松。这是一些对年轻的我的忠告,是我过去三年所学到的经验,不得不说,有些实在不是那么美好。


  • 1. 不要高估天赋的价值

年轻的时候,如果你很聪明,你便可以遥遥领先其他人,如同小池塘里的一只大鱼。如果你那半调子的口才很好的话,那么聪明的功效还能加倍。事实上,聪明加上口才好能够让你不用念什么书就顺利度过高中跟大部份的大学课程。(不过你还是得念物理,你总不能说服一个等式转弯)。

恭喜你,你很幸运,同时却也十分不幸运。因为当你毫无阻碍的就冲过了求学的终点线,对待学习如反掌折枝。在这同时别人必须去学习勤劳、坚持、人际网路这些之后远远比学识更加重要的东西。

我们的社会太过重视聪明才智了。当我跟人们提到我以前专攻神经科学,大家都会说:「哇,你一定很聪明」。的确我不是笨蛋,但我知道很多人也许不如我这么聪明,却是远比我好的神经科学家。

聪明才智当然还是能帮你打开一扇门,但绝不会帮你做好工作。勤劳、严谨、可靠的人际关系都是不只软件工程师,而是你跨出研究所的美好泡泡之后要成为任何专家都必须拥有的特质。


  • 2. 要对你的专业感到骄傲、乐在其中

这句话可能有点老梗,但对年轻的你来说仍然很重要:无论你做的是什么,都以它为傲,没有任何事情应该只被视为达成目的的手段。

不论对象是人或是试管,你都必须严谨分析你的资料并使你的统计数据有效,然后再重来一遍,因为有时候你会发现你犯了哪些愚蠢错误。如果你无法乐在其中,仅把这些步骤视为出版论文或发行产品的必须过程,那么你永远无法真正擅长这件事。

如果你是写软件的,这代表你要规画你的特色、研究现有的开源代码、学习新的模型与程序语言、修復你的错误、重建程序码并且维护它。如果你没有想要精通你工作的野心,那无论你是科学家、工程是或是任何你在做的工作,可能都只是浪费时间。

你 可以拥有一些「宠物计画」,一些小小的、有点蠢的、并不一定能满足你的即时目标、你只是因为「享受」在做这件事情。有趣的是,这在软件社群里似乎很常见: 许多我们现今正在使用的产品大部分都来自某人的宠物计画,而几乎不是来自科学圈。我最喜欢的名言之一是来自奥地利动物学家 Konrad Lorenz:

「对一个研究科学家来说,每天早上吃早餐前都抛弃一个宠物假设是好的晨间运动。」

如果你觉得这听起来很蠢,也许你不该当一个研究科学家。


  • 3. 学习新工具/新技术

作为上一点的延伸:投注时间学习新工具。不只是拓展你的抽象知识,而是实际去学那些能帮助你完成事情的工具。这很快就能见效。

一个学习新工具的好方法是上述的「宠物计画」。每次你要建造新东西时,也用新的方法建造它。记住,宠物计画就是拿来失败用的,你投资不多、你学到一点东西;如果计画不成功,或是你失去兴趣、或是你发现实在有点太难了,你不会有损失,不会伤到自己。

如果你从事学术工作,以下是我强力推荐的好东西:

(1) Git 跟 Github

Git 帮助你管理你的工作,再也不用担心备份问题;而 Github 上有一堆很好用的程序码,你不需要自己重造轮子。噢,请记得跟你的同伴再确认一次你的程序码。绝对不要用程序码来分析那些只有你看过的资料。(我不敢相信 我得告诉你这件事情啊,年轻的自己。你一直以来都是一个好的程序编写者,但我仍然做了那些可能会被忽视的错误。如果不是有再检查一遍,我不会发现因为程序 错误,有百分之三十的科学结果可能是假的。)

(2) 一个绘图软件

我通常都用 Inkscape,但标准的 Adobe Illustrator 跟新的 Sketch其实也一样好。用这些绘图软件来先处理你的图表和计画,这通常都比你在 Matlab 或是 matplotlib 上写绘图指令来得容易。

(3) 学习如何有效的利用你的文字与代码编辑器

Sublime Text 是个比 VIM 或 Emacs 来得容易学会的编辑器。知道捷径能够帮你省下一堆时间。

(4) 学习如何说话

看看 TED 上的演讲并注意这些讲者如何在十五分钟内就抓住观众,同时说出那些吸引人的故事。你可以在镜子前面练习,你的肢体与声音都是工具。

(5) 知道基本的 Python、R、HTML 跟 Javascript

这些工具可以帮上不少忙。如果你对写程序并非一窍不通,那学个新的面向编程或资料库。玩玩计算机视觉、自然语法编写、网页撷取、音乐合成跟机器人!

你所能看见解决问题的方法,永远都会被你所使用的工具所限。学习新工具代表你用新的角度看问题。 如果你是大学生,我强力建议你一周之间拨出一天来学习新工具。如果你开始做硕博士研究,那就拨两天出来。长期来看,你会省下很多时间,而人们会被你的效率 所惊艷。如果你觉得这听起来太困难、你没有时间、其他压力太大,那就跟你的老朋友谈谈,看看到底什么才是值得你花时间去做的。


  • 4. 成为真正的局内人

正常来说,你的长官或 CEO 会做出对机构或公司最有利益的事情,毕竟那是他的职责。

当我们说到「公司的最大利益」,其实我们是说某些局内人的最大利益。真正的问题是,你的长官或 CEO 到底把谁当局内人?这些利益共享者的利益又有多重要?

如果你的老闆认为他自己是唯一的获利者(越出名越好、越快获利越好),你最好快点逃走,逃得越快越好,不然你会被当成牺牲品。那谁才有资格利益共享?你的投资者或贊助者?员工?学生?人类?重点是:快点找出来。如果你不被当成受益者之一,那就快走。无论你有多爱你的工作,那都只是一厢情愿、被滥用的关系。


  • 5. 学会展现成果

「Shipping it」变成科技界一个相当流行的词汇,意即把你的产品从仓库拿出来给客人。但除了字面上的意思,它其实还有一种精神层面的意涵:你的东西要到了客人手上才会有价值,而这应该是你一直以来的目标。

在学术范畴中,我写的大部分软件都只会在一个系统上执行一次。为了产品而写的程序则是完全不一样的东西,这会让五十万人使用,而当写程序成为我的专业时,我发现我并不擅长这件事。

但这同时也代表琢磨好几年,直到完美产品诞生是没有意义的。你只要做出一点成果,就把它送出去,写一份最简单的报告你就有可能被录取。晚点再担心更复杂的学问吧,先搞定基础,尽快发表它。Just ship it。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部