一个刚工作的Java程序员该看哪些书籍

一个刚工作的Java程序员该看哪些书籍,第1张

简单列几本:

《JAVA编程思想》夯实基础。这本书算是Java圣经,但是不适合入门,需要有一定的基础。讲述了JAVA的方方面面。需要花力气去啃。啃明白了你会有豁然开朗的感觉。好的基础是后面学习新技术的基石。《重构》好代码是改出来的。马丁福勒的经典书。一步步的告诉你该怎么重构代码。避免你写出面条代码。《EffectiveJava》避免Java中的坑。Java语言本身有很多坑,本书以条目的方式列出了一条条的建议,帮你避免这些坑。《敏捷软件开发:原则、模式与实践》面向对象原理与模式。另一位马丁大叔的书,面向对象设计原理及设计模式的应用。结合GOF的《设计模式》效果更佳《人件》如何进入心流。偏管理的一本书,与《人月神话》不同,本书可以说是从程序员的角度来讲项目管理,讲外部环境对软件开发的影响。其中很多内容深有体会,可以在工作一段时间后来看《Spring实战》JAVA企业开发事实上的标准。这个算是Java程序员的必备技能之一了,不赘述了。《CodeComplete》中文《代码大全》,翻译很有误导性。这是一本软件构建手册,讲了软件构建的完整流程,也建议工作一段时间后再看

作者:金蝶中间件公司CTO袁红岗

不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。

1 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。

2 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻**也是一个很好的途径。

3 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。

4 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

5 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。

6 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。

7 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一致,那就更加糟糕。

8 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。

下面这个可以参考一下,具体还要看个人的情况。

我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和Java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言„„呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。

1、我的入门是从学习C语言开始的(其实课程是C++),这是我们学校的公共课,我上课比较认真(虽然老师讲得很差,而且一段时间后,我就发现自己的基础掌握比她好,当然理解深度没她好),因此,我认为对于完全没有基础的人而言,听别人讲比较容易入门。当时的教材是学校自己编的,挺烂的。

建议一(以C/C++为例),对于刚想进入编程的人(就是从来都没有接触过编程的人),最好是听课的方式(自己看的话估计要很慢,而且很痛苦),可以找视频或者培训等。C语言推荐入门教材:谭浩强的C语言,最新版是第三版,不过第二版应该也可以了(蓝色的)。说明一下:坚决不同意直接看K&R的《The C programming language》,这本书绝对不是初学者可以看懂的,里面讲语法的并不多,语法都是合在程序里面讲。不过这本书非常好,入门以后一定要看的一本书。

当然可以从C++直接入门,C++之父强烈推荐从C++直接入手。C++推荐入门教材:钱能的C++(红色的,清华大学出版),这本书第一版不是ISO C++,不过比较经典,作者现在也出了第二版了,第二版好像不是太好。国外的最好的入门教材据说是:《Acclerated C++》作者是Koenig和Moo夫妇,非常厉害。他们的著作还有《c陷阱与缺陷》《c++沉思录》。《Acclerated C++》这本入门的书我没有看过,我觉得还是先找本国内的书好好看,看的差不多了,国外的经典书籍随便看就会觉得很有味道,否则你可能会很受打击。入门的书至少要看两三遍(要彻底理解哦 ):)。如果是C++,我建议后面类的部分至少要理解三到五遍。说明一下,c++模板的部分可以先不用看,如果有兴趣的话,等把c++学的差不多了,我觉得可以把模板、STL、泛型编程结合起来学习,这个又是一个很大的工作量了,又得下很大的功夫。所以说,C++博大精深啊。

建议二、学习过程中要结合简单的算法,像冒泡还有类似c语言程序百例这样的小例子做做;更进一步应该做点大一点的项目,最好是控制台程序。或者你已经着手学习win32、MFC或linux,你也可以结合平台做点小的项目。

2、第一阶段是最苦的,接下来相对就知道应该怎么去学习了。这时候假设你已经有了扎实的c++基础。这是你可以选择也应该选择发展方向了,做企业级应用,还是系统开发,嵌入式设计或者游戏开发„„ 那时我其实并没有考虑那么多,因为我不是学计算机的,因此我就把参加一些计算机之类的考试当作学习目标。我当时其实C++语言基础已经很不错了,但是上机实践很少(那时我没有电脑),因此参加省计算机二级,全国计算机三级和全国计算机四级考试,结果上机都没有通过。我很郁闷,二级的时候是我不知道怎么样进那个DOS界面把题目调出来,三级的时候是很快就编好了,也通过运行了,可是成绩出来却不及格,四级的时候是编好了,可能是我那题目比较难,好像用了两次循环,结果那破机器竟然承受不了。后来一乱就毁了(当然主要是上机太少了)。不过我那些上机都没有去补考。二级和三级的时候是自恃水平已经远远超过考试要求了,四级的时候则因为自己已经通过高级程序员考试,觉得补考上机好像没必要。(我高程和四级都是在2003年考的)。

