PD虚拟机     VPS     Win11     微软     苹果     SetApp     Office     精选

编程之路┊一个程序员走过的路

 编程开发   2006-03-21
88 下载

如果对自身的发展迷茫 可以看看这篇文章 这里真实地记载了一个程序员走过的路

这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。

一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做操作系统内核和IC相关开发,这中间走了很多弯路,也吃了不少苦。

我上的是一个三流的高校,就连同一个城市的人多数都不知道。因为学校不好也就没有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了,大一开学前的假期我就开始了学习,记得我买的第一本书是《计算机基础DOS3.0》,大家别吓着了,其实当时已经普及了DOS6.22了,只是我在书店里看到了DOS4.0,5.0,6.0的书,以为像英语那样是第四、五、六册,记得当时到处找DOS1.0,现在想想也幸好我没有找到:)开学前我学完了PASCAL,那时既没有计算机也没有人可以请教,我连程序是什么的概念都没有,只好死记硬背代码,然后拿纸写,我一直到大三才有了一台486,在这之前用纸写了多少程序我也记不清楚了,只知道最长的一个我拿A4大小的草稿纸写了30多页,我的C语言、C++、VC都是在这样的条件下入门的。所以说条件是可以克服的,希望我的经历多少给条件艰苦的同学们一点信心。第一次上机是在我姐夫的机房,我的心情激动的无与伦比,但是一上机我立刻傻了眼,他们用的是英文版的Win3.1,我的那点DOS知识都见了鬼,上机提心吊胆的一阵瞎摸,一不小心把Word弄成了全屏,怎么都还不了原,当时真是心急如焚,我以机器被我弄坏了。第一个C语言程序,就是那个经典的HelloWorld,我调了几个星期,上机机会非常少,也没有书告诉我开发环境(TC2.0)需要设置,而且开始我都不知道有编译器,我甚至自作聪明把写好的程序扩展名从.c改成.exe,结果可想而知。

大一学完了C、X86的汇编、数据结构、C++。由于精力都花在自学上了,大一下四门课挂了彩,三类学校就是这点好,挂上一二十门也照样毕业。不过扯远点说,我那么刻苦都及不了格,可见我们国家的计算机教育有多死板。

大二准备学VC和BC,当时难以取舍,后来选了VC,不为别的,只为书店里两本书,VC那本便宜6块钱。我的努力在班上无人能及,学的日夜不分,大三有了计算机后更是如此,很多次父亲半夜教训我说我不要命了,我一直觉得自己基础差,记忆又不行,条件也不好 ,所以觉得只有多花点时间才能赶上别人。居然后来有许多朋友说我有学计算机的天赋,让我哭笑不得。我用的是486,16M内存,1G硬盘,当时同学们的配置都是P166MMX,我安装一个Windows NT4.0需要一个通宵,编译一个BC5.0向导生成的程序需要近两个小时,我的显示器是个二手的,辐射非常大,开机屏幕冒火花,看起来很酷的:),有一次程序写的太久,觉得怎么白色的编辑器背景变成了紫色,以为显示器坏了,后来才发现眼睛不行了,不过说来也奇怪,到今天我的视力还能保持1.5,真是个奇迹。但是就是那台破机器陪伴我两年,让我学会了VC、Delphi、SQLServer等。后来那台机器给我阿姨打字用,据她说一天她正打的开心,一股青烟夹着火苗从显示器钻出来,之后它才寿终正寝。

大三假期找了个机会在一个计算机研究所实习,与其说实习不如说是做义工,工作了两个月一分钱没有拿。但是这两个月对我的发展帮助很大,让我早一步了解了社会,刚去的时候我当然是一窍不通,在那里我熟悉了网络,学会了Delphi和Oracle。由于工作很认真,得到了比较好的评价,在一位长者的引荐下,我开始和他们一起做项目,这使我在大三大四就有了自己的收入,大四又找了两家MIS公司兼职,虽然钱不多,但是在学生期间有1000多的收入我已经非常满足了,我终于用自己赚的钱把计算机换了。大四下开始找工作,这时我的工作经验已经比较多(当然现在想想非常幼稚),开始听父母的想去那个研究所,实习过那个部门也希望我能去,但是不知道为什么最后不了了之,这种单位就是比较官僚,我一气之下就到了我兼职的一个公司做MIS的TeamLeader。在大三到毕业一年的时间,做过了各种MIS,从煤气、烟厂、公安、铁路、饮食到高校,什么有钱做什么,工作也很辛苦,经常加班和熬通宵,从跟客户谈需求到设计、编码、测试、交付都要上。那时觉得很有成就感,觉得自己还不错,现在想想真是很肤浅。

刚走上工作岗位的学生很容易被误导,各种开发工具让人眼花缭乱,同时也觉得很受公司器重,但这样工作永远是一个低层次的开发者。不要跟我说什么系统分析有多么多么重要,多么多么难。你以为自己跟用户谈需求做设计就是系统分析和设计了吗,国内又有几个公司能够做的很到位很规范?我是ISO9000内审员,也在Rational公司受过多次培训,拿了4个证书,还有一个公司让我去做CMM。这些我听过很多,但是很多事情到内就变了性质,一个公司不是通过了ISO9000或者CMM就能规范了,我现在在一家有几十年历史的外企工作,里面的管理不是一般国内企业能及的。作为一个毕业不久以前没有步入过社会的学生,几乎不可能在很短的时间掌握系统分析和设计,面向对象、UML只是一个工具,关键是人本身的思想,不是说你熟悉了C++、Rose就能够做出好的设计,相反如果你具备了很高的素质,你可以用C写出比别人用C++更加模块化的程序。

话说远一些,国内软件开发行业有一个怪圈,很多人觉得VC > Delphi > VB,真是很搞笑。这几个软件我都做过开发,说白了他们都是工具,应该根据应用的需要选择采用哪个,而不是觉得哪个上层次。如果你因为用某个开发工具很有面子而选择的话,只能说明你很浅薄。如果说层次,那么这些工具都不上层次,因为它们用来用去都是一些系统的API,微软的朋友不会因为你记住他们多少个API或者多少个类就会觉得你很了不起,你永远只是他们的客户,他们看重的是你口袋里的银子。我也做过系统内核,我也封装过很多API,同样我也不会看重那些使用这些API做二次开发的客户,除非他能够作出自己独到的设计。

