大学杂念集 –关于学习和技术程序员
大学常思,极少为文,杂念闭胸,不舒不顺畅。诸君不喜勿扰。算法
学习,固然咱们先说说学习学校的课程,大一一年下来,课程很多,学得却是很差不坏。不喜这部分的直接到第四段。大学咱们经常会感受学校开的一些课程用处不大,诸如微积分,线性代数,离散数学,数学实验之类的,只为去谋求个不挂科,学霸们则为了绩点而拼搏。我也同样,并不把这些课程放在心上,只是平时水水学,临考前突击。而事实上,这些课程是很是有用的,只是学校老师基本上不会告诉你这有什么用,因而咱们便陷入了枯燥课程的×××大海。编程
关于这些课程,我根本谈不上什么造诣,不过是一个忐忐忑忑完成了课程的学生,可是我知道在计算机中,数学是计算的根本,在计算机中有不少研究领域须要数学的支持,毫无疑问的是,计算机科学是在数学的土地上生长起来的,这一方面你们能够参看《数学之美》,你大概就会了解数学和计算机的关系。服务器
另外一方面,matlab有什么用?我在上学期开学以后也有过一样的疑问,又由于对老师不甚感冒,因而每次上课就一水而过。在接触到Machine Learning之后,我才知道它的做用。由于其庞大的数学计算库,应用级别的算法固然不会只需algorithm.h或者math.h里面的函数那么简单,固然matlab或者octave也极少单独用来制做可发布的软件,更多地是用来展现一个模型,计算该模型是否有效,若是你要再C或者其余语言中实现这些模型,你会感受到十分地痛苦。同时matlab和octave提供了到C或者其余语言的接口,在验证了模型以后,咱们就能够实际化程序了。固然这只是对于咱们,对于其余专业的同窗,matlab有更多的做用,在此不赘述。数据结构
其实学校里的课程并非我想说的重点,学校能教多少?若是只是按照学校的标准完成学业,那这个大学算是读废了。我是软件工程,对于所谓的“卓越工程师计划”我并不彻底感冒,只是国家缺乏这样的人才,因而学校试图用模子把你培养成工程师,若是你只是老老实实地完成规定的学业,bingo,工程师一号。因此,咱们得谈谈自学,固然这和咱们的技术也是息息相关的,大学十分看重自学,由于不少人把应该上课学的放在了自学时段:)看过一篇文章,有一句话说是“人类社会实在太复杂了——一我的的价值并非那么容易就能体现出来的。并且咱们很难去判别一我的的价值”,遗憾的是,咱们也没有一个特定的标准去断定一我的的技术,虽然说是计算机技术,可是也分许多门类,可能一些人擅长这个,一些人擅长其余。我只是谈谈个人看法。咱们应该自学什么?个人答案是应该学在职业学校学不到的!架构
我并非反对你们去追求流行的技术,毕竟咱们得紧跟时代,可是要知道你随便报个学校班就能够学到这些东西,并且基本没有任何基础要求,一些学校一开始就是C++,JAVA,而后各类Android,IOS开发。说实话,我感受没用,练手还能够,若是你只接触这些,很快就可能被抛弃。信息时代变化之快超出想象,你能100%预测之后的技术潮流吗,你能保证如今火热的移动APP开发能火到你工做吗?因此咱们必须接触随着时间变迁而愈加经典的东西:数据结构与算法、计算机系统及原理等等看似没法展现的东西。真正有用的东西是学过以后很难展现,但你知道它已经成为你的一部分,会伴你走过你的技术生涯。数据结构和算法
数据结构和算法,很遗憾并非你手上薄薄的课本能讲得完的,也极少有人能把这条路学得通,课本上的知识,根据个人理解,不过只是给你们描绘了一下大海的样子,你若是肯定想要探索这片大海,你得作好读研,读博的准备。数学可能更多地在这方面有所展现。由于这方面实在是牛人辈出,作ACM的也大有人在,实在不敢在此班门弄斧。可是咱们必须知道的是,数据结构与算法是最好的语言,而C/C++/JAVA/C#……不过只是工具罢了,把编程技术比做枪,那编程语言不过只是枪托,重要的火力系统是数据结构与算法。编程语言
接下来是计算机基础,你说咱们为何还去了解计算机系统?这大概是不少人的想法,咱们连枪都有了,还缺什么?要以德服人的话,咱们是否是还缺乏足够的修养?对,看似底层的东西我认为就是一个程序员的自我修养,你可能知道有一本书叫作《程序员的自我修养》,遗憾的是他只讲了关于程序的连接,编译等知识,我的认为能够出成一个系列,好好讲讲系统,讲讲汇编。看起来漂亮的建筑,没有基础,也无非只是空中阁楼,咱们的知识体系也同样,你说你能够作个网站,写个应用,可是问你服务器的架构,应用底层如何交流信息?你殊不知道,毫无疑问,你创建了空中阁楼,你不过是一个知道怎么贴好瓷砖的建筑工,殊不知道建筑怎么设计,水泥和泥沙如何调配。你使用的不过是其余人为你调好的水泥(底层架构),作好的瓷砖(SDK),贴好了一个建筑,而后说:看,那是我建的建筑。固然,你若是决心作一个UI设计师,也无可厚非,UI设计跟多地与人的心理,与美打交道,并不适用于咱们谈论的技术。ide
最后咱们来谈谈心态,这是我思考了好久的东西。首先,先哲告诉咱们应该谦逊,对人对物对技术都同样,固然我知道这是很难的事,坚持本身,不承认他人几乎是计算机技术领域的流行趋势,你大概能够从各大语言之争中以窥端倪,吵得是不可开交。现实中我也不止一次地听到有人说诸如“360太垃圾了”,“微软比苹果2多了”的话,固然,若是你是一个消费者,我并不必定承认你,但我必定双手支持你的判断。由于消费者是上帝,你能够俯视这些公司,但做为一个从事这方面的将来的技术人员,请保持谦逊,360比你牛的人大有人在,微软更是没必要说,在你扪心自问能在技术上俯视这些公司以前,请不要说这种傻了吧唧的话来体现你特立独行的风格。函数
另外一方面,技术在于坚持,选择一条路,在有正确的判断后坚持下去,这大概并非成功的捷径,但总会比绕路来得快,技术上,求深不求广。固然在这以前,你可能会试图去了解不少东西来找出最适合本身的路。祝你走上康庄大道。