关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 程序人生 »软件工程师应该知道的9件事

    软件工程师应该知道的9件事

    2014-11-22 00:00:00 出处:ITJS
    分享

    三年前,我还在巴塞罗那的神经科学实验室工作,忙着研究脑电波、教授心理学上的认知系统课程。而今天,我以设计和写软件为生。

    你或许会满头黑线:隔行如隔山,这转变也忒快了吧。其实不然,早在以前我就已经写过很多软件了——比如想理解扫描出来的有40GB那么多的大脑数据,我得捋起袖子、埋头苦干,写个能紧缩这些数据的脚本。所以我一直以来就是一个能干的程序员。但是直到我最终下定决心辞去了这份在学术上能有所建树的工作,转去一家朝气蓬勃的创业公司打工,我才明白了什么是软件工程师——而更重要的一点是,知道了软件工程师是干什么的。软件工程师并不意味着你得学会更多的编程语言、类库、算法和设计模式。它是一种心态。

    要是我能早点懂得这些,我的工作肯定要轻松的多。不过亡羊补牢,犹未晚矣。

    下面是我写给自己的注意事项,是我在这三年里学到的经验教训,有的甚至是惨痛的。

    1.智力不是万能的

    要是你还年轻,聪明机智能让你的道路走得更加顺畅。聪明能让你鹤立鸡群。要是你有强大的表达能力就更妙了。老实说,聪明和好口才能让我们在高中和大学里所向披靡,轻轻松松就能拿到个好成绩。——要是你两项都具备,那么首先要恭喜你,你是一个幸运儿。但是同时你也很不幸。因为当你毫不费力地考上一个好学校,随便看看就能通过考试,其他智力不如你的人却因此学到了将来会受益无穷的品质:勤奋、耐心、协作等等。

    当今社会太过于看重智力。当我告诉别人我曾经在神经科学方面工作过,大家第一个反应往往是:“哇,你肯定超聪明的!”我不得不说,我认识很多人或许智力方面不及我,但是却的的确确是更为优秀的神经科学家。

    智力毫无疑问能为你打开前行的大门,但是要是光有聪明,工作是永远不可能做好的。勤奋、严谨、可靠的网络,最后还有守信等等,不光是在软件工程领域甚至在其他专业都是必须的基本品质。而这些是学校不会教给你的。

    2.为你自己鼓掌

    这句话可能大家看到过很多次了,但是这的确有着其不可忽视的重要意义。无论结果如何,只要努力了,那么就应该为自己自豪,为自己鼓掌。不是所有努力都会有成果。我们谁都喜欢在报刊杂志上出现自己的名字,但是中间过程却异常艰辛。首先得想出一个好的课题,否决一些假设,然后才能一步一步进行研究——这个课题可以大至人类也可以小至在试管里漂浮——根据需要而定,然后严格分析数据和验证统计资料,要是发现有错误就毫不犹豫重新开始。看着过程就头皮发麻!

    写软件意味着要规划特点、研究现有的开源代码、学习新的模式和编程语言、修复bug、重构及维护等等。要是在这些过程中你丝毫没有感觉到乐趣,只是把这些步骤当做是得以发表论文、发布产品的工具,那么你永远也不可能在这个领域真正有所建树。要是你在提升自己技能方面没啥目标,那么我建议你还是尽快转行,哪怕是去做科学家、工程师还是别的什么,都比现在这样浪费时间要好。

    为自己鼓掌、以自己为荣意味着,你在做的项目是自己喜欢的,可能这些项目看上去又小又蠢,为了不影响整个项目的顺利完工,可能根本没有必要投入精力马上去做,但是你就是孜孜不倦、刻苦攻关。只因为两个字:喜欢。有意思的是,这似乎在软件社区是个相当普遍的现象——我们每天在用的很多产品开始仅仅是因为开发者个人的爱好而已——但是却在科学界极为少见。下面是Konrad Lorenz(奥地利动物学家、动物心理学家、鸟类学家、诺贝尔奖优胜者)写的我最喜欢的一段话之一,和大家分享:

    “对研究型科学家而言,

    在早饭前

    回顾丢弃宠物的假设

    就是最棒的晨练了。”

    要是你感觉这听起来很愚蠢,那么也许你并不应该成为研究型科学家。

    3.学习新工具

    学习新工具不只能够扩大抽象的知识领域,并且在有的时候借助这些工具还能帮助我们解决问题。付出总有回报,一切很快就会见分晓。

    学习新工具的一个好办法就是类似上面提到的要自己喜欢,毕竟兴趣才是最好的老师。当你构建好新模型或者别的什么之后,可以试着用另一种工具再构建一次。要记得,失败是成功之母,人都是在逆境中成长,在失败里学习的。不过要是你认为没必要继续了,学到的已经足够了,或者不可能成功,或者对此你已毫无兴趣,又或者你发现这个挑战超出了你的能力范围,那么就此放弃也可以。

    以下是我强烈建议学习的一些好工具:

    Git和Github。有了Git,妈妈再也不用担心我的备份了。而Github上有超多的事例代码,这样你就不必老是自己重新写过了。 插图软件。我个人比较喜欢Inkscape,不过Adobe Illustrator和新出来的Sketch 也一样棒。 学习如何有效使用文本和代码编辑器。 学会如何讲话。 涉猎Python, R, HTML 和 Javascript等等的基础知识。

    对一个问题的解决方案往往会受到我们所用工具的限制。学习新工具也是为了能跳出这个框,从其他的角度看问题。

    要是你还在上大学,那么我强烈建议你每周定一天时间用于学习新工具。要是你已经是在搞研究的博士,那么可以每周两天。从长远来看,这会节约你解决问题的时间,别人会因为你的高效率而震惊赞叹。要是你觉得你没有那么多空余的时间,也不需要给自己压力,可以向年长的同事请教,如何去正确分配时间。

    4.成为利益相关者

    众所周知,主管以及CEO总是把公司的利益放在首位,这是他们的工作职责。

    但我们谈到公司的最大利益,我们往往指的是利益相关者的最大利益。而现在的问题是:哪些是主管和CEO眼中的利益相关者,这些利益相关者的利益又占多少比重?

    要是你的老板认为他/她自己是唯一的利益相关者,那么赶紧走吧。不然的话,要是找到合适的家伙,你就会被抛弃。还有哪些会是利益相关者呢?投资者或者慷慨的捐献者,员工,学生,还是全人类,都有可能,关键是要尽快找出来。并且要是你不在利益相关者当中,那么离开。

    5.发布

    “发布”这词已经成为了科技领域的新宠。它的意思是把我们的产品从仓库中取出来展示给消费者。这不仅仅是一个动作,更是一种心态。要是不能把产品成功交付给客户,那么意味着我们以前的工作毫无价值,是无用功。关于这一点,是大家要时刻谨记的。

    以前在学术界的时候,我写的大多数软件必须一一对应系统。而现在要为五十万用户写软件,这真的大不相同。

    这也意味着,要是不能发布一个完美的产品,我们就得一直迭代。所以要是想尽快得到一个完美的产品,那么发布吧!有压力才有动力,集思广益,查漏补缺。

    6.了解80/20法则

    80/20法则的基本意思是,花上20%的时间能实现项目80%的预期效果,然后剩下20%的项目成果则需要80%的时间才能拿下。举个例子,要是你从郊区开车前往市区:在20%的时间里走了80%的路程,但是当你碰上交通堵塞,呵呵,剩下20%的路程就会用去你很多很多时间。

    那么了解这个法则有什么意义?因为要是没有这个法则指导,很多人往往会低估完成一个项目所需要的时间。科学家和工程师更是容易犯这种错误。不光是这个法则,还有部分是经验问题:懂得越多,就越能更好的预测开工之后会遇到的各种问题,而这一点是很多人想不到的。

    要是你还没有这方面的经验,那么可以将你认为所需要的时间乘以五,希望经过五分之一的时间之后,你会明白对80/20法则有所了解。

    7.不要出卖自己的灵魂

    我攻读我的博士学位完全是个错误。其中一个错误我把它叫做“学术犯罪”。因为那个时候我觉得要是我不去读博士完全是浪费了我的天赋。不过我觉得我有所亏欠于那些支持我学术生涯的人——教授和支付我奖学金的人——因为我最后并没有去搞研究。他们投资了我的未来但是很可能会失望,因为他们的投资并没有成果——我并没有成为一名伟大的科学家。不过这是他们的问题,不是我的。

    这同样也适用于任何其他工作。人们给你投资,是他们利益最大化的选择。这并不意味着你由此需要出卖自己的灵魂。

    8.离开自己的安乐窝

    以下是我对世界的看法:

    在一个你熟悉的地方,舒适又安全,你可能学进去很少。可是当处于恐慌的心态中,你可能啥都学不会。

    每个人都有自己的“狗窝”,在这里,你放浪形骸无拘无束,角落里藏着什么都清清楚楚。不过要是你想学到新事物并且能够迅速成长起来,那么首先你得离开这个“安乐”的地方,自己在学海里迎风破浪“苦作舟”。

    当然,要是你感觉不堪重负,那么其实矫枉过正,已经处于恐慌的境地了。可怜的你,风浪太大掉海里了!现在唯一能做的就是尽量保证自己能活着等别人来搭救。

    而正如上图所示,在到达恐慌的境地之前的最高点,我们能学得更多,成长得更快,变得更优秀。找到你的学习最高点。

    9.驯服思维之猴

    舒适地坐下来,闭上眼睛,平稳的吸气呼气。感觉一下当当空气流出你的鼻子流过上嘴唇皮肤带来的美好。什么都别想,好好感受。

    大脑放空多久了?有五分钟了?可能不会。一分钟?太棒了。20秒或者更少?好吧,这才是正常值。你的思绪就像一只猴子,它在树上跳来跳去,看到哪个枝干最近就抓着哪个跳过去。你可能还不理解,我再重新用专有名词表述一下:现在比较流行的说法是联想性思维。要是你想发明创造,那么联想性思维绝对是不可或缺的好工具,但是它却是专注的杀手。幸运的是,专心致志是可以学习的。现在有非常非常多号称“能提高生产力的高科技”,但是都还停留在表面因素。谁都不希望在写软件的时候,思绪飘啊飘得在想意大利面怎么做才更好吃。我们需要驯服这只顽皮的猴子,一劳永逸。

    不过适合我的方法可能并不适合你。我通过定期使用上述沉思的方法(这方法还有其他有益之处)从而获得了很大的成效。不过即便是如此,我也不敢保证每个人都适合。我所要推荐的是,要保持你的头脑处于最佳状态,这很重要。还觉得冥想是在浪费时间?我们每周都会去健身房锻炼身体,不过在心理锻炼上你得花上至少两倍于此的时间:减去几磅杂念。锻炼自己的思绪以便保证在工作时自己的头脑可以专注更长时间。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    苹果将发布第三财季财报,很可能会超预期

    25 年第三季度 NAND Flash 合约价格预计将上涨 5-10%

    亚马逊网络服务 (AWS) 已裁员数百人

    邦彦邦彦云PC”新一代云上真机解决方案重磅亮相

    苹果Mac book产品线未来两年大升级:M5、M6系列芯片来袭

    净网—2025|代抢?录入?小心 “票圈陷阱”!

    脱下皮衣,英伟达 CEO 黄仁勋穿唐装亮相中国国际供应链促进博览会

    ATTO360 Storage 软件通过单一智能平台重新定义存储管理

    DigitalOcean 推出 DigitalOcean Gradient AI 平台

    网传华为盘古大模型疑似抄袭通义千问,盘古团队否认

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术分享

    SQL汉字转换为拼音的函数

    windows 7系统无法运行Photoshop CS3的解决方法

    巧用MySQL加密函数对Web网站敏感数据进行保护

    MySQL基础知识简介

    Windows7和WinXP下如何实现不输密码自动登录系统的设置方法介绍

    windows 7系统ip地址冲突怎么办?windows 7系统IP地址冲突问题的

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。