至于有人认为C++ > C那更是让人笑掉大牙,不妨你去打听一下,现在有几个操作系统内核是用C++写的,又有几个实时系统用的是C++,当然我也不是说C++不好,但是目前的内核和实时系统中C++还无法与C匹敌,至于说C++适合做应用系统的开发那是另外一回事。所以我的观点是不在于你用什么工具和语言,而在于你干什么工作。你的设计体现了你的技术层次。

这样干了一年我觉得非常苦闷,做的大多数都是熟练工种的活,个人技术上没有太多的提高也看不到方向。所以决定离开这个城市去上海,寻求更好的发展,并且打算放弃我以前的MIS转到通信行业。

写到这里不能不提到我女朋友,我们是在来上海前半年认识的,她大四在我公司实习,公司派她给我写文档,我们的感情发展的很快。她告诉我很多事情,她家原本是改革开放的第一批暴发户,她母亲爱打牌,输掉了几百万,还欠了很多债,她有男朋友,但是她对他没有感情,只因为他给了她母亲两万多块钱,后来还强迫她写了四万块的借条,她男朋友背叛过她并且不止一次打她,现在逼她结婚不然就要她还钱。这人居然还是一个高校的老师!她母亲把父亲给她的学费花了,因为拖欠学费她没有办法拿到毕业证。她母亲现在有病需要钱,我拿出了自己的一点积蓄并且跟朋友们接了一些,替她交了学费并给她母亲看病(后来才知道看病的钱又不知所终,就连她母亲是不是有病我都不知道,但她也是没有办法)。这个时候我家知道了一些事情,坚决反对我和她在一起,她原来的男朋友也极力破坏。无奈之下我们决定早一定离开这个伤心的城市,并且瞒着我们家。由于时间仓促,我只准备了4000块钱,她仅有的几百块钱也被她母亲要去了,我买了三张票,一张是中午的,两张是晚上的,中午我的家人把我送上船,他们一离开我就下了船,我和她乘坐晚上的船离开了这个我和她生活了很多年的城市,带走的只是一身债务。没有来过上海的我们两个性倔强,都不愿意去麻烦同学和朋友。来到上海是傍晚6点半,我们都不知道该去哪里,我们找了一个20块钱的旅馆,这个房间连窗户都没有,7月份的天气酷热难耐,房间里非常闷热。第二天我们开始租房子,因为身上的钱不多,我们基本都是步行,花了一个星期时间,不知道在浦东转了多少圈后找到了一个400块的房子,但是我们都 不了解上海是付三压一,还要付半个月的中介费,买了一些锅碗瓢盆后,我们身上只有800块钱了,工作都还没有着落,这800块钱要支持到我们拿到第一个月工资,为了省钱我们自己做饭,每天买菜只花两块钱,她非常喜欢吃(也可能她在大学经常挨饿的愿意),看到她现在这样省吃俭用我真的很不忍心。她以前的男朋友也没有放过她,经常打电话来骚扰,并且来上海看她,还说了不少恐吓她的话,她过于善良,说他以前毕竟帮助过她,叫我不要与他一般见识。以后的每天在家就是苦等面试通知,原本我想迅速找一家MIS公司解决眼前的困难,但是她坚持让我不要放弃自己的理想,终于功夫不负有心人,我找到了一家通信公司,4000块的工资虽然赶不上MIS公司给我开出的价位,但也够在上海生存。她也找到了工作,第一天上班她哭了,这是她来上海第一次流泪,我心里很难受也很感动。

由于是全新的行业,我把自己降到了零点,我学的VC、Delphi、数据库派不上用场,摆在我面前的是嵌入式、协议、信令一些我从未接触过的知识。我知道我没有退路,于是拼命的学习,我把自己当做一个应届毕业生一样,一分努力一分收获,半年过去我终于熟 悉了工作,并且得到了公司的表彰,薪水也加了一级。后面的日子里我们省吃俭用,把欠朋友的1万多块钱还了,日子终于上了正轨。这时女朋友告诉我她想考研究生,我也很支持,于是她辞职在家备考。

另外,在这里我要感谢我的ProjectManager,他原来是一个大通信公司的产品经理,对人非常和善,我从他那里学到了很多知识,而且他也给了我许许多多无私的帮助。在工作上他给我充分的空间和信任。记得公司安排我维护一个接入服务器软件,由于代码量不算太小(5万行),资料和文档都不齐全,我维护起来非常吃力,所以想重新把它做一遍,公司领导不太支持,可能觉得工作量太大,但是他极力支持我,私下里他让我放手去做,我的维护工作他挤时间做。在他的支持下,我花了半年时间完成了接入服务器的软件,并 且实现了一个相对完整的TCP/IP协议栈。在这里我学会了嵌入式系统设计、驱动开发、TCP/IP和很多通信的知识,我花了一年时间终于使自己从MIS开发转到了通信行业,并且站稳了脚跟。我的开发大量是对硬件的直接操作,不再受微软的操作系统,VC、Delhpi这些开发工具的约束,我终于看到了另外一片天空。

我做事情喜欢追根问底,随着开发的深入,软件开发与硬件联系越来越紧密,硬件知识的匮乏又对我的发展产生了障碍,而且芯片技术基本上掌握在国外公司的手里,这对做系统级设计是一个非常大的制约,一个新产品出来,第一道利润(也往往是最丰厚的利润)常常都被IC公司如Intel、Motorola赚去了,国内的厂商只能喝点汤。所以我决心解决自己的硬件技术障碍,并打算离开通信行业,进入IC设计相关领域。

