导航:首页 > 程序命令 > 程序员举例

程序员举例

发布时间:2023-02-08 13:45:05

程序员的思维方式

程序员是一群通过逻辑思维方式解决问题的人。

举例说明下:
某世界中心封了,很快就有程序员烹饪手册在github上出现了,并且群策群力,持续更新中。

同时 特殊时期囤货手册 也上线了,条目清晰并且也在不断完善过程中。

程序员在工作过程中与产品经理的各种“撕逼”过程中,将文档化视作“留证”,于是才会备案。

更何况都是在逻辑上本着将事情做好的积极态度,并且本着不犯重复的错误的原则。
将逻辑思考结果book化 也是作为多年程序员的经验。

忽然发现倒是很喜欢这样一群 nerd 的。

㈡ 程序员该如何做好一次分享

很多人,尤其是程序员肯定都有这种想法:”每次参加技术分享会,看到台上分享者的激情讲解,也想自己哪天能做一场优秀的分享?“

但是技术宅们有多是内向的性格,对于抛头露面总有一丝胆怯,而且技术宅多沉浸在自己的专业领域内,就算做分享也没有很好的效果,久而久之就会越来越抵触分享。

但是分享却又是提升实力最好的方式,工作几年我也做过好多次的分享,也是从刚开始的抵触,到现在的期待。我也总结了一部分自己对分享的感悟和方法,我觉得有必要写出来分享一下给 ”想分享但是不知道怎么分享的技术宅们!"。 今天我们就一起来看一下如何做好一场优秀的分享会。

在正式开始文章之前我也想问大家4个问题,希望大家可以带着问题去看文章,也希望大家在评论区给出自己的答案。

下面正文开启:

要做好分享,首先要有一个分享的心态。

通常我们很少会去主动把知识传递给大家。背后的原因可能比较复杂,不够自信,或者有压力等等。而往往分享来自于工作任务。如果应付了事,那只能是浪费时间。一定要有做有价值的分享的心态。

作为分享者,一定要分析听众需要什么,这样才能带给听众更有价值的分享。

听众分析的思路很简单,无论是分享给熟识的听众:同学、同事,还是分享给陌生人,我们都可以从职业特性入手。

如果分享对象是学生,就以所学专业为主要参考指标,如果分享对象是职场人士,那就以所在岗位作为主要参考指标。

如果分享对象是学生,就以所学专业为主要参考指标,如果分享对象是职场人士,那就以所在岗位作为主要参考指标。

总之,分享首要考虑的是听众的需求。

没有金刚钻别揽瓷器活,如果没有干货,再好的技巧都是空有其表。

作为分享者,除了要了解听众的需求外,也要分析自身的特长。不要轻易挑战自己的弱项,也尽量不要把还没有实践过的知识分享给听众,不然容易现场翻车(⊙o⊙)。

一定要结合自己的知识储备以及听众的知识储备来进行分享准备

另外,知识的传播一定是衰减的。这个衰减的过程是 储备知识->传播介质->听众。

传播介质可以是图文博客,也可以是PPT,也可以是音频、视频等等

粗略的打个比方,如果满分是100分,假设你储备了90分,按照15%的衰减来说那就是 : 储备知识(90)->分享介质(76)->听众(65+(-30))。 这里的-30的意思是,如果听众没有相关知识储备,那听众接收到的可能最多就是35分。

列提纲

吹牛要打草稿,提纲是为了帮助分享者梳理分享的思路。

填内容

分享前,你需要对分享内容尽可能的掌握全面,尽可能多的去查阅资料,书籍。

例如:我想分享 Http 的三次握手四次分手,那我至少要去查阅5篇相关的文章,并且提取他们里面的相同点和不同点,然后用自己的语言去整理合并。

当然,仅仅准备你要分享的内容是不够的,你还要对你分享的内容深入了解20% ~ 30%,因为你你要应付现场听众的提问。

举例子

善用例子,通过类比让听众更加形象的去接受内容。

不同的听众要有不同的开场,但是核心都是抓住听众的注意力

熟悉的听众

如果是熟识的人:同事、同学,那就非常简单了。 说清楚自己是谁就行了,为了活跃气氛,可以稍微加点幽默。

范例1:我是来自A团队研发成员,我的名字是张海洋。我可能是最痴情的男人,因为“最痴情的男人像海洋”。今天我带来的主题是:XXX。希望经过本次分享,大家能对这个主题痴情起来。

陌生的听众

如果是陌生的听众,那意味着他们对你还不够了解,还需要建立基础的信任,总之就是吹好牛皮,赢得基础的信任。

范例1:我是来自X集团X事业部的资深研发专家,我叫张海洋。弓长张、海洋的海洋。我主要负责X业务,我所负责的系统每天的访问量大约30亿PV,峰值QPS在1W左右。平均每天成交额约2亿RMB。今天我带来的主题是XXX,主要是跟大家分享我在XXX方面的一些经验。

