loogloog_com 2014年01月24日
我的求学和程序员之路(坚持看完,必有收获)
看了别人很多类似的文章,产生了很多共鸣之处;我相信很多程序员都有很多感慨,毕竟大部分人都是普通的程序员,站在行业塔尖上的人不多;自己也很想回忆下一自己的编程之路,其中也走了不少弯路,后来想一想,哪有不走弯路的,再说了,弯路也绝不会白走,这样想,也就释怀了。既然要写,就写得全面、真实,从我的求学之路开始。希望你坚持看完,必有收获。

我出生在西北的甘肃省的一个小城市,离省城兰州很近,这个城市有一个很有意思的名字,叫做“白银”市,这里的人来自五湖四海,连上海人都有,大多数都是六七时代来这里挖铜矿,搞战备的,还有几家兵工厂,当然了,这些工厂的效率现在都不行了,比如有一个造炮弹的884厂,军队的厂子都有编号,现在造铜构件了,用到高压电力系统上,或者造一些铜工艺品,勉强度日,反正做过贡献的国企,死不了,国家必须要管的,我们这里经常有人聚众抗议,要福利,我们见怪不怪了,还有一个厂子以前是搞化学武器的,自从主要大国(包括美国),都不搞这些了,这些厂子现在全生产民品了,造PVC原料了,可以用来造塑料水管之类的东西。

吹完了我的出生地之后,就言归正传吧,我从小理科就好,文科不好(也许是因为我用理科的思维,学文科了),顶住各种小光环,到了高中,结果高三就不行了,太想成功了,给自己压力了,那时候小,不知道怎么调节。结果在2000年的高考中,数学没有考好,靠着物理和化学成绩好一些,总分还算中等偏上。于是报考了西安电子科技大学,没有敢报电子科技大学(成都的),其实报了,也能上,就这样,去了西安电子科技大学,这学校属于勉强“能上”的学校,是个211,花钱和花精力,勉强值得,毕业之后,还算能给人说出口,我建议大家,比这个学校次的学校,就不要上了,浪费时间和精力,买个证一样混。

在大学里,我学的专业是自动化,大学里的教学方式很不喜欢,灌输式的,节奏又快,喜欢慢慢琢磨问题的我,有些扛不住了,加之,大学的生活和学习很随意,自然就所谓的“堕落”了,总之,不会混大学。大一的时候,我是整个专业的倒数第一,除了体育和开卷的马克思过了,其它全挂,就到了开除的边缘,大概是由于我上大学的时候,交学费了,以前,大学是不交学费的,学校收了学费,就没有开除我。整个本科阶段,同学都在看我的笑话,打听我什么时候开除,有些看不起,我这样的西北人,我抱着这样的原则:宁肯挂新课,补考坚决要过。所以我经常星期一到星期五,在外面网吧包夜玩,星期六星期天去上补考课,确实,我的补课很少有二次补考的,只有一门选修课,补考了两次,在大三的时候,我把所有能报的选修课都选修了,同学都惊讶了。

不过,有一个秘密,我还没有告诉大家,我一直在复习考研的相关科目,就那么四门课,大四第一学期考研的时候,同学们惊讶坏了,考场上的事情,你认为我不行,有什么用。成绩下来了,我是我们班第一名,注意,这时候我们专业分成两个班了,好学生分到一班了,我们这些学习一般的分在二班了,加之,学习好的都保研了,没有考试,所以我才拿了第一,从那天以后,同学看我的眼光都不一样了。本科毕业的时候,我连毕业照都没有去照,我的目标是研究生的毕业照。

终于上了研究生,先说一说课业,没有逃过课,压力很大,学校选了几个重要的课,称之为“核心课程”(名字有点忘了,大概就是这个意思),核心课程加权平均成绩必须过80分,那个英语,谁敢说能过80分,还要发表核心期刊的论文,不过这些都混过去,只有体育挂了,为了玩电脑。

