我编程我快乐,练习
第1章 选择市场 1
1 稳定成熟的技术还是未成熟的新技术? 5
基于当今市场,按照从左到右的顺序尽可能多地列举出处于早期,中期,晚期的技术.最左边为崭新的尚未稳定的技术,最右边为即将退出市场的技术.尽可能仔细地找到他们之间的细微关联当你列举处所有你能想到的技术后,标记处你认为自己擅长的技术,然后换一种颜色,标记处那些你做过但是并不精通的技术.你的标记主要集中在哪个区域?他们是聚集还是分散的?处于这张图表边缘处的技术,有没有你感兴趣的?
2 供应和需求 8
练习:研究当今技术市场的需求.利用招聘广告和招聘网站找出哪些工作是高需求,哪些是低需求的.登陆外包公司的网站,把这些公司的技术与你发现的高需求工作进行比较.记录那些在国内市场中高需求且没有流到外包市场的技术,然后再将这些外包公司的技术与前沿科技相比较.密切关注外包公司还没有涉足的上述两类技术.思考他们需要多长时间才能为相应的市场提供服务.这个时间差就是市场不平衡的阶段.
3 只会编程是不够的 12
(1) 安排一次与业内人士的午餐,问问他们是如何工作的。交流中,思考如果你来做他们的工作,你会做什么改变或者你可以从他们身上学到什么。询问他们日常工作中的细节。问
问他们技术是如何帮助(或者阻碍)他们工作的。从他们的角度出发,思考你的工作。
定期安排此类活动。刚开始你可能会觉得有些尴尬,但没关系。我是几年前开始这么做的,这极大地帮助我理解和融入我所服务的行业。另外,在与我的客户交谈时,我也变得更加
得心应手。
(2) 选择一本与你公司行业有关的杂志。你甚至都不用买,大多数公司都有些过期的行业杂志。试着阅读它们,虽然有些东西你可能不懂,但是要坚持。列出你可以向客户询问的问
题。不要担心你的问题很傻,客户会大为赞赏你的这种学习态度。
找一个你可以随时登录的行业网站。无论是浏览网站时,还是阅读杂志时,注意大事件和专题文章。你所处的行业正在为什么而努力?现在的热门是什么?不管是什么,把它们介绍
给你的客户。请他们说说观点看法。思考这些潮流是如何影响你的公司、你的部门、你的团队,以及你自己的工作的。
4 做团队中最差的 15
找一个团队,让自己成为"最差"的。不需要立刻调换工作,你可以试着找一个志愿者项目,通过与这个项目中其他程序员的合作,提高自身能力。查查有哪些编程团队会议,然后去
参加这些会议。程序员一般都会用业余时间做兼职,以此来练习新的技术,提高自身技能。
如果在身边找不到这样的程序员组织,就利用网络。找一个你钦佩的开源项目,且他的设计者是你下一阶段发展的目标。浏览这个项目的待处理列表和官方讨论区,或者编写一个功
能或者修正一个大的错误。你的代码要模仿这个项目的代码风格,但是又要让你的代码和设计与其他项目完全不同,甚至让原作的程序员都认不出来。在你觉得一切都妥当之后,把
它作为一个补丁提交。如果你做得好,这个项目就会接受它。这样重复来做。如果这个项目的设计团队不同意你的观点,那就将他们的反馈加入到你的设计中再次提交,或者记录下他
们做出的改变。最终,你会发现自己成为了这个项目团队中值得信赖的一员。你会惊喜地发现虽然这些高级程序员并不在你的身边,你甚至连他们的声音都没听过,但你已经从他们
身上学到了很多东西。
5 在思维上投资 18
学习一种新的编程语言。但不是从Java到C#或者是从C到C++。这门新的语言应该可以让你的思维方式产生变化。如果你是Java或者是C#的程序员,那就尝试学习类似Smalltalk或者
Ruby这种不需要采用强类型的静态编程方式的语言。或者,如果你一直在做面向对象开发的话,可以尝试Haskell或者Scheme这样的函数式语言。你不需要成为专家,可以感到这种新的编程
环境与你之前所处的环境的不同之处即可。如果你觉得并没有什么不同,那就说明你选错了语言或者你仍然将固有的思维方式运用到新的语言中。要彻底改变你的思维方式来 学习新
的语言。向熟悉这些语言的程序员请教,让他们检查你的代码并提出建议,使之更符合此种语言的特性。
6 不要听从父母 21
7 做一名通才 27
列出你能将你的知识和能力融合在一起的工作内容。写下每个方面中你的专长。例如,如果你列出了平台和操作系统,那就可以在旁边写上Windows和.NET。在你专长的右边,再列出
你要学习的一种或几种技术,可能是Linux和Java(或者是Ruby、Perl)。
然后尽快(一周之内)找出30分钟开始研究你要学习的一门技术。不要只是单纯阅读相关的书籍资料,动手实践一下。如果它是种网络技术,那就下载一个Web服务器安装包,然后自
己安装。如果是与做生意有关的话题,那就找一个你的客户,约他出来吃饭聊聊天。
8 成为一名专家 32
(1) 你是否使用在虚拟机上编译并执行的编程语言?如果你使用,花点时间学习虚拟机内部是如何工作的。很多书籍和网站都专门就Java,.NET和Smalltalk进行讨论。学习这些东西
总比你凭空想象要简单。
不管你使用的编程语言是不是依赖虚拟机,花点时间学习编写源文件。你敲打出来的代码是如何从可阅读的文本转变成可被计算机执行的命令的?编写你自己的编译程序又意味着什么?
当你输入或使用外部函数库时,它们是从哪里来的?输入一个外部函数库到底意味着什么?你的编译程序、操作系统或者虚拟机是如何将多个代码段连接起来,形成一个连贯系统的?
掌握这些知识可以使你在技术选择上向"专业人士"跨近一步。
(2) 在工作中或者工作外寻找一个教课的机会。你所传授的知识是自己想要深入学习的技术。在第2章第14节我们会讲到,讲课是最好的学习方法。
9 切忌孤注一掷 35
试着做一个小项目,做两次。第一次尝试使用在家里就能使用的技术;第二次,使用你最惯用的竞争性技术
10 热爱它,不然就离开它 37
(1) 找一份自己真正有激情去做的工作。
(2) 下星期一开始,做个简单的日志,坚持两个星期。每个工作日起床的时候,给你的兴奋度打分,分值最高10分,最低1分。1分代表你宁愿得病也不想去上班,10分代表一想到马
上就要开始新一天的工作了,你就兴奋,不能再躺在床上1分钟了。
两个星期后,检查这个日志。图表中有峰值吗?走向是怎样的?这些点都处在高点还是低点?如果这是一份考卷,那你的平均分是多少?
接下来的两周,每天清晨计划如何在明天得到10分。思考你今天要做什么,以便使明天成为你迫不及待要开始工作的一天。每天记录下前一天的兴奋值。如果两周后,这个图表显示
的结果还是不尽人意,那或许是时候考虑做一次大的改变了。
第2章 在产品上投资 45
11 学习钓鱼 49
(1) 如何与为什么?--在你读书或者工作的时候,想一想工作中你不完全懂的问题。你可以问自己这两个问题:它是如何工作的?为什么会发生这种情况?
对这两个问题,你可能给不出答案,但是只要你问了,就会形成一种新的思维模式,也使你更加关注自己的工作环境。IIS服务器是如何通过向ASP.NET发送请求来结束工作的?为什
么我必须要为我的EJB应用程序生成这些接口和部署描述文件?我的编译程序如何处理动态和静态链接?如果店主住在蒙大纳,为什么计税的方法就不同了?
当然,这些问题的答案很有可能会引发对这些问题的新一轮探索。当在这个"如何和为什么"的环节中你无法再深入了,那就证明你已经达到目的了。
(2)"提示"时间--在你的工具箱里挑选一种非常重要却经常被忽视的工具。可能是你的版本控制系统,可能是一个你广泛使用却只知皮毛的库,也可能是你用来编程的编辑器。
选定了工具后,每天花一点时间学习这项工具的新知识,帮助你提高工作效率,或者能让你更好地掌控开发环境。比如,你可以选择操作GNU Bourne Again Shell (bash)。当你的思
绪游离出手头的工作时,你可以上网查询关于使用bash的提示,而不是装载Slashdot。很快,你就可以找到有用的资源来教你如何使用shell。现在,有了新的诀窍,你就可以利用一 系列"如
何和为什么"的问题来深入研究它的核心了。
12 学习行业是如何运转的 52
(1) 通读一本基础商业教程,一本MBA教程是不错的选择。我推荐一本非常有用的书The Ten-Day
MBA[Sil99]。你真的可以在10天内读完,占用不了多少时间。
(2) 找一个人带你到公司的财务部门看看,并请他们向你讲解财务状况(如果你的公司不介意与员工分享这些信息)。
(3) 听完财务状况讲解后,再向他们复述。
(4) 弄明白为什么"账本底线"要被称为"账本底线"。
13 寻找良师 54
指导自己--我们都希望有人主动来教我们,但事实是我们很难在自己周围找到这么个人。所以要学会自己做自己的良师。
想想在你工作的领域中你最钦佩谁。大都数人在不同阶段都会有一个名单。这个人可能是工作中的同事,或者你很欣赏这个人做出的某项成果。列出这个榜样的10种特性,这些特性
必须都是视他为榜样的理由。这些特性可能是某一特定的技术方面,比如技术广度或者某一特定领域的知识深度。或者是他们的某种人格魅力,比如他们是很好的团队协调者,或者 他们的
言辞总是具有吸引力。
现在,把这些特征按重要性的升序排列,1是最不重要的,10是最重要的。这样你就提炼出了一个特征列表,这些特征都是你钦佩并认为重要的。这就是赶上你选择的榜样的方法。但
是,要先专注于哪一项呢?
14 做一名良师 58
15 练习,练习,再练习 61
16 做事的方法 66
17 站在巨人的肩膀上 69
18 在工作中,将自己自动化 72
.第3章 执行 79
19 就是现在 82
20 读心术 84
21 每日成绩 87
22 别忘了你在为谁工作 90
23 安分守己 93
24 今天我能把工作做到多好? 96
25 你的价值是多少 99
26 一桶水中的鹅卵石 102
27 爱上维护 105
28 8小时激情燃烧 109
29 学习如何失败 112
30 说“不” 115
31 不要恐慌 118
32 说出来、行动、展示 122
第4章 推销……不仅仅是迎合 131
33 不要忽视感觉 135
34 探险向导 138
35 学会沟通,善于写作 141
36 到场 144
37 适当的言语 148
38 改变世界 150
39 让人们听到你的声音 152
40 创建自己的商标 156
41 发布你编写的程序 158
42 变为卓越的能力 161
43 建立关系 164
第5章 保持技术领先 171
44 已经过时的技术 174
45 你已经失去工作了 177
46 没有终点的道路 179
47 给自己做一份蓝图 181
48 要注意观察市场变化 183
49 镜子里的胖子 185
50 南印度捉猴陷阱 188
51 避免瀑布型职业计划 192
52 每天都有进步 195
53 独立 199
祝你开心 203
参考文献 204
分享到:
相关推荐
《我编程我快乐》英文版,作为一本特别为编程初学者精心打造的书籍,成功地以一种轻松愉快的方式介绍了计算机科学的奥秘。本书通过其直观易懂的内容,为读者开启了一扇通往编程世界的大门,让读者在学习过程中找到...
C#基础编程练习题.doc
在本书中,你将学到如何规划自己的职业生涯,让它向着你选择的目标前进,使人生更快乐、更美好。 作者运用其独特的思维方式,启发程序员不能只注重技能上的提高,还要关注自己的职业发展。书中涉及新旧技术的取舍、...
根据给定的小学生C语言编程练习文档,我们可以总结并详细解释以下知识点: ### 知识点一:输入输出基础知识 **题目1**:输入三个整数,输出第二个整数。 - **知识点概述**:该题考察了基本的输入输出操作。在...
Java面向对象编程练习题
C#小程序练习题及答案.doc编程资料
Java基础必会单词Java基础编程练习题
JAVA面向对象编程入Java面向对象编程上机练习题门课程标准
根据提供的文档信息,我们可以归纳总结出以下C语言编程的相关知识点: ### 1. 多分支选择结构 在C语言中,多分支选择结构通常通过`if-else if-else`语句来实现。例如,题目中提到的第一个练习题就涉及到了这种结构...
在C语言编程中,"快乐数"是一种有趣的数学概念,常用于编程练习和算法理解。快乐数是指在一定的计算规则下,最终会达到一个固定点(通常为1)的正整数。计算规则是:将该数的各位数字的平方和作为新的数,重复这个...
根据提供的文档内容,我们可以总结出六个C语言编程练习题及其解析。这些练习题涉及了基本的输入输出操作、条件语句、循环结构以及简单的数组处理等C语言的基础知识。 ### 练习题1:大小写字母转换及ASCII码输出 **...
综上所述,“数控车床编程与操作-编程练习题”文档通过一系列由浅入深的实例训练,旨在帮助学习者全面掌握数控车削技术从入门到中级所需的知识点与技能。无论是对于刚接触这一领域的初学者还是希望进一步提升自己...
总的来说,Scratch“算术练习”项目是一个寓教于乐的工具,它将编程与数学教育相结合,让孩子们在快乐的氛围中提升计算能力和编程素养,为他们的数字时代生活做好准备。家长和教师可以利用这样的案例素材,激发孩子...
java课堂练习
Java初学者编程练习锦集(1)
编程
通过练习2.1的“春节快乐”和2.2的“单句春晓”等有趣实例,读者能够在享受乐趣的同时锻炼编程技巧。这些编程练习通过输出节日祝福和古诗文,让编程学习不仅停留在理论层面,而是通过创造性的输出让学习过程变得更加...
《我编程,我快乐》这本书的核心思想在于倡导程序员在日常工作中找到乐趣,同时提升自我技能。作者强调了几点关键的概念,这些概念对于任何IT从业者,尤其是程序员和测试人员,都有很大的启发价值。 首先,通才是...
通过以上的练习题,我们可以更深入地理解Java面向对象编程的基本概念和技术,包括类的定义、成员变量的使用、方法的实现、构造方法及其重载等。这些知识点对于学习和掌握Java面向对象编程至关重要。