㈢ 有哪些方面做的东西是需要程序员的

作为一名程序员,看着很简单的问题,我却思考了很久,最终我得出的结论是:生活中能通电东西,绝大多数需要程序员,只是各自负责的领域不一样。

1、最为大众熟知的就是手机、电脑软件了,手机里这么多软件肯定需要程序员的,这点也比较好理解。

2、电话、手机、电脑、路由器等等本身也是需要程序员的,不然为什么能有这么多功能呢。

3、家里的传统电器,也是需要程序员的,比如空调为什么能设定温度,电视为什么能显示图像,电梯为什么直到要去几楼,等等,这样的例子太多了。

4、出门以后那就更多例子了,比如红绿灯时怎么控制的,取款机为什么能出钱,建筑物外面的灯光为什么能不同变换花样,这样的例子也实在太多了。


仅仅是日常生活中,需要程序员的地方都已经非常非常多了,何况还有很多是大家平时看不到,但是却也非常重要的东西呢。

很多程序员编写的第一个程序,都是在屏幕上显示“Hello World”,中文意思是‘你好,世界’,程序员就是来改变世界的。

随着 科技 的进步,生活中方方面面都会都会使用上智能设备,那么也都需要程序员,在未来需要程序员的东西可能就真的无处不在了。

这是一个非常好的问题,作为一名IT从业者,同时也是一名教育工作者,我来回答一下。

首先,在当前的网络化、智能化时代,程序员的工作边界正在不断拓展,程序员岗位也逐渐从IT(互联网)行业向传统行业覆盖,在工业互联网时代,大量的传统行业企业都需要设立程序员岗位。

从大的层面来看,只要涉及到计算机网络、数据和计算相关的专业任务,通常都需要程序员来完成,在云计算、大数据时代,普通职场人掌握一定的编程知识也能够扩展自身的能力边界,也可以完成一部分相对专业的数据处理任务,而这对于职场人的升级有比较直接的影响。

从当前程序员的岗位任务划分来看,程序员主要完成的工作任务有两大类,一类是技术平台的研发,这一类程序员主要集中在IT(互联网)行业,从事各种专业软件平台的研发,包括各种互联网平台,这些平台有针对于客户端(C端)的,也有针对于企业端(B端)的,比如ERP就是针对于企业端用户的。

当前IT(互联网)行业内,对于程序员岗位的划分也比较细致,有的程序员从事数据处理,有的程序员从事功能开发,有的程序员从事框架设计等等。从当前程序员的岗位附加值来看,大数据、人工智能开发岗位的附加值还是比较高的。另外,当前除了开发岗位之外,算法岗位的附加值也比较高,但是算法岗位对于从业者的要求也比较高,往往需要从业者具有研究生以上学历。

另一类程序员的岗位任务是行业应用类软件产品的开发,这一类软件开发的市场空间非常大,因此从业人数也非常多,一部分程序员就职在专业的IT企业,还有一部分程序员就职在传统行业企业。按照 历史 经验来看,传统企业通常在具有一定规模之后,都会有自己专业的程序开发团队,以支撑自身的业务。

行业应用类软件开发岗位的门槛相对较低,程序员通常会基于已有的技术平台来进行软件开发,比如当前基于云计算平台进行软件开发就比较常见,在未来的产业互联网时代,大数据、物联网和人工智能等平台产品将会逐渐开始落地应用,这也会全面促进传统行业领域的网络化、智能化步伐。

与开发技术平台不同,开发行业应用类软件,一方面要掌握软件开发知识,另一方面还需要程序员具有一定的行业知识,行业知识对于应用级程序员的工作能力会有非常直接的影响。实际上,应用级程序员要想提升自身的职场价值,一个重要的途径就是在行业领域内深耕,这一点在产业互联网时代同样重要。

随着当前大型互联网平台纷纷开放,基于这些大型互联网平台也可以完成很多二次开发,比如各种小程序开发等等,而从事这些小程序开发,同样需要专业的程序员。从当前的发展趋势来看,在新基建的推动下,未来互联网会逐渐向行业领域渗透,这个过程必然会需要更多的程序员来完成各种具体的开发任务。

最后,程序员未来的岗位任务将逐渐多元化,所以对于程序员来说,在产业互联网时代,一方面应该学会如何通过各种技术平台来拓展自身的能力边界,另一方面还需要不断丰富自身的知识结构,争取走全栈程序员路线。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

谢邀!我也说不明白。

我就是编写软件程序的程序员。其实这个问题很简单,需要开发软件的地方都需要程序员!

软件分很多种,有移动端的APP软件,PC端的软件,硬件上的嵌入式软件,有平台侧的服务器软件,还有各种工具软件。当然最难的就是操作系统软件了!

