导航:首页 > 程序命令 > 程序员课外书

程序员课外书

发布时间:2023-05-15 16:02:31

A. 程序员怎么提升自己

第一,技术不能落伍。

技术的更新迭代非常快,所以要学习的东西很多,所以说,做程序员挺不容易的。但作为这个时代的弄潮儿,我们必须提高对自己的要求,否则很容易落伍,被拍死在沙滩上。

一线城市的程序员可能还好,因为公司的产品迭代升级很快,所以技术栈的更新换旧也快。但二三线城市的程序员可能就没那么幸运了,往往一个产品都做到没客户了,技术还是最初用的那些。

以至于有些程序员回到二三线城市后再去一线会比较难,并不是生活节奏不适应,而是技术跟不上了。

怎么才能保证技术不落伍呢?并不是说外面流行什么技术,就一味的跟风,而是有选择性的,你比如说,Spring Boot 是肯定要跟的,但 Hadoop、Spark 就不一定要跟,要量力而行,看公司的业务规模是否需要。如果不需要,把更多的时间花费到 JDK 源码、性能优化陵戚上,是更消祥佳的选择。

第二,热爱这个行业。

就目前来说,程序员的确是比较高薪的职业,所以很多人都在往这个行业里挤,再加上“狼性文化”、“996”盛行,搞得很内卷。

在这种情况下,在这种压力下,你有没有问过自己,内心是否还热爱着这个行业?

我曾有一个读者,她问我,“请问你能不能做 C++ 课外辅导啊,孩子上大学,软件工程专业,之前不懂计算机,现在学习压力很大,想放弃,认为自己不适合学这个,不开窍,我是看了你的文章开始关注你的,现在因为孩子的事没办法了,就想问问,能给付费辅导吗?”

从这位母亲的话中,我感受到了她对孩子满满的爱,也感受了学弟学妹们身上背负的压力。程序员的确要学习很多很多知识,除了编程语言,计算机基础知识,还尺桥陵有各种框架和工具,时间根本就不够用。

但有一句俗话叫做“干一行爱一行”,既然入了行,就只有风雨兼程。否则,心里不爱了,学习的热忱和动力又从哪里来?

当你累了的时候,适当地给自己放个假,打一场篮球、打一个小时游戏、唱一首歌,甚至谈个恋爱,让紧绷的神经放松下来,心里的那股热爱也许就悄无声息地回来了。

第三,乐于分享自己。

分享的方式多种多样,并不局限于写博客,你可以在公司的团队内部做一次培训,甚至小到站立会的时候发表一些对技术的想法,或者大到在技术大会上做一次演讲。

分享会收获别人的认可、称赞,崇拜的小眼神,这些点点滴滴的荣誉感会让你鼓足勇气,在前行的道路上充满干劲,进而精益求精,要求自己做得更好。

B. 我大二下学期了,想做程序员的,但是我现在学完c c++ 数据结构,会的只是个输入输出,求教我现在该

不要着急,千里之行始于足下!夯实基础最重要!千万不要好高骛远!这是血的教训!我们班森虚槐硕士毕业的都去了网络华为360等大公司,因为当时考的都是基础,学好数据结构很重要!!!一定要把课本上的基础知识学好了,基础不牢地动山摇!!切记!此友考研要早点准备,现在就要好好学习。能考上研究生的都是平时学誉锋习扎实的人,哪些大四突发奇想考研的都是打酱油的。

C. C\C++程序员需要掌握什么书籍

c/c++程序员需要掌握的书籍大概可以分成几个方面:

  1. 计算机基础类书籍,这类书籍包括计算机组成原理、计算机网络、数据库、操作系统、数据结构与算法

  2. c/c++类专业书籍,这类书籍包括基础的C语言程序设计、C++primer。

  3. 扩展类书籍,c/c++相关扩展类,推荐的有C陷阱与缺陷、深度探索C++对象模型、effective C++。

  4. 平台扩展类书籍,这类就要看你在哪类系统下做开发,一般常用的系统平台是嵌入式、windows、Unix及ios(object C++),这类书籍就比较多了,可以按照个人需求选择。

按照上述推荐的理由是:

  1. 学习计算机语言需要一定的基础,这类基础是非常重要但是很无聊的,后续在做开发的时候会觉得非常实用。

  2. 学好语言其实不是非常麻烦的部分,一般的教材类书籍即可,重要而麻烦的是在敲代码的过程中去熟练掌握、运用和创新。

  3. 扩展类书籍3可以帮助你更深入的理解你所学到的东西,而深入理解是程序员进阶的必经之路。

  4. 平台类书籍略有区别,但是标准C++是一样的,只是针对各自平台做了相应扩展(objectc++除外)。如果需要在某个平台下做开发,或者学习再去学习使用即可。

D. 大学生大二自我总结

大学生大二自我总结范文(精选9篇)

自我总结是个人在一个时期的自我总结,它能够给人努力工作的动力,为此我们要做好回顾,写好自我总结。如何把自我总结做到重点突出呢?以下是我精心整理的大学生大二自我总结范文(精选9篇),欢迎大家借鉴与参考,希望对大家有所帮助。

大学生大二自我总结1

光阴似箭,在不知不觉中大二的时光已经快要结束了。蓦然回首,在过去的一个学期里,我的收获还是很大的。通过大二这一学年的学习,在各个方面都有所提高。下面就是我的学年自我总结:

工作方面,该学年我担任了物流协会学习部的部长,阳光互助会心理辅导团队的队长,以及编辑部部长,在班上我担任文娱委员职位以及市场营销小组的负责人,负责班上文娱活动筹备工作,为学校食堂进行过市场营销的策划,负责过报纸和杂志的出刊工作,不过因为缺乏经验,所以觉得自己有些方面做得不够好,需要进一步提高。

在学习方面,平时经常出入于图书馆,吸取精神营养,为以后工作做好准备,在这一学年里头,坚持平均每一周至少看三本的书的速度,在学习上,感觉收获还是可以的,不过还得继续努力。

生活方面,能够处理好与同学之间的关系,而且尽力帮助他人,只要自己能做到的,我都会尽力而为。因为家庭比较贫困,生活上我非常节俭,从不乱花一分钱,利用假期的时间进行工作,不但不影响学习,还可以锻炼自己,也为父母分担辛苦。

总的来说,大二的学习生活,让我成长了许多,收获了许多,前进了许多。虽然称不上硕余知果累累,却也可以说是有所成绩。以后的路更长,这点小小的进步是微不足道的,只有不断地学习,不断地进步,才能使自己的人生更有价值,更有意义,在今后的日子里,我要更加努力,争做一个优秀的人才。因为没有最好,只有更好!

大学生大二自我总结2

时光飞逝,日月如梭。转眼间,一个学期结束了,大二也即将接祥春近了尾声。

本学期自我表现良好,学习生活实践各方面都有相应的提高,并且关于对自身综合素质方面,也得到了谨毁耐更加全面、具体的认识 。

学习方面:到课率较高,功课学习,比大一有了一定的进步,学到了一定的专业知识,专业课方面也在积极主动查找相关书籍攻读,且专业素养增强!再接再厉!

生活方面:真诚对待身边的人,和朋友同学关系融洽。热情、热心的对待班上的同学,尊敬师长,有较强的班级荣誉感。继续保持和改善不足之处。

其他方面:社会实践方面,本学期顺利退出了大学生社团联合会编辑部工作,其间交际能力、人际关系得到一定的进展。自己从中学到了很多丰富的社会知识,更清楚的了解自己的能力,也提升了自己的能力! 以后更加要锻炼自己,无论任何场都必须珍惜机会。

缺点。缺乏专业知识上的锻炼和自信心不够强是我最大的缺点。专业知识理论学习有限,专业知识面的限制。对自己的认识还需加强,相信自的能力(比如,写作和语言的综合运用方面能力)。

总的来说,我的这一学期主要是放在学习方面上的。但是经过长达两年的时间,学校基本的情况, 其进步情况不是很明显,其个中不足原因种种,总结如:学校条件有限、可供给我们学习资源上的有限, 以及个人掌握专业和其他知识资源的局限性等等。例如,多媒体教室似乎没有我们上课的机会、图书馆对我们的不公平的开放政策、寝室面临不断的调动情况、种种不公平的待遇对我造成了深深的恐惧,这些方面也对我的学习和生活有着举足轻重轻重的影响。

大学生大二自我总结3

二年的大学校园生活是我人生的一大转折点。二年的校园生涯和社会实践生活我不断的挑战自我、充实自己,为实现人生的价值打下坚实的基础。

学习方面:首先是我端正了学习态度。在我考进大学时,脑子里想的是好好放松从重压下解放出来的自己,然而很快我就明白了,大学仍需努力认真的学习。看到周围的同学们拼命的学习,我也打消了初衷,开始大学的学习旅程。其次是极大程度的提高了自己的自学能力。由于大学的授课已不再像高中时填鸭式那样,而是一节课讲述很多知识,只靠课堂上听讲是完全不够的。这就要求在课下练习巩固课堂上所学的知识,须自己钻研并时常去图书馆查一些相关资料。日积月累,自学能力得到了提高。再有就是懂得了运用学习方法同时注重独立思考。古话说的好,授人以鱼不如授人以渔,我来这里的目的就是要学会“渔”,在学习时,以“独立思考”作为自己的座右铭,时刻不忘警戒。随着学习的进步,我不止是学到了公共基础学科知识和很多专业知识,我的心智也有了一个质的飞跃,能较快速的掌握一种新的技术知识。经过一年的努力终于取得了大学的第一份奖学金。

思想政治方面:对党我也有更深刻的认识,经过一年党校的学习,已成为入党积极分子,并以优异的成绩取得了党校结业证书。

工作方面:在义务助学社,经过大一一年的锻炼,自己的表达和交流的能力有了很大的提高,大二通过自己的努力加入了社团领导团队,兼任组织部长一职。在此期间组织了多次大型的活动,受到学生和老师的一致好评。

今后打算:来大学就上要学习的,如果没有学到真正的知识,不仅对不起自己,更对不起在家辛辛苦苦的父母。在大学的日子已经过去了一大半了,剩下的日子一定要精打细算,好好学习!一下是对自己的要求:

第一,把学习当作大三生活的主要任务,至于其他的事情次要,甚至可以放弃。

第二,努力提高自己的学习成绩,向党组织靠拢。

第三,养成良好的学习和工作习惯,克服以前的不良习惯。

第四,努力学习英语,争取大三过英语四级!

第五,加强专业知识的学习。

大学生大二自我总结4

大二学习生活的结束,我的大学生活已经进行了一半,回忆过往的点点滴滴,都是人生最大的财富。想起我大一的自我总结似乎还在眼前,但时间总是很快,现在我又将我的大二自我总结做一个好好的总结了。

光阴似箭!转瞬间我的大学生活已接近两年时间了。我们不能奢望留住时间,但我们却能够在时间的流逝中留下自己的脚印。

刚升上大二时,看着大一的学弟学妹们却生生的稚嫰的表情,自己的脸上不自主的有了微笑。似乎看到了当初的自己。而今,我已是几千名学子的学姐了,不再对家充满眷恋,不再排斥这所“陌生”的学校了。

大二的课程不紧不慢,但多了许多专业课的学习。大一时的懵懂都变成了今日对“信息管理”四个字的了解。亲朋问及该专业学些什么时不再感到茫然,是有了所谓的方向感吧。

