程序猿年薪3w到30w的必读书单

简介: 程序猿年薪3w到30w的必读书单

前言


入行9年多了,一路走来也翻过各路各样的货,总觉得学习不够系统结构化,好些经典干货不够深入,因此结合自身经历和网上资料整理此针对java软件工程师(偏互联网)的必读书单,希望对您有所帮助,并在学习的路上少走弯路或陷入误区。


从业界看优秀的程序员应具备两方面的能力:


1.良好的程序设计能力:


掌握常用的数据结构和算法(如链表,栈,堆,队列,排序和散列);


理解计算机科学的核心概念(如计算机系统结构、操作系统、编译原理和计算机网络);


熟悉互联网网络和服务器原理(如TCP/UDP,http)


熟悉至少两门以上编程语言(例如Java、Python、php);


2.专业的软件开发素养:


具备良好的编程思想或思维(即是软件工程思想),如OOA、OOD、OOP、结构化思维等


具备良好的编程实践,能够编写可测试,可扩展,可维护的代码;


理解把握需求,按时按质交付用户所需要的产品;


跟其它能力一样,程序设计和软件开发素养的能力源自书本知识和项目经验。项目经验因人而异(在不同领域的程序员项目经验的差异会比较大),但书本知识是相通的,尤其是经典书籍不仅能够拓宽程序员的视野且能提高成长速度,经典书籍经得住时间的考验,可反复读,技术框架有很多,我们不要陷入追求数量的误区,要追求质量,同类型的技术框架深入学习一种即可,比如mvc框架只需深入研究spring mvc或其他任一种即可,其他都是相通的,因此学习书本知识是一场没有终点的马拉松比赛,而阅读书籍的顺序一般从入门—经典—延伸的学习过程,此书单正是按照此规律并结合程序员修炼过程而制定。


一.入门书籍


程序设计:


1.基础理论:《编码:隐匿在计算机软硬件背后的语言》(挑读)


2.编程语言:


JavaScript:《JavaScript DOM编程艺术(第2版)》、至少一js框架如jquery《jQuery开发从入门到精通》(细读)


Java:《Java核心技术》(第9版)(细读)


Python:《Python基础教程(第二版)》(细读)


3.编程语言理论:《编程语言实现模式》(细读)


4.程序设计:《程序设计方法》(细读)


5.算法与数据结构:《算法(第4版)》(略读)


6.程序调试:《调试九法——软硬件错误的排查之道》(细读)


7.网络及系统:《http权威指南》、《鸟哥的Linux私房菜基础学习篇(第三版)》(挑读)


8.数据库:《数据库原理(第5版)》(挑读)


软件开发:


1.编程实践:《程序设计实践》(细读)


2.面向对象程序设计:《Head First设计模式》(细读)


3.重构:《重构》(挑读)


4.软件测试:《How to Break Software》(挑读)


5.专业开发:《程序员修炼之道:从小工到专家》(细读)


6.网络及系统:《TCP/IP入门经典(第5版)》(挑读)


7.数据库:《SQL入门经典(第5版)》(细读)


8.互联网:《拆掉互联网那堵墙》(略读)


二.经典(进阶)书籍


程序设计:


1.基础理论:《深入理解计算机系统(第2版)》(细读)


2.编程语言:


Java:《Effective Java(第2版)》、《深入理解Java虚拟机 JVM高级特性与最佳实践》(细读)


JavaScript:《JavaScript语言精粹》(细读)


Python:《Python参考手册(第4版)》(细读)


3.编程语言理论:《程序设计语言——实践之路》、《java编程思想 第4版》(第3版)(挑读)


4.程序设计:《计算机程序的构造与解释(第2版)》(挑读)


5.算法与数据结构:《编程珠玑(第2版)》(略读)


6.程序调试:《调试九法——软硬件错误的排查之道》(挑读)


7.网络及系统:《网络安全基础:应用与标准(第5版)》(挑读)


8.数据库:《数据库设计指南-60个设计技巧》(挑读)


