最近处于职业发展的转折点,看到效率相关的话题都特别感兴趣,这篇《如何成为“10倍效率”开发者》也给了我很大的启发。
本文将会摘录原文的部分观点,如需要阅读原文请参看(译文) http://www.iteye.com/news/23799#comments (原文)http://adamloving.com/internet-programming/10x-developers
1. 只做需要做的工作
在工作多年后,回过头来看,能让我印象深刻的事情就那么几件,给自己的职业发展很大帮助的事情也不多,但是每天8小时我都在不停地忙碌,甚至在周末还要加班,出差在外地时还经常需要熬夜。以我的努力程度来说,4年的工作我可以积累8年的工作经验,但实际情况刚好相反,当我站在职业发展的转折点时,发现自己还需要面对工作1-2年的工程师的竞争。为什么?这个标题给了我答案。
- 沟通第一;【很多时候沟通不到位,导致出力不讨好;导致大量重复的劳动;】
- 编码也许不是解决问题的办法;【个人的修正:编码不是解决问题的唯一办法,从需求的层面着手效果很可能更好;更进一步,从IT战略规划的角度出发,更能把握根源;很多情况下关键不在于怎么做,而在于做还是不做?】
- 过早的优化是一切罪恶的根源;
- 选择最简单的解决方案。
2. 站在巨人的肩膀上
借助巨人的工作成果,能让自己的工作事半功倍。我的价值不在于“发明轮子”,而在于将轮子组装成能够安全、稳定运行的汽车。明确自己的价值,并专注在自己的工作领域(战场)内创造更多的价值。
- 使用开源框架;
- 不要做重复的事情(不要重新发明轮子);
- 利用包管理器来进行公共和私有代码分配; 【利用工具使自己的工作更敏捷,自动化并提高效率;对工具的投入是一次性的,而收益却是长期的】
- 不要让你的雇主逼你学习;
- 自主学习并为自己设定新的目标。
3. 了解数据结构和算法
对于业务领域来说,项目中可能很少需要考虑算法是不是最优的,数据结构也基本都由JDK做了很好的封装。但对于如今的高性能、大并发互联网应用来说,需要掌握JDK提供的数据结构(集合、数组、列表、队列等)的实现方式,以及各自的性能,归纳各自的应用场合,这样才能够驾驭高性能、大并发的问题。
4. 不要怕买工具,它可以节省你的时间
高效是一个习惯。 做公交、打车,还是开车,不同的选择成本不一样,但效率也截然不同。
曾经有一个项目,需要将产品部署到市区内所有的20多个网点,如果选择公交线路,一天我能够去3个网点,需要7天时间;如果选择出租车,一天能够走6个网点,需要4天时间;而如果公司给派辆车,一天能够走8个网点,加下班的话能够走10个网点,只需要两天的时间。
高效是一个综合的结果,找到瓶颈,并舍得在这方面投入,对个人和公司来说都会受益的。
5. 集中注意力
不要整天开着你的电子邮件、Twitter、Facebook等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。”
6. 尽早并且经常性地进行代码重构
7. 只管去做
8. 挑选一个编辑器,并掌握它
高效开发者喜欢用文本编辑器胜过IDE编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键,因为熟练使用一件工具的前提是熟悉它。
使用支持按行/列分割窗口的编辑器,这样你便能同时看到单元测试和代码(或模型、视图)。
【自己需要逐渐熟悉这种开发方式】
一定要想清楚后再写代码。Adam说,“我有朋友在一个大项目组里工作,他们组里最高效的程序员是一个高位截瘫用嘴叼着棍子敲代码的人,他总是在写代码之前想得很仔细且很少出错。”
9. 整洁的代码胜过巧妙的代码
10. 潜意识是强大的工具
离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。
作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。
【很多执着的工程师(包括我自己)并没有意识到这一点,说明我们都还有很大的提升空间,坚持 !加油!
】
11. 推动自身和团队进步
重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。”
【积极将自己的经验分享给别人,不需要这一个专门的培训教室,一个正式的场合,只要这些对他人有帮助随时随地都会吸引他人的注意力。同时虚心听取别人的经验,不要仅仅停留在听,改变自己的行动更重要。】
分享到:
相关推荐
### 10. 自学能力 - **原句:**“ѧϰűõķ֮һǶϰ” - **解读:**自学能力是成为一名优秀程序员的关键因素之一。通过自主学习,可以更快地掌握新知识并解决遇到的问题。 ### 11. 自我反思 - **原句:**“κʱ...
Java实习心得感悟主要聚焦于Java软件开发的实际应用与学习经验的积累。实习是将理论知识转化为实践技能的关键环节,尤其对于Java这样的编程语言,实际操作经验尤为重要。在实习过程中,学员通常会面临以下几点关键的...
总之,Spring Boot 是 Java 开发者的重要工具,它的出现降低了 Spring 框架的使用门槛,提高了开发效率。通过系统学习和实践,可以更好地掌握这一框架,提升自身的技术能力。在互联网行业中,熟练掌握 Spring Boot ...
Spring Boot 是一个基于 Spring 框架的快速开发工具,旨在简化传统的 Spring 应用程序的创建、配置和部署流程。在 Java 开发领域,...对于互联网行业的开发者来说,熟悉并精通 Spring Boot 已经成为了必备技能之一。
总的来说,Python是一门既适合初学者又适合专业开发者的语言,它能够帮助程序员提高效率,降低复杂度,同时也有助于个人技能的提升和发展。通过不断实践和学习,Python将为程序员开启无限可能。
【标题】和【描述】提及的是一个文档集合,主要包含励志散文,讨论了对生命的深刻感悟。虽然这些文章并非IT专业内容,但其中的主题和智慧可以应用到生活的各个方面,包括IT行业。以下是从这些散文中提炼出的一些普遍...
面对技术挑战,开发者和IT专业人员必须勇往直前,寻找解决问题的方法,而不是找理由推卸责任。 2. **幸福的定义**:随着个人的成长和职业生涯的发展,我们的幸福观也在变化。对于IT从业者而言,小时候可能满足于...
《Java夜未眠....程序员的心声》不仅提供了丰富的技术知识,还融入了作者作为一名程序员的实战经验和人生感悟,旨在激发读者对编程的热爱,引导他们在技术的海洋中不断探索,成为一名优秀的Java开发者。
通过不断的学习和实践,你将逐渐掌握VC++的精髓,成为一个熟练的C++开发者。记得持续关注C++的新特性,如C++11、C++14、C++17等标准带来的改进,以便保持技能的最新状态。在学习过程中,遇到问题不要怕,多查阅资料...
虽然作者自认在 3D 方面不是专家,但了解 3D 游戏开发的基础概念和技术仍然对于成为一名全能的游戏开发者至关重要。 总之,无论是初学者还是有经验的游戏开发者,都可以从上述推荐的书籍和资源中受益匪浅。不断学习...
这些笔记不仅包含了技术细节,还包括了一些个人感悟和建议,对于正在学习的开发者来说非常有帮助。 ### Android和设计模式系列 **作者:林家男孩** **主要内容:** 林家男孩撰写的13篇文章详细解释了设计模式在...
10. 对未来的展望 作者相信,通过系统的学习,自己和同学们将来都能够成为技术熟练的技术人员,不仅能够获得较好的经济收入,还能够拥有更多的职业选择和发展空间。这反映了作者对未来充满信心,同时也是对其他有志...
随着技术的进步,现代ARM Cortex MCU已经成为了许多项目和应用的首选。对于那些希望深入了解底层硬件操作并寻求更高性能解决方案的开发者来说,使用原厂提供的评估板是一个不错的选择。许多厂商还推出了与Arduino...
5. 前端框架:React、Vue.js、Angular是当前流行的前端框架,它们提供一套完整的工具集,简化开发过程,提高效率。例如,React以其组件化开发方式和虚拟DOM技术受到广泛青睐。 6. jQuery:jQuery是一个简洁、高效的...
### DSP高手经验分享与学习路径 #### 一、学习路径概览 ...通过学习不同的编程语言和技术,开发者可以逐步提升自己的能力,最终成为一名真正的DSP高手。希望本文能够为初学者提供一些有价值的参考和启示。
此外,随着微服务架构的流行,如何有效地拆分服务,管理和部署也成为Java开发者需要掌握的新技能。 "Java夜未眠"可能涵盖了关于调试技巧、代码调试工具的使用,如Eclipse或IntelliJ IDEA等IDE的高级功能,以及如何...
这款名为“一款很棒的书摘软件”的微信小程序是中山大学软件创新大赛的十强参赛项目,彰显了其在创新和技术实现上的优秀品质。作为一个专注于书籍摘要和笔记的应用,它为用户提供了便捷的方式来记录和整理阅读过程中...
同时,我也意识到,理解并熟练掌握线程同步和通信机制、正确处理线程安全问题以及利用异步编程模型,对于成为一名优秀的C#开发者至关重要。未来的学习和实践中,我将继续深化对这些知识点的理解,以便更好地应用到...
无论是记录生活、分享感悟,还是创作故事,一款好用的文字APP都能极大地提升我们的表达效率和体验。今天我们将聚焦于“一个好用的文字APP.zip”,这是一个开源项目,它的存在不仅为我们提供了便捷的文本编辑工具,更...