
在软件上取得成功之后,又需要做什么呢? 它需要对遗留问题进行精通和逆向工程,并提出自己的解决方案以保持竞争优势。 Web开发堆栈充满了新的框架和更新的语言。 使精通变得极为困难,而且也不大可能。 明年总会有更好的情况。 事实的真相是,如今成为一名软件工程师需要直觉和能力,以开发一种允许人们有效学习软件的系统。
时间表

精通的秘诀是保持一致性,并坚持遵循有关技能的推荐准则。 作为软件工程领域的学生,要取得成功的困难在于管理系统的方式和作用。 依赖自我调节的时间管理加上错误的课程安排可能会成为成功的障碍。 在系统启动之前,必须对研究进行评估并“脚手架”成较小的任务,从“入门”到“掌握”。 该开发轨迹使用户可以始终获得一致的速度,同时避免停留在后续步骤上。 如果您希望在分散注意力的世界中高效(有效)地工作,那么必须采取严格的措施来微观管理您的生活。 日常工作和对这些做法的持续承诺是提高效率和取得成功的场所; 一个人可以生产的东西的质量和数量与一个人如何管理一个时间有关。
生产率
我出生时一无所知,只有很少的时间在这里和那里改变它。
- 理查德·费曼

看板
关于上述调度和管理机制,是可以用于执行促进无忧无虑提交的子任务的技术。 比一致性更好的是建设性的一致性。 您花费在应用自己上的每一刻都应该花在深层次的工作上。 除了时间表,还有一些使这些承诺更容易,更有成效的技术。 例如,考虑使用诸如Trello和Kanbanflow之类的Web工具将每个任务数字化地组织为多个部分。 使用敏捷方法来跟踪所有任务的进度; 待办事项,以执行“今天”,“进行中”和“完成”。 这些类别有助于开始一天的活动进行中,另外还有助于评估每个任务的状态。 通过减少“下一个是什么?”问题,这种提高生产力的方法有助于安排一周的工作并激发精力。 预定义计划并了解每个计划在队列中的位置,可以为您进行第二天的准备工作提供预期。
他在《加州纽波特的深度研究》中敦促读者提供有关最有效的心理状态的最佳环境条件的证据。 提到分散注意力,过度专注于一项任务的重要性。 头脑是分散注意力的海绵,需要时间才能恢复到先前的有效状态。 考虑到投资的总时间,使用浏览器,电话铃声,人们交谈和其他随机干扰的深度工作的平均时间很短。 纽波特对集中度进行了研究,他的结果表明,当一个人脱离集中状态时,会带来后果。 例如,您工作15分钟后接到一个电话,您的引擎停了下来。 为了达到相同的专注水平,需要花费一些时间来升级引擎。 深入的工作是理解和生产高质量材料的潜力。

波莫多罗斯
纽波特向读者推荐“番茄酱”作为一种成功的生产技术的优势。 Pomodoros是一种时间管理工具,通过深入工作与集成控制之间的结合来打破这种冲突。 工作流设置为两个阶段的模型,其中需要分心工作25分钟,然后需要5分钟的休息时间。 休息期间您要做什么很重要。 建议您不要与媒体接触,而要回顾最后一个番茄的进度或散步。 设计要求专心工作。 在一个安静的房间中想象自己,唯一需要关注的是您在敏捷工作流程中设置的任务。
考虑一下如何花费大量时间来写书。 深度研究的倡导者JK罗琳(JK Rowling)至少写了23本书,出版了大多数作者的作品。 当她写《哈利·波特与死亡圣器》时,她的环境引起了太多的干扰,淹没了她在作家的视野中。 尽管住在苏格兰爱丁堡,但她还是预订了附近的一家旅馆房间,在那里她感到很受启发并且专注于完成最后一本书。 深刻的思想和专心的职业道德为思想提供了以更高的生产率生产的空间,同时又保持了先进的优势。
有效学习
第一个原则是,您切勿欺骗自己,而您是最容易欺骗的人。
–理查德·费曼( Richard Feynman)
如果您不能简单地解释它,则说明您不够了解。
- 艾尔伯特爱因斯坦