尽管课业不紧张,但学习上却不允许我有丝毫的松懈。全国英语四级等级考试、全国计算机二级等级考试(C语言),不仅充实了我的学习生活,也让我的学习充满了挑战性。

图书馆依旧是一个很好的学习环境。这里留下了我的足迹与汗水。这里让我知道学习是一个永恒的过程,没有假期之说,更没有毕业之说。学习更是一个不断充实自己,完善自己的过程。因此它没有终止的一刻。

电脑是一个取之不尽用之不竭的知识宝库。它是我的学习伴侣,生活伴侣。自带的电脑让我更好地进行学习,也增进我对学习的兴趣。学习之余也娱乐了我的生活。网上的博客生活里,倾诉了我的悲与喜,里面有我逐渐成长的点滴。

虽然我的大学生活自我总结相对简单,但简中有精。我的学习、生活永远是正在进行时。大二的学习生活又即将划上句号了。我们又一次迎来了验证学习成果的期末考试,我相信自己可以取得更优异的成绩来证明自己的努力。

大学生大二自我总结5

大学二年即将过去,二年的时光收获匪浅。在感受校园清新气息的同时,接触了来自不同地方的同学和老师,在每个人身上,学到了不少为人处世的道理。对于涉世不深的我来说,这些都是宝贵的经历。从进大学校门第一天起,父母就对我说,大学是通向社会的必经之路,是为以后安身立命的重要阶段。这句话我一直铭记于心。在回顾走过的这二年,发现自己在许多方面有了进步,同时许多方面也有待改进。

进入大二,课程主要是专业课了,平时照样还是去上课,但基本上是想学的就来上课,不想学的有的就放弃了,我知道他们并不是不爱学习,只是对专业不感兴趣,又不知道怎么办而很迷茫所以靠上网来打发时间。看见学风日下,班委也作出过努力,但大家都是成年人了,很多时候不像小孩子那样容易管,只能劝说,但这样收效甚微。至于考试就基本没什么意义了,不是对所学知识的真正考验,很让人痛心,所以我也不那么看重分数,而是平时到底学了多少。平时上课我最不想看到的就是老师没有激情,对现实感觉很无奈的样子。但我周围还是有很多我值得学习的榜样,学习上他们很努力,动手能力很强,经常拿奖学金,生活中热情洋溢,工作中综合素质很高。

现在,大二结束了,虽说大学还有一年,但实际大四都忙着找工作考研,大学的学习阶段算是结束了,回想这二年所学的仿佛学了很多,仿佛又什么也没学。说起编程能力有时感觉还不如外面的培训机构培训的程序员,虽然“外面的培训机构能培训出程序员但大学却连程序员都培训不出来”这句话有些道理,但我相信优秀的程序员大部分还是要靠大学来培养的,我不能缺乏自信,同时我要知道自己与他人的差距,承认自己的不足。

回望已逝的二年大学光阴,不禁感慨万千,高中时我知道我还未成年,父母还会保护我,但现在我就知道我长大了,不可能再有谁在你前面为你遮挡那些风雨,自己要做自己心灵疲惫的港湾。风雨中,父母那一双双期望的眼神是我最大的动力!总之,大学生活可以很轻松,也可以很沉重,可以很单调,也可以很丰富,可以很舒畅,也可以很痛心……他就像一坛五味醋,我从中尝出了酸甜苦辣咸甚至更多,并获得了很多感悟,这些所得将作为我人生的宝贵财富,让我以后的道路走得更加坚实有力。

大学生大二自我总结6

大学是社会的缩影,很多事情都要靠自己的实力去争取,去竞争,不仅要搞好自己的学习成绩,更要培养自己的人际交往的能力。因此,我不断地挑战自我,执着探求,充实自己,努力使自己成为一个能适应社会需要的新时代大学生,并为以后的工作打下坚实的基础。

一、学习方面:

经过两年的学习,我更加认识到学习的重要性,在大二这一学年,无论是专业知识还是课外知识,我都孜孜不倦地学习,坚持不懈,一步一个脚印的不断努力,最终取得了优良的学习成绩,通过了国家英语四级考试,并获得了“学习优秀三等奖”。随着学习的进步,我不只学到了公共基础学科知识和很多专业知识,我的心智也有了一个质的飞跃,自主学习能力得到了很大提高。

二、思想方面:

我认真学习思想道德修养与马克思主义基本原理概论,鉴定自己的信念,坚持着自我反省且努力完善自己的人格。在校遵纪守法、爱护公共设施、乐于关心和帮助他人。在平日的学习、生活中,我积极地向党组织靠拢,使我对党有了更为深刻的认识,并参加了学院组织的“入党积极分子”培训的选举。虽然最终没能成功,但并没有打消我入党的积极性,反而使我更深刻反省和认识自己,从而更好的完善自我,争取早日成为中国共产党的一员。

三、工作方面:

在担任院学生会心理部部长期间,我积极主动,工作踏实,任劳任怨,责任心强,时常关心和帮助身边同学。注重团队协作精神,配合其他学生干部顺利地完成各项工作。在工作中,我通过各种方式,学到了很多知识帮助同学解决生活和学习中的困难,也提高了自身各方面的能力。

四、课外生活:

在生活上,我独立自主,养成良好的习惯,曾经遇到生活上的困难,我开始了兼职工作。它给我带来了一些好处,比如说经济上的独立,给家里减轻了一些经济负担,同时也提前体验了社会生活,遇到一些学校里不可能遇到的任何事,最重要的是让我更深刻地体验到了生活的艰辛,让我更加珍惜父母的劳动成果,珍惜自己学习的机会,努力奋斗,更好地完成自己的学业。

当然,学校的各种活动我都热情地参加,比如校运动会,XX之光文艺演出,校篮球比赛等。在“XX之光话剧大赛”中,我们荣获“三等奖”,在本学年校篮球比赛中,我们队长以身作则,积极挑选队员备战,功夫不负有心人,经过我们共同的努力,我们终于改写了我们学院在大一的篮球比赛中不景气的历史:虽然没有做到出类拔萃,但也有所突破。

在入学时,我就加入青年志愿者,积极参加院校组织的各项志愿者活动,如手语学习、清洁校园、张贴课表等。在这些活动中,培养了我正确的工作态度和掌握处理问题的方法,提高了自己的'生活质量,使自己的人生过得更加精彩、更加完满。

这一年的暑假,我和班上同学共同组成了社会实践小分队,通过对中藏药人才需求的调查,我学到了书本中学不到的知识,它让我了解社会,深入生活,使我更清楚自己的发展方向。这次的实践收获不少,学会了如何与别人更好地沟通,明白了在社会中要有自信,要克服自己胆怯的心态,在工作中不断丰富知识,知识犹如人体血液。人缺少了血液,身体就会衰弱,人缺少了知识,头脑就会枯竭。

大二这一学年的学习生活丰富多彩,让我收获很多,知识与实践的结合,让我认清了自己的位置,发现了自己的不足,增强了我努力学习的信心和毅力。

大学生大二自我总结7

大学第二年已经结束,我务必总结在这一年的得与失,才能展望以后在校这几年该怎样发展,才能看清未来的路怎样走。

在学习方面,首先是端正了学习态度。从最初刚刚进入大学只想放松在重压解放下到此刻只想透过学习强化自我的专业知识的理念发生了彻底的变化。在学习过程中一向以“独立思考”为座右铭,从中锻炼到自我的耐心与解决问题的决心,让自我的心智有了质的飞跃。自我在专业知识也有了很大程度的提高。使我体会到学习的乐趣,我与身边的很多同学建立了良好的关系共同完成各个项目。这个学期也值得一提就是参加了全国计算机技术与软件专业程序员考试,顺利透过此次重要的考试,让自我的专业知识给了很大自信,让自我更大程度上相信自我的专业潜力。

此次考试前前后后,我纵览了很多计算机的参考书,我一向相信这么一句话“机会是留给了有准备人的”所以大学四年就是我们走出社会前最大的考验,所以我们得务必好好准备,用专业知识武装强化自我在这人才济济之中脱颖而出。就知程序员考试透过那一刻开始,我就有更远的目标与更大的决心——参加软件设计师认证考试,这是自我更加专业化的一次考试,所以在未来大三第一个学期务必继续奋斗努力。

在过去的一年里我一向注重英语方面的学习,但是自我英语基础不是很扎实。但这个不重要,四级成绩也证实了我是有潜力也有信心在下一次考试必须透过,从大一到此刻参加三次英语考试,成绩一向持续在400以上与合格分数线仅仅是几分之差。我相信在这几次失败中我总结出自我在那个方面的缺陷,例如听力方面分数明显偏低,今后要强化这个模块的训练。

在这一年我还学习自我专业之外的技能并且获得许可证—驾驶证利用周末或者空余时间。在这一年一向想追求人格魅力齐全的人,所以常常阅读一些名着来开阔自我的视野,崇拜具有思想独立的人—韩寒。为着自我的梦想一向追逐,这是我这一年感悟最深刻的。自我的一片天空要自我一个人支撑起来,做一个有思想独立的思考者。

参加社会实践也是这个学年的一个可圈可点的一段时光,参加了雷州龙门二中的助教活动,我用心配合学校分配我的工作,我运用我的专业知识帮忙学校解决电脑方面的一些知识还为中学生浅谈现代信息技术的发展与运用,让他们对未来有个完美的憧憬。此次社会实践,感觉自我被社会需要着,自我顿时自豪感和职责感油然而生。虽然在校期间也做过一些兼职,但这次完全不一样,因为我全心投入到学校工作里面用到自我的专业知识。

这个世界并不存在完美的人,优点缺点并存着。我期望在未来的时间里更好地利好时间,提高学习效力。这是一次总结也是一次展望。大二已经过去,收成与失落早已尘埃落定,把握最有期盼的大三才是当前最重要的。

大学生大二自我总结8

时间过得真快,转眼间大二上学期已经结束。回顾一下,总结一下整个学期的各方面情况,大概可以归纳以下几个要点。

一、学习上

比起大一,在认知程度和态度上有了很大的进步。大一的时候由于是刚来到大学校园,由于整个时间由自己支配,感到无所是从,时间经常转瞬即逝。经过大一整个学年的适应,这个学期基本上都能充分利用自己的时间。课余时间,我经常去学校的图书馆,学习一点自己感兴趣的课程,以求提高自己的知识面,拓宽自己思考问题的角度。在学习上,我认为有一样东西非常重要,那就是学习态度!俗话说的好,态度决定一切。我以前总感觉自己不比别人差,问题能自己解决就自己解决,很少向别人请教。而现在,我开始养成一种谦虚、勤问的学习态度。因为我知道学习上的东西来不了弄虚作假,是不懂就不懂,绝不能不懂装懂!孔夫子说过“三人行,必有我师”,我想道理就在这里。在这一学年,班里的气氛是和谐融洽的。在学习上大家都是争先恐后,使我感到了学习的重要性。但我们还是学的不够,然而我却无法系住时间老人欲行的脚步。

二、生活上

我基本上都可以和同学们友好相处,互帮互助,形成独立自理自立的良好品德。此外我用真心去对待自己的朋友,从不虚心假意。我知道,走进社会中,只有真心的朋友才会帮助你。还有就是要始终保持干净的作风,做到勤清洁,养成良好的卫生习惯。

三、思想问题上

