这两天登录CSDN,下面的广告弹出链接写着《学编程,还有必要上大学吗?》原来是篇针对《收回你的偏见,软件培训机构更能出人才》和《90后高中生学编程月薪过万,刺痛了谁?》讨论的文章。看到大家不遗余力的盖楼,我也想添一把的。后来想想,其实我的经历也可说明一些问题,于是就算了,还是写文章来吐槽吧。

我学编程很早很早,97年的时候,我15岁,读高一,学校参加市里的编程比赛。从各个班级里选拔一些成绩比较好的学生参加。当时我对计算机这个东西的理解仅限于这个名称。我在小班里成绩还可以,老师问我愿意参加不,反正多学东西没坏处,我就参加了。当时我不懂什么叫编程语言,从地摊上随便买了本basic编程的书(我的第一本计算机书籍)。学校为了能考个好成绩,请了个计算机老师。这个老师也是我的计算机启蒙老师。是从华中科技大学请来的(姓唐),是我们教导主任的朋友,从大学本科刚毕业没有多久。培训开始有很多人,没到一个星期就锐减到4个人。当时参赛的编程语言只能是QBasic或turbo pascal,也因为那本书的缘故,全部人当中只有我一个在搞basic。弄得唐sir一边讲完pascal,一边单独给我开小灶讲basic。那时候还是win95的天下,学校的电脑清一色的386,全部没硬盘,靠5.25寸的软驱和dos启动盘工作。唐sir给我做了张启动盘,把QBasic和dos全部放了进去。学习过程是枯燥的,我老是把赋值语句与现实数学里的方程划等号,所以老是理解不了……

学习的内容从基本的QBasic语法直到一些简单的算法设计思想,如分治、贪心、回溯、动态规划、深度广度优先搜索等等。两个月参加了竞赛。考试类似有点像ACM,略带趣味性的题目,自己设计算法编程解决。提交代码后,老师用测试用例测试一下。通过了本题即为正确。实在是丢人,我只得了20分,最低的入门级分数。唐sir安慰我们,本来计算机语言就比较难学,两三个月能把语法滚熟就不错了,再说这个题目,也比较难。考试结束后,唐sir南下深圳去工作了。而他在我心中埋下颗种子在慢慢的发芽。我自学了pascal,一直苦学编程。家里比较穷,没有办法买电脑,我只能剩下一点零花钱到网吧里去编程。别人在玩dos游戏,我在搞basic、pascal。第二年的比赛,只有我一个人参赛,唐sir没能回来做老师。考得还不错,得了市第二名。

高三了,学习压力非常大。家里贫寒,父母也都是文盲,学业上从小长大没帮过什么大忙,他们却给我营造了非常好的学习条件。我只用管学习,什么都不用管。平时做完额外的功课尽然也有不少时间可以去学习编程。高三那年我学习了C语言,用得是turbo C2.0的编程环境。到我高三毕业时,加上我pascal的代码编写量,我保留下来的代码就超过了2万行。同时,自己也顺利的参加了高考,我们是先估分再填写志愿,交了表后,再苦等成绩。考得很不错,但是估分低了30多分,为了第一志愿就能走。写了西北工业大学。当时自己也很膨胀,认为计算机学得很不错了,不用报计算机系了,于是乎报了个貌似很牛叉的“生物医学工程”(这真的改变了我一生,劝填写志愿的朋友们要慎重)。分数下来后,我懊恼不已。连上大学那天,也是略有些不情愿。命运的玩笑总是出人意料,入学体检发现我生病了,只得休学一年。我从西工大校医院出来,哭成泪人。“求求学校,让我念书吧……”,当初的不情愿变成了现在的卑躬屈膝。休学一年,高中同学们都去读大学了,生的病略微有些传染性。只得一个人在家安心养病。三个月后,身体有了很大的起色,于是乎继续学习C/C++编程,同时借了两本高等数学,慢慢学习。

2001年7月,我终于可以开始我的大学生活了。外面的世界很精彩,外面的世界很无奈。班里的男生用现在时下的话说都是“吊丝”,而女生全是“白富美”。青春的懵懂和现实的残酷合成一杯烈酒,喝下后分不清东西。我还好,知道自己穷矮挫,那就踏实点干自己的事情。大学我一共度过了三个暑假,因为穷,三个暑假分别是这样过得:

第一个暑假,写了个关于VESA显卡的驱动,在DOS下,可以将Turbo C 2.0控制显卡的颜色到16M色。顺便从图书管里找了些关于分形几何的书,照着牛人的公式,写了几个曼德尔布罗特集合的图片、谢宾斯基三角形,验证自己的真彩色。虽然分形的代码是连抄带写,不是很理解,通过这个过程感受到数学和编程的不解之缘。整个代码量不超过1万行。