当然我明白如果我对硬件了解的非常少,没有哪家IC公司会仁慈到招我这样一个一窍不通的人来培训。所以我必须努力打好基础,学一些相关知识为以后做准备。就像我开始从MIS转到通信一样,我看过大量通信方面的书,并且给一个ISP做过RADIUS计费分拣台,在这样的背景下这家通信公司才给了我这个机会。我在的通信公司是做系统设计的,有不少PCB Layout硬件人员,平常我就注意向他们学习,由于我做的是软件,在公司看硬件资料不好意思,所以开始只好在家看,刚来上海工作我连续一年都在加班,后来不加了,因为我要挤出时间学习,通常我12点左右睡,第二天5点半起,我上班比较早,地铁上如果人不多 我也用来看书。学习当然不会是一帆风顺的,有些实在不懂的问题就积累起来问硬件人员,他们的帮助使我学习进度快了很多,因为在没有人点拨的情况下自学,我的一半时间是 花在解决疑难问题上,但这种问题经常是别人的一句话就可以让我豁然开朗,我非常庆幸我有这样的学习环境。在后面的一年里,我学会了看硬件原理图,学会了简单的硬件设计
(模拟电路方面还有不小的差距),事情就是这样的,当你安安份份做软件,别人永远认为你是软件开发人员,在你开始学习硬件时别人未必会认同,有位中兴通讯的朋友还对我说过,一个人不可能把所有东西都学完。我也明白这一点,但我希望自己做的更好。但当你熟悉硬件后大家又会觉得你好像原本就是软硬件都懂的,同事们也都习以为常了。这个时候我可以把硬件资料堂堂正正的拿到公司看,没有人再大惊小怪了。让我比较自豪的是我通过自己的努力做了一个IAD(软交换的终端设备)系统方案,包含软硬件的选型、设计等内容,这
个方案得到了公司和同事们的认同,让我感到非常欣慰。

技术是相辅相成的,当我的硬件有了一定的进步后,我的软件设计也有了很大的提高 ,我可以从更深层次理解问题,我做的接入服务器CPU是Motorola PowerPC860,熟悉的朋 友都知道860 QMC与软件的批量数据传输通常采用BD表的方式,硬件人员做驱动的时候习惯 采用固定BD表,每接收或发送数据都将数据从BD表拷贝到用户Buffer,或从用户Buffer拷 贝到BD表,由于理解的比较深入,我自己重新实现了这个过程,采用动态BD表的方式,驱动从一个网口接收数据,提交给我的软件进行三层交换,直至从另外的接口发送出去,没 有进行一次拷贝。这样的设计大大提高了性能,使系统的指标接近理论值。软硬件的结合使我的设计水平上了一个台阶。我现在写的这个操作系统,编译后我把程序反编译成汇编,找出其中不优化的代码,然后在C程序中进行调整。举个例子,很多CPU没有专门的乘法指令,这个大家应该都知道,在这种CPU上进行一个乘法操作常常会花费大量的指令周期,有的朋友会说这个我知道,我会尽量避免采用×号,但是事情往往不是那么简单,你知道 C语言中数组的下标操作是怎么实现的吗?仔细看看反汇编的代码你就会明白,同样是通过下标的定位操作,C编译器会有时候会产生位移指令,但有时候会用乘法实现,两者效率往往是天壤之别,所以明白这些问题你才能将系统性能提升到极致。这些问题就不多说了,有兴趣的话以后可以共同探讨。

话说远一点,我由衷的希望在软件上做的比较深入的朋友们有机会学学硬件以及其它 相关知识,尤其是做底层开发和嵌入式设计的。这对软件技术的提高有非常大的帮助,否 则很多事情你只知道该这样但不会明白为什么该这样。我这个观点在我现在的IC公司Proj ect Manager那里也得到了验证。他告诉我们公司现在802.11芯片产品的软件经理原本是 做该芯片硬件设计的,某某某原本是做软件的,现在在做IC,类似的例子还有很多,只是在国内这样的风气不是非常流行。

我有一些心得体会与大家分享,只有当我干好本职工作后,我才会学习与工作关系不 大的技术,这样公司的上司才不至于反感,在入门阶段的问题我通常不去问那些资深人士 ,而是问一些资历比较浅的朋友,比如刚毕业不久的学生,因为他们往往会跟你详细的讲 解,而资深人士通常觉得你的问题太简单,所以回答的也很简单,我又不好意思多问。等 技术上了一定的层次后我才会问他们,他们也能给你比较深入的回答。另外,有些朋友说我机会比较好,他们也希望能从事新的工作可惜没有机会,我听了只有苦笑,我的机会了 解的人都应该知道,我没有出生在什么IT世家:)也没有谁一路提拔我,所有的路都是自 己走出来的,我母亲去世比较早,我的后母(我叫她阿姨)看着我努力过来的,一次她看我大年30还在写程序,她说像我这样努力木头都能学出来。

我的最终目的是IC而不是PCB,所以我下一步的准备开始学习IC设计的知识。公司的同 事没有懂IC设计的,后面的路又要靠自己了,我买了不少相关的书,在网上也查了很多的 资料,我花了大量的时间去学习VHDL,并且用软件进行了一些简单的设计和仿真(没有设 计ASIC,只是针对FPGA),随着学习的深入,我渐渐明白了IC设计的基本流程,同时也明 白了这条路的艰辛。这个时候我已经做好了跳槽的准备,我向一家业界又一定知名度的IC设计公司投了简历,并通过了漫长的面试(4个多小时)。其他的一切我都比较满意,唯独薪资差强人意,我也明白原因,因为我是这个行业的新人,我没有经验,我再一次将自清零了。公司老板问我6000多一个月能不能接受,我知道他也是照章办事。想想我通信行业的朋友们,基本上都是年薪10万以上,月薪过万的也比比皆是,朋友们也帮我介绍了不 少待遇不错的公司,我该怎么选择,当时我很犹豫,我热爱我的事业,我向往我的追求,但我也是一个普通的人,我也需要养家糊口,我也想早一点买房买车。生活给我出了一道难题。

