首页 > 学术论文知识库 > 程序员杂志阅读

程序员杂志阅读

发布时间:

程序员杂志阅读

《电脑编程技巧与维护》《个人电脑》《现代计算机》《微型计算机》《家用电脑世界》《电脑界电脑高手》《电子计算机外部设备》《电脑高手》《世界电脑商讯》《国外微计算机》《电脑自做》……

《Java并发编程的艺术》(方腾飞)电子书网盘下载免费在线阅读

资源链接:

链接:

书名:Java并发编程的艺术

作者:方腾飞

豆瓣评分:

出版社:机械工业出版社

出版年份:2015-7-1

页数:240

内容简介:

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。

《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、Java中的锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,同时通过实例介绍了如何应用这些技术。

作者简介:

方腾飞(花名清英,英文名kiral),

蚂蚁金服集团技术专家,从事Java开发近10年。5年以上的团队管理、项目管理和敏捷开发经验,崇尚团队合作。曾参与CMS、电子海图、SOC、ITIL、电子商务网站和信贷管理系统等项目。目前在蚂蚁金服网商银行贷款管理团队负责数据采集平台开发工作。与同事合作开发了tala code Review插件,深受阿里数千名工程师拥趸,并开发过开源工具jdbcutil()。创办了并发编程网,组织翻译了百余篇国外优秀技术文章,并曾为InfoQ撰写“聊聊并发”专栏,在《程序员》杂志撰写敏捷实践系列文章

魏鹏,

阿里巴巴集团技术专家,在阿里巴巴中国网站技术部工作多年,曾担任中国网站交易平台架构师,主导了交易系统服务化工作,设计实现的数据迁移系统高效地完成了阿里巴巴中国网站交易数据到阿里巴巴集团的迁移工作。目前在阿里巴巴共享业务事业部从事Java应用容器Pandora和服务框架HSF的相关工作,其中Java应用容器Pandora是阿里巴巴中间件运行的基础,而服务框架HSF则是阿里巴巴集团实现服务化的主要解决方案,二者在阿里巴巴拥有最为广泛的使用量。个人平时喜欢阅读技术书籍,翻译一些国外优秀文档,喜欢总结、乐于分享,对Java应用容器、多线程编程以及分布式系统感兴趣。

程晓明,

1号店资深架构师,从事1号店交易平台系统的开发,技术上关注并发与NIO。因5年前遇到的一个线上故障,解决过程中对Java并发编程产生了浓厚的兴趣,从此开始了漫长的探索之旅:从底层实现机制、内存模型到Java同步。纵观我自己对Java并发的学习过程,是一个从高层到底层再到高层的一个反复迭代的过程,我估计很多读者的学习过程应该与我类似。文章多见诸《IBM developerWorks》、InfoQ和《程序员》杂志。

在本文的开始想问问大家,有多少和我一样二十出头的人,你们对《程序员》杂志了解多少? 生于2001 年的《程序员》曾陪伴了无数开发者成长,(那一年我才3岁)如今已停刊许久,看一些经验丰富的开发者说在互联网还不发达的时代,就是《程序员》伴他们成长的,如今由近百位专家参与、经数月打磨后,《新程序员》也已经发布,希望对此有兴趣的大家可以多多了解一下,我本人也是对积累了这么多技术大师和优秀开发者表示很期待! 再次感谢一下《新程序员》这次举办的走进名企线下交流活动,让我能够走进微软亚洲研究院去参观,学习,感受到微软的黑科技,我也很好奇这个顶尖的研究机构在做哪些方面的工作,又要展示哪些前沿成果和黑科技? 而微软作为一家伟大的企业,家喻户晓,本文就不进行过多的介绍了,相关介绍很多,1998年建院至今的微软亚洲研究院也是和我很有缘了,和我同一年出生,必须附上一张图。 刚踏进微软的大门心情还是很激动的,第一时间去微软的新视界目睹了微软目前的各类技术和企业愿景,体验了太多有意思的东西,拍了很多照片想要分享给大家,但我还是觉得有机会亲自到现场体验比较好,这种切身的体验,绝对比照片或文字精彩的多,包括后续了解到的巨额成本的水下数据中心、虚拟安全技术应用中心也是让我大吃一惊。 [图片上传失败...(image-3fb2e5-1638533578506)] 路过了微软的小会议室还是挺漂亮的,冷色和暖色两个色系,还有楼梯的警示标志,我觉得很生动,有让我滑下去的冲动,可以看出来他们很鼓励员工去走楼梯,还有睡眠仓,里面是类似飞机头等舱的座椅,中午想补个觉可以来休息一下,福利待遇这些相信大部分人都懂得。