说一说,编程方面的学习吧,本科的时候,接触编程不多,自动化专业是个万能专业,编程相关专业课也学了,数据库,数据结构,C语言,离散数学等,但是都是以考试为目的,后来想一想,还是有作用的。报考研究生的时候,由于那一年,单片机很火,计算机专业和通讯专业也很好,我没有敢报,我报的专业是机械制造及其自动化这样的专业,导师当时害怕招不满人,还专门到我们的教室里宣讲了,说了一下他们的项目,他们用的是JAVA,那时间JAVA正在如日中天,用的还是JDK1.4,听得我神秘坏了,这样就报了导师的研究生,以后可以用JAVA了,高兴坏了。

研究生的第一学期,选课的时候,我选了陈平老师的《面向对象技术》这门课,陈平老师是最早搞面向对象研究的一批人,享受国务院特殊津贴。期末交了一个作业,老师说,有什么想法写一写,这次作业对我今后的编程之路影响很大,我从哲学的角度论述了“面向对象思想”,大致是:人们认识世界,总有这样的思维习惯,世界由一个个具有明显边界的对象组成,对象之间存在普遍联系(或者关系),并列举了一些现实的例子说明了,那几种对象与对象之间的基本关系。最后总结到:“面向对象思想”是哲学,完全是人为制造的概念,就是为了符合人类思维习惯,是最简单,最朴素的东西。没有想到,该课程得到了几乎满分的成绩,98分。也许,你觉得这些不算什么,但是这些道理,都是自己悟出来的,体会很深刻。

后来在参加导师的项目中,我总是从大的概念上,首先理解各种“人为制造的概念”,技术细节,在需要的时候,查资料,任何概念的出现,都有其理由,注重将IDE与语言分开理解。以极快的速度,学习了C++语言,JAVA语言,C#语言,书好很重要,必须浅显易懂,术语少,每种语言用不了一周时间,还练习了很多排序算法,搞了复杂的数据结构,其实掌握这些没有用多少时间。甚至还看了编译原理的书,能自己设计语言,能做出正则表达式的编译器,编译原理没有完全学通,至少没有做出过完整的编译器,但是学习过程对我影响很大。

研究生要毕业了,自认为自己很厉害,本来可以找到很好的工作的,比如找个研究所,事业单位呆着,但是翅膀也硬了,准备上社会大干一场了,抱着挣大钱的目的,冲到了社会。在不断的面试过程中,也总结了面试技巧,本来没有多少项目经验,把过去做过的小东西,也吹成项目经验。遇到不会的面试题,就用伪代码,见了面试官,遇到不会的,就讲大道理,说一说框架、MVC模型的大概念,然后来一句:技术细节,平时都是查资料,以前用过,但是现在忘了,用的时候一查就行了,会不会其实没有什么区别。说实在的,这些话其实没有什么错,只要是真在的程序员,能明白我的意思,绝对有同样的体会。这一招很灵,能堵住大多数面试官的嘴。

好了,开始说一下,我的工作之路吧,也很折腾,但是我还是决心说完整和真实。

最早接触的公司是上海的一家韩企,那是我上学在外实习的事了,当时学校的事情还没有处理完。在学校里待久了,心气很高,要去上海滩,世界上最大的国际化大都市,这个世界上还没有敢看不起上海的人。于是,网上投简历,和这家韩企联系上了,去了上海,才知道,技术员就我一个,让我做网页,当时技术还不行,还用表格布局呢,那韩企也没有什么前途,他们韩国人以为中国很落后,在中国准备大干一场,于是才招了我一个程序员,他们搞的是第三方支付平台,以为中国没有这么先进的东西,其实那时候,不要说支付宝了,早就有很多了,据我所知就有5、6家,在中国,it竞争可不小,连google都抗不住了,你一个小小的韩企,能行吗?抱着学习的目的,干了一个月就跑了,回学校去了。

后来毕业,就去了一家三本大学,在北京,教编程方面的课程,干了一年,不想干了,就跑了。