我积极向党组织靠拢,平时能够严格要求自己,注重日常生活作风的养成,坚决抵制了腐朽文化和各种错误思想观点对自己的侵蚀,做到了生活待遇上不攀比,要比就比贡献、比成绩。作风上艰苦奋斗,提倡艰苦朴素,勤俭节约,反对铺张浪费,杜绝腐败现象的滋生蔓延;纪律上遵纪守法,自觉接受监督,抵制腐朽思想的侵蚀。平时对待同学热情诚恳,乐于帮助同学,能够团结同学。丰碑无语,行胜于言,总结是为了更好的行动,实践是检验真理的唯一标准。争取向一名优秀的党员靠拢。

虽然我在这个学期有了一定的进步,可是我仍然存在不少缺点,还有很多需要改进的问题。比如有些时候交作业不是很按时。时间总是宝贵的,我不想成为虚度光阴的人,不想自己在老的时候后悔自己这样浪费时间。作为学生,学业永远是第一位的。我将努力改正自己的缺点,使自己向更好的方向发展。

总之,大二的整个学期,是不断学习、不断充实的一个学期。大学生活是很宝贵的,我不愿意平平淡淡地过这几年,我要好好珍惜这难得的读书机会,努力读书,为自己的大学生活增添丰富美丽的色彩。

回顾昨天,我百感交集;面对今天,我信心百倍;展望明天,我任重道远!

以上是我对大二上学期一些方面的个人总结,我将结合这个小结回顾过去,确定未来的发展目标,我对未来充满信心。自然,这需要辅导员的精心培养和同学们的真诚帮助。

大学生大二自我总结9

时光匆匆,步入大学已有两年了。暮然回首,发现这两年里还是有很多需要自己总结。

十年磨一剑,多年寒窗苦读就为了几日高考。在高考一结束,就感觉身上担子全放下了。抱着要将以前浪费的光阴弥补回来的想法,没日没夜的疯狂玩耍。以致领到录取通知书步入大学,心态还未调整回来,整日没心思读书。存着得过且过、坐吃等死的心思,上课也不认真听讲。直到大一将近结束,自己看到那代表自己一年学习的成绩时,才幡然醒悟。现在回想起来,悔不当初啊!大学的一开始没有好好学习,跟不上老师进度,导致现在不得不花更多时间去打基础。 大学,不同于初中和高中。大学,什么都得靠自己。再也没有班主任在身后督促着学习;再也没有任课老师主动来答疑解难。为此,自己曾迷惘过好长一段时间,感觉自己学习没有了方向。不知要学什么,不知哪门学科重要,不知应如何去学。现在回想起来,感到惭愧不已。过去的自己太依赖别人了,主动性太差了,总要老师在身后催着才会努力学习,老师一日不出现,就懈怠下来。

不只是在学习上,而且在与同学相处上也不是很好。自己和同学的相处交流还不够多,关系不够紧密。主要是自己作息的时间安排上不够合理,导致时间使用的紧张,无意中减少了与同学交流的时间。其次,由于自己性格比较内向,

不善言谈,不敢与同学交流,交流又找不到话题,又担心找同学交流会打扰他们的休息。眼看就要分专业了,可连自己班有些同学都没说上几句话。总之,和同学联系相处不是很好。

在未来两年里,我要吸取之前的经验,改进自己不足之处。

在未来两年的日子里,我要多多与同学交流联系,不能再像以前了。与同学相处,也可以锻炼自己的交际能力。这在步入社会后,是尤为重要的。俗话说的好,“一个好汉三个帮”,多几个朋友多几条出路,总有帮的上你的时候。反正,与同学多相处联系,有益无害。

专业分完了,自己在所在专业总排名是倒数的。虽然自己已经醒悟开始努力学习,但前期拉下的课程不是那么好弥补的。通过上网所知,大四毕业后的去处只有三条:出国,读研,工作。出国,家里经济条件有限,父母每日辛苦工作,我也不想给家里带来负担,不用考虑了。工作,大四毕业就工作怕是找不到像样的工作,也不用考虑。只剩下读研,凭自己的成绩是保研没戏了,只有默默考研了。自己也要上大三了,也不早了,要为将来考研做准备了。

总结大一大二,自己还是有许多不足之处的;展望大三大四,自己要改正自身缺点,改善学习方法,发展自身长处。做一个合格的北邮人,相信自己,相信未来。等等老来迟暮,不悔当初!

;

E. 书很多,如何读起

(一)要不断改进阅读的基本条件

阅读需要哪些条件呢?

(1)要掌握常用的字、词、句、段、篇的基本知识

阅读就是要通过与字、词、句、段、篇打交道,从中获取知识,如果不掌握这些知识,那么,阅读就变成看“天书”了。

中学生如能掌握5000个字,阅读一般文章就问题不大了。有的学生之所以阅读能力差,就是因为没掌握足够数量的字、词(主要是实词)和词组的表达概念,而概念是思维的“细胞”。句是用词按一定的语法规律联结而成的语言单位,一般用来表达判断,表达相对完整的思想。对句的理解不单要求掌握词义,还要求掌握语法。没有语言,思维就不存在了,由此可见,阅读的重重困难,往往是由不识字词,看不懂句子的意思带来的。因此认真学好语文,在阅读中有意识地丰富自己的语言知识是十分重要的。

科学家用他们的亲身体会,明确地指出了学好语文的重要性。

有一位数学家说:“很难想象一个文理不通、错字连篇的人,能把逻辑严谨的数学内涵表达出来。”着名数学家苏步青说:“我从小打好的语文基础,对我学习其他学科提供了很大的方便。我还觉得学好语文对训练一个人的思维很有帮助,可以使思想更有条理。这些,对我后来学好数学都有很大好处。”人们赞誉苏步青为“数学诗人”。

(2)要掌握基本的科学知识

不掌握自然科学和社会科学的基本概念和基础知识,就会给阅读带来很多不方便,甚至困难重重。有人说,到了21世纪,如果不懂生物化学,不懂生态学,可能连报纸都看不懂。现在报上经常出现“生态平衡”、“生态系统”、“遗传工程”、“基因”等专用名词,不少人似懂非懂,就是因为缺乏高中生物的基础知识。可见,要想在现代化社会轿庆里提高阅读能力,必须尽快掌握基本的科学文化知识才行。

(3)要会用工具书

在阅读时难免有些字不认识,也有的一时想不起来,这时,如果手头有《新华字典》、《现代汉语词典》和《汉语成语词典》等工具书,就可以及时地查一下,以扫除阅读中的障碍。当然,根据阅读的需要,准备一些相应的参考书籍,准备随时查找也是必要的。

如果工具书齐备,查找熟练,阅读起来就会顺利得多。当然,通过查找工具书,又可以使自己的知识进一步丰富起来。

(二)要有目的,有计划地读书

面对浩瀚的书海,如果读书没有目的和计划,将会无所答做适从。

中学生的大部分时间是在课堂上度过的,每天又要完成当天的学习任务,因此,可供阅读的时间,尤其是课外阅读的时间并不多,如果读书再没有目的和计划,就会使宝贵的阅读时间得不到充分地有价值地利用。

中学生的阅读应以达到这样的目的为出发点:

有利于基础知识的学习,有利于发挥自己的特长,有利于弥补自己的弱点,有利于阅读能力的提高。

安排阅读计划时要注意:

围绕课本阅读一些有关的课外书。例如,读一些与课内学习有关的科技史,人物传记,清帆衡这样有助于提高课内学习的兴趣,充实课内学习的内容,使思维更加活跃。

围绕自己的爱好或特点读一些有关的课外读物,一个爱好理科的学生,可以定期到阅览室读有关的报纸杂志,一个喜欢文科的学生,可以定期去读各种文学刊物,也可以利用假期阅读文学名着。

至于课外书的选择,可以请教老师,请教高年级的优秀生或同班的同学,也可以请教家长。把他们的好经验学过来,实在是一种省时间的好办法,选好一本书,就可以用较少的时间得到较大的收获。

书选好了,再把读书的时间分配好,不仅可以提高读书的效率,也不至于冲击课内的学习。长期坚持下去,学习中的弱点就可以得到弥补,个人的特长就可以得到发展,既促进了课内的学习,又丰富了课外的精神生活。

不少学生读书缺乏目的和计划,一昧地从兴趣出发,常常看一些侦探小说、武侠小说,达到了爱不释手的地步,为看这些书而开夜车,不完成作业,结果严重干扰和影响了课内的学习,这是一种不好的读书倾向。

(三)要处理好博览和精读的关系

博览就是广泛地看书,目的是针对书的内容作一般了解,以发现书内精华的部分和急需的知识。广泛阅读可以博采众长,正如鲁迅所说:“如果只看一个人的着作,结果是不大好的,你就得不到多方面的优点。必须如蜜蜂一样,采过许多花,才能酿出蜜来,倘若叮在一处,所得就非常有限,枯燥了。”

博览就是观大略,在短时间内阅读大量书籍,为精读创造条件。观大略的方法是:看目录,从目录中发现有用的内容,再翻阅有关部分,到书店选书就是用这种办法;看内容提示,看书的开头几段和结尾几段,以掌握书的大概内容;也可以用快速阅读法,就是用较快速度读一遍,了解大致的内容。

在博览的基础上,在同类的书中选出一本最好的进行精读。精读之后再阅读同类的其他书籍。精读时,要“细嚼慢咽”,要多动脑筋,要反反复复地读,还要认真做读书笔记。

数学家张广厚在谈起学习一本数学小册子时说:“这篇论文一共20多面,我反反复复地念了半年多,因为老用手摸这几页,白白的书边上,留下了一条明显的黑线。这样反复学习,对我们研究工作有很大的促进作用,我的爱人说:‘这哪叫念书啊!简直和吃书一样。’”

精读过的书,要做到:一懂,就是对书的基本内容要达到理解的程度;二记,就是要记住所理解的内容;三会,就是会运用这些理解了的知识;四熟,就是能熟练地将从书本内学到的知识表达出来或运用它分析问题和解决问题。

中学是基础教育,是打基础的阶段,因此要把精读的目标指向教科书和主要参考书。

(四)要勤于思考

爱因斯坦说:“在所阅读的书本中找出可以把自己引向深处的东西,把其他一切统统抛掉,就是抛掉使头脑负担过重和会把自己诱离要求的一切。”就是说,阅读时要抓住书中的精髓,实现由浅入深的转化。

英国诗人柯勒律曾把读者分为四类:第一类好比计时的沙漏漏沙,注进去,漏出来,到头来一点痕迹也没有留下;第二类好像海绵,什么都吸收,挤一挤,流出来的东西原封不动,甚至还脏了些;第三类像滤豆浆的布袋,豆浆都流了,留下的只是豆渣;第四类像开掘宝石的苦工,把矿渣甩一边,只要纯净的宝石。这段话的意思是说,阅读时,要取其精华,去其糟粕。

华罗庚说:“高中程度的同志可以回想一下过去学过的小学算术、初中代数在脑子里还有那么多吗?没有那么多了。因为我们理解了,会运用了,这就是说书变薄了。”这段话的意思是说,阅读时要实现由多而杂到少而精的转化。

综上所述,阅读时,要竭尽全力,力求做到“留下宝石”,“引向深处”和“把书读薄”,为此,就要勤于思考。

具体说要做到以下几点:

(1)力求理解

读书应当边读边想,力求理解,弄懂书中所说的中心思想和基本原理,阅读时,应当每看一段就想一想,把道理弄懂;在全文读完之后,再串起来看一看,想一想,找到各段之间的联系,以便从整体上理解一篇文章,一节课文或一章内容。