首先你需要了解什么是程序员:程序员是从事程序开发,程序维护的专业人员,程序员分为程序设计人员和程序编码人员(码农);如何成为一名程序员:学习linux/Windows,C语言,C++,Oracle. SQL Server MYSQl等主流数据库,熟悉通讯协议TCP/IP,熟悉西门子PLC,三菱,欧姆龙等PLC的梯形图编制,熟悉各种触摸屏软件的如wincc,NETCAD等组态软件的编写,各种传感器,编码器,变频器电机的控制方式以及相关设备的工艺流程等等。

孙悟空大闹阎王殿毁了生死簿,阎王需要将生死簿系统信息化,建一个大数据管理后台,方便做灾备恢复被毁掉的数据。这时就需要程序员了。

下面我举例哪些方面的东西需要程序员

最典型的就是Android系统底层工程师。熟悉模拟电子技术等硬件知识,了解处理器体系结构,做嵌入式系统设计和开发,包括硬件系统的建立和相关软件开发、移植、调试等工作的人。具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码。






比如我们日常使用的手机APP,电脑软件、 游戏 等等。这些应用产品都离不开程序员 。例如:Android开发工程师、iOS开发工程师、WEB前端工程师、JAVA后端工程师、PHP工程师、运维工程师、DBA工程师、系统架构师、算法工程师、 游戏 开发工程师等等。( 上面这些以工程师相称的,都是程序员(* ̄︶ ̄))






总之,涉及程序员的行业实在,例如:

作为一名开发程序员,这个问题简单点来说的话,只要用移动互联网的东西都是需要程序员开发或者维护的。

比如常见的手机App应用,或者电脑端的应用,各种系统的开发都是,日常生活中运用到的移动支付,刷脸等等都是需要程序员开发的。

再比如说各种系统,管理后台,你上网所看到的网页,看到的数据,浏览到的各种数据都是程序员开发出来的。

希望我的回答能够帮助到你!

㈣ 为什么把程序员比做鸡举例子好吗

1、都是靠出卖为生。
2、吃青春饭,人老珠黄肯定混不下去。
3、越高级收入越高,当然中间人的抽头会更高。
4、生活没有规律。以夜生活为主,如果需要,凌晨也要加班。
5、名声越大,越容易受到青睐。
6、必须尽最大可能满足客户各种各样非正常的需求。
7、鼓励创新精神。
8、喜欢扎堆。程序员集中的地方称为软件园,妓女集中的地方叫红灯区。
9、流动性较大,正常情况下没有工会。
10、如果怀孕了,既不能做程序员,也不能做妓女。
11、都为防病毒的问题而烦恼...
12、当然, 个中高手还专门以制毒传毒为乐
13、一个是Microsoft,一个是Plug $ Play
14、工作状态相同。工作时精神高度集中,最怕外界干扰。工作完毕身心放松,体会到一种不可替代的工作快乐。
15、女孩子最好还是不要做这两个职业,但还是有很多女孩子做。
16、除非在转行以后,否则都不愿意结婚。没空儿啊。
17. 赚到的钱都买了配件!

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

㈥ C# ,JAVA程序员工作打代码举例,我是软件工程的新生,都说程序员整天打代码很枯燥,具体能举个例子么

自己实际经历:
做项目往往经历两个过程。第一个阶段是创造性的,那个时候你会觉得很有意思,你是在解决问题、创新、主动的。第二个阶段是”体力活“,前期所有的基础都搭好了,剩下的就是写代码实现,没啥技术含量,完全的体力活。

你说的那些程序员说”打代码“(我也不知道你什么意思),大概是说工作量大,而且都是老板布置下来的任务,再加上生活烦闷等等。。。

另外,新生不建议早早站定阵营(C#/Java真的无所谓)

我可以这么对你说,C#/Java基本能够做你想得到的任何应用程序(注意,是应用程序)
代码就不举了,没啥大意思,搜索一大把的

㈦ 见过最变态的程序员是怎样的,举个例子

最变态的就是把自己搞得不得不加班的程序员。

阅读全文

与程序员举例相关的资料

热点内容
vr怎么看视频算法 浏览:84
手机app如何申报个人所得税零申报 浏览:690
如何截获手机app连接的ip 浏览:330
冰箱压缩机是否需要电容 浏览:344
python列表每一行数据求和 浏览:274
自己有一台服务器可以玩什么 浏览:656
社会学波普诺pdf 浏览:584
解压做食物的小视频 浏览:758
pdf怎么单独设置文件夹 浏览:474
业务逻辑程序员 浏览:659
addto新建文件夹什么意思 浏览:160
有服务器地址怎么安装软件 浏览:659
安卓如何完全清除数据 浏览:690
安卓安卓证书怎么信任 浏览:53
服务器被攻击如何解决 浏览:221
学霸变成程序员 浏览:881
c语言编译错误fatalerror 浏览:441
ipv4内部服务器地址怎么分配 浏览:464
java线程安全的方法 浏览:952
重复命令画梯形 浏览:166