现在的位置: 首页 > 综合 > 正文

《远大前程——从软件新手到行业大牛》读书笔记 《远大前程——从软件新手到行业大牛》读书笔记

2013年12月06日 ⁄ 综合 ⁄ 共 7257字 ⁄ 字号 评论关闭

 

《远大前程——从软件新手到行业大牛》读书笔记

分类:
生活小记

读书笔记

1187人阅读
评论(0)
收藏
举报
有乐趣的工作;在公司和业界的影响力;改善社会;自由度--随时随地做你想做的事;名望;旅行。
不经历风雨,如何见彩虹?要成功地实现你的长远目标,总会意味着有多年艰苦的工作。
成功会为你赢得工作上的自由,可以去做想做的事。
成功需要稳健而持续地努力,以及审慎而策略性地利用时间,从而更有意义地利用你的经历和才华。
优秀的软件是会赢利的,即便成本高昂并且开发延期。
软件失败的推辞:
(1)"我们开发了一个伟大的产品。但是市场还不成熟。产品超前于时代了。"
实际情况:产品没有满足客户需求。
(2)"我们开发了一个伟大的产品,但是销售和市场团队掉链子了。"
实际情况:没人用这个产品。
(3)"我们有一个伟大的产品,但是在做完之前被管理层放弃了。"
实际情况:这个产品离生产价值还遥遥无期。
伟大的创新、闪耀的新技术和突破性的想法,只有当人们用到它们并发现其价值时,它们才是真正优秀的。
以现有客户为中心是短视的商业行为,虽然这会带动短期收入的增长,但是这是不可避免地限制长期收入的增长,使产品的收益潜力大打折扣。
点子,即最初的一个新想法,来自于创新:由聪明的人凭空想象出的创意,市场并为告诉大家需要什么。
但哪有软件工程师从没编写过编译器或从未编写过操作系统呢?——Masrissa Mayer(谷歌前副总裁,雅虎CEO)
"每个人把自己眼界的局限当成世界的局限。"——亚瑟 叔本华(1788~1860)
代码重用使职业工作的一个目标,但在学校却是严重的罪行。
(简历)要重点突出你的工作经历、领导经历、学术和非学术的奖项和荣誉、专业活动(ACM、IEEE等组织的活动)、参与的体育活动以及爱好等。
软件开发的"杀手简历"
领导角色;
深厚的技术领域技能;
奖项;
创新;
专业活动;
本职工作以外的活动。
大学成绩对你找到第一份工作是很重要的。
成绩并不能衡量你的潜能和未来的成功,因为成绩没有体会出你会如何努力工作,也没说明你的团队工作能力、领导能力或创造能力和创新能力。
成功面试的15个要点
1、提前了解公司的商业领域和定位;
2、为技能测试问题、脑筋急转弯以及现场编程做好准备;
3、同时流露出自信和谦虚;
4、展现出你清晰的沟通能力;
5、显示你对软件有广泛的兴趣;
6、了解你的对手;
7、保持乐观;
8、要充满热忱;
9、不要问公司负面的问题;
10、不要谈任何的个人信息或医疗信息;
11、准备好推销自己;
12、不要伪造信息;
13、了解后续规则;
14、面试辅导;
15.、(1)一定要在面试之前的一两天找到面试地点;
(2)如果你占据一定的空间,就会让自己看起来更加自信;
(3)要毫不犹豫地谈一些公司好的方面;
(4)始终带一份简历副本;
(5)索取与你谈过话的每一个人的名片并做好记录。
C++编程语言的发明者和最初实现者——Bjarne Stroustrup关于研究生学位的专业价值问题的回答:"是的。如果没有坚实的技术和科学基础,你就会迷失在潮流和时尚中。研究生教育也是为数不多的几个可以思考、实验、学习前瞻技术的机会之一。我认为,重要的是花些时间在有趣的事情上,而不总是专注在很窄的领域。除了给予你演进的技术和科学基础外,有个好的学位也方便你做上述的事情。
软件从业者在职业生涯头五年建议做的事:
至少学习四种不同的编程语言和至少四种不同的数据格式;
开发至少能支持一千人并发访问的软件;
开发可以扩展到超过1TB数据量的软件;
参加10个以上程序员一起做的项目;
做既有代码的扩展工作,这些代码至少是5年前开发的,而且无法从原始作者那里得到任和信息;
解决知识40个别人代码中的缺陷;
编写支持国际或语言输入的程序,包括UNICODE的输入,以及支持两种语言以上的用户输出(错误信息,图形用户界面的文本,等等);
研究下列情形的性能特点:
无论是否存在CPU缓存未中的情况,都能从内存中获取数据;
对比从磁盘连续快读取与随机I/O寻址;
对比大块数据与小块数据的I/O操作;
三种流行的编程语言(如Java,C/C++和PHP)。
痛是难免的,苦是甘愿的。
臭鼬工厂:员工从事的一些非正式的项目(通常是自发用业余的时间),有的有、有的没有得到正式的管理审批。随着项目的成熟,参与的人会有更大的灵活性而投入更多正式的工作时间。一些公司把这种非正式的项目形式半制度化,鼓励员工把他们的一部分时间花在臭鼬工厂的创新工作上。
"忍耐是一种很有价值的工作能力。"——美国作家恰克 帕拉尼克(1962~)
通过评审的唯一有效途径是虚心地接受合理的批评并保持冷静,但要坚决的捍卫你确信正确的选择。
在软件行业,多数成功人士的一个共同特点是,他们全都经常花时间来不断地学习。
位处高层的人的共同特点:
他们有良好的社交意识,一般会避免出口狂言,犯规政治失误。他们善于做合乎职业的交流。
他们在小群体中、大群体中以及书面上均能良好地沟通(或至少是清晰沟通)。
他们高效地利用时间。
他们在组织内部的人脉很广(如果是一个组织的新成员,他们会迅速建立自己的人脉)。
他们有紧迫感,充满活力地处理重要事情。
他们临危不乱、遇事冷静,处理事情有条不紊。
电子邮件是非常低效的讨论媒介,因为它是一种异步沟通方式。
做人们需要的产品,并要有一定的胆识。
获得他人协作和帮助的5个简单做法:
无私地帮助他人;
回报他人;
激发他人的自我价值;
与他人分享荣耀;
创造与他人面对面交流的机会。
"傻瓜谈判手册"
了解对方的期望
估计自己的结果
谋求中间结果
创造双赢的选择
见好就收
博士学位可能不是必须的,除非你想要从事的职业需要博士学位,比如从事高等教育或者在实验室做研究。但是一个硕士学位是完全应该拿到的。在某种意义上,博士学位可能会导致一些工作之门关闭,因为对于某些工作来说,人们可能认为你条件太好,担心你没有激情做这份工作。胆但是硕士学位可能不会有这样的影响,而且还会将你与其他人区分开来,不仅仅只是因为学位的原因,更重要的是,这表明你在自己感兴趣地领域有一些更深入地知识,并且想在工作中继续追寻。——Mark
Russinovich,微软技术院士
软件项目为什么会延期?
范围蔓延;
人员不可替换;
往延迟的项目中添加人手,只能使项目更加延迟;
开发团队对目标不够明确;
依赖管理:工作量的估计不能单靠求和;不正确的估计(应关注比例);乐观的估计;
"我不是关键路径"问题地出现——在软件开发中,基本上所有功能都会延迟到当前延迟时间最长的功能的时间;
有人决定拒绝软件工程于门外;
你忘了考虑员工做其他事情的时间;
风向变化。
已经延迟了,怎么办?
削减功能;
分解功能;
重新协商交付日期。
软件公司对文化的变化尤为敏感,因为软件公司是以人为中心的,除了人之外就没于什么其他的要素了,也因为软件开发演变自波希米亚风格的创业文化和地下室里哥们式的创新者文化,在这种文化下,创新和坚实的代码要胜于繁文缛节的形式。
据估计在美国3.04亿人有1.15亿人在学校,还有8790万人退休了。这样只剩下1.011亿劳动力。按照行业划分,其中,5120万人在为各级联邦、州或市政府工作,3280万人待在家中不工作。这样一来,只剩1710万人可以为非政府组织工作/基于目前的失业率,有人140万人没有工作,而且有270万人在蹲监狱,并且平均每天有99998人在住院。这样只剩下两个人在工作:你和我。而你却正在看书!
在项目管理术语里,SMART这个词指的是如下原则:具体的(Specific)、可衡量的(Measurable)、可实现的(Attainable)、现实的(Realistic)和有时限的(Timely)。
管理项目就意味着要管理人的天性:
让团队成员感受到爱;
状态让世界运转;
适当给人台阶。
对我来说,既是考虑到我从工作中能获得报酬,我在研究生阶段和攻读博士期间得到的快乐比任何时候都多。如果我能回去的话,我会毫不犹豫地选择继续做一个研究生。我有些朋友确实已经这样做了,我很羡慕他们!在技术上,我们需要把深度和广度结合起来。对诸如算法之类的领域,大多数本科生的了解都比较浅显。如果你获得了算法分析的硕士学位,你懂得的会更多,特别是当你是从一位真正优秀的导师时。
在商业领域,你的头衔和职位会为你赢得一定的尊重,但是并不多。要获得他人真正的尊重,你需要比大部分同时拥有更深刻、更让人信服的洞察力和领导品质。
先行动,再报告。
灵感并不十分稀缺,真正缺乏的是拥有灵感并将它变成现实成果的人。
针对写作的建议:
写你知道的内容;
注重质量;
是不是你自己也懒得看自己写的东西;
一般情况下,尽量与人合作发表作品;
写作风格不容忽视;
写作不是为了致富。
公开演讲:
了解你的听众;
根据听众调整演讲风格(不仅仅是内容);
清晰的节奏是关键;
让听众真正参与进来;
适度使用手势;
微笑;
请记住:主角是你,而不是图表;
演讲的内容不要围绕你自己;
那又怎么样?
树立反面角色。
"成功是个差劲的老师,它使聪明的人误认为自己不会失败。"——比尔 盖茨
有乐趣的工作;在公司和业界的影响力;改善社会;自由度--随时随地做你想做的事;名望;旅行。
不经历风雨,如何见彩虹?要成功地实现你的长远目标,总会意味着有多年艰苦的工作。
成功会为你赢得工作上的自由,可以去做想做的事。
成功需要稳健而持续地努力,以及审慎而策略性地利用时间,从而更有意义地利用你的经历和才华。
优秀的软件是会赢利的,即便成本高昂并且开发延期。
软件失败的推辞:
(1)"我们开发了一个伟大的产品。但是市场还不成熟。产品超前于时代了。"
实际情况:产品没有满足客户需求。
(2)"我们开发了一个伟大的产品,但是销售和市场团队掉链子了。"
实际情况:没人用这个产品。
(3)"我们有一个伟大的产品,但是在做完之前被管理层放弃了。"
实际情况:这个产品离生产价值还遥遥无期。
伟大的创新、闪耀的新技术和突破性的想法,只有当人们用到它们并发现其价值时,它们才是真正优秀的。
以现有客户为中心是短视的商业行为,虽然这会带动短期收入的增长,但是这是不可避免地限制长期收入的增长,使产品的收益潜力大打折扣。
点子,即最初的一个新想法,来自于创新:由聪明的人凭空想象出的创意,市场并为告诉大家需要什么。
但哪有软件工程师从没编写过编译器或从未编写过操作系统呢?——Masrissa Mayer(谷歌前副总裁,雅虎CEO)
"每个人把自己眼界的局限当成世界的局限。"——亚瑟 叔本华(1788~1860)
代码重用使职业工作的一个目标,但在学校却是严重的罪行。
(简历)要重点突出你的工作经历、领导经历、学术和非学术的奖项和荣誉、专业活动(ACM、IEEE等组织的活动)、参与的体育活动以及爱好等。
软件开发的"杀手简历"
领导角色;
深厚的技术领域技能;
奖项;
创新;
专业活动;
本职工作以外的活动。
大学成绩对你找到第一份工作是很重要的。
成绩并不能衡量你的潜能和未来的成功,因为成绩没有体会出你会如何努力工作,也没说明你的团队工作能力、领导能力或创造能力和创新能力。
成功面试的15个要点
1、提前了解公司的商业领域和定位;
2、为技能测试问题、脑筋急转弯以及现场编程做好准备;
3、同时流露出自信和谦虚;
4、展现出你清晰的沟通能力;
5、显示你对软件有广泛的兴趣;
6、了解你的对手;
7、保持乐观;
8、要充满热忱;
9、不要问公司负面的问题;
10、不要谈任何的个人信息或医疗信息;
11、准备好推销自己;
12、不要伪造信息;
13、了解后续规则;
14、面试辅导;
15.、(1)一定要在面试之前的一两天找到面试地点;
(2)如果你占据一定的空间,就会让自己看起来更加自信;
(3)要毫不犹豫地谈一些公司好的方面;
(4)始终带一份简历副本;
(5)索取与你谈过话的每一个人的名片并做好记录。
C++编程语言的发明者和最初实现者——Bjarne Stroustrup关于研究生学位的专业价值问题的回答:"是的。如果没有坚实的技术和科学基础,你就会迷失在潮流和时尚中。研究生教育也是为数不多的几个可以思考、实验、学习前瞻技术的机会之一。我认为,重要的是花些时间在有趣的事情上,而不总是专注在很窄的领域。除了给予你演进的技术和科学基础外,有个好的学位也方便你做上述的事情。
软件从业者在职业生涯头五年建议做的事:
至少学习四种不同的编程语言和至少四种不同的数据格式;
开发至少能支持一千人并发访问的软件;
开发可以扩展到超过1TB数据量的软件;
参加10个以上程序员一起做的项目;
做既有代码的扩展工作,这些代码至少是5年前开发的,而且无法从原始作者那里得到任和信息;
解决知识40个别人代码中的缺陷;
编写支持国际或语言输入的程序,包括UNICODE的输入,以及支持两种语言以上的用户输出(错误信息,图形用户界面的文本,等等);
研究下列情形的性能特点:
无论是否存在CPU缓存未中的情况,都能从内存中获取数据;
对比从磁盘连续快读取与随机I/O寻址;
对比大块数据与小块数据的I/O操作;
三种流行的编程语言(如Java,C/C++和PHP)。
痛是难免的,苦是甘愿的。
臭鼬工厂:员工从事的一些非正式的项目(通常是自发用业余的时间),有的有、有的没有得到正式的管理审批。随着项目的成熟,参与的人会有更大的灵活性而投入更多正式的工作时间。一些公司把这种非正式的项目形式半制度化,鼓励员工把他们的一部分时间花在臭鼬工厂的创新工作上。
"忍耐是一种很有价值的工作能力。"——美国作家恰克 帕拉尼克(1962~)
通过评审的唯一有效途径是虚心地接受合理的批评并保持冷静,但要坚决的捍卫你确信正确的选择。
在软件行业,多数成功人士的一个共同特点是,他们全都经常花时间来不断地学习。
位处高层的人的共同特点:
他们有良好的社交意识,一般会避免出口狂言,犯规政治失误。他们善于做合乎职业的交流。
他们在小群体中、大群体中以及书面上均能良好地沟通(或至少是清晰沟通)。
他们高效地利用时间。
他们在组织内部的人脉很广(如果是一个组织的新成员,他们会迅速建立自己的人脉)。
他们有紧迫感,充满活力地处理重要事情。
他们临危不乱、遇事冷静,处理事情有条不紊。
电子邮件是非常低效的讨论媒介,因为它是一种异步沟通方式。
做人们需要的产品,并要有一定的胆识。
获得他人协作和帮助的5个简单做法:
无私地帮助他人;
回报他人;
激发他人的自我价值;
与他人分享荣耀;
创造与他人面对面交流的机会。
"傻瓜谈判手册"
了解对方的期望
估计自己的结果
谋求中间结果
创造双赢的选择
见好就收
博士学位可能不是必须的,除非你想要从事的职业需要博士学位,比如从事高等教育或者在实验室做研究。但是一个硕士学位是完全应该拿到的。在某种意义上,博士学位可能会导致一些工作之门关闭,因为对于某些工作来说,人们可能认为你条件太好,担心你没有激情做这份工作。胆但是硕士学位可能不会有这样的影响,而且还会将你与其他人区分开来,不仅仅只是因为学位的原因,更重要的是,这表明你在自己感兴趣地领域有一些更深入地知识,并且想在工作中继续追寻。——Mark
Russinovich,微软技术院士
软件项目为什么会延期?
范围蔓延;
人员不可替换;
往延迟的项目中添加人手,只能使项目更加延迟;
开发团队对目标不够明确;
依赖管理:工作量的估计不能单靠求和;不正确的估计(应关注比例);乐观的估计;
"我不是关键路径"问题地出现——在软件开发中,基本上所有功能都会延迟到当前延迟时间最长的功能的时间;
有人决定拒绝软件工程于门外;
你忘了考虑员工做其他事情的时间;
风向变化。
已经延迟了,怎么办?
削减功能;
分解功能;
重新协商交付日期。
软件公司对文化的变化尤为敏感,因为软件公司是以人为中心的,除了人之外就没于什么其他的要素了,也因为软件开发演变自波希米亚风格的创业文化和地下室里哥们式的创新者文化,在这种文化下,创新和坚实的代码要胜于繁文缛节的形式。
据估计在美国3.04亿人有1.15亿人在学校,还有8790万人退休了。这样只剩下1.011亿劳动力。按照行业划分,其中,5120万人在为各级联邦、州或市政府工作,3280万人待在家中不工作。这样一来,只剩1710万人可以为非政府组织工作/基于目前的失业率,有人140万人没有工作,而且有270万人在蹲监狱,并且平均每天有99998人在住院。这样只剩下两个人在工作:你和我。而你却正在看书!
在项目管理术语里,SMART这个词指的是如下原则:具体的(Specific)、可衡量的(Measurable)、可实现的(Attainable)、现实的(Realistic)和有时限的(Timely)。
管理项目就意味着要管理人的天性:
让团队成员感受到爱;
状态让世界运转;
适当给人台阶。
对我来说,既是考虑到我从工作中能获得报酬,我在研究生阶段和攻读博士期间得到的快乐比任何时候都多。如果我能回去的话,我会毫不犹豫地选择继续做一个研究生。我有些朋友确实已经这样做了,我很羡慕他们!在技术上,我们需要把深度和广度结合起来。对诸如算法之类的领域,大多数本科生的了解都比较浅显。如果你获得了算法分析的硕士学位,你懂得的会更多,特别是当你是从一位真正优秀的导师时。
在商业领域,你的头衔和职位会为你赢得一定的尊重,但是并不多。要获得他人真正的尊重,你需要比大部分同时拥有更深刻、更让人信服的洞察力和领导品质。
先行动,再报告。
灵感并不十分稀缺,真正缺乏的是拥有灵感并将它变成现实成果的人。
针对写作的建议:
写你知道的内容;
注重质量;
是不是你自己也懒得看自己写的东西;
一般情况下,尽量与人合作发表作品;
写作风格不容忽视;
写作不是为了致富。
公开演讲:
了解你的听众;
根据听众调整演讲风格(不仅仅是内容);
清晰的节奏是关键;
让听众真正参与进来;
适度使用手势;
微笑;
请记住:主角是你,而不是图表;
演讲的内容不要围绕你自己;
那又怎么样?
树立反面角色。
"成功是个差劲的老师,它使聪明的人误认为自己不会失败。"——比尔 盖茨

抱歉!评论已关闭.