电脑报 还有点意思 电脑爱好者 又贵 内容还拉几 买过一次 绝对没有第二次

新程序员杂志订阅

技术类的,CSDN、javaEye还真没有特定的……

《电脑商报 》¥ 《电脑报 》 ¥ 《电脑商情报A版.全国版 》 ¥ 《中国金融电脑 》¥ 《电脑编程技巧与维护 》 ¥ 《电脑爱好者 》¥ 《微电脑世界 》¥ 《电脑知识与技术.经验技巧 》¥ 《电脑自做 》¥ 《电脑开发与应用 》¥ 《电脑应用文萃 》¥ 《电脑与信息技术 》¥ 《微型电脑应用 》¥ 《学电脑 》¥ 《PC个人电脑 》 ¥ 《家用电脑与游戏 》¥ 《电子与电脑 》 ¥ 《信息与电脑 》¥ 《新电脑 》¥ 《电脑商情报.家用电脑周刊 》¥ 《电脑商情报.游戏天地 》 ¥ ¥ 《电脑迷 》 ¥ 等等等等…… 可以到()看看。希望采纳

实话说,程序员想提高自己功力一靠看实体书,二靠多动手做项目;网站知识多而不系统,只能起到开阔眼界的作用,花太多时间在上面不值得,一般周末上一两个小时就行了,再多就是浪费。

说句实话,国内的一些关于编程的一些网站都比较落后,更新的都比较慢,如果英语比较强的话,最好还是看国外的一些网站,比如Apache,Sun等公司的网站,你会学到很多东西的,而且最新的技术,框架等动态理念也会及时看到。英文比较薄弱的话,国内的比较不错的也就是楼上所说的那几个:CSDN:寻找一些资源非常不错,这里牛人比较多,有问题上去提问一般都会解决。:java不错的技术论坛。开源大全:java开源技术网站,这里有很多关于开源技术的东西。

程序员杂志在哪里订阅

推荐可以去看看《程序员杂志》、《码农周刊》等都是一份专为程序员打造的IT技术周刊。希望上述回答能有所帮助!!

程序员?我每期在报摊上买是10块啊...想要便宜的话,你去找你当地的那种管订阅报纸、杂志的公司问问。像我这里订报的地方(不是邮局),都会有一些优惠的,一般来讲就是订两种,比如一份报纸一份杂志,这样会便宜不少。但前提是你那里也有这样的公司并且也有这样的优惠。如果没有那就只能通过邮局了,也便宜不了了。

某宝订阅全年

新程序员杂志

在本文的开始想问问大家,有多少和我一样二十出头的人,你们对《程序员》杂志了解多少? 生于2001 年的《程序员》曾陪伴了无数开发者成长,(那一年我才3岁)如今已停刊许久,看一些经验丰富的开发者说在互联网还不发达的时代,就是《程序员》伴他们成长的,如今由近百位专家参与、经数月打磨后,《新程序员》也已经发布,希望对此有兴趣的大家可以多多了解一下,我本人也是对积累了这么多技术大师和优秀开发者表示很期待! 再次感谢一下《新程序员》这次举办的走进名企线下交流活动,让我能够走进微软亚洲研究院去参观,学习,感受到微软的黑科技,我也很好奇这个顶尖的研究机构在做哪些方面的工作,又要展示哪些前沿成果和黑科技? 而微软作为一家伟大的企业,家喻户晓,本文就不进行过多的介绍了,相关介绍很多,1998年建院至今的微软亚洲研究院也是和我很有缘了,和我同一年出生,必须附上一张图。 刚踏进微软的大门心情还是很激动的,第一时间去微软的新视界目睹了微软目前的各类技术和企业愿景,体验了太多有意思的东西,拍了很多照片想要分享给大家,但我还是觉得有机会亲自到现场体验比较好,这种切身的体验,绝对比照片或文字精彩的多,包括后续了解到的巨额成本的水下数据中心、虚拟安全技术应用中心也是让我大吃一惊。 [图片上传失败...(image-3fb2e5-1638533578506)] 路过了微软的小会议室还是挺漂亮的,冷色和暖色两个色系,还有楼梯的警示标志,我觉得很生动,有让我滑下去的冲动,可以看出来他们很鼓励员工去走楼梯,还有睡眠仓,里面是类似飞机头等舱的座椅,中午想补个觉可以来休息一下,福利待遇这些相信大部分人都懂得。