(2)理清思路

着名教育家叶圣陶说过:“文章有思路,遵路识斯真。”意思是每一篇文章都体现着作者的思路,遵循这一思路阅读,才能理解文章的实质。可见理清思路对阅读多么重要。

在阅读自然科学着作时,对书上提出的原理、规律、定律、公式,不仅要理解结论,尤其要理清文章的思路,看看这些结论是怎么推导出来的。李政道博士说:“当读完一段之后,就应当把书合上,自己把思路走一下,如果走不出来,再去看书,想想自己为什么走不出来,别人为什么走通了。”阅读时,只记现成结论,而不考虑这些结论是怎么得出来的,那么思维能力就很难在阅读中提高。

(3)要能提出问题

阅读中发现的问题一般有两类:一类是根据自己所具备的知识,认为书中的一些见解不正确、不完整,提出异义或补充;一类是因为自己具备的知识还不够,因而有不懂的问题。中学生随着知识水平和能力的提高,阅读时发现第一类问题会逐渐增多,而第二类问题会慢慢减少。

一旦发现问题,再深入阅读有关书籍,并且深入思考,收获会更大,还有可能发现新的知识,获得新的见解。

(4)要独立回忆,学会准确表达

阅读后,要通过回忆再检查一下阅读的效果。对已经理解的内容要善于用简练的语言表达出来,写在读书笔记上,以备日后查用。钱伟长说过:“读一本书,只要清楚它的梗概,了解它的主要精神和主要问题,先把最重要的东西学到手,然后回顾一下,看自己解决一些什么问题,还有哪些没有解决?对一时无法解决的问题,最好用小本子记录下来,以便以后解决。”

(五)要记好阅读笔记

威廉·李卜克内西在《忆马克思》一文中说:“只要有一点可能,他任何时候总要工作的。就是去散步,他也要带一本笔记簿,并且时时在上面写点什么。”为了写《资本论》,仅在 1850年 8月至 1853年 6月,马克思就摘录了70个不同作者的着作,写了24本有关政治经济学的笔记。在写《资本论》的过程中,他摘录的书有1500多本,写的笔记至少有100多本。

马克思在笔记的封面上写明做笔记的时间和地点,编上笔记的序号,有的还加上标题……每本笔记都编有页码,为了日后查阅方便,很多笔记都做了目录和内容提要。

黑格尔读书学习,也有一个独特的习惯,就是把读过的书,按语言学、美学、几何学、心理学等分类,把它们放到贴有标签的文件夹里。这样,当需要什么材料时,随时可以拿到。这种习惯,他坚持了一生。

鲁迅写作《中国小说史略》光摘抄的卡片就有5000张。

(1)加深理解,巩固记忆

做笔记的过程,就是一个加深理解、加强记忆的过程。有人说:“眼看千遍,不如手抄一遍。”就是做最简单的摘录,也需要动动脑筋,以摘录最精彩的地方,至于写体会,那就更要动脑筋了。因此,有了“要做笔记”的愿望,必然会促使你专心阅读。再加上与书籍相比,笔记自然要简明、深刻和概括得多,不仅利于理解,也利于记忆。

(2)利于积累资料,使知识“外贮”

经过长期阅读之后,就可以通过笔记积累起符合自己需要的大量资料,弥补头脑记忆的不足。因为用头脑记忆,往往不够准确和持久,难免忘记、记错或记混。如把资料分门别类保管好,则可以长期为学习及以后所从事的工作服务,只要不丢,就没有“忘记”的问题,只要使用之前看一看,这些“外贮”的资料又可转为“内贮”的记忆,使知识的运用得心应手。保尔·拉法格在回忆马克思时说:“他有这么一种习惯,隔一些时候就要重读一次他的笔记和书中做上记号的地方,来巩固他非常强而且精确的记忆。”

不少中学生在阅读时,轻信自己的记忆力,懒得动笔,以致到需要运用阅读的收获来分析问题解决问题时,忘记得一干二净,感到很后悔。

还有的中学生笔记记了不少,但不知道定期分类、整理,不知道妥善保存,因此当需要运用时,又因太乱而难以查找,使笔记成了“死材料”。

一般精读的书,可用笔记本做笔记,而博览的书,可用活页纸做笔记,然后定期分类、整理。

如果在中学时代,就学会做读书笔记,学会积累和整理资料,那么,天长日久,不仅可以促进课内的学习,而且还能帮助学生学会一套阅读的方法,提高阅读的能力,这必将给走上工作岗位后的自学带来极大的好处。

F. 刚开始学C语言,要看些什么书(介绍几本)

《程序员》推荐C++ 图书三人谈

主持人:熊节(透明),《程序员》杂志编辑,C-View成员
嘉 宾:孟岩(梦魇),联想公司掌上设备事业部应用开发处任职,C-View成员。与侯捷先生合译《C++ Standard Library》一书
金尹(恶魔),上海天宇公司CTO,在《程序员》连载有“自由与繁荣的国度”系列文章

透明:“学C++用哪本书入门”,这是被问得最多的一个问题。但是哪一本书是最好的入门书?似乎很难找到答案。《C++ Primer》太厚,《Effective C++》对读者要求比较高,《Essential C++》又常常被批评为“太浅”。
其实说穿了:no silver bullet。想从一本书学会C++,那是不可能的。有朋友问我如何学C++,我会建议他先去找本数据结构书,把里面的习题全部用C++做一遍,然后再去看《Effective C++》。myan经常说“要在学习初期养成好习惯”,我对此颇不以为然。
个人认为,《Essential C++》适合作教材,《C++ Primer》适合作参考书,《Effective C++》适合作课外读物。

恶魔:很后悔当初买了《C++ Primer》。因为从我个人角度来看,它的功能效用基本是和《The C++ Programming Language》重合。当然对于入门来说,它还是很不错的。但是《C++ Primer》太厚,一来导致看书极其不方便,二来系统学习需要花比较长的时间。对于目前这个越来越快餐化的时代来说,的确有很多不适合的地方,不过可以作为初学者的参考书。现在我以一块K3 CPU的代价把它借给了别人,希望我那位同事能够从中得到一些益处。
如果已经具备了C基础,我建议看国内的书,例如钱能的《 C++大学教程(第二版) 》。(如果没有C的基础还是看谭浩强的C语言)。这本书对C讲得还算比较清晰,有很多习题值得一做,特别是最后的struct和union两个部分。其中的一些算法比较拖沓和繁琐(比如树和链表的遍历算法),读者可以尝试修改这些例子,作为最后对C语言的一些总结测试。

梦魇:这个问题让我想起四五年前的情形。今天对于C++有一点认识的人,多半是从那几年就开始学C++了。那时根本没有品牌观念。从书店里找一本C++书,如果看着还算明白,就买下来。我记得那时候宛延闿、张国锋、麦中凡教授的书都受到很高的赞誉。我个人最早的一本C++书是Greg Perry的一本书,今天想起来,其实是一本打着C++旗号的C语言教程。对我作用最大的一本书是国防科技出版社出版的一本书,书名记不得了,作者叫斯蒂芬·布莱哈。
透明:还记得以前曾批评过一本C++书,是北航出的,整本书就没有出现过class关键字。那本书,说穿了其实只是介绍了C语言和iostream库的用法,根本不能算C++。而当时我常常推荐的一本书是电子科技大学张松梅老师的C++教程。那本书,直到今天来看也没有太大的问题,唯一的缺憾就是由于年代久远,许多东西已经过时了。而对于一本技术书籍来说,“过时”是最不可接受的。
总体来说,那时使用C++的人真是在“盲人摸象”。不过这也有好处,就是对C++的很多细节能搞清楚,以后看到经典好书时比较容易理解;当然坏处就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什么不一样。

梦魇:整个90年代,其实大部分人对于C++的认识都似是而非。一开始是等同于Borland C++,后来是等同于Visual C++和MFC。所以一般来说,打着BC和VC旗号的书卖得很好,人们觉得这就是C++。而我比较幸运,布莱哈的那本书虽然从现在的眼光来看谈不上高超,但基本路子是对的。可能是因为原书是给UNIX程序员的培训教材,所以没有让我一开始就形成“C++ == VC++”的认识。
其实一直到1996年,我们那里搞计算机的都是唯Borland C++马首是瞻的,到了VC 4.0出来,一下子格局全变了。1997年VC5推出之后,书店里MFC书铺天盖地,学MFC的人,头抬得都比别人高一些。不过现在看来,那时候大部分的MFC书都是三流货色。我曾经有一段时间认为,那一批程序员中间有不少被误导了。根本原因就是相对的封闭。

透明:我觉得一本书的价值有两方面:第一,教给你实用的技术;第二,促使你去思考。对于一本介绍VC(或者说MFC)使用方法的书,我根本不希望它能促使我有什么思考,所以我就一定要求它在技术上精益求精完美无瑕。我刚开始用VC的时候,买的第一本书就是潘爱民老师翻译的《VC技术内幕》(第四版),没有受到那些“三流货色”的误导,应该说是很幸运的。

梦魇:1999年机械工业出版社开始出版“计算机科学丛书”,其中的《Thinking in C++》第一版受到了广泛的欢迎。其实我一直不认为这本书很出色,虽然拿过一次大奖。然而我们都得承认,这本书在C++书籍领域里第一次建立了品牌观念,很多初学者开始知道,不是随便买哪一本都一样的。再往后就是2000年的《 深入浅出MFC(第二版) 》第二版,以及侯先生在《程序员》上发表的那一篇《C++/OOP大系》,加上整个大环境的变化,品牌观念深入人心,C++书籍市场终于开始逐渐与世界同步。
回想往事,我的感觉是,那个需要战战兢兢选择入门书的时代已经过去,今天的C++初学者,大可以放心地买口碑好、自己读起来思路顺畅的书,入门不再是太大的问题。还有一些程序员已经学了几年C++,但看到今天出版的一些新书,感觉比较陌生,这也不是什么问题。侯先生经常说“凡走过必留下足迹”,所谓“走弯路”,未必不是一件好事。
至于具体的推荐表,就不好一概而论了。总之在我的印象里,《Essential C++》、《C++ Primer》、钱能教授的C++教程,都不错。甚至有人一上来就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜欢,也没什么不可以。

透明:我同意你的观点。不管怎么说,编程是门实践性非常强的学问。要想对C++对象模型有深入的了解,最好的办法就是写一串程序去看结果;要想学会OOP,也只能从项目中学。对于初学者,最好的学习方法就是不停地写程序,写真正有用的程序,写到有问题的时候就去查书,于是自然就会知道哪本书好哪本书不好。不过我们的教育制度能不能让大学里的学生们有这样的学习机会,我表示怀疑。
以我的经验,学C++有两个门槛:入门和使用。完全看不懂C++,这是一个门槛,但是只要有一本合适的入门书,很快就能跨过。要想真正用上C++,却不是件很容易的事情。尤其对于学生来说,接触到的东西多是“玩具”,很难有实战的机会。所以经常看见有人问“C++到底能做什么”,这是C++学习中一个比较麻烦的问题。我们都是做了相当长时间的C++程序之后才看到一些真正经典的书,也正是因为走了相当长的弯路之后才知道这些书的经典之所在。所谓弯路,我想也是一种必须的积累。就算一开始就看《Essential C++》和《C++ Primer》,没有两三年的时间恐怕还是难有所得。

