网站首页 > 技术文章 正文
给自己定个目标,每年要至少新增两本书。
1、编程基础
《C++ Primer》
《C++编程思想》
《代码大全》
《Clean Code》
《深入理解C++对象模型》
《大规模C++程序设计》
《Effective C++》
2、LINUX基础
《鸟哥的linux私房菜》
《UNIX环境高级编程》
《深入剖析Linux设备与驱动程序》
《Linux kernel development》
3、算法和数据结构
《算法导论》
leetcode刷题
4、计算机基础
《深入理解计算机系统》
《编译原理》
5、设计模式
《设计模式:可复用面向对象软件的基础》
《Head First设计模式》
6、Android开发
《老罗的android之旅》
此外还需掌握
一、网络基础
现在的信息世界已经离不开网络,人们的生活也离不开网络,这一点也不夸张,是网络了实现了信息互联,打破了时间和空间的限制,在整个因特网上连接着数以万计的计算机,那么对于程序员来说网络基础知识的修炼必不可少。
网络的物理基础
要构成一个网络,我们需要什么,是怎么做的,有哪些设备支持,交换机,路由器,网线,局域网、广域网、IP地址、DNS服务器等等,这些虽然跟具体工作可能关系不大,但是了解它们有助于你理解网络的工作方式,理解信息是如何互联的。
网络协议
这部分内容对于程序员来说就非常重要了,因为我们编写的程序要实现网络通信,都是要按照通信协议来,深入了解协议,能够帮助你快速优化程序和判断问题,以下几个协议是必须要吃透的:
TCP/IP 协议
UDP协议
HTTP 协议
FTP协议
另外对于OSI 7层网络模型也要熟悉。这些东西可以说是整个网络通信的基石,万变不离其中,也是很多大厂在面试的时候的必考知识。
二、操作系统基础
现代计算机的操作系统大家熟知的是windows和linux,操作系统本质上为用户提供了一个与计算机更容易去交互的人机接口,在很大程度上屏蔽了计算机底层的复杂性,使得普通人都可以顺利的用计算机来执行任务,并且提供了一系列的编程接口方面人们对计算机的应用功能进行扩展,可以说非常的了不起。
作为一个优秀的程序员,对于操作系统的原理应该做到非常熟悉,比如操作系统的启动过程,应用程序的加载过程,用户模式、内核模式、进程和线程等等,
windows的话,推荐大家看《windows核心编程》
linux推荐看《Linux内核设计与实现》、《深入理解Linux内核》
这些书都适合反复阅读,第一遍没有看懂没关系,要结合工作内容,工作经验再去反复理解,终将有所收获。
三、数据结构和算法
程序 = 数据结构+算法,可想这两个东西在编程领域的重要性质,也是每个优秀的程序员必须要掌握的东西。
现在确实有很多封装好的算法库和数据结构,所以很多人停在了会用的阶段,对于背后的原理并不清楚,我们不重复造轮子但是必须要有造轮子的能力,因为你很可能遇到没有适合你的轮子,这也是为什么很多大厂面试都要考算法和数据结构的原因,它能看出一个人解决问题的思维模式,而不是应用工具的能力。
常用的数据结构:
数组、链表、栈和队列、树、图、哈希表
这些结构就是各种高级数据结构的实现基础,也是算法的实现基础,务必要熟悉和掌握
常用的算法:
排序算法:
1.冒泡排序
2.选择排序
3.插入排序
4.快速排序
查找算法:
1.折半查找
2.倒排索引
3.二叉树查找
4.散列表查找
以上就是我认为一个优秀的程序员应该努力和花时间去修炼的内功心法,这些内功和心法才是你真正的核心竞争力所在,有了这些内功,那么你练起外功来也会感觉相当的容易,最重要的是你能解决别人解决不了的问题。
当然书上说来终觉浅,欲知此事要躬行,积累的过程就两个字:坚持!!!!!
- 上一篇: 超级适合小白!学Java必读书籍,强烈推荐
- 下一篇: C语言程序设计100例[21-40]
猜你喜欢
- 2025-06-10 超级适合小白!学Java必读书籍,强烈推荐
- 2025-06-10 为什么Java、Python会成为程序员最害怕的编程语言?
- 最近发表
- 标签列表
-
- axure 注册码 (25)
- exploit db (21)
- mutex_lock (30)
- oracleclient (27)
- think in java (14)
- javascript权威指南 (19)
- nfs (25)
- componentart (17)
- yii框架 (14)
- springbatch (28)
- oracle数据库备份 (25)
- iptables (21)
- 自动化单元测试 (18)
- python编写软件 (14)
- dir (26)
- connectionstring属性尚未初始化 (23)
- output (32)
- panel滚动条 (28)
- centos 5 4 (23)
- sql学习 (33)
- dfn (14)
- http error 503 (21)
- pop3服务器 (18)
- 图表组件 (17)
- android退出应用 (21)