1、牛客牛客是一款专为程序员笔试、面试而打造的找工作神器。在这里可以随时随地免费刷题,各种名企校招真题应有尽有,是数百万大学生都在使用的免费在线学习平台,通过刷题提高笔试通过的机率,帮助程序员们顺利拿到OFFER。2、程序员杂志程序员杂志是一款程序员资讯工具阅读软件,每月不可错过的前沿技术、工具尽在其中。这是针对开发人员的专业技术刊物,是程序员学习与提高的重要参考资料。3、程序媛女程序员是不是很酷?而程序媛是一款学习教育信息,是专为女性打造的线上编程学习平台。界面简洁,提供有趣的会话式学习模式,且拥有活跃的社区让用户们在这可快速解决各式各样的疑难。程序员考试属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个初级考试。程序员考试分为上午科目和下午科目,上午考基础知识;下午题是程序设计。我用的APP 上学吧的程序员题库 你可以试试

说句实话,国内的一些关于编程的一些网站都比较落后,更新的都比较慢,如果英语比较强的话,最好还是看国外的一些网站,比如Apache,Sun等公司的网站,你会学到很多东西的,而且最新的技术,框架等动态理念也会及时看到。英文比较薄弱的话,国内的比较不错的也就是楼上所说的那几个:CSDN:寻找一些资源非常不错,这里牛人比较多,有问题上去提问一般都会解决。:java不错的技术论坛。开源大全:java开源技术网站,这里有很多关于开源技术的东西。

