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

这两天登录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.劳动改变生活,知识改变命运。不因为自己起点低而放弃,不因为自己起点高而骄纵。人生是一点点攒出来的,或者说是坚持出来的。


  • 177
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 163
    评论
天津理工大学的J2EE推荐选吗是相对而言的。J2EE是Java平台的企业级应用开发技术,它包括了许多重要的组件和技术,如Servlet、JSP、EJB等。天津理工大学作为中国的一所知名高校,其在计算机科与技术领域的教育与研究有一定的实力和声誉,其J2EE课程设置和教质量也相对较高。 选择J2EE课程有几个方面的考虑。首先,如果你有兴趣并有计划从事企业级Java开发,那么习J2EE是非常有必要的。它是目前非常流行和广泛应用的技术栈,掌握J2EE技术可以为你今后的职业发展提供更多机会。其次,天津理工大学的J2EE课程设置相对完善,涵盖了J2EE的核心概念和常用技术,如Servlet、JSP、Hibernate等,习内容全面且有深度。最后,校的师资力量较强,教师对于J2EE技术的掌握和应用经验较为丰富,能够提供有效的教指导和帮助。 然而,要注意的是,选择习J2EE需要一定的计算机基础知识,如Java编程基础、数据库等。同时,J2EE技术的习也需要较强的动手能力和实践经验。因此,在选择习J2EE课程前,需自我评估自己的兴趣和适应能力,确保能够全程参与并掌握相关技术。 综上所述,如果你有兴趣从事企业级Java开发,对J2EE技术感兴趣且有一定的计算机基础知识,选择天津理工大学的J2EE课程是比较不错的选择。这将为你的职业发展提供更多的机会和优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 163
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值