恶魔:有两句十分有道理的话,一是我大学的C语言老师说的“写程序不如说是抄程序”,另一句是一网友说的“好的设计来自借鉴,天才的设计来自剽窃”。对于我这个理性批判主义者来说,这两句话的确不太适合。但是无论从哪个角度来讲,对于初学者来说,剽窃大师的作品是通向成功的最快捷径。
我个人认为,对于C++的初学者来说,首先要确定自己专业领域内主要使用的特性的方向。因为C++的特性如此众多,初学者想贪多基本是不可能成功的。C++的编程范式基本可以分为ADT+PP、GP和OO三个方向。对于ADT+PP范式来说,初学者的主要问题不是学习C++,而是学习C的使用。对于这样的初学者,国内的几本书还是写得比较清楚,符合中国人的习惯,比如谭浩强的《C语言教程》、钱能的《C++语言大学教程》。这两本书我首推第一本,因为这一本我潜心研究了一年,这本书当中很多程序是可以剽窃的,而且可以对这些程序进行加工和提升。比如结构这一章中,它所给出的用struct来实现链表、二叉树的算法是相当蹩脚的。学习ADT+PP的初学者将这本书揣摩透以后可以尝试修改这两个程序。另外这本书的第二版稍微涉及了一些关于“类”的内容。学习ADT+PP的初学者,可以不被OO中的一些专有特性扰乱自己的思路,对于类层次扁平、无继承、无多态的程序编写是有很大好处的。

透明:你好象比较推崇国内教授写的书。现在社会上有种不好的风气:一捧就捧上天,一贬就贬下地。就好象对待谭教授的书,前几年是奉为经典,这几年又有很多人使劲批评。学C++更是有点“崇洋媚外”,总是觉得初学就应该看《Essential C++》。我看这种观点也是片面的。

恶魔:当然《Essential C++》也值得看看。但是我个人觉得这本书没有谭浩强的《C语言教程》来得好。主要原因是:第一,C++的所有特性都点到了,但是不深,看了以后会三心二意没有方向;第二,可以抄袭借鉴的例子太少。《C语言教程》中有很多有趣的问题,比如猴子吃桃、汉诺塔等等,这些例子对于刚刚涉及C/C++语言编程的人来说是学习编程很好的例子。《Essential C++》只能是前两本书看透以后,作为学习C++特性的一个过渡性的书籍。让读者真正领略到什么是C++的编程、和C编程的不同点在哪里。

透明:我发现一个很有趣的现象:初学者往往喜欢问“哪本书比较好”,这让我很是不解。这有点像一个刚学打篮球的人问“王治郅和科比谁比较厉害”。当然科比更厉害一些。但如果你是想学打篮球,这两个人都非常非常有资格教你,你跟谁学都能学得很强——关键不是在于你选哪个老师,而是在于你自己用多少功夫去学。

透明:回到原来话题。学会了C++的语法,能看懂C++代码之后,必须有些书来指导进阶(或者叫指点迷津)。我觉得《设计模式》很好,能够让读者看到一些精妙的用法。不过正如我经常说的,模式带来的麻烦和好处一样多,甚至麻烦还要更多。而且,C++本身的问题使得在C++中使用GoF模式愈加麻烦。

梦魇:《Design Patterns》这本书绝对是不可以没有的,而且中英文版都不可少。最初我看中文版,说实话看不懂,但是也不觉得人家翻译得不好,所以就想,大概是原文就很难懂,加上自己水平有限。于是总是想着再找几本patterns的书来看。后来找到几本书,口碑还不错,不过水平高下,一比就出来了,还是那本《Design Patterns》最经典,最耐看。英文版出来之后,两个版本对照看,明白多了。现在觉得,其实就设计模式来讲,把这本看明白了就很不错了,不用再花费很多心思找其他的书。我现在的包里始终夹着这本书,随身携带,有备无患。
至于说设计模式的副作用,和可能带来的弊端,我的体会也挺多。不过是这样,我们想一想,究竟什么情况下设计模式可以用得很好呢?一种是有经验丰富的人引导,比如要是Robert Martin带队,你在某个地方用错了设计模式,他就会指出来,说这里不对,将来会产生什么样的弊端。对于他来说,丰富的实践经验足以支持他进行“预测型”设计。但是大部分人没这个能力,因此我们只好走第二条路和第三条路,就是“试探型”设计和“重构型”设计。遇到一个问题,你觉得用某种模式挺合适的,就大胆地用了,成功是积累经验,发现不好,出了问题了,只好改回来,那也是积累教训。这叫做“试探型”。至于重构,应该算是最有组织、成功率最高的工程化方法。先把问题“quick and dirty”地解决了,所有的暗礁都暴露出来,然后再根据实际情况采用合适的模式优化设计。现在XP和UP都高度重视refactory,UP在Elaboration和Construction阶段都鼓励抽出专门的iterations进行重构。所以说如果组织快速的软件开发,当然比较倾向于这条路——打成功率嘛。

透明:讲到重构,我顺便说说《Refactoring》这本书的影响。从工程本身的角度来说,你所谓的“重构型设计”是没有什么问题的。但中国的开发者(也包括我在内)往往比较冲动,比较容易相信银弹的存在。曾经有那么一段时间,我在java中尝试过了重构的方法之后,又拿到C++中去尝试。结果发现,在Java中速度非常快的重构过程,到C++中就被减慢了。究其原因,就是因为C++和Java的约束条件不同。拿着Java中成功的案例直接套C++,不失败才怪。
所以,我必须说:《Refactoring》这本书很有价值。但对于C++程序员来说,它的价值是让你思考,思考这种方法的可行性。如果一个C++程序员没有打算迁移到Java,那么我必须告诉他:《Refactoring》这本书不是让你照着它用的,甚至不是让你去相信它的。对于C++程序员,《Refactoring》全书可以放心相信的只有第13章,其他的部分,都必须非常谨慎地对待。

梦魇:我还要就“试探型”的方法多说两句,我觉得对于个人发展来讲,“试探”也是必不可少的,撞墙不可怕,高水平的人不都是撞出来的吗?你失败了一次,就知道这个模式有什么潜在的问题,下次再用,就会多看几步,像下棋似的。撞的多了,路数就出来了。
我不知道你们是否有这个感觉:用错了模式,吃了亏,再回过头去翻翻《Design Patterns》,看到人家早就指出来这个问题,不过就是那么几句话,原来看上去干巴巴的,现在觉得句句都讲到心坎上,GoF的形象马上就高大起来,还带着光环,感觉是既兴奋又懊悔。

透明:现在回头来看,我更欣赏myan推荐给我的《Designing Object-Oriented C++ Applications Using Booch Method》。这本书能够帮助C++程序员理清思路培养习惯,可惜国内没有引进。相比后来商业味浓厚的UML系列书籍,我觉得这本书对于面向对象的阐释精辟独到,至今未有能出其右者。

梦魇:刚才我们两人都说到Robert Martin,他可是我的榜样。那本1995年的《Designing Object Oriented C++ Application》,我觉得是每一个C++软件工程师都应该反复研读的书。可惜不仅国内没有引进,在国外的名气也不大。如果你觉得面向对象的那些道理你好像都明白,可就是一遇到实际问题就使不上劲,那这本书就是你的最佳导师。
提到理清思路,还有一本书不得不提,就是Andrew Koenig的《Ruminations On C++》。每个人都应该问自己,我学了这么多年的C++,究竟什么是C++最基本的设计理念?遇到问题我第一个直觉是什么?第一个试探型的解决方案应该具有那些特点?如果你不能给出明确的答案,就应该认真地去读这本书,读完了你就有了“主心骨”。

透明:插一句话,谈谈“推荐书”的问题。入门书基本上是放之四海而皆准的,所以推荐的意义也不大。而入门后的发展方向,每个人不同,这个时候就需要“高人”的指点。举个例子:我学C++的时候,myan还不认识我,所以也没有给我推荐书,我还是学过来了,所以即使你当时向我推荐了《Essential C++》或者《C++ Primer》,我也不会太感谢你;但在我认真研究OO的时候,你推荐Robert Martin那本书给我,对我帮助就特别大,而且我从别的地方也很难找到类似的推荐,所以我就很感谢你。
一个程序员,必须有framework的意识,要学会用framework,还要主动去分析framework(在这方面,《Design Patterns》能有一定的帮助)。但是,真正高质量、成气候的framework的书恐怕也就只有针对MFC的。从这个角度来说,MFC纵有千般不是,C++程序员都非常有必要先去用它、熟悉它、研究它,甚至借助《深入浅出MFC》这样的书来剖析它。不然,很难有framework的意识和感觉。
当然,另一个framework也很好,那就是STL。不管用不用MFC、STL,对这两个东西的掌握和理解都是极有帮助的。最近我又在看《深入浅出MFC》,虽然已经不用MFC编程了,但帮助是一定有的。

梦魇:MFC和STL方面,我还是比较推崇侯先生的两本书《深入浅出MFC》和《STL源码解析》。
《深入浅出MFC》这本书,名气自然是大得不得了,不过也有不少人批评。其实书也没有十全十美的,批评当然是少不了的,不过有的时候我看到有人评论这本书,把它跟Inside VC相比,真的是牛头不对马嘴。
你刚才其实说得很对,程序员应该有一点framework意识。而这本《深入浅出MFC》与其说是在讲MFC编程,不如说通篇是在拿MFC为例分析Application Framework的架构和脉络。所以无论你对于MFC本身是什么态度,这本书对每一个C++程序员都有很大的益处。

透明:是的。《VC技术内幕》会告诉你“DYNAMIC_CREATE这个宏怎么用”,《深入浅出MFC》则告诉你“DYNAMIC_CREATE这个宏是怎么实现的”。所以,如果你只需要在VC下写一些小应用程序,《深入浅出MFC》的价值并不太大;但是,如果你需要设计一个稍微大一点的东西(不一定是framework),MFC的设计思想就会有所帮助。

梦魇:另外,我觉得对于MFC也应该有一个公允的评价。过去是吹捧得天上有地下无,书店里铺天盖地都是MFC的书,搞得大家只知有MFC,不知有C++,甚至直到现在还有人问:“我是学MFC呢,还是学C++?VC++是不是比C++更高级的语言?”MFC成了一尊神像,阻碍了人们的视线。所以得把它从神坛上拉下来。这就是过去一两年有很多人,包括我在内批评MFC的一个目的。可是现在大家视野开阔了,.NET也出来了,MFC不再是神像了,少数人就开始以贬损MFC为乐了。我觉得这种态度是不对的。
什么叫好的框架?我觉得在十几年的时间能够象MFC这样保持稳定并且不断进步的框架就是好的框架。可能我们在一些具体的设计问题上有不同看法,觉得“这个地方这么设计不是更漂亮吗?”很多时候是的,但是这不重要,重要的是MFC成熟稳定、有十几年的成功经验,这是最了不起的东西。
另外一点,MFC中间包括着学习Win32 API编程的最佳资料。这是除了其framework方面之外的另一个亮点。我现在使用Win32 API开发,但是经常参考MFC的源代码,收获很大。

