我于2007年来到北京,在北京工作这些年,先后在NEC、风行、百度几家公司担任软件工程师的职务。NEC是一家具有百年历史的传统日企,在知春路的分公司叫日电电子,我们部门主要从事机顶盒、数字电视上嵌入式软件的研发。风行是一家成立于2005年的在线视频公司,主要做P2P视频点播的业务,而我主要从事P2P后台服务器的开发。百度是一家在纳斯达克上市的互联网公司,我主要在客户端部门的百度影音项目组从事P2P后台服务器开发。
这些年,在这些不同类型的公司的工作经验,教会了我很多东西,技能上的,做人做事上的;也让我收获了很多东西,例如志同道合的朋友们。作为员工,作为用户,最近有冲动回顾过往,并总结分享一下自己的经历、教训,希望对自己,以及互联网这个围城内外的朋友们有所帮助。
NEC岁月
外界对日企有很多误会,其中最大一个,恐怕就是认为日企都很变态,疯狂的加班,低廉的工资等。也许是第一份工作,NEC给我的整体印象不是变态,而是是温馨。入职培训时,公司的技术总监这样对我们说:不论你们在那个行业,都要争做这个行业的Number One! 这句话,随时想到,都让我振奋不已。也许正是这样的勇气,才让NEC屹立百年不倒(虽然现在有些江河日下了)。入职培训时,还学习了很多社交礼仪,例如如何互换名片(把印有自己名字的名片,面向对方等),同期的学员,在当年合作了据称是有史以来最成功的春晚,而很多学员,以后的关系都还不错。
NEC的加班工资(晚上和周末加班都有法定工资)、弹性工作制(真正的弹性,早上8点到下午5点就可以下班)、出差补助(出差通常都会安排不错的酒店)、学习氛围浓厚(每周的日语课堂;每天中午15分钟的轮流演讲等)、每年一次的国内旅游(一般都有4个左右的目的地可供选择,2008年的旅游地是武夷山、庐山、苏杭等)、超多的假日(入职就有12天;法定节假日通常要多放一天假)、法定之外的个人保险办理,这些都很让人怀念。说起来,作为一家日企,还是非常人性化的。例如某个飘雪的冬天,公司为了照顾员工,特意允许下午4点全体职员下班回家。
都说大公司学做人。我在NEC学会的一个做人原则就是:不要不懂装懂,坦然承认自己不会的,然后努力去学习。不懂装懂的人不会在这个集体中得到尊重和认可。NEC的李San、凌San作为领导,对我这样初出校门、不谙世事的青年人提供了很多机会,他们的宽容让我至今难忘;而亦师亦友的刘San,是我所见过的真正的hacker,对技术的痴迷,给新手的帮助,以及天真的为人,让我钦佩又向往;才华横溢的小站、小张,作为同期学员,可是我心中追赶的目标和竞争对象;而老吕、华仔和我,则是最佳三人组,我们带头成立的饭团,当年就开风气之先,一时间部门饭团林立。
很多人都说NEC就像大学,但是大学就有毕业。很多人在学到差不多的时候,就选择了离开。因为作为一家日企分公司,业务严重依赖日方,而分配的业务,在我们一群年轻小伙看来,既没有挑战,也没有意义(没有用户)。没有激情,工资偏低,上升空间非常有限,这些恐怕是大家选择离开的主要原因。
风行岁月
在离开NEC之前,我、老吕、华仔三个曾想过做一个火车票订票系统。春运一票难求是众所皆知的问题,华仔用Perl写了个简单的爬虫,抓火车票网的倒票信息,很快就买到车票。以这个原型为起点,我们认为有大量用户,而定向抓取难度不大,因此开工。虽然这个计划,短期内就夭折了,原因很多,但给我印象深刻的是,在NEC,我是学习不到如何在互联网这个浪潮中,捞到属于自己的一桶金的。大多数离开NEC的人,都选择了如汤姆逊、T3G等同类型公司,而我,以及之后的华仔,都选择了互联网。
虽然还有其他选择,但到风行的理由很简单,风行所在的锦秋国际也在知春路上,离我住的地方很近。待遇虽然很一般,但毕竟让我迈入了互联网的大门。刚到风行时,风行的用户量是280万左右,离开时,有550万左右;离开半年后,用户量猛涨,有900万左右。作为一个软件工程师,维系一个百万人在线系统,还是颇有挑战的,尤其对我这样没有什么经验的人而言。
在风行的岁月,技能有了大幅度的上升,与此同时,兴趣也是多种多样。最有激情的时候,会在每天下班就打印一份技术文档,等公交车时,就在昏暗的灯光下学习,回家拔完饭就开始实践,从Linux系统/网络编程、到各种命令行工具、到网络协议研究、算法、开源项目,以及一些稀奇古怪乏人问津的东西(例如用LaTex写作文档、Metapost绘制矢量图、graphviz绘图)。计算机相关的书,不论温故知新的,如《Unix编程艺术》、《C++对象模型》,还是一见如故的,如《程序员的修炼之道》、《编程珠玑》、《Python源码剖析》、《卓有成效的程序员》、《敏捷软件开发》、《重构》,还是装饰书柜的,如《怎样解题》、《如何求解问题》等等,见一本买一本。多次搬家的痛苦,并没有消弱我购书与阅读的兴趣。
除了出自兴趣的自修,在工作上遇到的很多事情,例如流量异常分析、程序崩溃、用了很多时间才找到的bug、算法调优、运营学习、一时无法解决的问题等等,也都事无巨细的记录在案。再离开风行时,差不多积累了10万字左右的笔记。我记录笔记的方法,也比较原始,只用Vim+记事本,很少发到网上,因为是写给自己的,行文简单精炼,给其他人的话,就要修饰文辞、制作插图等,这是不同的价值。记笔记是个初级的习惯,只要强迫一段时间,就能让自己终身受益。我从风行记录到百度,经常都会翻出笔记,给同事发邮件,解释某个问题。
然而,兴趣驱动的学习,也是一把双刃剑,让你快乐,也让你痛苦。因为兴趣的泛滥(技术之外的诸多兴趣是技术兴趣本身的2倍以上),让我深陷困惑,不知道自己是否真的适合做技术;也正因为兴趣泛滥,所以真正精通,拿得出手的东西不多,或者说在任何一个领域,都不能做到Number One这样的自我期许。后来和公司的大Boss聊过我的困惑,但却终未释怀。此后不久,就离开风行,希望到一个更大的空间,看看这个世界。
当然,离开前,还是要浓墨重彩的说说我的那些朋友们。HZ是另一个亦师亦友的大拿,是他最先让我关注行业本身,而不是仅仅关注于技术。很多技术人员容易范的一个错,就是懂技术不懂行业。对行业的了解,意味着,要大量的使用这个行业已有的产品、了解他们的运行规律(例如Qvod的运作模式就明显和风行、PPS、奇艺、优酷不同),谁在用你的产品,怎么用的?以及非常重要的对统计数据的理解。另一个好友是HR,哦,HR不是Human Resources的缩写,而是他鼎鼎大名的缩写。说来HR大我有十来岁吧,虎背熊腰,中东*的造型。每次公司出游,我们都住一间房(呵呵,莫误会,是标准间双人床),找人玩杀人,以及天南海北的瞎扯。HR最让我受不了的是他的磨叽和拖拉,最让我受得了的是我调侃和嘲讽他时毫不介意的风范。YZ是我在风行最强有力的竞争对手,年龄相仿,到公司也是前后脚,虽然他做客户端我做服务器,但当时风行研发也就二三十号人,YZ对工作本身的专注与一丝不苟,相比我的随意和三心二意,就形成了鲜明的对比,再加上此人精力旺盛,战斗力强劲,又是数学出身,因此一直是我追赶的对象。此外,公司的两位大Boss,罗总和唐总也对我关照有加,偶尔的对话,总让我事后深思许久。
总的来说,在风行比在NEC有了更大的成长,教训也更多,大概有这几点吧:
* 解决产品线上的实际问题,比学习新技术更重要。
* 帮助别人解决问题,是提高能力的捷径。所谓专家,就是在一个有限的领域里,把所有的错误都犯过一次。
* 拓展兴趣,坚持学习。不要囿于技术一隅。和提高技术能力同等重要的是,深入学习、理解你所在的行业。技术是为市场服务的,理解产业链的上下游、公司的运营方式、产品的赢利模式。这些“功夫在诗外”的努力,都有助于推进项目、改善产品、提高技能。
* 无知并不可笑。无知但又不去学习才可笑。
* 但管努力,莫问前程。不要浪费时间怨天尤人,攀比工资高低,争论物价房价涨跌。相信功不唐捐。
百度岁月
相比NEC、风行,在百度时光短暂,因此技能和交际的提高都很有限。但从战斗力这个层面上说,却有相当的长进。百度的产品线生命期相当短,如果短期内没有成效,就有被砍掉的风险。用百度一个VP的话来讲,就是“只认功劳,不认苦劳”。很多产品线都加班到相当晚,像百度影音这个产品线,我们组内的成员,很多人到了晚上12点,还在讨论问题和解决方案,还在改进产品,而这些都是自发,没有硬性规定的行为。在风行,我有不少时间是在为公为私的学习,但在百度,几乎没有时间可以腾出手来学习。当然,也许是和百度客户端在公司的处境相关。
虽然说百度的项目非常紧张,但还是有大量高质量的培训课程、教材、技术文档可以学习。尤其刚毕业的学生,在这种高压的环境下,能够得以快速成长。内部的BIT培训、公司和部门的各种讲座,以及com平台的资料,都会让渴望知识的人欣喜若狂。新发布的产品线,用户数很快就会激增到几万,十几万,几十万,百万,千万这个量级,对于希望挑战自己的人,是个好平台。在这里,个人的成功是和团队的成功绑定在一起的,因此大家都非常努力的朝着一个目标工作,至少在我们产品线是这样。
在百度最有成就感的事,就是坐在屏幕前,运指如飞的用Vim模式的命令行,管道连接一堆命令,背后站一群人,看你怎么分析日志,抓出异常。追踪异常,就如同侦探破案一般,把现场还原出来,找出是自己的程序搞鬼,还是有恶意用户。让你吐血的经历,就是最宝贵的财富。因为RD、QA、PM都非常专业,所以可以学习到各种不同层面的知识,要加以应用也很简单,只要你为产品线献谋献策,并实现它,就可以了,有大量的用户,会成为你的试金石。
结语
在百度的最后一段时间,我想也许我准备好了,可以独立行事。离职后,和曾经视为竞争对手的YZ以及几个朋友,开发一款叫做“淘奇桌面”的软件,目的是做软件、文档类的搜索。做了些时候,感觉困难重重,履步维艰。失败并不可怖,真正强悍的人不是没有失败的人,而是快速从失败中成长的人。不过,谁负谁胜出天知晓,回到自我总结的话中,就是,但管努力,莫问前程,事在人为,功不唐捐。
年轻的却是一笔最好的财富,而多数时候,我们不知道如何运用这笔最宝贵的财富,将之挥霍一空了。所有平凡的日子加起来,就将汇集成了你的一生。如果不希望平淡的生活下去,就要更加努力的去拼搏。找到自己的偶像,追赶他,榜样的力量是无穷的;找到自己的竞争对手加朋友,与之一起战斗,你能走多远,在于你和谁一起同行。虽然现实残酷,时常迷茫,不知所措,但我总提醒自己,要乐观的生活,也许,机会就在眼前。
(转)我在北京工作这几年 – 一个软件工程师的反省的更多相关文章
-
一位工作8年的java软件工程师该如何发展
从08年到现在已工作8年多了,但是对职业生涯的规划还没有很清晰的定义,可能之前做的工作太杂太广,回想第一家公司从事了6年有得也有失,虽然涉及到开发.设计.管理等岗位,但从技术上总结并没有很擅长的技术, ...
-
在Excel里如何将多个工作簿合并到一个工作簿中
在Excel里如何将多个工作簿合并到一个工作簿中 当你必须将多个工作簿合并到一个工作簿时,你遇到过麻烦吗?最让人心烦的就是需要合并的工作簿里有很多张工作表.有人能推荐方法解决这个问题吗? 利用VBA ...
-
EXCEL 如何将多个工作表或工作簿合并到一个工作表
在使用Excel 时,我们经常需要将多个工作表或工作簿合并到一个工作表中,这样我们就能快速地对数据进行分析和统计.对于一般用户而言,除了复制每个工作表后再粘贴,没有其他什么方法了.如果只是合并少数几个 ...
-
学EE做硬件找工作不如学CS做软件,为什么会这样?
学EE做硬件找工作不如学CS做软件,为什么会这样? 电子工程(EE)就业最好的方向居然是转计算机,也许让有的人觉得很不公平,EE也是很重要的学科,我们学习也很努力,为什么就业会不如CS?也有的人好奇, ...
-
一个IC软件工程师的2017年终工作总结
相比2016年的波澜起伏,2017多了一份平静和清淡.不过,平静的生活下,总有一颗飞向远方的心. 在这一年将近结束的时候,总结一下自己的工作,生活和学习.也顺便展望一下未来的2018,看看有哪些 美好 ...
-
【Office】【Excel】将多个工作薄合为一个工作薄
前提:工作薄首行不能有合并的单元格 准备工作:将要合并的工作簿放在一个文件夹里面,文件夹中不能有乱七八糟的东西,只能有你要合并的工作薄 操作步骤:在此文件夹下创建Excel表格并打开,按下alt+F1 ...
-
北漂不易,逆风前行[给想在北京工作的java同学们诚恳的建议!]
作为一个北漂程序员(java开发),从业6年,北漂十一年,走了不少弯路,也曾孤独彷徨,楼主今天特地总结了一些经验,希望能给大家(准备做北漂 或 北漂的朋友们)一点启发.从生活.专业和薪水这2个方向来分 ...
-
linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
计算机如何工作 三个法宝:存储程序计算机.函数调用堆栈.中断机制. 堆栈 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 Esp 堆栈指针 (stack pointer) ...
-
合并多个工作薄workbooks到一个工作薄workbook
微软示例教程 微软示例教程 Sub MergeAllWorkbooks() Dim SummarySheet As Worksheet Dim FolderPath As String Dim NRo ...
随机推荐
-
Navicat for Oracle实现连接Oracle
不知道为什么,从一开始,我就不喜欢Oracle,名字好听,功能强大,但总感觉"高不可攀";或许是因为我觉得其他的数据库就可以解决数据问题,不太了解Oracle的优势:而且它长得也不 ...
-
Java学习笔记(十五)——javadoc学习笔记和可能的注意细节
[前面的话] 这次开发项目使用jenkins做持续集成,PMD检查代码,Junit做单元测试,还会自动发邮件通知编译情况,会将javadoc生成的文档自动发到一个专门的服务器上面,每个人都可以看,所以 ...
-
如何将下载好的jar包添加到maven本地仓库
1.首先在pom.xml中添加 <dependency> <groupId>org.springframework.security</groupId> ...
-
sgu To xor or not to xor
题意:从n个数中,选择一些数,使得异或最大. #include <cstdio> #include <cstring> #include <algorithm> # ...
-
Spring Tool Suit 在Eclipse上的安装
登录http://spring.io/tools/sts/all 下载所需的Spring Tool Suit安装包 我用的是springsource-tool-suite-3.6.1.RELEASE- ...
-
Chapter 1 First Sight——25
"They are… very nice-looking." I struggled with the conspicuous understatement. 他们都很好看,我与轻 ...
-
[mark] first shellcode
好久没写博客了,今天终于搞出了第一个shellcode,以此mark一下. #include "stdafx.h" #include <Windows.h> #incl ...
-
angularJS使用rootscope创建父域和子模态框通用的属性与函数
1. 在声明创建controller指明引用$rootscope reviewInterfaceDo.controller('reviewInterfaceDo', function($scope, ...
-
WPF xml配置文件里面的大于小于号转义
转义字符:<![CDATA[]]>,将要转义的字符放到中括号中,比如要转小于号:<,则换为<![CDATA[<]]> <?xml version=" ...
-
net-snmp 安装与trap调试
https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/