建议三:定位学习方向,并好好学习计算机基础知识。在你还不确定学习方向,或者你还在大学本科期间,那么我认为应该先把计算机的基础知识好好学习一下。我认为计算机必学的基础课程而且要精学——首先是数据结构,其次是 *** 作系统、软件工程,数据库。这四门课不管你将来想从事哪个方向的基本上都会用到。当然,有时间的话,其他基础课都是应该掌握的,离散数学、组成原理、体系结构、网络、编译原理甚至跨学科的。方向是很重要的,因为知识其实是无限的,一个小小的领域就够你研究很久了。本科生可能还没有什么方向的感觉,但是到了研究生你一定要清楚自己到底想要做什么,要往哪个方面发展,不要盲目学,瞎学乱学,否则最后可能看似什么都会,其实什么都不会。

1、《深入理解计算机系统》

从c语言到汇编语言到硬件再到 *** 作系统,写得非常好。是一本能帮助深入理解计算机系统的书。基本上把这本书吃透面试 *** 作系统的大部分问题都不是问题。

2、《算法导论(第三版)》

被很多acmer coder奉为学算法的经典之作,但不太适合初学者,因为它这本书很多内容只提供了伪代码,而没有具体实现。但可以从这本书学数据结构和算法好,因为日后的编程语言对实现而言实际上并没有特别大的障碍,只是适合与不适合的选择罢了,而把想法转换成编程语言才是对算法知识的考验。如果不想太过深入的话可以忽略掉第四部分(高级设计和分析技术)第五部分(高级数据结构)和第七部分(算法问题选编),你会发现书其实比你想象中薄很多噢!

3、《计算机网络:自顶向下方法》

软件学院的计算机网络教材,非常适合初学者,里面将计算机网络从顶层到底层逐章分析了一遍,如果能够结合一些实验来辅助理解会更好,因为里面的讲解比较抽象。

4、《STL源码剖析》

如果你是经常用c++刷算法题的同学,那么一定经常用STL的各种集合, vector, set, stack, queue等等。它们的实现原理,在源码面前,完全没有秘密。

5、《图解>

给你推荐点国外的书籍,因为程序这东西就是从国外传进来的:

一、 科学哲学和管理哲学

1 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition)

2 "系统 化思维导论"(An Introduction to Systems Thinking, Silver Anniversary Edition)

3 "系统设计的一般原理"( General Principles of Systems Design)

4 "质量软件 管理(第1卷)—— 系统思维"(Quality Software Management:Systems Thinking)

5 "成为技术领导者——解决问题的有机方法"(Becoming A Technical Leader:An Organic ProblemSolving Approach)

6 "你的灯亮着吗?-发现问题的真正所在"( Are Your Lights On How to Figure Out What theProblem Really Is)

7 "程序员修炼之道"(The Pragmatic Programmer)

8 "与熊共舞:软件项目风险管理" (Waltzing With Bears: Managing Risk on Software Projects)

9 "第五项修炼: 学习 型组织的艺术与实务"( The Fifth Discipline)

二、 计算机 科学基础

10 "计算机程序设计艺术"(The Art of Computer Programming)

