Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=589282
q些日子我一直在写一个实时操作系l内核,已有成了,{写完我?x)全部公开Q希望能够ؓ(f)国内it的发展尽自己一份微薄的力量。最q看到很多学生朋友和我当q一h有方向 Q所以把我的l历写出来与大家共勉Q希望能l刚如行的朋友们一点点帮助。 一转眼我在it行业学习(fn)工作已经七年多了Q这期间我做q网,写过mis、数据库Q应用程序,做过通信软g、硬仉动、协议栈Q到现在做操作系l内核和ic相关开发,q中间走了很多弯路,也吃了不苦。
我上的是一个三的高校Q就q同一个城市的人多数都不知道。因为学校不好也没有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了,大一开学前的假期我开始了学习(fn)Q记得我买的W一本书是《计机基础dos3.0》,大家别吓着了,其实当时已经普及(qing)了dos6.22了,只是我在书店里看Cdos4.0Q?.0Q?.0的书Q以为像p那样是第四、五、六册,记得当时到处找dos1.0Q现在想想也q好我没有找刎ͼ(x)Q开学前我学完了pascalQ那时既没有计算Z没有人可以请教,我连E序是什么的概念都没有, 只好死记背代码Q然后拿U写Q我一直到大三才有了一?86Q在q之前用U写了多程序我也记不清楚了Q只知道最长的一个我拿a4大小的草E纸写了30多页Q我的c语言、c++ 、vc都是在这L(fng)条g下入门的。所以说条g是可以克服的Q希望我的经历多给条g艰苦的同学们一点信心。第一ơ上机是在我姐夫的机房,我的心情Ȁ动的无与伦比Q但是一上机我立d了眼Q他们用的是英文版的win3.1Q我的那点dos知识都见了鬼Q上机提心吊胆的一늞摸,一不小心把word弄成了全屏,怎么都还不了原,当时真是心急如焚,我以为机器被我弄坏了。第一个c语言E序Q就是那个经典的helloworldQ我调了几个星期Q上机机?x)非常少Q也没有书告诉我开发环境(tc2.0Q需要设|,而且开始我都不知道有编译器Q我甚至自作聪明把写好的E序扩展名从.cҎ(gu).exeQ结果可惌知。大一学完了c、x86的汇~、数据结构、c++。由于精力都花在自学上了Q大一下四门课挂了彩,三类学校是q点好,挂上一二十门也照样毕业。不q扯q点_(d)我那么刻苦都?qing)不了格Q可见我们国家的计算机教育有多死ѝ
大二准备学vc和bcQ当旉以取舍,后来选了vcQ不为别的,只ؓ(f)书店里两本书Qvc 那本便宜6块钱。我的努力在班上无h能及(qing)Q学的日夜不分,大三有了计算机后更是如此Q 很多ơ父亲半夜教训我说我不要命了Q我一直觉得自己基差,记忆又不行,条g也不好 Q所以觉得只有多q旉才能赶上别h。居然后来有许多朋友说我有学计算机的天赋Q 让我哭笑不得。我用的?86Q?6m内存Q?g盘Q当时同学们的配|都是p166mmxQ我安装 一个windows nt4.0需要一个通宵Q编译一个bc5.0向导生成的程序需要近两个时Q我的显C器是个二手的,辐射非常大,开机屏q冒火花Q看h很酷的:(x)Q,有一ơ程序写的太久,觉得怎么白色的编辑器背景变成了Ԍ以ؓ(f)昄器坏了,后来才发现眼睛不行了Q不q说来也奇怪,C天我的视力还能保?.5Q真是个奇迹。但是就是那台破机器陪伴了我两年Q让我学?x)了vc、delphi、sqlserver{。后来那台机器给我阿姨打字用Q据她说一天她正打的开心,一股青烟夹着火苗从显C器d来,之后它才寿终正寝。
大三假期找了个机?x)在一个计机研究所实习(fn)Q与其说实习(fn)不如说是做义工,工作了两个月一分钱没有ѝ但是这两个月对我的发展帮助很大Q让我早一步了解了C会(x)Q刚ȝ时候我当然是一H不通,在那里我熟?zhn)了网l,学会(x)了delphi和oracle。由于工作很认真Q 得到了比较好的评P在一位长者的引荐下,我开始和他们一起做目Q这使我在大三大四就有了自己的收入,大四又找了两家mis公司DQ虽焉不多Q但是在学生期间?000多的收入我已l非常满了Q我l于用自p的钱把计机换了。大四下开始找工作Q这时我的工作经验已l比较多Q当然现在想想非常幼E)Q开始听父母的想去那个研I所Q 实习(fn)q那个部门也希望我能去,但是不知道ؓ(f)什么最后不了了之,q种单位是比较官僚 Q我一气之下就C我兼职的一个公司做mis的teamleader。在大三到毕业一q的旉Q做q了各种misQ从煤气、烟厂、、铁路、饮食到高校Q什么有钱做什么,工作也很辛苦 Q经常加班和熬通宵Q从跟客戯需求到设计、编码、测试、交付都要上。那时觉得很有成感Q觉得自p不错Q现在想想真是很肤浅。
刚走上工作岗位的学生很容易被误导Q各U开发工兯人眼q乱,同时也觉得很受 公司器重Q但q样工作永远是一个低层次的开发者。不要跟我说什么系l分析有多么多么重要Q多么多么难。你以ؓ(f)自己跟用戯需求做设计是pȝ分析和设计了吗,国内又有几个公司能够做的很到位很规范Q我是iso9000内审员,也在rational公司受过多次培训Q拿?个证书,q有一个公司让我去做cmm。这些我听过很多Q但是很多事情到国内变了性质Q一个公怸是通过了iso9000或者cmmp规范了,我现在在一家有几十q历史的外企工作Q里面的理不是一般国内企业能?qing)的。作Z个毕业不久以前没有步入过C会(x)的学生,几乎不可能在很短的时间掌握系l分析和设计Q面向对象、uml只是一个工P关键是h本n的思想Q不是说你熟(zhn)了c++、rosep够做出好的设计,相反如果你具备了很高的素质,你可以用c写出比别人用c++更加模块化的E序。
话说q一些,国内软g开发行业有一个怪圈Q很多h觉得vc > delphi > vbQ真是很搞笑。这几个软g我都做过开发,说白了他们都是工P应该Ҏ(gu)应用的需要选择采用哪个Q而不是觉得哪个上层次。如果你因ؓ(f)用某个开发工具很有面子而选择的话Q只能说明你很浅薄。如果说层次Q那么这些工具都不上层次Q因为它们用来用去都是一些系l的apiQ微软的朋友不会(x)因ؓ(f)你记住他们多个api或者多个cd?x)觉得你很了不vQ你永远只是他们的客P他们看重的是你口袋里的银子。我也做q系l内核,我也装q很多apiQ同h也不?x)看重那些用这些api做二ơ开发的客户Q除非他能够作出自己独到的设计?/P>
至于有h认ؓ(f)c++ > c那更是让人笑掉大牙,不妨你去打听一下,现在有几个操作系l内核是用c++写的Q又有几个实时系l用的是c++Q当然我也不是说c++不好Q但是目前的内核和实时系l中c++q无法与cҎ(gu)Q至于说c++适合做应用系l的开发那是另外一回事。所以我的观Ҏ(gu)不在于你用什么工具和语言Q而在于你q什么工作。你的设计体C你的技术层ơ。
q样q了一q我觉得非常苦闷Q做的大多数都是熟练工种的活Q个人技术上没有太多 的提高也看不到方向。所以决定离开q个城市MPL更好的发展,q且打算攑ּ我以前的mis转到通信行业。
写到q里不能不提到我x友,我们是在来上前半年认识的,她大四在我公司实?fn),公司z֥l我写文,我们的感情发展的很快。她告诉我很多事情,她家原本是改革开攄W一Ҏ(gu)发户Q她母亲爱打牌,输掉了几百万Q还?gu)Ơ了很多债,Ҏ(gu)h友,但是她对他没有感情,只因Zl了Ҏ(gu)亲两万多块钱Q后来还她写了四万块的借条Q她h友背叛过她ƈ且不止一ơ打她,现在逼她l婚不然p她还钱。这人居然还是一个高校的老师Q她母亲把父亲给她的学费׃Q因为拖Ơ学费她没有办法拿到毕业证。她母亲现在有病需要钱Q我拿出了自q一点积蓄ƈ且跟朋友们接了一些,替她交了学费q给Ҏ(gu)亲看 病(后来才知道看病的钱又不知所l,pҎ(gu)亲是不是有病我都不知道,但她也是没有办法Q。这个时候我家知道了一些事情,坚决反对我和她在一P她原来的h友也极力破坏。无奈之下我们决定早一定离开q个伤心的城市,q且瞒着我们家。由于时间仓促,我只准备?000块钱Q她仅有的几癑֝׃被她母亲要去了,我买了三张票Q一张是中午的,两张是晚上的Q中午我的家人把我送上船,他们一d我就下了船,我和她乘坐晚上的船离开了这个我和她生活了很多年的城市,带走的只是一w债务。没有来q上L(fng)我们两个性倔强Q都不愿意去ȝ同学和朋友。来Ch傍晚6点半Q我们都不知道该d里,我们找了一?0块钱的旅馆,q个戉Kq窗户都没有Q?月䆾的天气酷热难耐,戉K里非帔R热。第二天我们开始租房子Q因n上的׃多,我们基本都是步行Q花了一个星期时_(d)不知道在东转了多少圈后扑ֈ了一?00块的房子Q但是我们都不了解上h付三压一Q还要付半个月的中介费,C一些锅瓢盆后Q我们n上只?00块钱了,工作都还没有着落,q?00块钱要支持到我们拿到W一个月工资Qؓ(f)了省钱我们自己做饭,每天买菜只花两块钱,奚w常喜Ƣ吃Q也可能她在大学l常挨饿的愿意)Q看到她现在q样省吃俭用我真的很不忍心。她以前的男朋友也没有放q她Q经常打?sh)话来?d)扎ͼq且来上L(fng)她,q说了不恐吓她的话Q她q于善良Q说他以前毕竟帮助过她,叫我不要与他一般见识。以后的每天在家是苦等面试通知Q原本我惌速找一家mis公司解决眼前的困难,但是她坚持让我不要放弃自q理想Q终于功夫不负有心hQ我扑ֈ了一安信公司Q?000块的工资虽然赶不上mis公司l我开出的价位Q但也够在上L(fng)存。她也找C工作Q第一天上班她哭了Q这是她来上L(fng)一ơ流泪,我心里很隑֏也很感动?/P>
׃是全新的行业Q我把自己降C零点Q我学的vc、delphi、数据库z不上用场, 摆在我面前的是嵌入式、协议、信令一些我从未接触q的知识。我知道我没有退路,于是拼命的学?fn),我把自己当做一个应届毕业生一P一分努力一分收P半年q去我终于熟(zhn)了工作Qƈ且得C公司的表彎ͼ薪水也加了一U。后面的日子里我们省吃P用,把欠朋友?万多块钱q了Q日子终于上了正轨。这时女朋友告诉我她惌研I生Q我也很支持Q于是她辞职在家备考。
另外Q在q里我要感谢我的projectmanagerQ他原来是一个大通信公司的品经理, 对h非常和善Q我从他那里学到了很多知识,而且他也l了我许许多多无U的帮助。在工作上他l我充分的空间和信Q。记得公司安排我l护一个接入服务器软gQ由于代码量不算太小Q?万行Q,资料和文都不齐全,我维护v来非常吃力,所以想重新把它做一遍, 公司领导不太支持Q可能觉得工作量太大Q但是他极力支持我,U下里他让我放手dQ 我的l护工作他挤旉做。在他的支持下,我花了半q时间完成了接入服务器的软gQƈ且实C一个相对完整的tcp/ip协议栈。在q里我学?x)了嵌入式系l设计、驱动开发、tcp/ip和很多通信的知识,我花了一q时间终于自己从mis开发{C通信行业Qƈ且站E了脚跟。我的开发大量是对硬件的直接操作Q不再受微Y的操作系l,vc、delhpiq些开发工L(fng)U束Q我l于看到了另外一片天I。
我做事情喜欢q根问底Q随着开发的深入QY件开发与g联系来紧密,g知 识的匮乏又对我的发展产生了障,而且芯片技术基本上掌握在国外公司的手里Q这对做pȝU设计是一个非常大的制U,一个新产品出来Q第一道利润(也往往是最丰厚的利润)常常都被ic公司如intel、motorola赚去了,国内的厂商只能喝Ҏ(gu)。所以我军_解决自己的硬件技术障,q打离开通信行业Q进入ic设计相关领域。
当然我明白如果我对硬件了解的非常,没有哪家ic公司?x)仁慈到招我q样一个一H不通的人来培训。所以我必须努力打好基础Q学一些相关知识ؓ(f)以后做准备。就像我开始从mis转到通信一P我看q大量通信斚w的书Qƈ且给一个isp做过radius计费分拣収ͼ在这L(fng)背景下这安信公司才给了我q个Z(x)。我在的通信公司是做pȝ设计的,有不pcb layoutg人员Q^常我注意向他们学习(fn)Q由于我做的是YӞ在公司看g资料不好意思,所以开始只好在家看Q刚来上工作我q箋一q都在加班,后来不加了,因ؓ(f)我要挤出旉学习(fn)Q通常?2点左右睡Q第二天5点半P我上班比较早Q地铁上如果Z多我也用来看书。学?fn)当然不会(x)是一帆风的Q有些实在不懂的问题q累v来问g人员Q他们的帮助使我学习(fn)q度快了很多Q因为在没有人点拨的情况下自学,我的一半时间是花在解决疑难问题上,但这U问题经常是别h的一句话可以让我豁然开朗,我非常庆q我有这L(fng)学习(fn)环境。在后面的一q里Q我学会(x)了看g原理图,学会(x)了简单的g设计Q模拟电(sh)路方面还有不的差距Q,事情是q样的,当你安安份䆾做YӞ别h永远认ؓ(f)你是软g开发h员,在你开始学?fn)硬件时别h未必?x)认同,有位中兴通讯的朋友还Ҏ(gu)说过Q一个h不可能把所有东襉K学完。我也明白这一点,但我希望自己做的更好。但当你熟?zhn)g后大家又?x)觉得你好像原本是软硬仉懂的Q同事们也都?fn)以为常了。这个时候我可以把硬件资料堂堂正正的拿到公司看,没有人再大惊怪了。 让我比较自豪的是我通过自己的努力做了一个iadQY交换的终端设备)pȝҎ(gu)Q包含Yg的选型、设计等内容Q这个方案得C公司和同事们的认同,让我感到非常ƣ慰。
技术是相辅相成的,当我的硬件有了一定的q步后,我的软g设计也有了很大的提高 Q我可以从更深层ơ理解问题,我做的接入服务器cpu是motorola powerpc860Q熟(zhn)的朋友都知?60 qmc与Y件的扚w数据传输通常采用bd表的方式Q硬件h员做驱动的时候习(fn)惯采用固定bd表,每接收或发送数据都数据从bd表拷贝到用户bufferQ或从用户buffer拯到bd表,׃理解的比较深入,我自己重新实Cq个q程Q采用动态bd表的方式Q驱动从一个网口接收数据,提交l我的Y件进行三层交换,直至从另外的接口发送出去,没有q行一ơ拷贝。这L(fng)设计大大提高了性能Qɾpȝ的指标接q理论倹{Yg的结合我的设计水^上了一个台阶。我现在写的q个操作pȝQ编译后我把E序反编译成汇编Q找出其中不优化的代码,然后在cE序中进行调整。D个例子,很多cpu没有专门的乘法指令,q个大家应该都知道,在这Ucpu上进行一个乘法操作常怼(x)p大量的指令周期, 有的朋友?x)说q个我知道,我会(x)量避免采用×P但是事情往往不是那么单,你知道
c语言中数l的下标操作是怎么实现的吗Q仔l看看反汇编的代码你׃(x)明白Q同h通过下标的定位操作,c~译器会(x)有时候会(x)产生位移指o(h)Q但有时候会(x)用乘法实玎ͼ两者效率往往是天壤之别,所以明白这些问题你才能系l性能提升到极致?
些问题就不多说了Q有兴趣的话以后可以共同探讨。
话说q一点,我由L(fng)希望在Y件上做的比较深入的朋友们有机?x)学学硬件以及(qing)其它 相关知识Q尤其是做底层开发和嵌入式设计的。这对Y件技术的提高有非常大的帮助,否则很多事情你只知道该这样但不会(x)明白Z么该q样。我q个观点在我现在的ic公司project manager那里也得C验证。他告诉我们公司现在?02.11芯片产品的Y件经理原本是做该芯片g设计的,某某某原本是做Y件的Q现在在做icQ类似的例子q有很多Q只是在国内q样的风气不是非常流行。
我有一些心得体?x)与大家分nQ只有当我干好本职工作后Q我才会(x)学习(fn)与工作关pM大的技术,q样公司的上司才不至于反感,在入门阶D늚问题我通常不去问那些资׃h士 Q而是问一些资历比较浅的朋友,比如刚毕业不久的学生Q因Z们往往?x)跟你详l的讲解Q而资׃h士通常觉得你的问题太简单,所以回{的也很单,我又不好意思多问。等技术上了一定的层次后我才会(x)问他们,他们也能l你比较深入的回{。另外,有些朋友说我Z(x)比较好,他们也希望能从事新的工作可惜没有Z(x)Q我听了只有苦笑Q我的机?x)了解的人都应该知道Q我没有出生在什么it世家Q)也没有谁一路提拔我Q所有的路都是自p出来的,我母亲去世比较早Q我的后母(我叫奚w姨)看着我努力过来的Q一ơ她看我大年30q在写程序,她说像我q样努力木头都能学出来。
我的最l目的是ic而不是pcbQ所以我下一步的准备开始学?fn)ic设计的知识。公司的同事没有懂ic设计的,后面的\又要靠自׃Q我C不少相关的书Q在|上也查了很多的资料Q我׃大量的时间去学习(fn)vhdlQƈ且用软gq行了一些简单的设计和仿真(没有设计asicQ只是针对fpgaQ,随着学习(fn)的深入,我渐渐明白了ic设计的基本流E,同时也明白了q条路的艰辛。这个时候我已经做好了蟩槽的准备Q我向一家业界又一定知名度的ic设计公司投了历,q过了O长的面试Q?个多时Q。其他的一切我都比较满意,唯独薪资差强人意Q我也明白原因,因ؓ(f)我是q个行业的新人,我没有经验,我再一ơ将自己清零了。公司老板问我6000多一个月能不能接受,我知道他也是照章办事。想x通信行业的朋友们Q基本上都是q薪10万以上,月薪q万的也比比皆是Q朋友们也帮我介l了不少待遇不错的公司,我该怎么选择Q当时我很犹豫,我热爱我的事业,我向往我的q求Q 但我也是一个普通的人,我也需要养家糊口,我也x一点买房买车。生zȝ我出了一道难题。
爱因斯坦?3岁时说过"一个h没有?0岁以前达成科学上的最大成,那他永远都不?x)有?q句话给了我很大的压力和震动Q我马上?6岁了Q离30只有四年旉Q我必须抓紧q几q宝늚旉Q努力达到我技术上的最高峰。ؓ(f)了这个理惻IZ能离自己的梦更近一些,我选择了这家ic公司Q我明白自己的薪资和公司刚进来的士研究生相差无几, 但ؓ(f)了今后的发展只能忍受Q一切又得重新开始。换行业是一个非常痛苦的q程Q尤其从一个春风得意的位置换到一个陌生的岗位Q感觉象从温暖的被子里钻出来跌冰水中,让h难以接受。在原来那家通信公司Q我是唯一两年旉涨了五次工资的员工,公司和同事都l了我极大的认可Q工作上也常常被委以重Q。但现在q一切都成了q去Q在新的公司我只是一个新?没有人知道也没有人在意我q去的成l。我军_重新开始,我把自己看作新毕业的学生Q我要用自己的努力得到公司的认可。进入新的行业是非常痛苦的,我告诉自己必d受这一切,虽然外面有很多诱惑,但是既然作出了选择我就不允许自p易放弃。
我现在已l在q家新公怸了一个多月的班,开始非常艰难,现在慢慢适应了。第一 个月l束Ӟteam leader找我谈话Q说我是新进员工中最优秀的一个,我心里很ƣ慰Q这也算Ҏ(gu)努力的一个肯定吧。在q里q要感谢我的x友,她给了我很大的支持和鼓舞Q 每次在我动摇的时候她都在鼓励我,让我坚持自己的理惻I刚来上v是她让我不要勉强dmisQ这ơ也是她让我住了月薪过万的诱惑Q没有她我可能不?x)有今天的成l。 现在的公司有自己的操作系l,自己的cpu、dsp和其它芯片,在这里我能学C界上最先进的技术,我们的设计开发不再完全依赖别人的g和系l,q让我很开心。我打算{工作步入正轨后Q全力学?fn)新的知识,实现我的理想。
在后面的两年里我l自己定下了几个目标Q
一.努力做好本职工作Q在工作上得到公司和同事们的认同Q
?努力学习(fn)icg设计知识Q多向同事请教,q利用一切机?x)多实践Q
?实现我的实时操作pȝ的主要部分,完成tcp/ip协议栈模块,q免费发布源代码Q
?和我x友结婚ƈC套小房子Q这是最重要的,因ؓ(f)我明白事业是可以重来的,但是珍贵的感情很隑֤而复得。
在这里提一下我现在开发的操作pȝQ它是一个实时嵌入式pȝQ目前支持以下特性:(x)
a.支持旉片轮转调度和Z优先U调度,最?4个优先Q
b.抢占式实时内核;
c.Z便于ULQ主体用标准c实现Q
d.汇编代码非常,不到100行;
e.支持d理Q各d有独立的堆栈Q
f.q程同步和通信目前完成了semaphoreQmessage queue正在调试Q
g.实现了定时系l调用;
h.可以在windows上仿真调试
我还打算下一步实C先反{保护Qevent flagQdata pipeQ内存管理(以前实现q)、驱动接口等。 在这之后我还?x)努力完善它Q比如加入文件系l,协议栈、调试接口等。希望朋友们提出自己的意见和Q在此不胜感ȀQ
后记Q
像有的朋友说的Q我的经历或怼(x)l一些朋友生误|在这里我必须说明一下。 我来上v以前学习(fn)q于拼命Q常常晚上只?个多时Q我w高1c?1Q那时只?08斤(我现?30多)Q家Z说我q样拼命zMq?0岁,但是当时的我太固执,我对他们说只要能实现理想z?0岁我够了。那时的拼命使我的n体受C影响Q有一ơ早上突然腰肌剧痛难忍,痛的我倒在床上站不h。虽然我现在已经比较注意Q但有时候还?x)隐隐作痛。后来在x友说服了我,来上以后我不再如此。我l常引用父亲的一句话"w体是革命的本钱"。
而且我也发现拼命不是办法Q我可以熬一两个通宵Q最多的一ơ我q箋工作了三天三夜, 但是我半个月都没有恢复过来,q样是不是得不偿失?学习(fn)工作应该是一个长期的q程Q 像马拉松而不是百c_刺。我现在非常注意调整学习(fn)和工作的强度Q我要保证每天尽量有相对充沛的精力,一些年ȝ朋友觉得自己也应该拼命努力,q让我多有些担心,如果我的故事能让你在学习(fn)工作上多一点兴,我会(x)感到很开心,但如果误g某些朋友Q让你做一些不值得的付出,我会(x)感到很内疚。
技术没有贵׃分,我以前换行业是因q兴趣所_(d)而不是对哪个行业有什么偏见。我希望我的l历不要l朋友一个错误的导向Q觉得我始终向更高的技术发展。其实各行各业做到顶都是很困难的。话又说回来虽然技术没有贵贱,但是门槛是有高低的, 无论如何Q做ic的门槛要比做|页的高Q这一Ҏ(gu)可否认。国家各Uh才都是需要的Q但是作Z人奋发向上的xq是应该有的Q努力在自己喜欢的行业上做的更好Q而不应该停留在比较肤的层次上。
我是一个自p得比较有自知之明的hQ或许我最大的优点是知道自己有很多缺炏VQ)。我的故事中很多的曲折和错误都是由我的缺炚w成的,希望大家用审慎的眼光看待我的l历Q不要被我的"p巧语"所qh。我学习(fn)有些随心所Ԍq给我带来了无尽的麻烦,也大大阻的我的发展。记得我时候成l比较出Ԍ但是后来学习(fn)严重偏科Q导致我中学成W一再滑坡,也没有考上什么好的学校,时候的一个朋友,当时的成l和我相仿,但是没有我这个缺点,她上了清华,后来在去了美国深造,在一个著名导师手下研I理论科学,q未不是一条更好的\。另外我的学?fn)方法也是在不断改善中的Q过厅R的学?fn)过于讲I数量和旉Q那样学?fn)既苦而已效率不高Q现在我非常注意学习(fn)的效率和技巧,q样才是学习(fn)的捷径(当然不是指投机取巧)Q比如说学一相对陌生的技术,如果有条Ӟ不妨问一问有l验的hQ不需要问很多Q往往他不l意的几句话?x)给你非常大的帮助,甚至过你看一个星期的书。带着q样的思想再去学习(fn)你会(x)节省很多旉Q这样何乐不为呢Q这些年中我学了不少的东西,׃开始非常盲目,所以学的东西杂乱无章,现在回想h让我啼笑皆非Q我把大量的旉费在一些没有必要深入了解的知识上,毕竟一个h的精力是有限度的。很多朋友很我一样都背过五笔字ŞQ的它是个不错的输入法Q但是对一个研发h员它l对不值得你去背,你的旉应该花在有h(hun)值的地方。我q样的事情还做过很多Q我背过cced、wps的命令和快捷键,在dbase基本退出历史舞台后我还׃很多旉d?fn)它的用。所以我的学?fn)在前期~Z规划Q没有明的短期目的、中期目标,只有一个虚无飘渺的长期的理惟뀂这像做设计一P好的设计是从需求抽象到代码有很多过E,而不能得C需求就立刻开始开始编码。
当然q么些年的学?fn)和工作多多少有些收获Q下面我说说我的一些学?fn)的心得Q这 些方法未必正,我也在不断探索和改进中。我的学?fn)和工作有相?gu)的目标Q我不会(x)一时心动而去学习(fn)某一技术,在下军_之前我会(x)考虑很多Q包括长期的发展Q个\U的规划Q需要付出的代h(hun)、可能遇到的困难?qing)解决的办法{等Q在军_后还?x)制定更加明的计划Q包括短期、中期和长期的,w边可以利用到的资源Q包括好的书c、资料、Yg环境Q也包括有经验的朋友或者师长)Q以?qing)每一个阶D|怎么q渡到高一阶段的计划,往往在一个学?fn)阶D一旦上路后?x)走的相寚w利,但是跨阶D通常比较ȝQ比如从学习(fn)基础知识转到实践。另外我C也有自己的方法,现在世面上高质量的书q不如低质量书多Q对于一个陌生的技术,往往在第一ơ买书会(x)选择错误Q即使买C本好书但是它的方向也未必适合你,所以我通常?x)先在网上查找一些该技术的介绍Q有了一点点概念后再M一本比较薄、相对便宜ƈ且内容相Ҏ(gu)泛而谈的书Q这是国内作者最善于写的书:(x)Q Q再把它览一遍后我就?x)基本明白这门技术的要点Q后面买书和制定计划׃(x)明确的多。否则一开始就x本好书往往比较困难Q而且买回来后努力学习(fn)Q有时候学了一半才发现是本低质量的书或者是相对q时技术,让h非常懊恼。另外让有经验的人帮你介l,通常也是一个不错的选择。
有些朋友惛_通信、嵌入式开发,但总觉得自己没有Yg环境Q我按我的了解l 大家介绍一下怎么建立q样的环境,当然我了解的只是我学?fn)和工作的方向。通信我做的是数据|方面的工作Q包括tcp/ip、二三层交换、对接入|、h.323和Y交换也有一点认识。这些Yg环境都是可以在pc上构建的。你甚至可以在一个没有网卡的pc上徏立一个包含多个\由器、接入服务器、voip|关、网守、主机等的仿真网l环境,而且与实际的|络相当接近Q当然这需要你有清晰的|络概念和一定的|络知识Q我一直在努力开发一套Y件将q个q程化,目前试验已经做完Q我可能?x)将它融入我的操作系l外围扩展Y件中。这L(fng)Ҏ(gu)我无法用单的语句讲的很清楚,我可以说一下大概的思想Q就是在pc上实C真网卡,Q知道windows怎么在没有网卡的机器实现虚拟|卡技术的朋友都应该会(x)明白Q,然后每一个仿真网卡对应一个虚拟设备,如\由器或者主机。你也可以借助W三方工具完成部分工作,如vmware{。我现在是利用一个仿真网卡做自己的开发的。
至于嵌入式开发环境更加容易实玎ͼpc是一个非常大的硬件^収ͼ现有的嵌入式操 作系l通常都支持x86Q你可以在上面做开发,通过软盘boot或者用虚拟机装蝲Q我用vxworks做了试验Q在一台pc上跑windows和vxworks两个pȝ。另外windows上的兼容dos?6位仿真x86环境也ؓ(f)很多操作pȝ提供了绝佳的试验环境Q我的操作系l在windows上就是这样实现的。linux在嵌入式中应用也比较q泛Q它在网上有大量的资料,而且也相Ҏ(gu)较容易实c同时很多完善的嵌入式开发环境支持Y件仿真,如tornado、wince{?/P>
q社?x)是现实的,发展的。十多年前,E序员是个真正的有门槛的行业。因为那时候没那么多漂亮的开发工P没有高语言的支持,甚至q面向对象的开发思想都还仅仅是萌芽,更不用说什么质量控制体pR那时候要掌握开发技术远比其他行业的技术困隑־多,只有数_英才能做到Q而且q需要有qh的智力、耐心与毅力。要付出很多很多。这些“精英”,自然也能得到C会(x)_的尊重。而现在,在前辈的辛苦耕耘下Q进入这个行业几乎已l没有了门槛。当你怀着对前得的财富、荣誉和使命感走上程序员q条路的时候,可能你根本就不知道等待自q是什么……其实,而今在自己公怸群E序员里“冒充”某某方面专家的时候,很多人却不知道甚x本无法想像,在不很久q的q去Q自己或许只能选择中途放弃?/P>
虽然不是每个人都q样Q但是我q是要说Q有人根本没毅力Q他们只惌L杄赚钱Q却从来不想承担自己该承担的责QQ有人根本没创造性,他唯一?x)作的就是把别h的代码抓来抄袭一下;有h始终自以为是Q代码能~译通过和运行了p得可以OK完工了;有h的设计和代码p糕冗余Q可被其他h_2-3倍长Q性能也可优化数十倍;有h技术视野狭隘,搞C++的就觉得Java是个Sun的新式玩P搞Java鄙夷C++为洪水猛兽和怪物Q更有hq把用别人发现的漏洞、别人开发的工具去黑黑别人的?sh)脑当做自己已经是牛人和所谓的“黑客”。这些“程序员”真的能程序员么?如果q也程序员Q我认ؓ(f)他们也只是现在这个时代最q_的一程序员而已…?BR>
其实M行业、Q何职业都?x)面临这h那样的机遇,L不知道的困难、烦恼在前面{着你。大家M慕的只是成功时的鲜花和啤酒,又有几个人真正去慕成功背后的艰辛和苦楚呢?作销售好Q作理好,作老板好,作XX好……这L(fng)似的话我听得都厌烦了。要我说Q作自己最好?/P>
在这C会(x)上,我们或许?fn)惯了用C会(x)的、他人的标准去衡量、去比较Q比如什么女朋友好不好、老婆好不好、工作好不好、老板好不好之cȝ。诚ӞZ能脱ȝ实、脱ȝ?x),人需要生存。但今天C会(x)l我们所提供的机?x),已经比我们的父辈开阔了许多许多。我不认Z个有才能、肯吃苦的h?x)失去谋生的Z(x)Q或者说?x)生存得比我们的父辈q要艰辛Q我们还有什么可抱怨的Q也许我们没有搭上某快速致富的列RQ也许我们看到其他搭上列车的人的成功心理难以qQ但是不是说我们因此无法自信的在朋友面前抬起头Q无法博得一份属于自q爱情Q无法获得其他h的尊重,无法M一份有意义的工作,无法享受一份美好的生活呢?
其实Q没剥夺别h的快乐,没h能ȝZ条适用于所有h的所谓“成功”标准,没h能鱼和熊掌兼得。有些h茫然的来Q如同另外一些h茫然的走Q没有带来什么,更没有留下什么,q就是而今大多数Qw的E序员的道\。或许,我们的国家现在还没有国那样重视知识、重视科学、重视创斎ͼ然而除非你自己拒绝所有的Z(x)Q不然社?x)也同样不?x)让有开发知识、有创新能力的h都被逼得当街卖烧烤?/P>
不懂得珍惜现在的人,永远不可能把握未来……没有好的心态,已l先p|了一半。作什么其实不重要Q然而智慧的人知道怎么t踏实实的去走脚下的路,q_的h却只知道慕和抱怨,从来不留意脚下的路?/P>
最后用一句话来ȝQ程序员不是,心态决定一切,成功在你脚下?/P>