本周开始是我在Facebook的第四个年头。我的经验在这里发生了巨大的变化:退学后我就来到了这里,在这里遇到了前所未有的挑战。单从这方面讲,我经历和遇到的挑战比这里4/5的人都要多。所以,我想分享一些我的认识和见解,希望其他一些程序员能感觉这有些用处

作为一个软件工程师,你的工作是开发出能解决问题的东西。初次进入公司时,你会被分配一些小任务,你可以解决它们。随着专业技能的增加,问题的规模越大越大。避免这种问题规模变大或问题难度增加的做法是错误的。程序是你用来解决问题的工具。如果你园丁,你会去种花和除草。提高你的能力发挥并不是种更多的花和除更多的草,你的愿望应该是能更快更高效,成为更有经验的园丁。你真正应该做的是,抬起头来,从整体看这个花园,思考如何布局,整体规划这个花园。

  为了能更有效的提高能了,你需要有效的交流渠道。交流渠道代表着一个人在这个世界上活动的能力。作为一个程序员,在你的生活环境里拥有顺畅的交流渠道,这对你全面发掘遇到的问题的边界和最有效利用问题解决方案起着至关重要的作用。这既包括你的代码上的沟通,也包括在公司里和他人的交流。对于你参与的代码库,你要快速的了解清楚各个组件是如何组合的。以这些知识为基础,你不能只去修复被分配的bug问题,而应该去考虑如何阻止这类问题再次发生。你不能只去想着实现一个新功能,而应该考虑如何在这些老代码和新代码上提炼出一个公用组件,让它们共享80%的代码。这需要付出努力,但从长期看会有巨大的回报。

  站在更高层面看问题,将整个公司视为己有。不要允许你的同事不做到最好。理解各种决策的权衡以及原因;理解一些临时方案的决定和这样做的必要性,但如果你感觉不对,一定不要在提出你的观点以求获取更好方案前就接受。这是你的公司(你的花园),如果你允许有人犁错了方向,整个花园规划将会变成一场灾难。养成勇于change的习惯,并有信心这些变化将向好的方向发展。

  人很容易陷入认为自己无法做到无所不知的漩涡,认为周围的人都比你聪明、有经验,害怕自己说的不对,被对方看不起。事情其实不是这样。当你有了一个想法,和你的团队分享——即使你不能确定你的想法是否正确。错误的认识往往是通往正确认识的里程碑,因为它能帮助你界定问题的真实边界,还因为你能通过的对错误想法的反复推演而获得正确的想法。

  你并不能立即很明显的发现跟公司内的其他团队中的人保持交流、维持关系有多重要。随机找一个你几个月未一起工作的人,和他进行简短的聊天。这能给你遇到的问题带来新颖的思路,也能让你发现其它团队已有的解决方案,你可以拿来用。团队之间的信息交流能让你对公司有更全面的认识,而和另一个项目里的基层程序员交谈能激发新思想,新方案,和新优势整合的机会。

  我也是刚刚总结出这些经验。我希望这些能给你启发,促你进步,把它据为己有,指引你的团队走向正确的方向。祝你在Facebook工作的开心;我知道我是的。