爱因斯坦在63岁时说过"一个人没有在30岁以前达成科学上的最大成就,那他永远也不会有。"这句话给了我很大的压力和震动,我马上就26岁了,离30只有四年时间,我必须抓紧这几年宝贵的时间,努力达到我技术上的最高峰。为了这个理想,为了能离自己的梦更近一些,我选择了这家IC公司,我明白自己的薪资和公司刚进来的硕士研究生相差无几,但为了今后的发展只能忍受,一切又得重新开始。换行业是一个非常痛苦的过程,尤其从一个春风得意的位置换到一个陌生的岗位,感觉象从温暖的被子里钻出来跳进冰水中,让人难以接受。在原来那家通信公司,我是唯一两年时间涨了五次工资的员工,公司和同事 都给了我极大的认可,工作上也常常被委以重任。但现在这一切都成了过去,在新的公司 我只是一个新人,没有人知道也没有人在意我过去的成绩。我决定重新开始,我把自己看作 新毕业的学生,我要用自己的努力得到公司的认可。进入新的行业是非常痛苦的,我告诉自己必须忍受这一切,虽然外面有很多诱惑,但是既然作出了选择我就不允许自己轻易放
弃。

我现在已经在这家新公司上了一个多月的班,开始非常艰难,现在慢慢适应了。第一 个月结束时,Team Leader找我谈话,说我是新进员工中最优秀的一个,我心里很欣慰,这也算对我努力的一个肯定吧。在这里还要感谢我的女朋友,她给了我很大的支持和鼓舞, 每次在我动摇的时候她都在鼓励我,让我坚持自己的理想,刚来上海是她让我不要勉强去 做MIS,这次也是她让我顶住了月薪过万的诱惑,没有她我可能不会有今天的成绩。现在的公司有自己的操作系统,自己的CPU、DSP和其它芯片,在这里我能学到世界上 最先进的技术,我们的设计开发不再完全依赖别人的硬件和系统,这让我很开心。我打算等工作步入正轨后,全力学习新的知识,实现我的理想。
在后面的两年里我给自己定下了几个目标:
一.努力做好本职工作,在工作上得到公司和同事们的认同;
二.努力学习IC硬件设计知识,多向同事请教,并利用一切机会多实践;
三.实现我的实时操作系统的主要部分,完成TCP/IP协议栈模块,并免费发布源代码;
四.和我女朋友结婚并买一套小房子,这是最重要的,因为我明白事业是可以重来的,但是
珍贵的感情很难失而复得。

在这里提一下我现在开发的操作系统,它是一个实时嵌入式系统,目前支持以下特性:

a.支持时间片轮转调度和基于优先级调度,最多64个优先级;
b.抢占式实时内核;
c.为了便于移植,主体用标准C实现;
d.汇编代码非常少,不到100行;
e.支持任务管理,各任务有独立的堆栈;
f.进程同步和通信目前完成了Semaphore,Message Queue正在调试;
g.实现了定时系统调用;
h.可以在windows上仿真调试
我还打算下一步实现优先级反转保护,Event Flag,Data Pipe,内存管理(以前实现过) 、驱动接口等。在这之后我还会努力完善它,比如加入文件系统,协议栈、调试接口等。希望朋友们提出自己的意见和建议,在此不胜感激!

后记:
就像有的朋友说的,我的经历或许会给一些朋友产生误导,在这里我必须说明一下。我来上海以前学习过于拼命,常常晚上只睡3个多小时,我身高1米71,那时只有108斤(我 现在130多),家人也说我这样拼命活不过60岁,但是当时的我太固执,我对他们说只要能 实现理想活50岁我就够了。那时的拼命使我的身体受到了影响,有一次早上突然腰肌剧痛难忍,痛的我倒在床上站不起来。虽然我现在已经比较注意,但有时候还会隐隐作痛。后来在女朋友说服了我,来上海以后我不再如此。我经常引用父亲的一句话"身体是革命的本钱"。

而且我也发现拼命不是办法,我可以熬一两个通宵,最多的一次我连续工作了三天三夜, 但是我半个月都没有恢复过来,这样是不是得不偿失?学习工作应该是一个长期的过程, 像马拉松而不是百米冲刺。我现在非常注意调整学习和工作的强度,我要保证每天尽量有 相对充沛的精力,一些年轻的朋友觉得自己也应该拼命努力,这让我多少有些担心,如果我的故事能让你在学习工作上多一点兴趣,我会感到很开心,但如果误导了某些朋友,让你做一些不值得的付出,我会感到很内疚。

技术没有贵贱只分,我以前换行业是因为自己的兴趣所致,而不是对哪个行业有什么偏见。我希望我的经历不要给朋友一个错误的导向,觉得我始终向更高的技术发展。其实各行各业做到顶尖都是很困难的。话又说回来虽然技术没有贵贱,但是门槛是有高低的,无论如何,做IC的门槛要比做网页的高,这一点无可否认。国家各种人才都是需要的,但是作为个人奋发向上的想法还是应该有的,努力在自己喜欢的行业上做的更好,而不应该停留在比较肤浅的层次上。

我是一个自己觉得比较有自知之明的人,或许我最大的优点就是知道自己有很多缺点 :)。我的故事中很多的曲折和错误都是由我的缺点造成的,希望大家用审慎的眼光看待 我的经历,不要被我的"花言巧语"所迷惑。我学习有些随心所欲,这给我带来了无尽的麻烦,也大大阻碍的我的发展。记得我小时候成绩比较出色,但是后来学习严重偏科,导 致我中学成绩一再滑坡,也没有考上什么好的学校,小时候的一个朋友,当时的成绩和我相仿,但是没有我这个缺点,她上了清华,后来在去了美国深造,在一个著名导师手下研究理论科学,这未尝不是一条更好的出路。另外我的学习方法也是在不断改善中的,过去的学习过于讲究数量和时间,那样学习既苦而已效率不高,现在我非常注意学习的效率和技巧,这样才是学习的捷径(当然不是指投机取巧),比如说学一相对陌生的技术,如果有条件,不妨问一问有经验的人,不需要问很多,往往他不经意的几句话会给你非常大的帮助,甚至超过你看一个星期的书。带着这样的思想再去学习你会节省很多时间,这样何乐不为呢?这些年中我学了不少的东西,由于开始非常盲目,所以学的东西杂乱无章,现在回想起来让我啼笑皆非,我把大量的时间浪费在一些没有必要深入了解的知识上,毕竟一个人的精力是有限度的。很多朋友很我一样都背过五笔字形,的确它是个不错的输入法,但是对一个研发人员它绝对不值得你去背,你的时间应该花在有价值的地方。我这样的事情还做过很多,我背过CCED、WPS的命令和快捷键,在dBase基本退出历史舞台后我还花了很多时间去学习它的使用。所以我的学习在前期缺乏规划,没有明确的短期目的、中期目标,只有一个虚无飘渺的长期的理想。这就像做设计一样,好的设计是从需求抽象到代码有很多过程,而不能得到了需求就立刻开始开始编码。