计算机技术的发展一日千里,稍不留神,就大有落后之感觉。笔者的体会是常阅读一些计算机类的报刊杂志,受益非浅。据不完全统计,国内正式出版发行的计算机类报纸有20余种,计算机类杂志40余种。此外,各行各业的各类专业技术刊物也常有本行业本专业的计算机应用文章,基本上反映了计算机在各行业中的应用现状和发展趋势。怎样在如此浩瀚的资料中提取对自己有用的信息,以笔者之拙见,特将自以为对本专业计算机用户有帮助的报刊杂志罗列如下,与同仁共勉。1.报纸类:《计算机世界》报:邮局订阅代号:1-28,每周出一期,每期定价元,全年定价元。该报每期6-10本,设有国内版、国际版、专题版、软件版、学习版、评测版、网络版、市场版等,至少200版面以上,可能是国内版面最多的一种报纸。由中国计算机世界出版社服务公司主办,中美合资经营。该报的办报口号是:国内与国外并重,普及与提高兼顾,面向生产企业,面向科教单位,面向管理部门,面向计算机用户。该报的特点是信息量大,范围广泛,反映快速。我国计算机行业的科研、开发、生产、应用、新动态、新产品、新工艺、新技术、新成果、新软件、新系统,均在该报重点报导之列。其内容有各行各业的计算机应用信息,各类流行系统软件和应用软件的评测介绍,计算机业界热点焦点论谈,专题论述、讨论和讲座,实用程序源代码,软件应用及软件开发经验介绍,编程技巧,产品广告,各类计算机软件、硬件及外设最新价目表等。 该报读者面广泛,适合于各行各业不同层次的各类计算机用户阅读。领导、管理人员、程序员、系统分析员、初学者等等,都可以不同程度地在该报上找到自己所关心的内容,可以说是所有关心计算机应用的人们的必读报纸。.《中国计算机报》:邮局订阅代号:1-132,每周出一期,每期定价元,全年定价元。该报是大篇幅的计算机专业报,每期4开128版,设有技术专题、国际新闻、国内要闻、市场动态、产业动态、用机技巧、硬件维修、网络通讯、产品评测等十余个专版,是国内唯一授权刊登中国软件登记公告的报纸。该报创刊十年来,声称坚持"四个面向"的办报原则,即面向各级领导机关,为领导部门决策服务;面向各基层事业单位,为科研、生产、经营、管理服务;面向社会各行业,为普及计算机知识、促进计算机应用服务;面向国内外业界,为促进中外业界合作服务。 该报读者面广泛,与《计算机世界》报齐名,集政策性、信息性、技术性和知识性于一体,是一份很有价值的参考资料。.《软件报》:邮局订阅代号:61-74,每周出一期四开八版,相当于《文摘周报》的版面量,每期定价元,全年定价元。该报的办报口号:普及计算机知识,培养软件人才,交流计算机技术,发展软件产业。《软件报》给人的印象是版面不多,但内容确很丰富,读者论坛、软件应用、软件交流、编程技巧、硬件维护、故障排除、专题讲座、实用程序、应用实例、办公自动化、常用软件使用方法、软件信息等等,涉及面广,短小精悍,实用性强,是一份计算机用户们不可多得的好报纸。其它如《国际电子报》、《中国电子报》、《中国电脑教育报》、《电脑爱好者报》等等,还有一些非计算机类报刊也时而有关于计算机方面的文章,亦值得一读。此类报刊可由单位订阅,大家阅读,花钱不多,作用不小,对计算机普及教育和技术人员的知识更新,有百利而无一害。2.期刊类:.《软件世界》月刊,1984年创刊,由电子工业部计算机与微电子发展研究中心主办,邮局订阅代号:82-469,全年定价元。该刊所设栏目有:技术纵横、技术研讨、产业论坛、开发与应用、实践与经验、产品与市场、软件新天地、软件评测、技术讲座、网络与系统集成、多媒体创作与应用、教学与家用软件、知识园地、产权保护、软件公告、自由软件园地等。重点报导国内外计算机软件产业动态、发展趋势、新技术与新产品,详细介绍软件开发、生产、应用、和管理方面的实用技术、知识和经验。是国家唯一授权刊登计算机软件著作权登记公告的法定刊物。该刊不定期公布自由软件目录清单,凡是加入了中国软件行业协会自由软件分会自由软件联谊网的单位和个人,均可免费获得网上的自由软件。入网手续简单,只需向联谊网提出申请,填写入网登记表,交纳网费(96年上半年价格:单位网员元/年,个人网员元/年),就可以享受网员待遇了。该刊面向广大读者,既有普及性的讲座,又设提高性的专题,适合于不同层次的计算机应用人员、开发人员和系统分析员阅读,也可供领导和其他人员参考。.《中国计算机用户》半月刊(1996年1月以前为月刊),是中国计算机用户协会会刊,创刊于1985年7月,邮局订阅代号:82-164,全年定价元。该刊栏目有:专家特稿,产品专题,产业动态,技术讲座,经验谈,工具箱,服务窗,资料窗,硬件与维修,开发与应用,协会活动等。该刊属大众性阅读刊物,普及性的技术讲座和经验谈可供一般计算机用户阅读;专家特稿和专题论坛可供水平较高的用户、开发人员和系统分析员参考;大量的广告和产品介绍亦可供软硬件配置与选购时参考。.《微电脑世界》(原名《计算机世界》月刊,1996年改名)月刊,邮局代号:82-339,全年定价元,由中国计算机世界出版服务公司编辑出版。该刊声称是国内发行量最大的计算机杂志.办刊口号是:用机者的良师,开发者的益友,购机者的参谋,管理者的助手。其内容与《中国计算机用户》相似,适合于各类计算机用户阅读。.《电脑编程技巧与维护》月刊,1994年7月创刊,邮局订阅代号:82-715,全年定价元.由《电脑编程技巧与维护》杂志社编辑出版。该刊声称实用第一,智慧密集,是专门为从事电脑编程和系统应用与维护人员创办的专业性和实用性都很强的技术杂志,其主要栏目有:新技术追踪、软件平台、编程语言、WINDOWS编程、多媒体、数据库、图形图象处理、计算机维护、网络与通讯、计算机安全、汉字处理、实用软件等。该刊的特点是实用,可读性较强,编程实践、软件应用、系统维护经验以及实用源程序代码等,可供应用人员和开发人员参考,也可供初学者、电脑爱好者等一般计算机用户阅读。.《今日电子》月刊,主办单位:中国电子工业出版社和美国国际数据集团,邮局订阅代号82-518,全年定价元。为计算机类大众阅读刊物。.《微计算机应用》双月刊,1980年创刊,邮局订阅代号:2-304,全年定价元,由中国科学院声学研究所编辑出版,多为理论性较强的硬件软件学术文章,当然也有计算机应用方面的经验和技巧介绍。可供开发人员和系统分析员参考。.<>月刊,1982年创刊,邮局订阅代号:82-417,全年定价元,是电子部微机信息网网刊,中国计算机学会微型机专业学会会刊。理论性较强。.《计算机应用与软件》双月刊,为中国计算机学会会刊,邮局订阅代号:4-379,全年定价:元。为理论性较强的杂志,刊出的论文往往滞后,例如96年第1期刊登的一篇题为"AutoCAD三维图形剖切功能的实现"论文,收稿日期为94年4月,完成论文与读者见面长达两年之久,与日新月异的计算机技术很有些不相适应。.《计算机系统应用》月刊,由中国科学院软件研究所主办,邮局订阅代号:82-558,全年定价元。设系统建设、技术研讨、通信网络、技术讲座、微机实用技术、专论综述等栏目,以计算机系统和数据库内容为主,理论性较强,可供程序员、系统分析员、开发人员和其他计算机用户参考。其它还有《电脑爱好者》、《个人电脑》、《计算机辅助设计与图形学学报》、《计算机技术》、《工程设计CAD及自动化》等等,都是很有参考意义的刊物,在此不一一列举。