11 "深入理解计算机系统"(Computer Systems A Programmer#039;s Perspective )

12 "算法导论"(Introduction to Algorithms, Second Edition)

13 "数据结构与算法分析 —— C语言描述(原书第2版) "(Data Structure amp; Algorithm Analysisin C, Second Edition)

14 "自动机理论、语言和计算导论(第2版)"(Introduction to Automata Theory, Languages, and Computation(Second Edition))

15 "离散数学 及其应用(原书第四版)"(Discrete Mathematics and Its Applications,Fourth Edition)

16 "编译原理"(Compilers: Principles, Techniques and Tools)

17 "现代 *** 作系统"(Modern Operating System)

18 "计算机网络 (第4版)"(Computer Networks)

19 "数据库系统导论(第7版)"(An Introduction to Database Systems(Seventh Edition))

三、 软件工程思想

20 "人件"(Peopleware : Productive Projects and Teams, 2nd Ed)

21 "人件集 —— 人性化的软件开发"( The Peopleware Papers: Notes on the Human Side of Software)

22 "人月神话"(The Mythical Man-Month)

23 "软件工程 — 实践者的研究方法(原书第5版)"(Software Engineering: A Practitioner

Approach, Fifth Edition)

24 "敏捷软件开发-原则、模式与实践"(Agile Software Development: Principles, Patterns, and Practices)

25 "规划极限编程"(nbsp; Planning Extreme Programming)

26 "RUP导论(原书第3版)"(The Rational Unified Process:An Introduction,Third Edition )

27 "统一软件开发过程"(The Unified Software Development Process)

四、 软件需求

28 "探索需求-设计前的质量"(Exploring Requirements: Quality Before Design)

29 "编写有效用例"(Writing Effective Use Cases )

五、 软件设计和建模

30 "面向对象方法原理与实践"

31 "面向对象软件构造(英文版第2版)"(Object-Oriented Software Construction,Second Edition )

32 "面向对象分析与设计(原书第2版)"(Object-Oriented Analysis and Design with Applications,2E )

33 "UML面向对象设计基础"(Fundamentals of Object-Oriented Design in UML)

34 "UML精粹 —— 标准对象建模语言简明指南(第2版)"(UML Distilled: A Brief Guide to the

Standard Object Modeling Language (2nd Edition))

35 "UML和模式应用(原书第2版)"(Applying UML and Patterns:An Introduction to Object-

Oriented Analysis and Design and the Unified Process,Second Edition )

36 "设计模式精解"(Design Patterns Explained)

37 "设计模式:可复用面向对象软件的基础"(nbsp; Design Patterns:Elements of Reusable Object-Oriented software)

38 "面向模式的软件体系结构 卷1:模式系统"( Pattern-Oriented Software Architecture, Volume 1: A System of Patterns)

39 "软件设计的艺术"(Bringing Design to Software)

六、 程序设计

40 "编程珠矶"(Programming Pearls Second Edition )

41 "C程序设计语言(第2版新版)"(The C Programming Language )

42 "C 程序设计语言(特别版)"(The C Programming Language, Special Edition)

43 "C Primer (3RD)"

44 "C 语言的设计和演化"(The Design and Evolution of C )

45 "C 编程思想(2ND)"(Thinking in C Second Edition)

46 "Effective C " amp; "More Effective C "

47 "C 编程艺术 "(The Art of C )

48 "Java 编程思想:第3版"( Thinking in Java, Third Edition)

49 "Effective Java"

七、 软件测试

50 "测试驱动开发(中文版)"(Test-driven development:by example )

51 "面向对象系统的测试"(Testing Object-Oriented System: Models, Patterns, and Tools)nbsp;

52 "单元测试之道Java版 —— 使用Junit"/ "单元测试之道C#版——使用NUnit" (Pragmatic Unit Testing:In Java with JUnit / Pragmatic Unit Testing:In C# with NUnit)

八、 软件维护和重构

53 "重构-改善既有代码的设计"(Refactoring: Improving the Design of Existing Code)

九、 配置管理和版本控制

54 "版本控制之道 —— 使用CVS"(程序员修炼三部曲第一部:Pragmatic Version Control Using CVS)

c++基础:

《C++ primer》必看,现在到第五版了把。

《Accelerated C++》看2本基础书还是很有必要的。

c++晋级:

《深入探索c++对象模型》讲的是编译器如果构造c++对象,必看,好书不解释

《Effective C++》

《More Effective C++》

《c++必知必会》

以上三本教你如何更好,更高效的编写c++代码。

程序库

《泛型编程与STL》必看,泛型编程很重要啊

《STL源码剖析》这书比较难,没有扎实的基础不建议看。

算法和数据结构

最经典书籍当属《计算机程序设计艺术》,但是我不推荐,如果你非得看,而且看完了,记得给比尔盖茨发简历。

我只推荐两本《算法导论》和《算法艺术与信息学竞赛》,尤其是《算法导论》大师之作,里面的代码都是权威,非常值得学习

以上就是关于一个刚工作的Java程序员该看哪些书籍全部的内容,包括:一个刚工作的Java程序员该看哪些书籍、如何成为编程高手,程序员要看什么样的书籍,有经验的人说一声,做好是大师级别的人物、编程的书籍推荐等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9744927.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存