工作拾忆 & 一年C++经验小记

来源:互联网 发布:java复杂算法面试题 编辑:程序博客网 时间:2024/04/25 17:26

那天下车的时候下着雨,拖着一堆行李在车站旁路边屋檐下躲雨,啃着4块钱一个的黄玉米,看着陌生的珠海拱北街道心里冒出些许兴奋,带着一份义无返顾的憧憬似乎自己并没有背着10多万的债务。那天,是为了做一个更牛B的销售。那是2012年2月底,我已经忘了具体的日期。

2007年4月10日,十几个同校的同学早上4点多到深圳南头,一直等到6点多第一趟公交,司机直摇头看着我们提着一大堆蛇皮袋装行李上车,十几份行李把公交过道将近塞满。还好,沿着深南大道走不到十分钟就看见了写着中兴通讯的大楼。那时候很天真的以为,就要在这栋楼的某一层上班了,好有优越感。而实际上一直等到将近一年之后,为了应聘内部招聘的一个工程师助理的职位,才第一次上到那栋楼的26层,那是我第一次上到这么高的楼层,记得很清楚。实际工作的地方是那栋大楼的旁边一栋四层楼的生产部,职位是3G核心网设备整机调试员。就这样,开始了自己职业生涯,显然当时完全不理解“职业生涯”这几个字的含义。

2008年5月,工作太闲,一天真正工作时间大约三个小时,闲得蛋疼,虽然关于3G的东西还是学得很不错。说不错是在于:上班半年多后,当同时期进来有的同学还在纠结于核心网配置软件的某个地方怎么配置的时候,并非学通讯专业(大学是计算机维护专业)的我已经可以给新进的员工讲解3G通讯原理和信令流程(不过现在关于3G的东西也忘得差不多了)。但是自己觉得这样下去只是继续浪费青春,毫无积蓄的我还是毅然决然的裸辞了。于是,开始了销售生涯,当然还是不知道自己想要做什么,只是要找一种能让自己忙的工作,自己能接受更多更难的工作,承担更多的责任(唉,天生命苦)。而销售只不过是我的第一选择。

2011年4月,做了两年多的销售,业绩完成毫无压力,手上一大把客户,关系都很好,碰到几个需要公司没有的产品,机缘巧合接几单自己做,收入就比工资高出很多,当时飘飘然以为自己做业务已经如鱼得水,销售到手擒来,想着还继续给老板打工,还不如自己给自己打工。后来回想发现,此时,已经注定了一个悲剧的开始:做销售和管理公司是两种区别很大的工作。不到30万的资金,就要一步到位的开个有工厂的公司。是的,就是这么干的,从5月份开始找厂房,装修厂房,搬家,注册公司,买设备,调试设备....... 或许,能回忆起的,这段时间的美好的东西,就是为了省钱自己刷地板漆(400平米的工厂),边百度边接三相电,给工厂安装日光灯,给注塑机做水冷系统,虽然很脏很累,看着自己双手慢慢建立起来的公司,那种感觉非常的欣慰。失败的直接原因是缺少资金,当然还有更多其他原因,而更本质的因素是我过于乐观自信的性格和经验不足导致的考虑欠妥。产生严重的后果就是负债10多万(父母都是农民,开公司钱是自己的一点积蓄加上借几个朋友的),两个合作的伙伴也各有几万的负债,只能说他们也涉世不深,跟我一起搅了趟浑水。

2012年1月,一个人的春节,想着自己到底要去做什么,没想出个所以然。在网上发简历,销售又一次成为了第一选择。一次面试,第二天通知上班,2月初就确定了珠海某公司省区销售经理,先干着吧,就这么来到了珠海。后来回想,最主要的因素只不过是自己想换个城市生活。人总是很难意识到自己做决定当时的潜意识,而潜意识往往是决定我们选择的最重要因素。选择离不开潜意识。

2012年3月,对一天45个销售电话的要求极度反感,那种源于内心深处的反感。培训了两个星期的产品知识后开始打的电话,听着同事为了打满5分钟的有效电话而东拉西扯尴尬的扯话题开着不着边的玩笑直起鸡皮疙瘩......在我心中销售不是这样做的,我承认当时的自己已经无法再做这样的事,虽然之前开始做销售的时候打过电话,但是渐渐已经认识到这与自己个性不符,丢不掉做销售不该有的纯真,就算是做了两年多的销售也仍然无法改变。也许这正好认证了那句话:江山易改,本性难移。没办法改现状,只能选择离开,开始打电话第三天提出了辞职。

辞职之后拜访了一些同学。回了趟家扫墓,大学之后清明节就没呆在家里过。时隔8年,再次在清明节给祖宗们上香,以及面对亲戚们对创业失败和什么时候结婚之类的各种问题,心里感慨万千,千言万语却卡在喉咙。最后憋出一些不着边的话,打哈哈的过去了。在家呆了十几天,也呆不住了,赶快又出来了,还是珠海。


好了,扯了这么多背景简历,现在正题开始:

2012年4月,借用曾流行一时的某讯某体,我做了个非常艰难的决定:以28岁的高龄入行IT。之所以做出这样的决定,源于虽然是断断续续,但这是一个长期的幻景。不知道什么时候开始,我脑海里经常会浮现自己老了之后的场景:泡上一壶好茶,坐在电脑前写代码,开发自己感兴趣AI项目,乏了打打桌球(自封业余级专业选手,喜欢华丽的杆法,自己也能经常打出来,打黑8偶尔能一杆清),偶尔打打篮球锻炼一下身体(高中校队,大学系队,大学感觉学习才是重点,没报名校队),如果碰到相关天赋的小孩,就教教他们编程。。。我不知道为什么会是这样的场景,甚至做销售很好的时候,甚至是刚创业激情四射的时候也是如此。或许我这辈子就靠这个场景活着了。就当是因为大学时候学得比较好(大专,计算机维护专业,专业课基本为优以上,现在还保留着大学的成绩通知书,大二考了初级程序员证和C语言二级证)而念念不忘吧。

当然,为了跨入这个行业,参加了国内某培训机构四个月的全日制JAVA培训班。毕业这几年,虽然混得不怎么样,积蓄没有,外债10多万,但是人缘一直挺好。培训费刷信用卡,生活费靠转让公司设备剩下的可怜的几千块和兄弟姐妹的接济,欠朋友的钱也没有急着催还,培训的时间就这么撑过来了。


面试:

9月初培训完,第一次面试,JAVA开发职位,一个小公司,主要要求是能熟练使用hibernate。而我是第一次面试技术相关的职位,加上因为培训时间问题对JAVA三大框架的接触不到一个月时间,笔试完面试官直接拿着笔试题面试,面试官的技术问题比较深(strut2原理、存储过程等,相对而言)各种卡壳,好尴尬!最后自然是没戏,只能当是一次面试锻炼了,回去好好复习吧。

第二次,也是一个小公司,软件工程师职位,要求有一种上位机编程语言经验,面试的时候才知道他们的项目必须是用C++开发的,而我个人虽然培训了四个月的JAVA,但是还是比较希望从事C++开发。没有笔试,面试算是比较随意的,技术问题比较少,主要偏重于编程思想和方法上面的考查,其中一个主要问是:如果有一个视频项目要做,相应视频采集卡是别的厂商提供的,需要的是把图像显示在我们的上位机上(专用设备),应该如何去做?我的回答比较简单:视频采集卡厂商应该会有相应的接口说文档说明,只要看文档调用接口就行了,可能有必要进行相应的封装以便调用项目调用。这个问题我想只要是做C++的应该都知道怎么回答。后来才知道面试官(也就我现在的领导)属于项目经理的角色,且对编程的并不精通。技术问题还问了几个其他的小问题,有些能答,有些答不出来。因为有他们行业相关的工作经验(虽然是销售,但是我对产品及相关的技术很熟悉),面试官对我是比较满意的,当场就希望我能去上班,但是试用工资只能开到2500(经验、学历限制),两个月转正。我本来对试用期工资的要求是3000以上,但是因为我比较喜欢C++,而经济状况又不太好,同时也知道学了4个JAVA之后想找C++相关的工作是比较难,放弃JAVA工作也比较可惜,一时之间也难以抉择,所以答应的是一个星期内给答复。后来回去后自己仔细权衡之后,感觉C++对我诱惑还是相对大一些,所以第三天就答应了要去上班,也就是现在上班的公司了。


上班:

2012年9月20日,上班。正式成为一枚IT屌丝民工码农,值得纪念的一天,这将是我人生的转折点。

全公司就我一个人是专职做软件的,公司正在做的项目是一款医疗设备,而软件是专用在这款设备上的。软件最开始是请了外面的人兼职写,我进公司时他已经开始了半个多月了。第一个星期先熟悉,可能是第二个星期开始和他联系,并且拿到源码了,装了VS2008开发环境。因为种种原因,外请的人也是其他公司在上班,只是兼职在做这个事情而已。我第一次请教他问题,忘了是什么问题,他的回答是让我自己先百度搜搜,先熟悉一些VC开发的相关知识,另外项目用的是一个开源的界面库duilib,也让我自己先学习,后来基本不会再问他问题,因为基本上碰到的问题都可以在百度或者google找到解决的办法。

正式上班一个半月之内,上下班都自己看项目代码和熟悉业务处理逻辑,但是我还是没能在项目代码中添加什么东西,感觉还有好多东西要学,必须要学到一定程度之后才可以写。某一天,尝试着修改定义界面的xml文件,运行后界面竟然按照自己理解的意思改变了,真的改变了,那一刻有一种说不出的兴奋,后来一切就顺其自然的写下去了。后来想起来总会有一种幸福的酸楚涌上心头。当时软件能运行,但是还有很多问题,简版的软件离商用都还有一段距离,但是外请的人突然说他的工作太忙,没办法继续写下去了,无论如何都不继续写下去了,公司老板想尽了各种办法都说服不了他。于是,11月中左右,上班一个多月之后我被赶鸭子上架接手了整个项目,之后老板不放心给我外聘了一个老鸟(确实有很多编程经验,主要是类unix方面,当时他在做的是android的项目,后来聊天在搞跨平台的图形库之类的项目)业余时间给我辅导,再之后(2013年1月底左右)自告奋勇跟老板说那老鸟是个windows编程(项目基于X86平台)的菜鸟,实际编程帮不了多少忙,理论的网上大把资料,比他说得清楚。让我一个人搞吧,我能搞定!之后老鸟逐渐淡出......