第二个暑假,刚刚学完了数字电路,我就想自己做个闹钟。当时在计算机系认识的几个好友说学校和台湾的凌阳建立了个实验室,推SPCE061A的单片机,我第一次听到这个东西,这个是一颗能支持语音的MCU。于是找到实验室的老师,从他手里买了颗SPCE061A。从电子市场买了个盗版protel99SE,画了个PCB,当时还不知道怎么绘制原理图。就是一根一根线硬那样连上去的。画了近一周,PCB发出去,因为没钱,只能做白板。就是板子没有绿油,阻焊层,那个板子焊接起来讲究水平啊。特别的吃锡。剩下半个月的伙食费,买齐了元件,贴上板子。开始调试了。从老师那里借了个仿真器,开始编程。我的第一个单片机程序,代码量不大,也就是几千行。最终的产品是一个用我声音报时的闹钟,做完后,我把它送给我大学里玩得比较好的女同学。从此,我对单片机程序产生了浓厚的兴趣,同样是计算机,还是这个来得过瘾。

学期结束,我看到了林锐博士写得《高质量C/C++编程》,天哪,真的是得了个0分。文章中讲得问题都是我天天犯得错误。我一下子明白了,理论学习和基础的重要性。自己引以为傲的编程能力只不过是对一个编程工具的熟练度罢了,最终还是需要理论和基础来支撑的。我马上注意到我专业的短板,生物医学工程,天哪,我学得都是些什么?看到西安对“高级程序员”的认定,留在西安工作一年就可以拿到工程师职称。我开始准备考试,把操作系统、编译原理、数据结构等等系统的学习一遍。顺利的拿到了高级程序员证。

第三个暑假,刚刚学完软件基础,其实就去了一两节课,学校规定,高级程序员是不需要参加这种课程的,所以,干脆去干点更无聊的事情。软件基础课要做个大作业,需要写个软件。计入考试成绩。我就做了个图像处理软件,刚好把自己学的数字信号处理的算法全部都应用到其中去了。对FFT、数字滤波、边缘检测有了更深入的认识。一共用VC++6.0写了3万行。

大学毕业了,粗略的统计总的编程量超过10万行C/C++代码。而工资只有可怜的2.5K/月(2005年7月),很大程度上是因为专业不好,厂商不信任我所说的。两年后,我顺利成为一家公司的部门项目经理,管着一个大约十几个人的小部门。兢兢业业做了4年。做了大大小小约十几个嵌入式项目(含硬件)。代码量超过200万 C/C++代码。

回到我们的主题,编程,如果仅仅是掌握一个编程语言,用熟练,并且做一些诸如一些界面应用的开发的话。那真的没有必要去上大学。因为大学还教很多不是编程方面的东西,大学物理、普通化学,我的专业还有人体解剖、生理学……工作中也用不到,也没必要去了解这些知识。

但如果做数据库的系统编程,做操作系统的编程,非事务型软件核心的编程,写个小编译器啊,我想了解一点点其他的知识还是不错的。比如说,我现在做逆变器,那么我有高等数学、电路分析和自动控制的知识,编写这样的控制软件能让我事半功倍。又比如说,我做RTEMS操作系统的学习,如果没有操作系统和一些高等数学、离散数学的知识,里面的代码也不可能看得懂。

所以,厂商宣传的时候,月薪怎么高怎么高,我只觉得是个幌子。真实的内容是,从事什么样的编程可以拿到高薪?如果仅仅是一个语言熟练的人,那家公司肯定是钱太多了。亦或者是,从事的行业是一些比较偏门的,学习的人比较少的紧俏行业。这样的状态也维持不了多长的时间。毕竟我们所处的社会是市场化的,后面有经济规律支配着。再者就是,这几个被培训者都是非常优秀的从业人员,凤毛麟角而已。

不论怎么说,有几点我是赞同的:
1.培训机构这样宣传会误导大批的不明真相的群众;
2.仅学会语言,做一些理论性不强的事务型编程工作,是不需要上大学的;
3.大学你说或不说,她都在那里。中国的大学教育固然有盲区,培训机构是大学的很好的补充,但师傅领进门,学艺在自身。什么地方都有糟粕,也有精华。关键是怎么吸收,怎么决断;

4.不要指望一次的学习,终身可以受益,中国式的暴发户思想很害人。就像郭德纲说得那样:“你能说话,我也能说话,为什么你花钱来听我说话?”“我们这行门槛在门里啊!”对于计算机科学,真的是这样。一个领域的应用可能会因为行业的演变落寞,就像塞班和Android,同样是编程,技术是有差别的,唯有不变的是自己的学习能力,还有背后指导这些技术变迁的理论。

5.劳动改变生活,知识改变命运。不因为自己起点低而放弃,不因为自己起点高而骄纵。人生是一点点攒出来的,或者说是坚持出来的。

