⑴ 程序员必备的书籍有哪些
《代码大全》 史蒂夫·迈克康奈尔
《计算机程序的构造和解释》
《C程序设计语言》
程序员思维修炼(修订版)
系统化思维导论
优秀的叛逆者:引领组织变革的力量
《Site Reliability Engineering》
《Refactoring》
《Peopleware》
《编程珠玑》
《修改代码的艺术》by Michael Feathers
《编码:隐匿在计算机软硬件背后的语言》
《程序员健康指南》
⑵ 软考程序员要看哪些书
在学习程序之前,我想大家首先应该对程序员这个行业熟悉一下,更加要对编程的语言以及所涉及到的工具有所了解。因为如何了解这些是很难去给自己一个明确的目标的。
以下是书籍推荐:
《程序员教程》官方教材,建议一定要看,
《程序员考试考点突破、案例分析、实战练习一本通》
内容紧扣考试大纲,通过对历年试题进行科学分析、研究、总结、提炼而成。每章内容分为考点突破、典型试题分析、实战练习、练习题解析四个部分。
《程序员考试考点分析与真题详解(第4版)》
着重对新版的考试大纲内容有重点地进行了细化和深化,是此考试中程序员级别的考试辅导用书,内容涵盖了最新的程序员考试大纲的所有知识点,准备参加考试的人员可通过阅读本书掌握考试大纲规定的知识,把握考试重点和难点,熟悉考试方法、试题形式、试题的深度和广度,以及解答问题的方法和技巧等。
以上三本书是考试要看的,在看书过程中注意梳理知识点,理清各个知识点中的联系,多做真题,考试就没什么问题了,祝考试顺利!
⑶ 程序员打基础必看书籍!
1、《深入理解计算机系统》
从c语言到汇编语言到硬件再到操作系统,写得非常好。是一本能帮助深入理解计算机系统的书。基本上把这本书吃透面试操作系统的大部分问题都不是问题。
2、《算法导论(第三版)》
被很多acmer coder奉为学算法的经典之作,但不太适合初学者,因为它这本书很多内容只提供了伪代码,而没有具体实现。但可以从这本书学数据结构和算法好,因为日后的编程语言对实现而言实际上并没有特别大的障碍,只是适合与不适合的选择罢了,而把想法转换成编程语言才是对算法知识的考验。如果不想太过深入的话可以忽略掉第四部分(高级设计和分析技术)第五部分(高级数据结构)和第七部分(算法问题选编),你会发现书其实比你想象中薄很多噢!
3、《计算机网络:自顶向下方法》
软件学院的计算机网络教材,非常适合初学者,里面将计算机网络从顶层到底层逐章分析了一遍,如果能够结合一些实验来辅助理解会更好,因为里面的讲解比较抽象。
4、《STL源码剖析》
如果你是经常用c++刷算法题的同学,那么一定经常用STL的各种集合, vector, set, stack, queue等等。它们的实现原理,在源码面前,完全没有秘密。
5、《图解HTTP》
日本人着的介绍HTTP协议的书,对理解HTTP协议的一些细节有非常大的帮助,插画也很多,感觉就像看漫画一样,很容易理解的。
6、《TCP/IP详解卷一》
这本书能把枯燥的知识讲得很细致,强烈推荐这本,看完相应章节后大概能够明白为什么TCP/IP要这么设计了。面试的时候经常问到三次握手和四次挥手,还有各种状态的转移, TIME_WAIT的时间为什么是2*MSL······
7、《UNIX网络编程卷一:套接字联网API(第三版)》
中文版快800页,不过我只看了一些章节,这本书也是把TCP/IP的细节讲得很深很深,此外还有非常重要的基本套接字编程,就是写网络程序的时候那些bind, accept, listen, send, receive函数之类的,内容非常多,但是这些是理解多路复用模型所需要掌握的······select/poll/epoll这些系统调用解决了什么问题?事件机制能不能理解?就看这本书的前六章了。
8、《数据库管理系统(原理与设计)》
这个也是web开发中离不开的东西,必须划重点学会的是ER图/SQL语句/存储数据(磁盘|文件|RAID|缓冲池等)/三大范式/索引以及相应的数据结构/事务相关的所有概念,尤其重点学习SQL 。之后学会使用mysql workbench来进行数据库建模/逆向工程生成建表语句/根据SQL生成JAVA实体类等就不赘述了,开发过程中网络谷歌一下就知道啦,然后如果习惯在windows下开发的同学推荐利用navicat这个好东西。
⑷ C程序员需要哪些书籍
算法设计阿软件工程阿面向对象阿数据库阿都应该学学。
⑸ 程序员如何读书
首先弄清楚这本书讲啥
哪些是他讲的重点
哪些是你现在最需要看需要知道的
然后把那些不是重点你不仅需要了解的章节大概的看一下,甚至是看看他的结构框架
然后仔细看你需要知道的东西、重要的东西
遇到有什么不清楚的地方再回头去看(因为有可能前面看得太快记不住)
在这仔细看的过程中免不了要动动手、自己实际操作一下
作为程序员,如果他没有实际动手写写程序哪怕他看再多的书也没有什么用
⑹ 程序员杂志评出的十大it好书
1、人人都是产品经理
互联网产品经理的第一本书。作者苏杰经历丰富,实践出真知,串起产品经理散落在各处的精粹,让人融汇贯通,掌握思维方法和做事方式,人人都是产品经理!
2、正在爆发的营销革命:社会网络营销指南
《程序员》杂志主编刘江如是说“搞技术的人也要懂得营销”,无独有偶,冯大辉亦说“技术本身也需要营销”。在网络如此发达的今天,科技依然引领着营销的变革,作为科技的创建者和使用者,更需要了解点营销学。
3、高效程序员的45个习惯
这是一本对所有程序员开卷有益的好书,是一本融知识、哲理、实践于一体的奇书。用简明、易懂的方式将各种敏捷方法中的有效实践有机地串联成一个整体,深刻、实用,是有志于跻身“优秀程序员”的人员必读之作。
4、演讲之禅:一位技术演讲家的自白
从事IT媒体行业已有10年,参加过无数的IT技术会议,最大的感触就是演讲者们能够把技术讲得很好,但在演讲技巧,和听众互动以及演讲的趣味性上实在是不敢恭维。而这本《演讲之禅,正是专门为“参加(或以后有机会参加)公共演讲的程序员精英们”而精心准备的。作者15年的演讲经验汇集于此书,从多方面介绍如何做好技术演讲,以及如何处理演讲时遇到的突发事件。值得一提的是,书中提到美国前总统克林顿的演讲费用高达每小时15万美金(据媒体报道,他因全球巡回演讲获得巨额收入,而成为近40年来最富裕的美国总统)。
5、结网:互联网产品经理改变世界
称得上是作者8年来培养产品经理新兵的经验集萃,从互联网产品经理的视角,深入剖析了互联网公司的产品运作方式和互联网产品的成功要素。值得一提的是,本书的阅读体验很好,脉络清晰,结构分明,语句简洁,排版考究。
6、程序员职场第一课
这是作者Leo 献给社会新人的生存手册。推荐给刚刚入职或入职一两年的朋友。书中详细阐述了学校里学不到,但是工作中又特别需要的“常识”。希望你的职业之路走得更顺畅。
7、如何管理软件企业
曾经一篇《我的大学10年》轰动IT开发界,如果拿来重读依旧意味深长。从曾经的高校学子到企业老板,如今已经为企业在做咨询,林先生本身的过程就是一部很好的教科书。暂不论成败英雄,林先生的这本《如何管理软件企业》立足本土,值得品味。
8、团队之美
书中汇集了30多位IT资深团队领导的成功与失败经验,揭秘软件工程历史上最引人注目的团队鲜为人知的故事。帮助你从中吸取教训、学到经验,打造成功的团队。
9、观止——微软创建NT和未来的夺命狂奔
一个比尔盖茨都怕的人?他是谁?一本在国外已经出版了15年,为什么到今天才在中国有中文版面市?上市一个月在各大技术社区引起了巨大反响,每一个开发者在感叹Culter的伟大与执着同时,也为自己是一个程序员而感到莫大的荣耀。
10、软件随想录:程序员部落酋长Joel谈软件
这是一本影响全世界数百万程序员的网志书、一位软件行业老兵的真知灼见。作者以诙谐幽默的笔触将自己在软件行业的亲身感悟娓娓道来,观点新颖独特,内容简洁实用。从不同侧面满足了软件开发人员、设计人员、管理人员及从事软件相关工作的人员的学习与工作需要。
⑺ 程序员如何学习
没有捷径,只有靠多写代码
但是要写有用的代码,不能老是写一样的,所以重构项目是一种很提升水平的经历,每隔一两年最好能参与一次这种优化代码的机会。
还有就是多读书,经典代码读物比如《代码大全》,这本书适合5年以内程序员看
⑻ 我想自学程序员需要那些书籍
最基础的学习一些语言:简单的 basic --vb;进一步学习c c++ VC等
要想混饭吃还得好好学习网络编程语言
然后学习数据结构,了解一些汇编
⑼ 程序员需要学些什么
程序员的岗位需求很多,例如大型网络公司、软件开发公司等等都需要程序员。
程序员需要学习:
1、掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
2、理解计算机的组成以及各主要部件的性能指标;
3、掌握操作系统、程序设计语言的基础知识;
4、熟练掌握计算机常用办公软件的基本操作方法;
5、熟练掌握基本数据结构和常用算法;
6、熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
7、熟悉数据库、网络和多媒体的基础知识;
8、掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
9、了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
10、了解信息化、计算机应用的基础知识;
11、正确阅读和理解计算机领域的简单英文资料。
程序员必备技能:
1、熟练开发工具
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。
而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。
其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。
另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
2、熟知数据库
作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。
虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
3、了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。
要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。
Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式。
从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。
至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
4、明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。
XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
5、不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员。
一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能。
如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
6、需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求。
要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
7、模块化思维能力
作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。
这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
就业方向:
1、网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面。
2、企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发。
3、系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。
但所以在刚入门的时候,建议先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
会编程、会计算机语言就能加入互联网发展大潮中,享受数字经济发展的红利,一时间社会上的程序员培训机构都变得格外火爆。
但是现在,专家的数据分析结果告诉你:若想跟上数字经济发展的步伐,光会编程可不行,这个行业现在紧缺高端的、综合型人才。
11月22日下午,清华大学经管学院互联网发展与治理研究中心与领英联合发布《中国经济的数字化转型:人才与就业》,揭示我国数字人才现状与趋势。
报告显示我国数字经济发展面临人才短缺的挑战,但这种短缺主要体现在拥有中高级专业技能数字人才的比例不高,拥有人工智能、智能制造等前沿技术的人才更是少之又少。
与美国、英国、加拿大等国家相比,中国的数字人才储备尚有很大差距。
此外,报告根据对人才需求的数据分析,结果显示我国数字人才的技能需求不再强调单一编程技能,更加看重技术、管理和领导力等综合技能。
2015年,我国从事信息传输、软件和信息技术服务相关工作的人数约350万,但其中中高端人才,特别是前沿技术的数字人才并不多。根据领英中国智库的研究,在人工智能领域,美国的从业者数量在85万人以上,印度15万,英国14万,中国只有5万多人。
报告负责人、清华大学经济管理学院副院长陈煜波教授表示,我国目前在大数据与人工智能领域人才缺口明显。
他解释说,目前中国85%以上的数字人才分布在产品研发类,而深度分析、先进制造、数字营销等职能的人才加起来只有不到5%,存在较大缺口,新兴技术人才和创新型人才培养方面存在滞后和不足。
这份研究报告的基础数据来自领英在中国的3600万个人用户,这些用户毕业于1.5万多所国内外院校,分布在36.4万家企业,拥有超过2.3万项技能。
陈煜波研究团队从中筛选了72万数字人才,多维度提取用户画像并跟踪其职业轨迹,以此预测不同地区的人才流向、雇佣率、受雇主欢迎的技能等人才趋势层面的信息。
陈煜波说,根据数据分析结果,整体来看,虽然编程技能和数据分析技能需求占据主导,然而随着数字产业走向成熟,企业除了强调编程技能,也逐步更加看重人才的技术、管理和领导力等综合技能。
近年间,项目管理、产品运营等“技术+管理”类技能的需求呈现出明显的上升趋势,懂技术、懂管理的人才被认为是“一将难求”。
领英中国代理总裁曾志恒也提醒,如果你有兴趣向数字职能转型,不能仅仅专注于自己的技术能力,沟通和领导力等软性技能将成为你脱颖而出的关键。
陈煜波希望这些研究结果能为教育行业和政府部门提供借鉴。他说,教育行业可根据职位的供需趋势更好地规划人才培养的方向,政府也可更好地了解人才流动方向、技术缺口等,以此制定有针对性的引才策略。
程序员岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
10、《活着》