我在Fackbook的这三年[转]的更多相关文章

  1. 创业这三年¥.NET之尴尬处境

    创业这三年#迈出第一步 创业这三年@各种奇遇 之前写的文章有兴趣的大家可以看看. 本来没有打算写这样一篇会遭人拍砖的文章,但是发现大家每天忙于编码,对市场环境..Net生态没有一个真实.多角度的认识, ...

  2. 《转载》三年建站之路走得一事无成 今来A5撞墙反思

    本文转载自A5站的蚕丝被.如果给站长带来不便之处,请联系博主. 时间过得真快,记得上一次在A5写文章已经是一年前的事了,这其中是有原因的,今天就跟大家来聊聊三年来个人失败经历的撞墙反思,也给一些有着同 ...

  3. fackbook的Fresco的多种图片加载方法以及解码过程

    上篇文章中我们提到了图片加载其实是用了三条线程,如果没看过的同学可以先了解下这里. fackbook的Fresco的Image Pipeline以及自身的缓存机制 那么今天我们就来探索一下如何在代码中 ...

  4. fackbook的Fresco的Image Pipeline以及自身的缓存机制

    fackbook的Fresco的Image Pipeline以及自身的缓存机制 配置之前.首先需要知道两点:一点是Bitmap缓存.一点是如果你仅仅需要一个缓存,那么不调用setSmallImageD ...

  5. fackbook的Fresco (FaceBook推出的Android图片加载库-Fresco)

    [Android开发经验]FaceBook推出的Android图片加载库-Fresco   欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件 ...

  6. [MarsZ]程序猿谈大学之工作三年半的程序猿给大学童鞋的一些注释

    我本不是个喜欢写文章的人,更甭提写这种基本没技术含量的文章了.但是今天上班的时候,不经意浏览了下学校的QQ群,突然很想把自己的经验经历分享给还在大学里的同学,希望能让某些对前途职业迷茫的童鞋有所帮助. ...

  7. java学习历程,一年三年五年计划

    学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要 ...

  8. 一入OI深似海 2 —— 初中三年,颓废PJ

    初中,OI似乎没有真正进入我的生活. 三年PJ在我的生活中占比很少. 每天都是平淡无奇的文化课,晚上在写完作业之后还能休息一会儿. 每周六下午的OI课很短暂, 大部分时间我还是把我的重心放在学习上. ...

  9. 面试挂了阿里却拿到网易offer,一个三年Java程序员的面试总结!

    前言 15年毕业到现在有三年多了,最近去面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中... 最终有幸去了网易. ...

随机推荐

  1. python3.0 第三天 文件操作

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下 Somehow, it seems the love I knew was alway ...

  2. Python中利用进度条求圆周率

    从祖冲之到现在,圆周率的发展越来越丰富,求法也是越来越快其中: 1.求圆周率的方法: (1)蒙特卡罗法 这是基于“随机数”的算法,通过计算落在单位圆内的点与正方形内的比值来求圆周率PI. 如果一共投入 ...

  3. spring学习(二)---依赖注入

    spring第二个特性是依赖注入. 学习依赖注入,首先应该明白两个问题:1,谁依赖谁:2,谁注入,注入什么? 首先还是看代码: 还是这个bean: package testSpring.busines ...

  4. laravel 打印完整sql

    DB::connection()->enableQueryLog(); // 开启QueryLog \App\User::find(1); dump(DB::getQueryLog());

  5. DataTransfer对象的一些总结

    所有元素都支持防止目标事件,但是这些元素默认是不允许释放的,如果拖动元素经过不允许放置的元素无论用户如何操作,都不会触发drop事件,不过可以把任何元素变成有效的放置目标.方法是重写dropenter ...

  6. 【慕课网实战】八、以慕课网日志分析为例 进入大数据 Spark SQL 的世界

    用户行为日志:用户每次访问网站时所有的行为数据(访问.浏览.搜索.点击...)     用户行为轨迹.流量日志   日志数据内容: 1)访问的系统属性: 操作系统.浏览器等等 2)访问特征:点击的ur ...

  7. Exception in thread "main" java.lang.UnsupportedClassVersionError : unsupported major.minor version 52.0

    新建好springboot项目后,打开application运行main方法报如下错. 1.问题:Exception in thread "main" java.lang.Unsu ...

  8. noip第31课资料

  9. Node.js中实现套接字服务

    后端服务的一个重要的部分是通过套接字进行通信的能力. 套接字允许一个进程通过一个IP地址和端口与另一个进程通信 同一个服务器上的两个不同进程的进程间通信(IPC)或者访问一个完全不同 的服务器上运行的 ...

  10. Hbase的常见shell操作

    1.带namespace的:https://blog.csdn.net/opensure/article/details/46470969 2.http://www.cnblogs.com/xing9 ...