再后来,跑到长沙,去了一家知名it培训机构,主要教C#,sql server,教学相长,自己也学了不少东西,以后就定格在C#方向了,干了一段时间,就跑了。

再后来,在长沙碰到一个开酒吧的门外汉搞的网络公司,他搞的是网络电话,那东西,相信很多人没有用过,结局是什么,我也没有打听过,相信大家都能猜到,不过这次经历,我有一件事很后悔,老板很赏识我的一个项目,想投资,但是我当时私心太重,想自己搞,其实很多条件并不成熟,自己都养活不了自己,还搞什么公司。现在想一想,应该答应他投资,把自己锻炼一下,毕竟很多想法总是要验证的,也要调整的,何不用他们这些资本家的钱,把这个路验证一下,干好了,本事在自己身上,随时就可以自己单个了,我是不是有些坏。

再后来,去了成都一家民办大学,由于铁哥们在那里上班,期间学习了思科认证培训,虽然不想当网管,但是程序员知道这些低层网络的东西,有很多好处的。民办大学干了一年,也跑了。

大大小小的公司,我混得太多了,可以说是浪迹于各种小公司,大部分情况是,学完了,就跑了,由于数量太多了,以至于我无法表达,在此就不赘述了。我还打算摆过地摊等其它项目,虽然没成功,但是赔的钱可以忽略不计,发现自己还是没有干习惯那些东西,还是搞程序员吧。

很快,我发现我迷茫了,年龄也不小了,我得找一个份正式工作,把婚结了吧,于是我就进了一家国企,干起来我的所谓的本专业——自动化,给人力资源部吹了一番,说自己的自动控制理论多扎实,他们见我教过大学,就收留了我,不用签合同,因为我是所谓的高技术人才,是正式职工,把我当成所谓的中坚力量充斥进去了,想一想,自己也很幸运,但是一想,他们的核心团队,总是要充实一些人进去的吧,干时间长了,就是自己就是主人了,但是那是几十年之后的事情了,单位分了房子,我也娶了老婆,注意这里是4线城市,所以单位才给分房子的。

貌似我的程序员之路结束了,其实不然,所谓的自动控制,也是编程的活,用一种很简单的语言,叫做梯形图语言,是图形化的语言,这种语言简单到什么程度了,连数据结构都没有,没有数组怎么实现算法,所以复杂的东西做不了,但是能应付自动控制需求,因为有以前的编程功底,加之以前锻炼的学习习惯,程序员都要快速学习嘛,很快就掌握了这种“可编程控制器”上用的语言,有时候,自己也很自信,有些东西没有见过,但是打听一下,就给领导吹,自己干过,确实以前的工作经历,给了我很多帮助,学习这些东西就显得很简单,单位的编程规法也是我制定的。加之考研时,认真学习了控制原理,实践中用不了那么多,够应付。现在就是这样的状况。不过大家不要认为自动控制很神秘,很简单,多数情况下,只要会简单的逻辑分析就够了。极少的情况下,会用到一点控制理论,就是那个PID控制,半天时间,你就能搞懂PID控制是什么了,另外还用一点C语言。

我们搞自动控制,有一个好处,就是“等待”的时间很长,订购一些执行机构,比如电动阀,打完电话之后,剩下的时间就是等待。在这样“闲散”的日子里,为了在单位站住脚,我做了一个模拟软件,就是一个普通软件,但是完全模拟了控制系统,界面上有触摸屏,按钮这些东西,用来训练操作人员的。

此外,我还在继续完善以前的东西,准备随时,再次踏上去往一线城市路,看看我的这个项目到底能不能找到投资。总之,我还是相信软件和网络的。
...全文
1125 点赞 收藏 24
写回复
24 条回复

还没有回复,快来抢沙发~

发动态
发帖子
community_281
创建于2021-05-27

7

社区成员

25.9w+

社区内容

社区公告
暂无公告