计算机专业难在哪里?
最难的是,你根本不知道,你学到的那些理论、技术,在现实中能用得上有多大程度。 比如你最喜欢的编程语言java,你在学校学的那些知识,在公司里用得到有多少呢? 大部分公司不会去专门学习最新的技术,毕竟学习了新技术就要引入新的开发流程、维护成本也更高,除非这个新技术已经成熟到广泛使用的地步了。 所以你可能会发现,你去应聘的时候,跟面试官吹嘘你多么熟悉spring、hibernate这些框架,可对方一听到你只是学过,并没有实际项目经验,直接就拒绝你了;而你同样去应聘测试一职,因为测试要求你必须熟悉这些框架,而框架本身的灵活性让测试人员很头疼,所以看到你有一定的基础和经验,反而面试通过的几率更大!
这就是现实,你学的东西不一定能用得上,但你肯定能找得到用到相关知识的方向。 同样,你在学校里学习的那些算法、数据结构等,可能在以后的工作中也用不上。不过不用担心,因为公司里没有几个人会去深究最复杂的最优排序问题,也没人会去关心你的hash表用了几重循环散列,更不会有人去深究二叉树哪种实现更省空间等等。只要你能把一些通用的算法框架和基本的数据结构搞明白,就已经足够了。因为在实际的开发工作中,根本不会涉及这么深入的知识。
当然如果真有个别情况需要用到这些知识,你可以很容易地通过各种渠道学到(买一本不错的书籍或者下载些视频课件都行),而且运用起来也不会有多大的难度。
计算机的专业设置本身就具有一定的不实用性和盲目性,很多课程本来就是为了满足“学科体系完整”而设立的。有些甚至设置了完全不相关的方向(比如我见过的有计算机科学与技术,还有信息工程、智能科学与技术等等),而事实上这些方向基本上没多少联系,或者说的再直接点,就是鸡肋。但是没办法,为了设立齐全,就必须这样。 因为是作为一门专门的研究学科来设置的,所以对于每一个领域,都必须得深入地去研究,不能像其他的应用学科那样广博而不精。所以从这方面来说,计算机专业的知识其实是很实用的,只不过你可能用不到罢了。