最近公司组织和某大学合作, 面试了四五个推荐过来的学生, 总体来说和大家想象的一样, 连公司基本的要求都达不到. 所以想写写, 这大学里的"程序员"怎么学, 学习哪些知识, 能顺利的找到工作.
先吐槽一下大学的课程吧, 我毕业一轮生肖已经轮完了, 这大学的教学的内容和我当年的学习的内容还是差不多. 不能与时俱进一下吗?
现在学校里大部分还开C语言课, 老师可能还是当年的语调: C语言是基础, 只有学好了C语言才能学好其它的...... 我想说这种思想真的可以改改了, 学习C语言除了让人了解基础的if, else, for之外,别的真的没什么用. 这些基础语法每种语言里都有, 为什么要浪费精力, 放在熟悉C上呢! 学语法, 我更建议使用Javascript入门, 而且将来Javascript绝对会用到的. 实例举证: 现在培训班里还有开C语言课的吗? 没有, 但是往往高中毕业, 上一轮培训班后, 磕磕绊绊的都能上手了, 比大学刚毕业的还好, 真是尴尬...
其它的深层的数据结构(SQL是一定要学好的), 计算机原理(能安装操作系统就够了), VB, C++都可以不学, 或说能过考试就行.
以上教学问题可能没法改变, 学校里开的课要过的还是得过, 毕竟毕业证还是要拿的. 普通高校里想成为硬件大师或软件底层的大师真的不太现实, 再说我们讨论是刚毕业/三线城市/四五千程序员的工作. 也许你要说我大学生不能和培训班比, 好吧, 你是比不过...... 看看多少大学生毕业后又进培训班的.
现在三线城市的软件外包公司和创业公司, 需求最多的几个方向: Web开发, APP开发, 微信小程序开发. 就这些.
这几样中最简单易入门的就是Web开发, 我建议就从这个最简单的入手, Web开发又分前端和后端.
先说后端: 现在大学里大部分有开的Java Web方向的课程, 这个还是不错的. 只是这个课开的不够深入, 离企业的要求还差太远. 往往这些Java方向的学生到公司还要再高强度培训三到六个月时间才能做些基础的工作. 那怎么学才能达到要求呢? 首先要有作品, 作品做出来了, 企业的要求也就能达到了, 必竟企业招实习生也是抱着培养的态度来的.
具体就是: 先去模仿做几个企业的展示型网站, 有后台那种, CMS是自己写的, UI不会设计那就抄. 这就要求你不能只会Java, HTML/CSS/JS这些你都要会一些, 你要了解这些是怎么运行的, 代码要看的懂, 基础的要会写.
独立搞个这样的企业站之后, 下一个作品可以根据自己的喜好来, 可以是个论坛类的(可以仿百度贴吧, 或是微信朋友圈), 也可以是单用户商城, 模仿现在市面的一些开源产品. 如果从校园里出去, 你带上这样两个产品(保证是自己写的, 成熟度七七八八, 就够了, 但对自己写的代码要很熟, 不能自己写的方法都不知道什么意思), 我感觉在面试的时候就能过了.
这个水平想达到, 不认真的学习个一年半载的基本上也是不太可能的. 想走码农这条路, 不想费点脑子, 吃点苦, 还是算了.
再就是.net, 好像大学里也有这门课, Web方向和Winform方向都有涉及, Winform方向需求越来越少还是算了, 而.net web方向不支持Linux, 我觉的这点太致命了, 也不理想. 有这方面偏好的, 也可以学, 必竟还有不少公司使用.net开发.
然后大部分大学里还没开的一门课------PHP, 多少年了, PHP了在学校里的印象好像就是不上档次, 开这个课都是培训班的事?!
我无意比较以上三门语言谁更好, 我只是想说现实, 在外包和创业中, 开发速度绝对是第一位的, 老板要求的是要快, 是要省钱. 在项目初期, 最重要的是先让项目上线, 这种要求下, PHP最有优势! 现在随着PHP各种框架的发展, PHP做一些大型的项目也不是不可以, 协同开发, 规范方面很多年前就不是问题了. 总之吧, 现在PHP在三线城市已经远远超过了一些Java的需求, 有需求工作就不是问题. 所以要走Web开发这条路, PHP还是首选. 学些基本的"原生"PHP之后, 再学一种框架, 国内还是首选ThinkPHP框架. 作品嘛也是搞个CMS, 搞个论坛, 商城之类的OK了.
至于Python, Node.js之类, 还是等到毕业了找到稳定工作了, 解决了生存问题再去考虑吧.
总结: 好找工作的还是两种, Java和PHP, 两者中又PHP更容易一些.
再说前端: 纯Web前端, 是不能独立完成一个项目的, 这点对小企业来说就不太占优势, 属于景上添花但不是必须, 同样刚毕业的后端程序员工作一端时间, 慢慢的也能做这个工作了. 如果再只是写界面不能对接接口的话, 那将来想提薪可能会更困难. 所以如果想做前端, 不能把自己限制在Web前端的界面级别. 最起码要会对接口, Ajax要会, 最好是能用Vue之类的独立的完成前端, 而不是写完Web界面之后交给后端人员去对接数据, 这真的没前途.
广义的前端应该是包括APP和小程序前端, 如果能掌握这些, 那就没问题了. 但是现在大学里基本上应该是没有开这方面的课程的, 最多讲一些Java的安卓方向. 更容易走的一条路是, 学好的Web前端, 向各种APP混合开发方向转, 比仿说React Native(RN), Flutter等, 学习曲线也容易的多, 也可以有人认为RN和Flutter很少公司使用, 学会也可能没用, 还是Java, OC更保险, 这顾虑是对的, 但是让学校里开安卓和iOS课, 真的有点难为学校了, 开安卓课还好, 硬件还行(大部分学校可以也开了这门课), 如果开iOS课, 连电脑都没有. 如果自学这些课的又没有后端人员给写接口. 不太好办. 自己布个Web环境, 写死Json数据吧. 能搭个几十个界面, 互相跳转, 互相传值再说吧. 如果能找到本班有愿意往后端发展的同学, 大家配合着做, 同时锻炼团队合作能力, 那就太好了.
说白了, 面试官要还是项目经验, 刚毕业学生没有项目经验, 那就要给个作品看, 但这个作品不是一堆的Demo, 更不是你都学了一堆课程的名称.
最后, 知道了这些公司需要什么, 还是要靠自学, 靠刻苦努力, 靠内心有强大的兴趣爱好, 我认同一句话, 对程序开发要有爱好, 没有爱好, 只是为了找份工作, 别来入这个门, 很痛苦, 但是有这个爱好, 码农的工作就很开心, 发展个几年, 工资待遇也都不错...