学历与能力

来源:互联网 发布:unity3d vr与全景 编辑:程序博客网 时间:2024/04/28 19:06
 转载自NP博士实验室:http://conanmusic.spaces.live.com/default.aspx?_c02_owner=1
在我刚涉足互联网开发的时候,还是个不大懂事的小子,我也和现在很多年轻人一样,怀着一颗“火热”的心,认为通过自己的努力,可以做到任何事(解决技术问题),同时,也有着一种对刚刚离开的大学校园的不满和抵触心理。这种情绪在现在一线开发者中似乎很常见,同时也有更多的程序员(尤其是Web开发)并没有念过大学或者非相关专业,他们同样也对学校教育抱有不信任甚至仇视的态度。
 
曾经一段时间,中国的高等教育是社会上广为讨论的话题,尤其热烈地集中在校园内。非常多的学生(包括“好”学生和“差”学生)都以为“在学校里学不到什么玩意”、“学校教的都是过时的”、“老师什么都不会”、“只有实际经验才重要”,这点在学历至上的社招人才标准渐渐向能力为重倾斜后更为突出,太多的学生消极地认为,念大学是为了个文凭,或者为了考研,或者是为了家里……
 
当然,也有很多同学一直快乐地生活在校园环境中,这以在校的优秀学生为主。计算机专业的这些学生一个显著特点就是他们报考这个专业基本不是因为兴趣……
 
相反,在Web开发领域中战斗在第一线的主力人员,大多带有“草根”成分,因为这个行业的理论门槛比较低,适合更多的没有经过相关理论学习但是对软件开发有着浓厚兴趣且动手能力强的人加入,在这个领域里,每天的目标只有一个——实现。
 
这样,程序员中就分化出两批人马,一批是由正规高等学府的相关专业走出来的带有学术气质的本科生、硕士生甚至博士生;一批是各处的爱好者集中起来的实用主义者,这两种人我们暂且称为A和B:
 
A对B说:你什么都不懂
B对A说:你什么都不会
 
这是社会上最基础的两种论调。很多词用来形容刚毕业的大学生:眼高手低、高学历低能力、绣花枕头……,也有不少批评爱好者们基础薄弱理论知识欠缺的,建议都是中肯和有道理的,可是A和B至今仍然吵个不休,一方面是在抢饭碗方面,另一方面是A和B都要证明自己的道路正确(当然叛徒也不少)。
 
以下是我个人假设:
 
我,NP博士,是一个初中毕业生,中专念了一半,出去混工作。
在头一段时间,我因为各种原因很苦恼,学历不够,找不到好工作。但是我有很强的自学能力和动手能力,我爱好软件,喜欢编程,做过网页。一个偶然的机会,我到一家公司做实习,并开始了Web程序编写的工作,虽然开始的工资不高,但是我慢慢通过自己的努力,增强了自己的技术水平,积累了经验,很快成为公司里的技术骨干。之后两年,我去了一家更大更正规的公司,负责了更大型的项目,慢慢的,我的事业走上了牛市,也没有人再去在意我的草根出身,我觉得很高兴,我认为那些念大学的高材生还在街上找工作,他们可差劲得很了,念大学很愚蠢。直到有一天……
 
我,NP博士,名牌大学计算机系硕士生(好像有点矛盾哈……),毕业去找工作。
投了很多份简历,也有不少公司回复,当然少不了面试笔试的机会。可是几次面试下来,我的自信心大受打击,因为我发现在外面公司里和在学校学的完全是两回事。比如在学校里花了大把精力学的软件开发理论,面试的时候没人问,反倒问我一些相当实际的问题,像是如何增加数据库系统负载能力等,这些都是老师没有教过的,我也没有实践过啊。这样几个月过去了,我还是没有找到合适的工作,我很郁闷,看着几个从前的朋友,有的已经混得有房有车有老婆,真个惭愧啊。不过这样一天,一家著名的外企发来了Offer,我通过了他们的考试(其实很简单)可以去上班了,而且收入也不错。开始的时候,总是没什么事,后来跟了几个小项目,用上一些上学的时候课余时间实在无聊了写的几行程序在大脑里留下的浅浅印象做为基础,我慢慢找到了感觉,觉得软件开发也就是这么回事,我觉得自己做得很不错,公司的老总也很器重我,毕竟我是名牌大学的硕士生!直到有一天……
 
× × × × × ×
 
这两个我都遇到了什么问题呢……
 
第一个中专辍学的NP博士,接到了公司一项艰巨的任务:开发搜索引擎。可是由于对这方面的知识所知甚少,开始去翻阅大量资料,开始去跑图书馆(不知道几年没有好好看过书了),终于惊恐地发现——这些资料自己根本看不懂~~尤其涉及到数据统计、排序算法、关系运算、代价分析等理论性极强的内容,满眼只是乱七八糟的数学符号,好像在看天书。精神几近崩溃,几年的辛苦换来的豪迈和自信一扫而空。
 
第二个名牌大学硕士生的NP博士(真别扭),同样接到一项任务:使用有限的有形资源最大程度地优化公司网站的负载能力。由于自己从来没有做过类似工作,上学的时候和在公司之前做的小项目并不太考虑执行效率问题,所以觉得无从入手。且不知效率估算和优化是一项需要丰富经验做为操作基础的工作,这个硕士生在这个问题面前好像一个哑巴对着麦克风——不知道做什么好。
 
× × × × × ×
 
长久以来,我一直都在考虑这样的问题:如何让A和B的优势融合,给这个行业带来一些平衡感和活力。我本人恰好算是融合了A和B的双重身份——受过名牌院系的科班教育,又有十年以上的程序编写时间累积,更有一点我也曾经亲自做过Web开发的一线程序员,所以对问题认识得可能明晰一些。在一段变故之后,我有退下一线的想法,转向做一些细致的、系统的一线程序员基础教学工作。
 
“Revelation”这个词有“启示”的意思,我希望可以通过自己的努力给刚刚入行找不到方向的小孩们一些帮助,认清自己的努力方向:如果想一直在一线开发上做下去,就千万不能忽视基础教育,包括数学、外语、计算机体系理论、软硬件理论等。同时更要注意实际经验的积累,注意学习方法和态度,这样才能成为一个优秀的开发工程师,登上金字塔的顶端。
 
目前的计划是完成一些相对独立的小部分,像“四十二章经”(不是小说里的八本,是真的四十二本)那样做为技术内容。主要分为基础理论和实际开发分析,分别主要针对B和A。目的是使A在工作中遇到问题有法可想,使B在翻阅资料时没有看天书的感觉(集合并交和“合析”符号不仅仅可以用来拼QQ签名),逐渐的消除“什么都不会”和“什么都不懂”的状况发生。
 
如果有可能,我会想办法请一些从事相关行业的朋友,加入一些程序员的日常生活相关内容,比如饮食、作息、心理压力调整等非技术内容,争取做个健康的程序员。
 
《Revelations》需要很多朋友、同行的支持和帮助,以我个人能力和水平根本不可能做到(其实我做学生和做程序员都不很成功,不然也不会跑来卖文了~~),不过我希望在编写它的同时,也能大幅提高笔者的水平,同时给笔者带来成功的乐趣。
 
和我的开源理念一样,《Revelations》无任何经济目的,当然能不能继续也得看我是不是混到吃了上顿没下顿的程度……
 
我相信《Revelations》会成为我的转型标志,也希望我的努力会给一些朋友带来帮助。