透明:STL方面,我对于剖析它的源代码兴趣并不大,毕竟里面源代码多是算法问题。所以,《STL源码剖析》我也只是随便翻翻就束之高阁了。我觉得这本书用来做计算机系的数据结构和算法教材不错,不知道有没有老师乐意这样做。
对于STL,我的态度一向都是“应用至上”。不过,我一直认为SGI STL本身就是一本精彩的书,一本数据结构和算法的经典参考书,同时也是泛型技术的参考书。想知道一个算法是如何实现的,看看STL源代码就行;想知道如何使用type traits,STL源代码里面也有例子。看别人写的书,总觉得隔着一层纱,有点挠不到痒处的感觉。SGI STL的代码写得非常漂亮,一个C++程序员如果不看看这本书,实在是可惜。

梦魇:至于STL,除了《STL源码解析》之外,我举贤不避亲,强烈推荐侯先生与我合译的那本《The C++ Standard Library》。这本书质量之高是无需怀疑的。我现在手边常备此书,随时查阅,对我帮助很大。

透明:C++和Java相比,最大的优势就是它没有一个专门的公司来管它,最大的弱点也是它没有一个专门的公司来管它。Java程序员在学会简单的语法之后,立刻进入SUN提供的framework,一边用这个现成的framework做实际开发,一边在开发过程中继续学习Java一些幽深的特性。而这个时候,C++程序员恐怕还在问“VC和BCB哪个好”呢。这无疑是浪费时间。

梦魇:刚才你说Java和C++的优劣,这个话题已经成了我们这个年代永不消失的声波了。我也不想再谈这个。不过有一点我得说清楚:现在我们很多用C++的人吃了不少苦头,探过脖子去看看Java,觉得它真是太可爱了,这种印象是不准确的。另外,Java也不简单,而且会越来越庞大复杂。在很多场合,Java还不具有竞争力。至于将来如何,我看有些Java爱好者也过分乐观了,似乎计算机科学界几十年解决不了的问题都可以借着Java的东风解决掉,恐怕没那么容易。

透明:那当然。我再次强调:No Silver Bullet。读书很重要,但古人说“行万里路,读万卷书”,还是把“行路”放在“读书”前面。尤其对于技术书籍,如果它不能帮我解决问题、不能给我带来非常实际的利益,那么我是不会去读它的。恶魔说得对,我们这个社会很快餐,我们这个行业尤其很快餐,我们也只能努力适应它。

G. 要成为一名专业的程序员,从零开始需要怎么一步步来比较好,要把最底层的先学精通吗(个人认为)求学长

前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)
建议:
不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。
回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。
一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
启蒙入门
1、 学习一门脚本语言,例如python/Ruby
可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log)
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google (phrase, domain, use reader to follow tech blogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、 用熟一种程序员的编辑器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、 熟悉Unix/Linux Shell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux, vmware player是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 网上有免费的章节,足够用了。或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试Javascript代码(设置断点,查看变量,性能,控制台等)
在一台机器上配置Apache 或 Nginx
学习php,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以跟上
学习一个javascript库(例如jQuery 或 ExtJS)+ Ajax (异步读入一个服务器端图片或者数据库内容)+JSON数据格式。
HTTP: The Definitive Guide 读完前4章你就明白你每天上网用浏览器的时候发生的事情了(proxy, gateway, browsers)
做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页显示)
买个域名,租个空间,做个自己的网站。
进阶加深
1、 C语言和操作系统调用
重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》。
学习(麻省理工免费课程)计算机科学和编程导论
学习(麻省理工免费课程)C语言内存管理
学习Unix/Linux系统调用(Unix高级环境编程),,了解系统层面的东西。
用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)
用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。
用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。
学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)
学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)
IPC和Socket的东西可以放到高级中来实践。
学习Windows SDK编程(Windows 程序设计 ,MFC程序设计)
写一个窗口,了解WinMain/WinProcere,以及Windows的消息机制。
写一些程序来操作Windows SDK中的资源文件或是各种图形控件,以及作图的编程。
学习如何使用MSDN查看相关的SDK函数,各种WM_消息以及一些例程。
这本书中有很多例程,在实践中请不要照抄,试着自己写一个自己的例程。
不用太多于精通这些东西,因为GUI正在被Web取代,主要是了解一下Windows 图形界面的编程。@virushuo 说:“ 我觉得GUI确实不那么热门了,但充分理解GUI工作原理是很重要的。包括移动设备开发,如果没有基础知识仍然很吃力。或者说移动设备开发必须理解GUI工作,或者在win那边学,或者在mac/iOS上学”。
2、学习Java
Java 的学习主要是看经典的Core Java 《Java 核心技术编程》和《Java编程思想》(有两卷,我仅链了第一卷,足够了,因为Java的图形界面了解就可以了)
学习JDK,学会查阅Java API Doc Java Platform SE 6
了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python思考一下“跨平台”这种技术。
学会使用IDE Eclipse,使用Eclipse 编译,调试和开发Java程序。
建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个PHP的小项目试着用JSP和Servlet实现一下。
3、Web的安全与架构