当然这么些年的学习和工作多多少少有些收获,下面我说说我的一些学习的心得,这些方法未必正确,我也在不断探索和改进中。我的学习和工作有相对明确的目标,我不会一时心动而去学习某一技术,在下决定之前我会考虑很多,包括长期的发展,个人路线的规划,需要付出的代价、可能遇到的困难及解决的办法等等,在决定后还会制定更加明确 的计划,包括短期、中期和长期的,身边可以利用到的资源(包括好的书籍、资料、软硬件环境,也包括有经验的朋友或者师长),以及每一个阶段是怎么过渡到高一阶段的计划 ,往往在一个学习阶段一旦上路后会走的相对顺利,但是跨阶段通常比较麻烦,比如从学 习基础知识转到实践。另外我买书也有自己的方法,现在世面上高质量的书远不如低质量书多,对于一个陌生的技术,往往在第一次买书会选择错误,即使买到一本好书但是它的方向也未必适合你,所以我通常会先在网上查找一些该技术的介绍,有了一点点概念后再去买一本比较薄、相对便宜并且内容相对泛泛而谈的书,这是国内作者最善于写的书:) ,再把它浏览一遍后我就会基本明白这门技术的要点,后面买书和制定计划就会明确的多 。否则一开始就想找本好书往往比较困难,而且买回来后努力学习,有时候学了一半才发现是本低质量的书或者是相对过时技术,让人非常懊恼。另外让有经验的人帮你介绍,通常也是一个不错的选择。

有些朋友想学通信、嵌入式开发,但总觉得自己没有软硬件环境,我就按我的了解给 大家介绍一下怎么建立这样的环境,当然我了解的只是我学习和工作的方向。通信我做的 是数据网方面的工作,包括TCP/IP、二三层交换、对接入网、H.323和软交换也有一点认识 。这些软硬件环境都是可以在PC上构建的。你甚至可以在一个没有网卡的PC上建立一个包 含多个路由器、接入服务器、VoIP网关、网守、主机等的仿真网络环境,而且与实际的网络相当接近,当然这需要你有清晰的网络概念和一定的网络知识,我一直在努力开发一套 软件将这个过程简化,目前试验已经做完,我可能会将它融入我的操作系统外围扩展软件 中。这样的方法我无法用简单的语句讲的很清楚,我可以说一下大概的思想,就是在PC上 实现仿真网卡,(知道Windows怎么在没有网卡的机器实现虚拟网卡技术的朋友都应该会明 白),然后每一个仿真网卡对应一个虚拟设备,如路由器或者主机。你也可以借助第三方工具完成部分工作,如VmWare等。我现在就是利用一个仿真网卡做自己的开发的。至于嵌入式开发环境更加容易实现,PC就是一个非常大的硬件平台,现有的嵌入式操 作系统通常都支持X86,你可以在上面做开发,通过软盘Boot或者使用虚拟机装载,我用VxWorks做了试验,在一台PC上跑Windows和VxWorks两个系统。另外Windows上的兼容DOS的16位仿真X86环境也为很多操作系统提供了绝佳的试验环境,我的操作系统在Windows上就是这样实现的。Linux在嵌入式中应用也比较广泛,它在网上有大量的资料,而且也相对比较容易实践。同时很多完善的嵌入式开发环境支持软件仿真,如Tornado、WinCE等。

