本人大学读的是计算机专业,四年的大学生涯结束后,我发现,只有很少一部分计算机专业学生毕业后当程序员,而非计算机专业的学生也有的少部分加入了程序员的行列。这就看出,毕业后从事自己专业的人只有很少一部分。其实,在大学期间里,就可以看出,哪部分人会忠诚于自己的专业。
首先,喜欢修电脑的同学大多不是程序员,这个我可能是以偏概全,但是在我身边,常去帮人重装系统、安装软件、PE用得溜到不行,还有的熟读计算机硬件,一瞥眼就知电脑性能,心里暗暗评分,简直就是人形版跑分软件。对于这类同学,我是膜拜的态度,但是,他们大多编程烂透了(误以为修电脑就是学习计算机)。
其次,喜欢打游戏的不是程序员,这个我也可能以偏概全,不过,我身边的同学,打游戏打到天昏地暗的,现在除了知道Java、C、PHP这些著名语言外,其他一律不闻不问,并且,仅仅是知道而已,谈到语言说个不停,Java多么多么有前途,巴拉巴拉的,但是写起代码来,一个钟都写不出个屁。不过,喜欢打游戏的同学大多思维活跃,对很多东西都有独特见解(前提是玩的游戏种类多)。如果让他们策划一款游戏,保证脑洞大过宇宙,玩法十分创新,剧情引人入胜(不过很多都很难实现)。
还有,不喜欢计算机的绝对不是程序员。如果一个计算机学生,目标是考会计的证、考教师的证、考英语的证,每天都在折腾各种各样的证,那么很抱歉,肯定当不了程序员;如果一个计算机学生,上课从来不听,又从来不自学,那么很抱歉,肯定当不了程序员;如果一个计算机学生,上网看到无人汽车、Andromeda OS、云计算、SWIFT、H5、新品发布会等文章没有下意识点进去看,那么很抱歉,肯定当不了程序员;如果一个计算机学生,不去跟人争论“PHP跟JAVA谁更好”,争论结束后留下一句“没有最好的语言,只有更烂的程序员”的时候,那么很抱歉,肯定当不了程序员。。。
以上所说的,还不能作为区分程序员和非程序员的关键,因为人是多元化的,编程大神也有沉迷游戏的、硬件大神也有做人工智能的,那么,最简单区别程序员和非程序员的方式是什么?数据结构的掌握水平?有做软件的经验?每天没事就在扫描网络上有漏洞的电脑准备黑其密码?不不不,没有这么复杂,其实很简单,看这个同学的数据库掌握得怎样。
换句话说,数据库是程序员和非程序员的分水岭。
在如今数据量大面积增长的时代,用数据库来高效存取数据已必不可少,几乎所有程序员都会使用SQL来操作数据库、使用代码来组合SQL语句。所以我说数据库是程序员和非程序员的分水岭,掌握了数据库,相当于成为了半个程序员。因为数据库比较符合人类的思维模式,说到“数据库”这个词连小孩子都知道是存数据的东西,而且每个数据库都有直观使用的界面,入门简单、容易理解,学会数据库后再学习相应的计算机语言,就很容易写出一个基于数据库的软件。学会数据库后,再理解计算机“内存”这个概念也轻松许多,理解了内存再理解指针就自然而然的事情。相反的,传统的计算机学习体系是先学习C语言、数据结构、操作系统后再学习数据库、计算机网络、软件开发等等,这就导致了学生在学习的过程中容易产生枯燥、厌烦的心理,甚至讨厌计算机,那还谈何学习计算机。
相比于语言、理论、考试,学习数据库简直是小菜一碟,为什么其他专业的学生毕业后能当程序员,而且不比专业的差,就是因为他们大学期间也有计算机的课程(没有特别特别理论的内容),而且肯定有学过Access,有些还学过Sql server,这意味着,他们是从数据库入门编程的,而我们是从C语言入门编程的。两者对比,前者更加容易勾起有意向学习计算机的学生去学习实用编程,而后者还在理论海洋中苦苦挣扎。这就不难解释,为什么计算机专业的学生在逃离编程,而非计算机学生想挤进编程这个这个行业。
以上是我个人的小小看法,难免有错误之处(本人目光狭窄),在这里向大家请教。