程序员杂志主编

吴涛吴涛:湖北枝江人,1973年11月15日生 , 网名:飞扬工作室 易语言创始人吴涛照片如果说在中文语言编程上,中国有为数不多的开发者还寄托希望的话,那身处湖北省枝江市鑫源村的吴涛无疑是其中之一。这位数年前就开始做易语言的程序员远离了喧嚣的北京,毅然回家做起了中文可视化编程环境。 1990年吴涛开始自学程序设计,作为中国最早的一批共享软件作者,吴涛在1994年就开始了共享软件的开发。1998年,应北京乾为天公司的邀请,吴涛与该公司一起合作开发CCED2000,仅用半年就开发出了试用版,后来连续升级了五、六个版本。 在长期的开发过程中,吴涛虽然能非常熟练地应用国外公司出品的开发工具,但却对此耿耿于怀。他认为,阻碍国内软件事业发展的根本原因之一在于中国人没有属于自己的编程语言,有一些国外编程语言虽然做了汉化,但那是不彻底的,除非他们重新开发全中文内核。有很多人想学会编写程序以灵活、充分地利用计算机资源,但却又不懂英文,尤其是计算机专业英语,使人很难迈过这一道门槛。对此,吴涛在2000年初开始国内第一种全中文编程开发系统——“易语言”的研制。 凭着在软件开发、项目管理方面的丰富经验,在经过一段时间的努力之后,“易语言”的第一版开发成功。 “易语言”对在校学生尤其适合,学生的求知欲非常强,软件中提供的流程图功能,很大意义上就是基于这个用户群体开发的。 2001年1月:发明了中国自主知识产权的中文编程语言——易语言。总体设计、详细开发、所有的关键技术全部由本人完成,70多万行的源代码也均由吴涛本人具体编写实现。 2004年:吴涛被《程序员》杂志评为“影响中国软件开发的20人”之一。 2005年5月:申报“易语言汉语编程环境”项目已被立项,项目编号:2005EB010211。 2005年7月16日:由中国教育学会中小学信息技术教育专业委员会组织,易语言公司提供技术支持的“易语言在中小学实验室与推广项目”在大连全面启动。 2005年8月3日:国家科学技术部火炬高技术产业开发中心颁发“易语言汉语编程环境”国家火炬计划证书。 2006年8月:由中国科学技术协会教育专家委员会设立的,专门从事国家科技部火炬计划项目“易语言汉语编程环境”技术资格认证工作的考核发证机构——全国易语言认证管理中心开通。 2006年10月11日:北京市教委金种子教育研讨会顺利在京召开,易语言得到了各教研员的一致好评。 2006年12月14日:“易语言”项目培训工作在宁夏大学教育科学学院顺利举行。 2007年6月21日:易语言汉语编程环境获中国十大自主创新软件产品奖。 他废寝忘食,克服万难,开发出了中华民族五千年文化文明结晶的易语言,中国的计算机,互联网,科技信息等行业从此迈上一个新的台阶。

刊名: 程序员 Programmer主办: 中国社会科学院周期: 月刊出版地:北京市语种: 中文;开本: 16开ISSN: 1672-3252CN: 11-5038/G2邮发代号: 2-665历史沿革:现用刊名:程序员曾用刊名:Inter信息世界创刊时间:2000

谭浩强的 《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 出来,一下子格局全变了。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。读书很重要,但古人说“行万里路,读万卷书”,还是把“行路”放在“读书”前面。尤其对于技术书籍,如果它不能帮我解决问题、不能给我带来非常实际的利益,那么我是不会去读它的。恶魔说得对,我们这个社会很快餐,我们这个行业尤其很快餐,我们也只能努力适应它。

  • 索引序列
  • 程序员杂志阅读
  • 新程序员杂志订阅
  • 程序员杂志在哪里订阅
  • 新程序员杂志
  • 程序员杂志主编
  • 返回顶部