《计算机光盘软件与应用》
什么是基础?
基础就是大学上的那几门课程《计算机组成原理》、《计算机网络》、《数据结构》、《操作系统》等等。
如果觉得基础知识你已经掌握的很好了,可以再看看四门专业课的延生课程。
看完《计算机组成原理》可以看《深入理解计算机系统》,这本书对理解程序在计算机中运行特别有帮助。
看完《计算机网络》可以看《TCP/IP详解》第一卷,工作之后你会发现后台编程,很多东西涉及到了各种网络协议。
看了《数据结构》建议看看《算法导论》,这本书得细读,它不会教你如何写正确的代码,里面有很多数学推导,它会教你如何写更快更优雅的代码。
视野更加重要
书不是读得越多越好,视野更加重要。虽然就算掌握了上面几本书,也不能算得上一个优秀的后端程序员。
无论从事什么工作一个人的视野很重要,视野可以细化到见识和素养。
就拿《深入理解Linux内核》这本书来说,当初学习这本书的时候,并不知道学好了这本书对于我将来会有多大的帮助,不能够体会到程序最终都要落到操作系统中,
操作系统的优化,哪怕只是调整一个简单地IO调度算法就会对上层应用性能产生巨大变化,
如果我提前知道了Linux系统的诸多用处,那么当初学习的时候我也会更加有针对性,对操作系统理解得更加深入。
选好方向。不建议以语言类型来界定程序员种类,如今各种语言编译器已经做得足够好,语言的差别已经越来越小,针对不同的应用场景使用不同的语言更加合理。
公司招聘贴中常见的几种职位有系统工程师、基础平台工程师、应用开发工程师、数据挖掘工程师、运维工程师等。对于不同的职位需要掌握的技术栈大不相同。
系统工程师需要在操作系统有足够了解,基础平台工程师需要对分布式系统足够熟悉,应用工程师需要对公司业务足够了解,最好有相关开发经验,
数据挖掘方向是今年比较火的方向,每个公司对这个职位的需求也不一样,大体有三种,
一种数据挖掘工程师是从分布式系统领域转行过来的如hadoop, spark等,也有是从DBA转过来的,或者从算法工程师转行过来。
运维工程师需要对操作系统、网络、分布式等有一定的了解,不要求算法多牛,但是对系统的整体认识必须好。
选好方向,掌握好计算机基础之后,在该方向下多留心,扩大自己在该方向上的视野,对找工作帮助很大。
总之,好的程序员不是等式能够由不同技能相加而成,所谓熟能生巧,多review别人代码,多留心周围好的理论实践,多参与其中,兴趣是最好的老师。