/ 关注 “异次元软件世界” 微信公众号,获取最新软件推送 /

  • catking

    很感动,应为看了前半部分内容后想起了自己过去日日夜夜的学习过程。那时真是一日顶现在百日啊,机子换新了,心也飘了。想起刚研究编程时,知道EXE和com文件是可以运行的文件。想学着编不会代码怎么办,看看别人写的,于是用EDIT打开EXE看了[Yoci-06](当时头脑为什么会有代码的概念至今还没搞清)。还花了段时间研究那些符号每个代表什么操作[Yoci-08],现在想起来还真是搞笑。相信还有很多人和我有过同样的经历,也借助这块宝地做个交流。
    还有那个作者是谁啊,想认识下,因为我一直想做系统内核开发。

    2007-06-2 17:15:19
  • X-Force

    这个作者是谁我也不知道呢~呵呵。。

    2007-06-2 17:25:46
  • sjn750710

    虽然我没有学过编程,但是在计算机知识的这条路上我也尝尽了艰辛!想两年前看卓别人熟练的给计算机装系统,当时那个羡慕呀!时至今日,尝尽了无数个夜晚对着计算机苦读,在论坛上向别人学习,一步一步走来真是不容易!唉,求知的路太苦了!
    —————————–
    < X-Force 温馨回复 ^_^ > 呵呵~~求知的路是无穷无尽de…

    2007-09-26 14:38:49
  • 人比黄瓜瘦

    我也快26了。。可是才刚接触编程。。有时候真的觉得太晚了。。
    现在也有点茫然,觉得要达到这样的程度不知道还要多久呢。。
    —————————–
    < X-Force 温馨回复 ^_^ > 不算晚吧?才26而已…

    2007-09-27 12:24:51
  • 和谐之王

    不知道x-force是如何学习it知识的?
    作者很强啊,太刻苦了,唉,无法复制
    —————————–
    < X-Force 温馨回复 ^_^ > 我哦??我绝对没作者那个水平啦~~呵呵

    2007-10-5 23:20:06
  • 月痕工控

    这个作者 不是站长X-Force 吗 我新来的 不太清楚 下次发表这样的文章 能不能注明一下作者啊 以免误解 ….
    月痕工控
    —————————–
    < X-Force 温馨回复 ^_^ > oh,这是很久以前转载的,那时候也没能找到原作者是谁,所以~~啊啊,不好意思。

    2007-11-28 15:04:21
  • javer

    看到这篇文章真感动,努力,压力及支持才成就了他!

    2007-12-9 12:40:15
  • kohl

    很佩服你,我才22,学电子商务,现在不知道干哪个方面,郁闷.

    2007-12-9 15:23:02
    • Amebr

      我也是电子商务的,不过我才18,其实我想做的是游戏美工。。。。

      2009-12-5 13:20:57
  • 半夜抽烟

    看完了
    和自己相比了一下…
    觉得 自己白活了 24年了啊

    2008-01-10 18:51:45
  • 一觉睡醒

    全部看完了 这位作者我太让佩服了
    看完这篇文章真是受益匪浅啊~~
    也感觉到我18年来没有努力过 很多年来都是白活了
    突然有点怨恨我自己~~艾。。。
    以后要努力了 感谢异次提供这让人感动的文章。
    真想知道这位作者是谁。。

    2008-02-16 09:27:04
  • 这篇文以前就看过,可惜不知道作者是何方高人,想了解如何在pc上跑Windows和vxworks两个系统。如果我能知道如何在pc上运行vxworks就好啦。。。。。。。。。- -||||||||||||||

    2008-04-25 17:45:05
  • Jelly

    我学的是信息管理,呵呵不嫌你们笑话也就是一个不文不理的专业,不过和计算机挂上的勾,我喜欢计算机,所以我来了这个三流学校。。。大二了,我大一感觉就是耗费自己的生命,什么也没学到,哎,,,感觉真是挺难受的,在这样的学校,学习氛围不好。。。后来买了电脑,但是实在无从下手,我不玩网游,宿舍里除了我都扯了网线,他们一天天的网游,我一个人学习挺孤单的,我挺迷茫的,到底应该学点什么对将来的发展比较有用。。。这个人让我有点想哭的感觉,,,我虽然认为我很努力了,从50名开外到前十名但是我们学的都不实用。。。我做的还太少。。。

    2008-05-9 10:31:05
  • THOMAS

    我才16,今天第一次到这个网站,我也对电脑有很大的兴趣,看过同龄的同学编网站,也有编程序的,自己玩一下电脑的各个方面,却找不到自己想学的.家族里有编 程的高手,也有搞硬件的,还有搞计算机 生 意的.学什么将来有自己的特长??但我长大后不会以它为专业.

    2008-05-24 20:52:47
  • qushui

    自己已经二十多了,读大二了,大学已经白过两年了,感觉什么都没学好
    LZ真是我学习的模范啊

    2008-06-9 10:07:18
  • Sam

    花了很长的时间,一句一字的细看了整篇文章。感谢X-FORCE,你的文字给予我很大的动力同时也让我看清自己未来的路——那条已经变得模糊不清的曲曲弯弯的路。我现在是刚大一结束吧,高考后上不了心中的学校结果来了一间三流学校,曾经有一段时间因为学校的问题我一直不妥协,可是一切都是自己一手所造成的,所以最后也只能接受了。刚上大学的时候我还是一个小孩一样不会想,家里不算富但我想要的都有了,手机换了,本本也买了,不愁吃不愁住。可是一下目标都没有明确下来,迷迷糊糊的一年就过去了。各方面都学了一些,博而不精,如网页设计上,代码好了布局也了但在美化方面却糟糕得一塌糊涂。我是学计算机的,没有什么固定的方向,一直都在三心二意,可以看完你的经历后我觉得人生就不应该太过于平静了,我们还年轻,还可以去奋斗,因为没有人想等到五六十岁还奔在前线。上了大学以后才发现社会真的很现实。所以一直都在想计算机什么方面的才是最好的,可是现在我发现,只要你把一样东西学好学精了,它就可以转换成金钱。现在还真的得考虑暑假的时间是应该花在暑假工上还是自己回家自学好?在你奋斗的那几年里,爱情给你的力量是那么的大。现在虽然已经很早了,可天还未亮,可是我心里明亮一片,我在你细碎文字的引导下看清了自己的方向,在你的这一篇“自传”中拿到大把大把的动力。我想我会更加努力的去完善自我提高自我的,每当我松懈或者缺乏动力停下脚步的时候我会不断的回首看这篇文章。真的,谢谢你,X-FORCE。

    2008-07-1 04:10:37
  • Razer

    这片文章对我的启发很大,特别是那种刻苦学习的精神,感谢X-Force…

    2008-07-1 17:58:32
  • fairzy

    偶今年大一,才19岁。软件工程
    学了一年C/C++,感觉什么都没学会。到现在嗨只是用控制台写个Cout。
    自己一直很努力,却不知道怎么努力。
    很佩服作者~~~~
    不知道可不可以留下我的msn,希望能有人知道我一下
    fancylst6@163.com

    2008-07-5 12:09:01
  • aimvicton

    看了这篇文章,觉得很感动啊!
    为了自己的理想
    我觉得要向你学习啊!!!

    2008-07-10 19:22:37
  • aimvicton

    "努力在自己喜欢的行业上做的更好,而不应该停留在比较肤浅的层次上"
    我又看了一遍这篇文章,觉得这句话非常好

    2008-07-16 21:45:20
  • 37


    原来不是站长大人写的啊
    我还以为是站长写的呢[Yoci-05]

    2008-07-22 15:54:30
  • holong

    活到老,学到老

    2008-08-1 11:22:57
  • skyblue

    如非万不得已..实在别进这一行……
    [Yoci-67]

    2008-08-21 18:09:38
  • Kodin

    [Yoci-25]之前我一直在迷茫,应该继续学网络分析还是转学编程。看完文章后,感觉自己真的很渺小。文章中很多东西都值得学习借鉴,也给我指引了一个方向。

    2008-08-23 05:45:38
  • 门前一堆煤

    我要是早8年看过这个文章就好了。呵呵

    2008-08-25 12:54:29
  • 迷惘

    看了这个很感动,想到自己现在在学校里浪费时间,浪费了3年,都在打游戏,真的很惭愧。
    这21年都白活了,甚至现在不直到自己的理想和追求,没有什么东西让我像作者一样执着地追求。
    只会一味向社会索取。
    我知道不能怪社会环境,但是真的很迷惘……
    对于未来,自己將会从事什么样的行业都一无所知。

    2008-09-9 18:54:35
  • Phinux

    呵呵,有些心酸.

    2008-10-23 04:08:20
  • Phinux

    觉得程序员是条穷路,却依然选择了
    我真是~~~该下决心不走这条了?我还刚开始呢.

    2008-10-23 04:09:24
  • Phinux

    为什么穷ren两个字被屏蔽了?

    2008-10-23 04:09:39
  • zj003431

    天行健,君子以自强不息。这篇文章让人感动

    2008-11-5 17:33:18
  • bin

    呵呵,看来我后面的路还很长啊。向作者学习。:)

    2009-04-9 13:20:36
  • Eross

    作者的支持让人感动。

    2009-06-24 10:33:02
  • hfly

    如果我没猜错,作者可能是djyos的开发者

    2009-06-24 12:21:45
  • aiya

    谢谢你的

    2009-09-20 16:54:00
  • KNIEHGG

    这篇文章之前看过.是不是和一本书教你如何写操作系统的作者一样啊.记不清了~每次看都受鼓舞

    2009-09-23 16:50:27
  • pplvvk

    刚刚过了而立之年,触动很大,感触颇深

    2009-10-6 22:16:11
  • HeroBack

    面对着未知的困难,面对着时间的挑战,面对着金钱的诱惑,面对着生活的折磨,不畏艰辛追求自己的梦想,像你们致敬!原本我想当突破的系统的限制就是学习的终点,今天我又发现了新的终点,谢谢作者,谢谢X-Force

    2009-10-9 13:25:29
  • 活¤Мか宝в天使

    看了这篇文章,太感动了!真的很渐愧啊,我真的是折活了20年啊,从现在开始,向作者学习,向X-Force学习。非常感谢X-Force!!

    2009-10-12 22:41:32
  • 465
    2009-10-25 00:32:31
  • 海底的鱼

    非常感动,给人以振奋和期待,我28了,做编程才3年,如果引用爱因斯坦的话来说,事实上我离失败也不远了,不过,还是有机会的,最近也在仔细琢磨自己的前程,重新安排了提高自己能力的计划表

    2009-10-28 14:24:27
  • TK

    写这个东西的人就是一SB,为了宣传自己的系统抖了那么长时间的包袱。还好我不是你的PM,不然硬盘人早就应该滚蛋了。

    2009-12-23 01:03:37
  • 淡淡烟云

    虽然 也有同感到后面 有点 广告嫌疑
    但其间 还是很感人和振奋的
    IT不好走
    努力吧 摸索着

    2009-12-29 16:16:59
  • Oraple

    感觉不是站长写的。。。
    不过这篇很给我鼓励,这位大哥的前面跟我有点像。我上高一开始学编程,也有遇到很多的阻力。跌跌撞撞到现在才懂点计算机。高考考得很烂,上了N流大学。。如今到大一了,脑子里依然只有代码,学习什么的全在脑后,固然条件比那个要好得多,我却慢慢失去了上进心。人要在逆境中才能成长啊。。
    看了这篇真是羞愧难当。……

    2010-01-9 11:30:26
  • 恶魔的脚印

    太厉害了,我也是学计算机的,要毕业觉得什么都不会。很感动,我也要加油!

    2010-01-15 18:40:44
  • miss you

    太赞了!

    2010-01-25 16:24:36
  • 爱㏒海

    什么都不说了,继续努力吧!!!

    2010-01-26 09:47:09
  • D.Kch

    原来都这么辛苦啊~我现在还在“hello world”上徘徊

    2010-02-20 11:01:21
  • zh4h2

    作者很令人佩服,我是无意中点开这个网页的也是我第一次进入这个网站,我很庆幸我看到了它.
    我21了,软件工程,现在大二,在年级同学里还算是学得有点名气吧.最近过得很颓废,可看了这篇文章,被深深地触动了,感觉自己真的很渺小.虽然我从来都知道这个大海有多广,可是这是我第一次深深体会到一种无力与敬畏,但是我会努力的.也许,我的人生会因为这篇文章而改变,感谢你!

    2010-02-23 00:43:43
  • 1452

    哈哈,我以为是X-Force写的呢!我还奇怪他怎么把自己的经历写了出来!哈哈,不过这篇文章真的很好!起码知道自己现在就是一个白痴!

    2010-04-7 15:52:23
  • 九天虚无界

    首先我很感谢XF 让我能认识大家,我是学工程施工的,可以说跟编程没有 一点交集,只是我们学校要什么计算机二级,我才开始看,我学的是c++自学的,刚入门,我希望有一天能自己变个定时控制系统,我现在还没作者这种毅力啊,想和大家认识一下1140003858

    2010-04-18 13:53:13
  • xjb

    我是一个大一学生,就像作者一样,高考没考好,来了一个三流学校。也曾悔恨过,但又能怎样呢,还是选择了妥协。懵懵懂懂的过了将近一年,在这一年时间里,有点颓废,模模糊糊的学了一些编程知识。也不知什么时候起,开始意识到了要好好学习,在看了一些书之后,才发现编程之路的艰辛与遥远。看了这篇文章后,更加感到编程的博大精深,我想我未来的编程之路会充满坎坷,但就像作者那样努力、坚持,有一天我也会有那么一天的。

    2010-04-30 19:32:09
  • Phoebe

    觉得自己白活了十三年!有读书开始就不用功,现在20了才开始接触程序设计!失败啊!虽然作者无法复制,但可以努力向作者看起!

    2010-05-1 12:37:14
  • windyes

    好像这里好多学生都是不幸去到三流学校并看到这篇日志的

    2010-05-20 11:24:32
    • qiushui

      你一流科班就拽吗?有什么了不起了,基本是实践能力,正规军干不过游击队是行业现状!

      2010-06-1 19:48:03
  • 神的化身

    什么也不说了 我转到QQ空间去 时刻激励我 总有一天 我也会成为一名有作为的人 庆幸的是 我看到这篇文章后还有时间去学习 呵呵

    2010-05-30 13:24:07
  • 琳枫

    看完这篇文章,我迷茫了

    2010-06-11 11:14:59
  • 小陌

    看了这个 我蛮有动力的~谢谢

    2010-06-12 01:11:37
  • 阿斯顿飞

    很多事情没那么简单,以前计算机专业多热门呢,现在成了一坨屎了。

    2010-07-6 17:00:30
  • 90冬天

    深有感触 我在 北大青鸟学的 (初中文化-现在大专了(花钱上的))看你了的经历 才感觉到 奋斗努力和胜利果实《几乎成正比的》

    现在ASP.NET 有发展吗???

    2010-08-18 23:05:53
  • 飘飘风

    天若有情天亦老,人间正道是沧桑。
    宝剑锋从磨砺出,梅花香自苦寒来

    2010-09-22 13:22:45
  • 剪水作花飞

    误闯这个世界算是我在互联网上最大的幸运了

    2010-10-1 17:56:48
  • 玻璃上的苍蝇

    看了这篇文章一样后,我又捡起了我的游戏,我觉得我现在就像玻璃上的苍蝇:前途是光明的,道路是没有的

    2010-10-25 16:05:25
  • wuyicqb

    让我久违的心又有了一丝悸动

    2010-10-27 21:57:13
  • Tanlog

    好长,但很赞同作者观点

    2010-11-28 16:27:37
  • 娄子

    我也是一名计算机人,现在已经大二了,看到了这些,给我很大的动力。我会向前辈学习的

    2010-12-12 10:54:05
  • Linjack

    我才小你六岁 但我觉得我的编程知识跟你差了整整有10个年头。大二的我正在醉生梦死…向你看齐!!

    2010-12-19 22:54:17
  • menglei0007

    向你学习~
    保重身体~

    2010-12-29 15:05:51
  • wudiguohezu

    看了这篇文章,让我热血沸腾,不过希望不是三分钟热度。。。

    2011-02-18 12:20:28
  • MD001

    MD
    ,
    也太猛了。
    刻苦啊。
    刚看到你女朋友那段–她母亲现在有病需要钱,我拿出了自己的一点积蓄并且跟朋友们接了一些,替她交了学费并给她母亲看病(后来才知道看病的钱又不知所终,就连她母亲是不是有病我都不知道,但她也是没有办法)。—还以为你被她骗了,看来是我太小心眼了
    哈哈

    2011-02-19 19:34:00
  • chenshaojun

    感动得想哭

    2011-05-21 21:57:54
  • bocota

    很有感触 感谢楼主分享

    2011-05-27 12:00:29
  • c

    一篇励志好文章.
    相信已经产生了不可估量影响。

    2011-05-29 18:48:31
  • 衡、实

    不知道你邮箱,希望与你交流,我经历没你丰富,不过还是不要太相信三十而立,虽然是古规名言,也不见得是真理,正如你讲,如果一味平稳,我想也许你不是现在这样,只有想不到,没有做不到,看了很受感动,见习了,希望留下邮箱交流。

    2011-07-9 11:07:59
  • 衡、实

    不知道你邮箱,希望与你交流,我经历没你丰富,不过还是不要太相信三十而立,虽然是古规名言,也不见得是真理,正如你讲,如果一味平稳,我想也许你不是现在这样,只有想不到,没有做不到,看了很受感动,见习了,希望留下邮箱交流(因为手机上网……)。

    2011-07-9 11:09:40
  • 王伟清

    吾是做学问的,对这些不甚了解,也借爱因斯坦一言“兴趣是最好的老师”。
    正如汝所言,领域没有贵贱可言,境界却有高低之分。

    2011-08-12 02:47:47
  • qmx

    鄙人惭愧啊.工资干够吃饭.

    2011-09-29 17:27:07
  • tallor

    唉。。令人尊敬~~和你一比我简直什么都不是。。就是一废物。。。多谢了~!!!

    2011-10-15 18:14:41
  • tallor

    “一个人没有在30岁以前达成科学上的最大成就,那他永远也不会有”“技术是相辅相成的,当我的硬件有了一定的进步后,我的软件设计也有了很大的提高 ,我可以从更深层次理解问题”
    。。。。呼。。

    2011-10-15 18:22:05
  • free

    这真是一神人

    2011-10-24 15:10:36
  • tianzhiwu

    向这位大哥看齐,不能在迷茫了!

    2011-12-6 12:19:31
  • bauer

    我刚开始做软件开发 ,迷茫呀,天天就是那几段代码

    2012-01-14 18:57:37
  • Bevis

    晕,今天在某网站看到一篇原创文章,是2012年写的,看了一下,发现那么熟悉的。然后来这里喵了一下,发现。。。附上链接,那篇文章应该是抄袭了X-Force的经历了。http://www.cplusplus.me/400.html

    2012-09-25 11:58:38
  • violet

    深有感触!我也想学呀!

    2013-05-23 18:40:09
  • legendary

    马上大二了,一定要加油!

    2013-06-16 19:51:58
  • zjut_YH

    类似的经历,这条路,如果没有相应的性格和毅力,还有兴趣,是走不下去的。共勉吧!

    2013-07-30 11:22:19
  • 软件天气

    因为喜欢软件,所以有幸发现了异次元,来了有一两个月了吧,最近从第一篇开始看起,才发现异次元最开始不只是介绍软件的啊。
    其实大家并不需要纠结作者是谁,重要的是努力的精神和学习的态度。
    感谢小x,共勉!

    2013-09-6 23:06:30
  • ma7x

    自学c#做网页,一直以为自己很努力了,认真看完文章之后发现,自己什么都不是,想了想自己给自己定的目标,发现现在做的 已经偏离了自己的梦想,该怎么办?没人能帮自己,继续努力吧

    2014-02-24 14:55:19
  • Ray

    作者走了很多弯路, 很苦啊. 虽然爱因斯坦30岁之前出了成绩, 但也不见他30之后放弃研究啊. 多些作者这样的实在人, 技术才会进步.

    2014-02-27 23:46:55





评论内容 (*必填):
Ctrl + Enter 快速提交   

赞赏异次元


请通过支付宝、微信 APP 扫一扫,海外读者可「使用 PayPal 赞赏

“ 感谢您对异次元网站的支持! ”