软件开发:


1.编程实践:《代码大全(第2版)》(细读)


2.面向对象程序设计:《设计模式》(细读)


3.重构:《修改代码的艺术》(细读)


4.软件测试:《xUnit Test Patterns》(略读)


5.专业开发:《程序员的思维修炼:开发认知潜能的九堂课》、《程序员职业素养》(挑读)


6.网络及系统:《深入理解linux内核(第三版)》(挑读)


7.数据库:《高可用MySQL:构建健壮的数据中心》(略读)


8.互联网:《大型网站技术架构:核心原理与案例分析》《大规模Web服务开发技术》《大数据时代》(挑读)


三.延伸(个人成长)


1.职业规划:《软件开发者路线图》(挑读)


2.工作思维方式:《如何把事情做到最好》(挑读)


3.求职面试:《金领简历:敲开苹果微软谷歌的大门》、《程序员面试金典》(第5版)(挑读)


4.自我管理:《德鲁克---自我管理》(挑读)


学而不思则罔,思而不学则殆,


如果以上书单你能全部读完,年薪3w到30w指日可待。点击“电子书 ”可下载书单对应的电子书籍。

————————————————

文/老猿,写代码写诗写职场的程序猿大叔,转载此文请联系老猿。


相关文章
|
存储 安全 机器人
如何下载阿里云视频点播数据
如何下载阿里云视频点播(VOD)数据
909 0
|
小程序 JavaScript 前端开发
微信小程序 |从零实现酷炫纸质翻页效果
微信小程序 |从零实现酷炫纸质翻页效果
3045 0
微信小程序 |从零实现酷炫纸质翻页效果
|
8月前
|
数据可视化 图形学 UED
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
226 2
|
11月前
|
机器学习/深度学习 数据采集 人工智能
TeleAI 星辰语义大模型全尺寸开源,function call能力突出
星辰语义大模型TeleChat2是由中国电信人工智能研究院(TeleAI)研发训练的大语言模型。今年9月,TeleAI 正式发布并开源了首个基于全国产化万卡集群和国产深度学习框架训练的千亿参数大模型 TeleChat2-115B ,近日又进一步开源了 TeleChat2-3B、7B和35B,以适配不同场景的应用需求。
662 9
TeleAI 星辰语义大模型全尺寸开源,function call能力突出
|
Apache 数据安全/隐私保护
HAProxy的高级配置选项-ACL篇之基于策略的访问控制
这篇文章介绍了HAProxy的高级配置选项,特别是如何使用ACL(访问控制列表)进行基于策略的访问控制,通过实战案例展示了如何配置HAProxy以允许或拒绝来自特定源地址的访问。
301 6
HAProxy的高级配置选项-ACL篇之基于策略的访问控制
|
存储 NoSQL 定位技术
如何在Redis中快速推算两地之间的距离?——Geo篇
Redis 3.2 引入Geo类型,支持地理位置数据存储和计算,如距离和范围查询。使用`GEOADD`将城市经纬度添加至`zset`中,通过`GEOPOS`获取坐标,`GEODIST`计算距离,`GEORADIUS`查找指定范围内的城市。Redis的Geo功能适用于快速的地理位置服务,如附近搜索和配送范围分析。利用`ZSET`操作可增删位置数据,简化地理空间应用开发。
358 0
|
人工智能 IDE 开发工具
如何快速提升编码效率: GitHub Copilot的入门教程(下)
如何快速提升编码效率: GitHub Copilot的入门教程
|
存储 缓存 关系型数据库
数据库查询优化的注意事项
【10月更文挑战第28天】
214 2
|
文件存储 数据安全/隐私保护
用旧手机搭建服务器并实现内网穿透不需要root(本人亲测很多次最简单的一个)
用旧手机搭建服务器并实现内网穿透不需要root(本人亲测很多次最简单的一个)
937 0
|
数据可视化 JavaScript 定位技术
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
地图开发实战案例:高德地图实现区域掩膜的是地图可视化效果
986 0