学习HTML5,网上有很多很多教程,以前酷壳也介绍过很多,我在这里就不罗列了。
学习Web开发的安全问题(参考新浪微博被攻击的这个事,以及Ruby的这篇文章)
学习HTTP Server的rewrite机制,Nginx的反向代理机制,fast-cgi(如:PHP-FPM)
学习Web的静态页面缓存技术。
学习Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平扩展的构架。
实践任务:
使用HTML5的canvas 制作一些Web动画。
尝试在前面开发过的那个Web应用中进行SQL注入,JS注入,以及XSS攻击。
把前面开发过的那个Web应用改成构造在Nginx + PHP-FPM + 静态页面缓存的网站
4、学习关系型数据库
你可以安装MSSQLServer或MySQL来学习数据库。
学习教科书里数据库设计的那几个范式,1NF,2NF,3NF,……
学习数据库的存过,触发器,视图,建索引,游标等。
学习SQL语句,明白表连接的各种概念(参看《SQL Join的图示》)
学习如何优化数据库查询(参看《MySQL的优化》)
实践任务:设计一个论坛的数据库,至少满足3NF,使用SQL语句查询本周,本月的最新文章,评论最多的文章,最活跃用户。
5、一些开发工具
学会使用SVN或Git来管理程序版本。
学会使用JUnit来对Java进行单元测试。
学习C语言和Java语言的coding standard 或 coding guideline。(我N年前写过一篇关C语言非常简单的文章——《编程修养》,这样的东西你可以上网查一下,一大堆)。
推荐阅读《代码大全》《重构》《代码整洁之道》
高级深入
1、C++ / Java 和面向对象
我个人以为学好C++,Java也就是举手之劳。但是C++的学习曲线相当的陡。不过,我觉得C++是最需要学好的语言了。参看两篇趣文“C++学习信心图” 和“21天学好C++”
学习(麻省理工免费课程)C++面向对象编程
读我的 “如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)
然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。
实践任务:
用C++实现一个BigInt,支持128位的整形的加减乘除的操作。
用C++封装一个数据结构的容量,比如hash table。
用C++封装并实现一个智能指针(一定要使用模板)。
《设计模式》必需一读,两遍以上,思考一下,这23个模式的应用场景。主要是两点:1)钟爱组合而不是继承,2)钟爱接口而不是实现。(也推荐《深入浅出设计模式》)
实践任务:
使用工厂模式实现一个内存池。
使用策略模式制做一个类其可以把文本文件进行左对齐,右对齐和中对齐。
使用命令模式实现一个命令行计算器,并支持undo和redo。
使用修饰模式实现一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。
学习STL的用法和其设计概念 - 容器,算法,迭代器,函数子。如果可能,请读一下其源码。
实践任务:尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能
做一个贪吃蛇或是俄罗斯方块的游戏。支持不同的级别和难度。
做一个文件浏览器,可以浏览目录下的文件,并可以对不同的文件有不同的操作,文本文件可以打开编辑,执行文件则执行之,mp3或avi文件可以播放,图片文件可以展示图片。
学习C++的一些类库的设计,如: MFC(看看候捷老师的《深入浅出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能会太难了,但是如果你能了解其中的设计模式和设计那就太好了,如果你能深入到我写的《STL string类的写时拷贝技术》那就非常不错了,ACE需要很强在的系统知识,参见后面的“加强对系统的了解”)
Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。
推荐阅读《Effective Java》 and 《Java解惑》
学习Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是学习Java的设计,如IoC等。
Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI, 等消息传递和远程调用的技术。
学习使用Java做Web Service (官方教程在这里)
实践任务: 尝试在Spring或Hibernate框架下构建一个有网络的Web Service的远程调用程序,并可以在两个Service中通过JMS传递消息。
C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:
深究C++(我深究C/C++了十来年了)
学习Java的各种设计模式。
2、加强系统了解
重要阅读下面的几本书:
《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。
《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。
《TCP/IP详解 卷1:协议》- 这是一本看完后你就可以当网络黑客的书。了解以太网的的运作原理,了解TCP/IP的协议,运作原理以及如何TCP的调优。
实践任务:
理解什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。
写一个网络聊天程序,有聊天服务器和多个聊天客户端(服务端用UDP对部分或所有的的聊天客户端进Multicast或Broadcast)。
写一个简易的HTTP服务器。
《Unix网络编程卷2,进程间通信》信号量,管道,共享内存,消息等各种IPC…… 这些技术好像有点老掉牙了,不过还是值得了解。
实践任务:
主要实践各种IPC进程序通信的方法。
尝试写一个管道程序,父子进程通过管道交换数据。
尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。
学习《Windows核心编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(Event, 信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞精通。
实践任务:使用CreateProcess启动一个记事本或IE,并监控该程序的运行。把前面写过的那个简易的HTTP服务用线程池实现一下。写一个DLL的钩子程序监控指定窗口的关闭事件,或是记录某个窗口的按键。
有了多线程、多进程通信,TCP/IP,套接字,C++和设计模式的基本,你可以研究一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)
实践任务:通过以上的所有知识,尝试
写一个服务端给客户端传大文件,要求把100M的带宽用到80%以上。(注意,磁盘I/O和网络I/O可能会很有问题,想一想怎么解决,另外,请注意网络传输最大单元MTU)
了解BT下载的工作原理,用多进程的方式模拟BT下载的原理。
3、系统架构
负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
多层分布式系统 – 客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。
CDN系统 – 就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。
虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。
学习Thrift,二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
学习Hadoop。Hadoop框架中最核心的设计就是:MapRece和HDFS。MapRece的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapRece就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。
了解NoSQL数据库(有人说可能是一个过渡炒作的技术),不过因为超大规模以及高并发的纯动态型网站日渐成为主流,而SNS类网站在数据存取过程中有着实时性等刚性需求,这使得目前NoSQL数据库慢慢成了人们所关注的焦点,并大有成为取代关系型数据库而成为未来主流数据存储模式的趋势。当前NoSQL数据库很多,大部分都是开源的,其中比较知名的有:MemcacheDB、Redis、Tokyo Cabinet(升级版为Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

H. 我是JAVA程序员,有很多逻辑老是绕不清楚,比如复杂的SQL查询,我该怎么提高啊

......sql查询并不复杂。逻辑绕不清楚就先不绕
别人用一句查询出来的结果你可以用10句来达到他的效果一样
也就是说,不用在意别人的逻辑
咱们就按咱们自己的逻辑
每个人都有自己的一套逻辑,总去适应他人的就永远没有自己的风格
当然不是说别人的代码不好
在迷茫的时候适当的借鉴也是非常好的
他山之石可以攻玉
提高就是一个不断的积累过程
相信自己,不会就多问,不要怕丢脸,谁都是从那个时候过来的
逻辑不清楚就把逻辑拆开来看
一步步的就清楚了

I. 从事软件开发方面的人应该看哪些课外书

◆ Visual Basic .NET 技术内幕
—— Programming Microsoft Visual Basic .NET(Core Reference)

本书内容深入全面,涵盖的主题十分丰富,并结合大量典型的代码示例来讲解Visual Basic.NET的核心编程技术。本书共分6大部分。首先介绍了Visual Basic.NET语言的基础知识,以及一些有关类的新特性,例如继承、委托和事件等。然后详细讲解了Visual Basic.NET面向对象的特性,并介绍了.NET对字符串、数字、日期/时间和文件类的内在支持,以帮助您掌握这些最重要的API元素。之后,描述了新的Windows窗体、通过ADO.NET进行数据库编程和Win32技术支持等,并讲解了如何通过程序集来部署Visual Basic.NET应用程序。最后介绍了Internet应用程序的开发,包括Web窗体、ASP.NET应用程序和诸如缓存技术、配置等新特性,以及用于Web开发的基本技术。 本书在多处指出了Visual Basic.NET与Visual Basic 6之间的区别及其新特性,并介绍了在Microsoft.NET环境下导入和重用现有的V1sualBasic代码的最佳方式。通过本书的学习,您可以全面掌握Visual Basic.NET编程技术。

◆ Microsoft Windows程序设计 - Visual Basic .NET语言描述
—— Programmin Microsoft Windows with Microsoft Visual Basic .NET

Petzold最畅销的C#书籍——现在针对Microsoft Visual Basic.NET开发人员推出了适用本。Charles Petzold是全球最权威且知名的Windows程序设计专家,他将其最畅销Programming Microsoft Windows with C#——书加以改写,使之能完全适用于Visual Basic.NET的开发人员。这位畅销书的作家示范了如何使用Visual Basic.NET将Windows Forms的功能发挥到极致(Windows Forms是新一代的Windows程序设计类库)。您将学习如何使用Visual Basic的.NET版本替Windows应用程序建立动态的用户界面与图形化输出。通过丰富的用户端应用程序范例清楚示范了最常用的技术与不为人知的技巧,有了本书,您能真正深入到VisuaI Basic.NET的核心领域。

◆ Microsoft .NET框架猛岁袭程序设计
—— Applied Microsoft .NET Framework programming

本书是《微软.NET程序员系列》丛书之一,主要介绍如何开发面向Microsoft .NET框架的各种应用程序。Microsoft .NET框架是微软公司推出的新平台,包含通用语言运行时(CLR)和.NET框架类库(FCL)。本书将深入解释CLR的工作机制及其提供的各种构造,同时还将讨论FCL中一些重要的类型。全书共分为 五个部分,包括:.NET框架基本原理、类型和通用语言运行时、类型设计、基本类型,以及类型管理。
本书适用于要了解、掌握.NET平台的读者,尤其适合广大编程爱好者、软件工程师、系统架构师阅读。

◆ 设计模式:可复用面向对象软件的基础
—— Design Patterns:Elements of Reusable Object-Oriented software

本书结合设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。本书适合大学计算机专业的学生、研究生及相关人员参考。

◆ 深入浅出设计模式
—— Head First Design Pattern

你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求帮助——设计模式是过去人们面对同样的软件枝兄设计问题所得到的经验。 有了设计模式,就可以利用其他人的实践经验的精华,因此省下的时间可以用在其他的事情上,如:更有挑战性的事情、更复杂的事情以及更有趣的雀物事情。你想要学习:

·重要的模式

·何时使用某个模式,为何使用该模式

·如何在你自己的设计中马上采用这些模式

·何时不该使用该模式(如何避免滥用模式)

·某个模式是依据哪些面向对象设计原理而设计出来的

更重要的是,你想在学习设计模式的过程中,不感觉到昏昏欲睡。如果你曾经读过任何一本深入浅出(Head First)系列书籍,你就会知道能够从本书中得到的是:透过丰富的视觉效果让你的大脑充分地运作。本书的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得这本书能够将这些设计模式深深地烙印在你的脑海中,不容易被遗忘。你将会更擅长于解决软件设计中的问题,并能够和你的团队成员用模式的语言来更好地沟通。

◆ 设计模式解析
—— Design Pattern Explained

本书从一个新的视角描述面向对象设计,将面向中对象编程的原则与运用设计模式力量创建健壮、可靠的软件开发环境结合起来。书中采用实用、恰当的例子,指导读者用模式解决普通的编程问题,并且解释现代软件设计模式的优越性。本书适用于学习面向中对象设计和设计模式的学生、程序员以及从事软件开发的人士。 本书要点包括: ·对象、封装和继承的新观点 ·设计模式的思想、起源及其在软件设计学科中的应用 ·模式基础以及使用统一建模语言(UML)进行面向对象软件开发 ·如何实现关键模式——Strategy(策略)、Observer(观察者)、Bridge(桥接)、Decorator(装饰)等等 ·共同点/变化点分析、设计模式以及它们如何帮助理解抽象类

◆ 代码大全第二版
—— Code Complete,Second Edition

代码大全(第二版)是着名IT畅销书作者Steve McConnell十一年前的经典着作的全新演绎:第二版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补 了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论你是什么背景,阅读本书都会让你在更短的时间内、更容易地写出更好的程序。

◆ 人月神话
—— The Mythical Man-Month:Essays on Software Engineering,Anniversary Edition

本书自第一版以来,畅销20余年不衰,是软件领域绝无仅有的必读经典。本文作者为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。本书内容来自布鲁克斯在IBM公司 System/360 家族和OS/360中的项目管理经验。在本书第一次出版20年后的今天,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。既方便了熟悉原有内容的人们,也方便了许多第一次阅读它的读者。

◆ 人件
—— Peopleware:Proctive Projects and Teams,2nd Ed

《人件》第1版于1987 年出版,专门讨论了软件开发和维护团队的管理问题,并向人们的传统认识提出了挑战。作者在书中推崇人本管理思想,正确指出知识型企业的核心是人,而不是技术,呼吁给予软件工作者充分的自由和信任。本书推出后,立即在西方引起了轰动,被誉为"几十年来对美国软件业影响最大的理念"。与《人月神话》一样,《人件》现已成为软件团队管理的经典之作。它和《人月神话》共同被誉为软件图书中"两朵最鲜艳的奇葩"。人们认为,《人月神话》关注"软件开发"本身,《人件》则关注软件开发中的"人",因此,在成千上万的书架上,《人件》永远和《人月神话》并列在一起。1999 年 2 月,《人件》第2版出版,增补了8 章新内容。这些新内容拥有更加宽广的视角,对大中型组织中的团队如何运作进行了深入探讨。《人件》最新版的中文译本由UMLChina组织翻译,清华大学出版社将于2003 年5月出版。

◆ 程序员修炼之道 —— 从小工到专家
—— The Pragmatic Programmer

本书主要介绍了软件开发的原则和方法。本书直指编程前沿,透过日益增长的现代软件开发 规范和技术,对软件开发的核心过程进行了审视——以满足用户为本,针对用户需求来产出高效、可维护的优秀代码。全书涵盖内容广博,从个人责任和职业发展,到保持代码灵活性并使之易于改动和重用,多而不杂。本书采用了有趣的轶事、详实的例子以及诙谐的对话等方式,描述了软件开发方方面面的最佳实践方案和各种缺陷。您从本书所学到的开发技巧、开发习惯以及职业态度,必将帮助您修炼成为一名真正的Pragmatic Programmer!

J. 在一线城市上班的程序员,家庭一般是什么样的

通常来说,家庭条件无非就是高、中、低三个档次,恰好几种水平的我都接触过,跟大家聊聊(Base北京)。


家庭条件好点儿的,大多数做程序员都是对这个行业比较感兴趣的,或者就是找个工作能够糊口就行了。

这种家庭条件的程序员,一部分转行或子承父业了,另外一小部分还在北京做程序员的,不过房子、车子都有了,拿着两三万的工资,生活比较惬意(鬼知道他们每年理财能挣多少)。

我属于条件中等的,我对中等的标准是:父母身体 健康 ,养老没有负担,退休工资足够生活;在北京买房的话,可以帮衬一下,全款拿不出来,帮着凑凑首付没有啥问题。

我刚工作的时候月薪3K,那时候北京租房便宜,养活自己足够了。08年底的时候认识了现在的老婆,10年10月买房,首付40万是家里出的,还借了一部分。贷款70多万,月供4K,那时候跳槽完了税前才8K,所以前期家里没少补贴。13年有了孩子,我们的工资基本月光,但是不用往家拿钱,所以压力不是特别大(四个老人都有退休工资)。

我们这种家庭条件的程序员,基本上还在这个行业,日子过得好坏,基本上取决于买房的早晚。

有一些朋友选择离开一线城市,去了IT行业还算发达的新一线城市或省会城市,创业或依然当程序员,日子也都过得不错。

留在一线城市的我们,随着父母年纪的增加,孩子上学的问题,也开始考虑是否离开北京。

家庭条件差的也遇到过,好一些的,自己过自己的日子;差一些的需要负担父母的养老甚至弟弟妹妹的学费生活费。

这种条件的朋友只能依靠自己的努力,好在IT行业是个容易创造奇迹的行业;能力强的、运气好的程序员,可以自力更生,在北京安家置业;混的一般的,拿着几万的工资,也只够租房养家糊口的,在北京买房是遥遥无期了。


不过什么样的家庭条件,都不是我们能选择的。

好好爱着父母,好好工作,我们做不了富二代,那就争取成为富一代,生个孩子,我们就是富二代他爹。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

家庭有的好,有的坏,主要是看你个人的出身,如果你是刚毕业一两年的程序员,如果你家里面很有钱,那你家里就是很好的,如果你家里面没有钱,那你的家庭就不是怎样好的。

如果你毕业后工作一段时间,而且你是有名牌大学的学历并且你的技术过硬,你工作那么三五年,小有积蓄存款,可以在二线城市给个首付开始买一个房。如果是在一线城市,再加上父母给的一些钱也可以给个首付开始买房了。

这就是程序员的工作,程序员的工资高,并且有些公司福利也是挺好的,如果家庭不怎么好,通过程序员的努力,可以让家里面变得更好,这就是程序员的工作,有人说程序员工作不好,但我认为如果你能够做的,并且能够做的比较好的,话程序员对你来说就是一份比较好的工作吧。

如果你一个男人人努力,家里面肯定不会差,如果一个人不努力,家庭也就是一般

大家好,我是王我。

本人在魔都这座城市已经上班一年啦,也就是说做了整整一年的程序员,这一年里, 我从小白变成了大白。 写代码也慢慢变成了代码。去年这个时候,我都回家过年了,今年,现在的我还在公交车上无聊的回答一下问题,真是寂寞如雪啊。

作为一个刚刚入行的程序员,我来讲讲我自己吧。

我不帅,但是我努力。 别人都说程序员的工资高,我在大学的时候也是这么认为的,可是步入了这个行业才发现并不是这个样子。 我在答题的时候不是一次的说,我现在的月薪是7k, 唉,每天晚上回来看前端书籍,然后看一些视频,前端和后台不一样,前端需要去适配不同的浏览器和不同的设备,有时间调起来是真的麻烦

我不是城市的孩子,我是农村的。 个人而言吧,我认为如果家境非常好的话,我认为是不会去做程序员的, 毕竟程序员累呀,有钱谁干?倒不如靠关系考考公务员,多好呀为什么要天天加班?

记得刚刚入职的时候,那是真的难过呀,简直就是度日如年,每天都要去写组件, 我们的项目都是vue框架, 然后我们 公司用什么iview等第三方组件,一开始我看到我是懵逼的,每天晚上回去都要学习,真的是烦啊,一开始的时候,唉。

我在以前答题的时候,我说我一个月7k,很多人评论说少了,的确,我准备年后辞职了,参加一下春招,毕竟我还是半个大学生嘛。然后搞个11k


这本书是陪伴我开始程序员生涯的书,每天回来都翻翻,学好js,走遍天下都不怕

大家好,我是王我,中国最帅的程序员,好啦,马上要下公交车啦。

认识一些人,不分年龄,工作情况,一般都是拼,家庭情况一般是普通农民家庭比较多。


程序员领域跟其他行业差不多,就是越高工资,压力越大。国内干到40岁,基本是到头了,除非你是名人,牛人,即使名人,牛人他的头衔也变了。 可以看下国内各种大佬程序员们。基本到后期都是xxx讲师,xxx执行官,xxx总监,很少会有人还继续说自己是某某程序员。。。


程序员行业相对来说还是有门槛的,早期的国内程序员,摸到电脑都很难,最后成为了程序员,每个都是拼命努力才留下来的。随着这些年互联网的发展,门槛越来越低。


所以早期的程序员里面,大部分家庭都是寒门苦读出生。 到今天,我看到旁边00后的程序员,家庭慢慢有些改变,很多都是兴趣,觉得代码好玩,学着学着就会了,所以说门槛低了。




我前面一个回答香港问题有说到:有个要好的兄弟,广东云浮人, 五一在他家玩,聊过生活压力话题,他家,爸妈弟弟都很早就过户到香港,老家那边已经没特别亲的人,房子自己有完全的自主权,大陆只有他一人。


他在大陆佛山千灯湖有一套房、云浮市中心有一套房(很早一次付清买的),云浮村里有一座楼。可以说并不属于特别穷的那种。


但压力犹在,由于父母没在这边,老婆全职带孩子, 每个月车贷,房贷目前正在还,作为程序员,虽然是一小管理,但加班经常有。一刻都不敢放松,个别时候带头加班通宵。


你可以说他这家庭已经很好,一个人拥有三个地点的房子,可是他也不敢卖掉任何一个, 佛山的如果卖了,他小孩长大读书,工作没地方落脚。 市里的房子,每年放假自己在住,以后自己还指望在这里养老,村里房子卖不了几个钱。


个人看来,30岁以上的程序员,大部分家庭都是寒窗苦读比较多。随着现在门槛逐渐减低,各式各样的家庭都会有。


大多数的家庭条件都很一般。我原来的大学同学就是去上海干程序员,现在已经移民美国了。他这个人家庭条件非常差,大学的时候基本上连伙食都不能保证,只能靠助学金艰难度日。

他的数学理工科都非常好,本来是可以保研的,但是因为有一门思想政治课给挂了,再加上家里的条件不允许,选择了出去工作,到一家外资软件公司担任程序员。工作业绩还是非常好的,后来就移民美国去了。

还有一个同学应该算我师弟大学毕业后去了网络。那时候网络程序员的薪水也是非常高的。他的家庭来自于普通的象征,只能说收入很一般吧。但是自己够拼,这么多年,北京也有房有车了。

还有一个大学同学,硕士研究生毕业以后去了谷歌。后来自己出来创业,家庭条件是非常好的。

所以程序员的家庭条件各种各样的都有。但客观来说,很少见到官员家庭。一般都是985高校的毕业生。以普通家庭和老板家庭为多。

恰好,我有个邻居在华为(上海部)上班。对此,我给大家描述下他的家庭是什么样的。

就家庭收入来说,属于中上等水平。

2年前,他加入华为,工资+年底奖金+工龄补助共计70万元左右,因为要交个税,所以真正到手的估计在50万左右。

着想比其他邻居来说,要好很多。比如,有个邻居同事同样在上海上班,做的也是IT类,每天同样累到怀疑人生,但年薪只有20万左右。即使上个月开始,工资增加了2500元,但依然相去甚远。

就消费观念来说,属于节俭型。

他有两个孩子,妻子是全职妈妈,所以养家的金钱重担只能他一人挑。

妻子知道他的不容易,所以平时很少买昂贵服饰、名包等,衣服基本在几百元到1000多不等。

平时,他们也很少去餐馆吃饭。邻居一般周末才回来,所以他乐得帮家人烧一桌的好菜。

就教育方面来看,属于贵族型。

虽然他们在生活上比较节俭,但他们在孩子教育上非常舍得。

他的女儿读的是贵族双语幼儿园(中班),学费6W/年,这还不包括课外报的画画、美术、钢琴等培训班。

今年,他的儿子也上了这个幼儿园的小班,学费一样。

所以,就他们孩子读书而言,每年花费18-20万左右。

这种教育开支,肯定不是常人能够承受的。

在房子、车子等大宗消费上,属于中等水平。

比如,他们开的车子就是普通的丰田系,房子也只有1套3居室。不过听他们说,近期他们筹划买第2套房。

这名邻居,今年35岁,在IT行业已属于大龄了,但家中还有两个几岁的孩子要养育。 所以,即使他的工资很高,压力也非常大。

也许,不管身在高位,还是普通的工作者,摆正心态,安于自己所有的环境和状况,才是最好的释压方式。

曾经北漂十几年,还没毕业就跑去漂了,从找到第一份工作到后来认识现在的媳妇,都是在北京度过,呆过的公司不是很多,但明显感觉加班是越来越多,主要跟公司性质有关,还和个人承担的东西越来越多有关,现在就经历过几家公司的实际生活状态给大家分享下。

第一份工作的时候是孤身一人,大约工作了两年的时间遇到了现在的媳妇,在刚工作阶段由于基础薄弱大部分的业余时间都是扑在弥补编程基础上了,每天基本除了睡觉的时间都在在研究代码或者看编程书籍中度过,算是编程生涯比较纯粹阶段,入行的前两年基本上工作强度不是很大,可能还和公司的性质有关(外企)而且还是弹性工作制,因为入行时间比较短工作时间上控制的比较严格,基本上还属于按照正常点上下班,有时候还会加班加点,大致上的规则是有个项目加班加点非常疯狂,一旦项目紧急阶段过去了基本上就趋于正常了,一年大概有个三四次这种紧急阶段,后来认识了现在的媳妇,业余的时间也有所倾斜,按下下班的时间变多了,业余想抽调大块的时间也变得艰难起来了,但总体而言第一家公司算是职业生涯呆过的最轻松的公司,呆的时间也是最长的,差不多有5年多的多时间,而且和这个公司的同事已经呆出了感情,不是公司经营不善说不定还会一直呆到现在,毕竟从性格上来讲不太喜欢到处乱动,还是喜欢在一个比较稳定的地方安身的搞代码技术,对于别的诉求相对比较低,由于呆的时间比较长对于里面的业务模块已经非常熟练了,所以加班加点也不是很多,频繁的跳槽不见得是一件非常明智的事情,呆在一个地方熟悉环境了,反而更加容易出成绩。

总体来讲第一份工作前期入门阶段加班加点比较多,后来因为家庭原因加上对业务模块越来越熟悉导致,加班加点反而不是那么多,平时按点下班的概率非常高,基本上下班后还能和媳妇一起逛逛街,算是职业生涯比较顺的阶段,家庭和谐指数也非常高。

第二份工作选择了一家蒸蒸日上的中小企业,明显的工作强度比较大,主要原因还是对新业务的一个熟悉过程,前半年基本上加班加点比较多,用了大半年的时间在工作奠定一个比较稳定的地位,毕竟进入新公司都需要一个适应阶段,包括人员的磨合技术的磨合等等,企业的性质属于项目制,每到项目紧急时刻也是忙的要命,而且技术人员普遍没有在第一家公司强,属于经验丰富的老技术员带着一帮新兵蛋子工作阶段,除了赶项目还要培养新兵,所以这个阶段非常累,差不多有一年的时间在赶项目和培养新人,等到新人培养出来了项目也接近稳定了,开始进入平稳期了,在刚进入公司阶段由于工作强度大,媳妇还是非常不满意,觉得工作已经把整个人的魂魄给弄走了,每天都是很晚回来,基本上两个人说话的精力都没了,后来忙过来一年时间把整个业务梳理清晰,才算是恢复正常的阶段,本来在这家公司还是非常有希望拿到一份额外的收入,由于干的还不错,也拿到股份,但由于国家那年的上市的政策变化给耽误了,前几天还打听到公司到现在还没上市,所以一旦错过再找到机会起来其实挺难的。

第三份工作算是纯正的互联网公司性质,选择换工作还是想进入一家正牌的互联网公司挑战下,也是加班强度最大的一家公司,几乎很少有按点下班的时候,就这还不到公司一半员工的平均加班水平,算是加班非常少的员工 ,在里面耍了三年的时间,充分感受到了加班加点出版本的气氛,这个阶段也是和媳妇吵架非常多,主要还是精力都在工作上,回到家不是很晚就是精力耗尽,最后选择了辞职直接结束了北漂的生涯,整体算下来北漂十几年混的还挺知足,人贵在取舍,懂得什么时候做什么事情。

毕竟一直在外边漂着,最后的结局还是要叶落归根,满足了所欲的技术欲望之后,就要考虑以后的生活该如何去做,规划以后的生活,转眼间离开北京已经将近四年的时间了,每次回顾起来也是带着慢慢的感激之情,北漂的十几年完成技术小白到一个程序员,中间也做出点小成绩,正是由于十几年的技术积累才让自己有机会在三线小城市还能做着自己喜欢的编程技术,加班加点少了,对于生活上照顾也多了,家庭上面也顺了许多,能有更多的时间陪着老婆孩子。

希望能帮到你。

我天天和程序员打交道,深圳是一线吧,我们公司是做华为外包,讲真的,家境一般,基本都是寒门苦读出身吧。

在一线城市上班的程序员多数都是农村,在城市的家庭都一般。只有少数一线城市家庭好的,处于对对编程的热爱。

英雄不问出路,家需要自己经营!如果你做一名程序员想在一线城市安家的话!你的努力,制定计划一步一步实现自己的目标!自己制定一个成长路线,稳定了找个合适的女孩一起奋斗,在稳定点把父母接到城里!

从初级程序员--->高级程序员--->技术架岗位(项目管理岗位)一步步实现自己的人生目标!

阅读全文

与程序员课外书相关的资料

热点内容
python符号表达式 浏览:32
威驰压缩机继电器 浏览:869
华为手机怎么设置移动数据app 浏览:957
空调压缩机哪的厂家多 浏览:388
手指速算法24加7怎么算 浏览:137
如何用python写vlookup函数 浏览:796
社保加密狗厂商 浏览:214
php编译运行说法 浏览:955
程序员说喂 浏览:256
抖音直播云服务器 浏览:627
一加7pro文件夹data 浏览:424
程序员淋雨 浏览:965
python输出数字序列中的空格 浏览:78
怎么将pdf文件大小 浏览:734
氧原子相对分子量算法 浏览:988
加密机为什么是安全的 浏览:451
单片机拼音输入法 浏览:807
苹果笔记本t2加密芯片怎么打开 浏览:797
安卓如何把手机投屏至电视 浏览:759
方舟编译器现在可提速哪些软件 浏览:61