关于《学编程,还有必要上大学吗? 》相关推荐

  1. 学计算机是不是必须要买电脑,上大学了,你必须买一部电脑吗?

    有一位今年的大一新生在网上问:上大学了,必须买电脑吗? 对于这个问题,大家的看法没有大的分歧,我们总结整理一下,大致观点如下: 一,根据学生学习的需要情况. 在大学里,有些专业学习时必须用到电脑,类似 ...

  2. 菜鸟学编程,用x86二手本学习嵌入式编程(硬件编程)

    最近一直忙着上课,一直忙着写论文,一直忙着准备考试,但是脑子没有停止思考. 下学是结合个人的学习经历,给希望学习软件的菜鸟一点点帮助. 1:菜鸟也想学编程 大部分同学从大学开始接触软件编程,但其实有一 ...

  3. 小孩多大适合学编程机器人

    小孩多大适合学编程机器人?小孩的学习一直以来都是家长们非常关心和重视的一件事情.很多的家长在培养孩子的学习的时候,在选择学习课程的时候,可以说是非常的用心的.就拿现在很多的家长想要孩子去学习机器人编程 ...

  4. 电路板必须用c语言编程吗,上大学才知道绿油油的板子叫PCB,如何成为一名电子工程师...

    原标题:上大学才知道绿油油的板子叫PCB,如何成为一名电子工程师 本文为十周年征文来稿,活动还在就行中欢迎烧友们拉到文章底部了解参加 对活动有疑问欢迎联系小助手(微信:XM1007721171) 我是 ...

  5. @大学生,送给步入大学生活的你,高速学编程。

    大学生怎样学习编程,学哪个编程语言好? 上大学后学哪门编程语言好?大学生学哪个编程语言好就业?学哪个编程语言工资高?新手如何自学编程?哪个编程语言开发的软件多?大公司都招聘哪些编程语言人才? 相信很多 ...

  6. 大学java怎么算学得好_为什么现在大学里很多计算机系的大学生,学编程的时候总学不好...

    小编发现如今在大学校园里,总是会出现一种现象,就是现在大学里很多计算机系的大学生,学编程的时候总学不好,这到底是为什么呢?因为看不懂?因为不认真?相信很多同学也会感到疑惑,那小编就一起来分析一下吧,同 ...

  7. 大学如何开始学编程?

    大学如何开始学编程? 作为编程初学者每个人一开始都很迷茫不知如何学习,学习也没动力,其实大家都是一样的,但这并不意味着你会成为一个糟糕的 程序猿(媛).学习编程关键是要找到一种合适的语言,坚持学习,学 ...

  8. 3.4 学编程不拘于语言,学语言不限于平台——《逆袭大学》连载

    返回到[全文目录] 目录 3.4 学编程不拘于语言,学语言不限于平台 编程语言 软件和硬件--计算机要作为一个整体看待 语言的江湖 语言不是回事 多平台上的精彩 3.4 学编程不拘于语言,学语言不限于 ...

  9. 学编程会拉低数学成绩,巴黎大学跟踪1500个小学生得出结论

    "怎么培养数学逻辑思维?来点编程试试?" 大概这是很多人的既有认知,毕竟感觉程序员们的数学都挺好的. 巴特,反转来了. 来自巴黎大学的研究人员发现,小学生改用编程课学数学后,对成绩 ...

最新文章

  1. Spring Boot教程(7) – 直观地理解Spring容器
  2. Android之用jadx进行反编译
  3. mc服务器rank称号系统,绝地求生称号系统详解 称号系统奖励有哪些
  4. MapReduce:Shuffle过程详解
  5. Windows update一直停留在正在检查更新,为什么
  6. 最新版vmWare的安装后如何新建虚拟机
  7. 电脑网速正常就是打开网页慢是什么原因啊?
  8. 阿里2018届实习生内推经历
  9. 谷歌浏览器好用的复制粘贴插件_chrome浏览器好用的插件
  10. idea报错:fatal: –author ‘user@mail.com’ is not ‘Name ’ and matches no existing author
  11. ubuntuv20启动界面美化_玩转Reno4手机,ColorOS 7.2界面清爽更贴心_手机通讯
  12. SEO人员,怎么先发制人做好SEO?
  13. Tensor (张量) - 神经网络中的数据结构
  14. 选择在线教育系统时,需要注意哪些事项
  15. 火鸡节日特辑,亚马逊12.99超值午餐配送开始啦
  16. python报错输出到日志_Python下的异常处理及错误日志记录
  17. 个人对构造函数的理解,基于老男孩视频
  18. java练习 车费问题
  19. 《暮色心迹》开机大吉,在上虞上演一场蓄谋已久的爱情对弈
  20. zynq矿机控制板_zynq[1] 矿板helloworld

热门文章

  1. 团队作业——Alpha冲刺 1/12
  2. 使用FCEUX调试器寻找并修改游戏初始物品
  3. 电脑:键盘快捷键的更改(主要以dell笔记本电脑为模拟对象)
  4. 卫星遥感—地块/边界提取相关论文
  5. C语言程序设计现代方法(第二版)十二章课后练习题部分答案
  6. Linux——Vim编辑器三种模式(命令模式、输入模式、末行模式)的基本使用总结
  7. 【阿里云总监课】存储系统设计——NVMe SSD性能影响因素一探究竟
  8. Cubase10自编曲平台,享受音乐带来的快乐!
  9. Access denied for user 'root'@'localhos
  10. 【计算机英语】期末复习笔记