2013年3月底,在解决了一个大BUG以及多次测试之后,第一个商用版终于发布了,十几万行的代码,除去开源的界面库、前面那人写的,自己大概写了大约五万行左右吧。整个项目也渐渐能把握住了。

2013年6月初,项目还在继续开发增加功能,忙不过来了,招了徒弟,学了一年JAVA,想混日子的小孩,半个月后把他赶走了。第一次fire让他碰上了,为了说出他不合适之类的话,那天整个下午我都忐忐忑忑坐立不安。。。

2013年9月初,炒了第二个。应届毕业生,有C/C++基础,数学也学得挺好。第一个月学习,duilib界面库原理、消息流程都解释了两遍,关键地方还一行一行代码的解释,基本上每天花1个小时培训他(哭哥全都是自学的)。第二个月,第一个星期,串口编程解释了一遍,让他自己继续看,过两天再问,他说看不懂。好吧,也许难度有点大,让他用线程做个简单独立的项目中已经实现了的例子,项目里有工作线程,可以拿来学习。。。但他偏自己去编译zthread库,还编译boost库,就算这样,要是能把例子做出来也行,但是两个星期例子也没做出来。让他写个文档,他竟然不会用word,用的是他自己搞的不知道什么编辑软件,最后写了乱七八糟的文档,错误百出。。。这样的大神供奉不起,只能在试用期最后让他走人。哥有压力,请谅解哥可怜。第二次fire,心情顺利很多。


关于C++学习:

有C语言基础,参加了4个月的JAVA培训,学习起C++来虽然说不至于很困难。但是半年内照葫芦画瓢的写代码是免不了的过程,在这个信息爆炸的时代,所有的学习windows编程的技巧都可以浓缩为一句话:善用google、度娘、msdn快速找到知识点,找到需要用的API以及正确的用法和可运行的DEMO,死缠烂打看懂它,然后,复制---粘贴---修改---测试---收工。面向对象,虽然说一个多月之后就靠自学独立使用C++开发项目,但是直到2012年6月,自己用API独立开发出完整的打印功能之后才真正的意义上理解什么叫面向对象。


关于项目:

9月底发布最后一个大版本,发布之后,历时一年的项目总算是要告一段落了。之后的项目是基于这个软件的终端做服务器的开发。


关于工作:

自从做了C++开发后,腰也不酸了,腿也不痛了,身体也比以前好多了。大哭。。。。 

为了能快速胜任工作,几乎天天加班到9点以后,周六在公司加班,周日自己学习,上班一个多月后身体状况直线下降,心火、肝火一起上,免疫力低到极点,感冒一不小心就来,多年没发作的皮肤过敏全面爆发,在那段时间的任何时刻在身体的多个地方都有红色的包包,越抓越痒越多包,而越痒越是想抓,吃药根本不管用。后来领导给买了个篮球,每周都有两三天下班后在公司楼下的烂篮球场一个人狂跑上篮跳投,爽爽的出一身臭汗,身体慢慢的恢复了。之后项目急加班多问题搞不定心急上火的时候也有过敏,都是靠运动而恢复的。在此告诫包括自己在内的码农们,特别是28岁以后的码农们:请记得运动,别因为免疫力的降低而搞垮自己,身体是一切的本钱,请珍惜生命,切记切记!

除了码农,同时还兼任公司网络管理员,电脑维修员,软件问题咨询师。。。。。


关于领导:

老板,有魅力、有魄力、意志坚定的男人。坚持投资经历了好几次失败的项目,终于今年逐渐进入市场。

直接领导做C出身,软件技术一般,后转管理。纯粹的技术宅,爱好广泛(电子科技相关),喜欢挑战,醉心研究新东西,个性鲜明,但是心地善良,体恤下属......虽然有时候命令不那么明确,虽然比我小3岁,但我服他。


关于生活:生活是首歌,而我老特么跑调。别人都喜欢稳定,哥却喜欢瞎折腾。可是,一天天的,生活中少了很多乐趣,也许是老了,也许是心太大,无法注意到生活的细节,跟着连生活的乐趣也没注意到,也许是我真的不懂生活。不懂。。。


关于女人:和在一起6年的女朋友分手之后到现在单身1年多了,不是除去巫山不是云,也不是没接触到女孩子,更不是要求太高......只是还不敢想。


关于未来:好好工作涨工资赚钱养活自己和还债是必须滴。AI也是必须的,发展的大方向,目前业余时间研究机器识别,处于入门阶段。


2013年9月20日,本IT民工屌丝码农一年受难纪念日。借CSDN,谨撰此草文以备已念之。



原创粉丝点击