学习编程并不容易,需要组织,时间和毅力才能理解和应用当前的课程。 成为一名成功的程序员并不需要最大的想法,而是需要黑客技术 。 进入“黑客状态”需要了解您的工具并了解所有可用的选项。 您无需记住这些选项的工作原理,而必须了解如何正确使用Google并了解其给定响应的文档。 使用已经探索过的工具,可以更轻松地关联常见主题并解构问题。 到目前为止,我还没有完全掌握正在使用的系统的体系结构。 但是,我仍然可以从程序员的角度获得帮助:调试类似的示例,然后尝试理解这些实现,然后再解决自己的问题。 尽管“按书学习”是一种获取详细细节和理论的好方法,但这并不是完全必要的,而且会浪费时间。 但是,到目前为止,“通过互联网”学习是引导自己取得切实成果,节省时间和挫败感的最佳方法。 从高级到初学者,专注于交互式教育的网站(例如PluralSight和Udemy)都可以提供特定类型的学习体验。 边做边学,将抽象的计算机科学学科应用于软件的实际应用功能,可以对获得的知识进行有价值的应用。 这些可交付成果为您提供了大多数本科计算机科学课程无法解决的专业经验。
除了能够快速学习之外,利用Google作为参考还非常适合查找堆栈溢出或解决方案的专业文档。 技术文档通常由其创建者编写,并且是参考的最佳资源。 无论您正在学习什么,查找有关讲座遗漏的具体细节的文档以及进一步了解技术的局限性都是很有帮助的。 在一次采访中,我被问到如何在遵守最后期限的同时学习一些东西,对此我也提出了相同的论点。
教程是快速入门的好方法,但只会带您深入。 一旦掌握了基础知识,就必须深入研究自己的策略或结论。 能够仅以研究作为帮助而不是参考教程来开始和完成是成长。 “基于项目的学习”是Web开发的口号,也是雇主真正追求的:没有专业经验的个人项目就可以验证相对程度的经验。
诺贝尔物理学奖获得者理查德·费曼(Richard Feynman)开发了一种学习任何东西的技术,概述了深刻理解抽象概念的方法。 他的技术要求遵循这些简单步骤:(1)在一张空白的纸上写下您想深刻理解的概念的名称; (2)使用普通英语在页面上写下有关概念的说明。 在这里,将本练习想像成正试图教给别人的做法很有用。 第二步特别重要,因为它不仅承认您对概念的理解,而且最重要的是它暴露了您的漏洞; (3)复习您的解释的弱点并重新学习(如有必要,请重复步骤2)。 (4)如果发现使用太多/太少的单词无法清楚地说明您的观点,请重试。 简化语言并使用类比将内容过滤到更易于接近的上下文中。 因此,您正在快速有效地学习任何东西。
“如果您想热爱自己的工作,那就放弃热情的心态(“世界能为我提供什么?”),而是采用工匠的心态(“我能为世界提供什么?”)。”
–纽波特
最后,无论您是在学校还是在为个人/专业工作而教自己,如果您要在自己选择的职业中真正获得成功,这必将成为一种困扰。 激情不会永远持续下去,最终会有一段时间,激情开始需要工作。 您不会总是有工作的动力,但是成功与持久性是一对一的关系。 以George RR Martin为例。 很难想象他每天都会对下一句话,下一句话,下一章感到兴奋。 尽管如此,他还是坚持不懈地出版,保持了满意的消费群体。 某些日子,为了向前推进,必须承认您的承诺,使您能够迈出第一步,然后滚动。
“如果不生产,就不会蓬勃发展-无论您多么熟练或有才华。”
-卡尔·纽波特