面对现在更新迅速的新技术,如何快速掌握,以满足工作的需要,是大部分开发者所面临的问题之一。它或许影响着你未来职业生涯的发展。 Hanneli Tavante近日在Our Daily Codes网站上发表了一篇文章《Tips for learning a new programming language (when you already know one)》,正是针对该问题展开。开发者或许可以从该文中找到问题的解决之道。下面为该文的译文。
当开发者们开始一个新项目,或者想转变成一个新的团队,往往需要学习新的语言、工具和框架。
我有一些同事,因不得不用他们不太了解的技术工作而备受煎熬。他们表示这样做很没安全感,也不可能掌握新工具的所有详细信息。经过多年的软件开发,我所了解的重要一点是,你不需要100%的了解所有语言和框架。在小项目中,你可能会用到一些特殊的技术,而这些在你的一生中仅可能用这么一两次,你也不可能因为狂爱该技术而钻研它的全部内容。所以在这种情况下,你只需要了解工作中所必须的那部分技术即可。
我并不是说你不需要深入了解任何技术。我认为你应该精通两、三种语言,对其他语言基本掌握即可,尤其是你工作环境经常变化的情况下。当你不得不学习新的语言,以按时完成工作时,你首先需要打开思维学习“基本的部分”,不要学习该技术的100%。你不需要成为所有技术的专家!而且,通常当你已经很好地掌握两、三种语言后,就可以很容易掌握新语言的基本技术。
有些人曾问我:“有没有快速学习新语言的方法?”。以我看来,并没有万能公式,但我通常会按以下简单步骤来学习任何语言中的基本技术。
基本上,我首先要做得是安装该语言所需的最简单运行环境。例如,在Mac上用Ruby编程,我将下载安装程序,并通过IRB在终端上使用Ruby。这是使用该语言的最简单方法。下一步要做的是,编写一些基本的程序——创建并打印变量、创建并调用函数。该过程上是十分重要,它们可以帮助你熟悉语言的结构。假如你所学的语言遵循面对对象(Object Oriented,OO)原则,接下来你可以采用以下步骤:
正如你所看见的,这些步骤运用到一些基本的面向对象原则——创建一个类、添加属性与方法、创建对象。我们还可以利用TDD(测试驱动开发)对该过程进行改进——提前写好测试代码可以帮助我们更快地学习和记住新的语言。所以有了下面的学习过程。
基本上,在应用OO技术之前,先写测试代码,观察未通过测试部分(红色显示),编写最简单的程序,观察通过测试的部分(绿色显示),在OO原则的基础上对代码进行重构以获得更完美的代码。
(注:我通常采用这样的测试驱动开发原则:编写测试代码—>观察红色显示部分—>作出最简单修改,使红色部分转变为绿色—>进行重构。)
接下来是学习类和对象之间的关系、继承、多态性及其他OO原则。以我个人来言,上述步骤十分有效。当然,如果我使用某些函数式编程语言,那针对OO的步骤也就无法使用了。此外,结对编程也不错。当你正尝试学习某种语言,找一个简单的问题,如Fizz buzz,和一个对该语言有经验的开发者通过结对编程实现它。
如果你确实喜欢某种新语言,那可以考虑继续深入学习。如果并不喜欢它,至少你可以利用它完成工作。(编译:陈秋歌 审校:夏梦竹)
原文链接:Tips for learning a new programming language (when you already know one)
相关推荐
2. **导入图片资源**:根据描述,你需要准备几张图片作为导航条的背景或按钮状态。通过“文件”>“导入”>“导入到库”将图片添加到Flash的库中。 3. **绘制或添加文本**:在舞台上,你可以使用“矩形工具”或...
标题"教育科研-学习工具-PCTSAA联合快速检测用试纸条及其制备方法.zip"表明这是一个关于教育科研领域的学习资源,具体是关于PCTSAA(可能是某种化学物质或生物标记物的缩写)联合快速检测技术的试纸条及其制作过程的...
### 机器学习中的强化学习——策略...以上介绍了强化学习中策略控制的主要概念和技术,这些技术为理解和开发更高级的强化学习算法奠定了基础。通过本章的学习,读者可以快速掌握强化学习中策略控制的基本原理和方法。
理解源码对于学习新技术、调试代码、优化性能以及进行软件开发具有至关重要的作用。程序员通过阅读源码可以了解软件的设计思想,学习优秀的编程实践,甚至参与开源项目的贡献。在实际工作中,阅读和理解他人编写的...
#### 九、持续学习新知识 **持续学习新知识。** 随着技术的发展,新的编程语言、开发工具和技术不断涌现。为了保持竞争力,需要不断更新知识体系,学习最新的技术和方法。 #### 十、积极参与社区交流 **积极参与...
为了帮助广大学子更好地适应这一领域的发展趋势,并掌握扎实的专业知识,本文将针对我国计算机教育现状及条件,总结并提炼出几条具有实践指导意义的学习建议。 #### 一、明确学习目标 在开始计算机专业的学习之前...
"新手学习篇"的压缩包很可能包含了以上各个方面的教程和示例,提供了一条循序渐进的学习路径。通过这些材料,新手可以逐步建立对ns2的理解,最终能够独立设计和分析网络模拟实验。在学习过程中,建议结合实际案例...
总之,通过学习和修改ListView的源码,我们可以自定义滑动条,提升其在快速滑动时的表现,同时也能加深对Android系统和UI组件工作原理的理解。这是一个既有技术挑战,又能带来实际效果的优化点,值得开发者深入探索...
建议选择几种主色调并保持一致。 #### 18. GIF图像应用 GIF图像是非常有趣的元素,可以用来增加网站趣味性。但在使用时要注意控制大小,避免影响加载速度。 #### 19. 图像属性设置 为所有图像设置`alt`属性是...
转录组测序技术PPT学习教案 转录组测序技术(RNA-Seq)是指利用第二代高通量测序技术进行cDNA测序,全面快速地获取某一物种特定器官或组织在某一状态下的几乎所有转录本。该技术可以对转录本进行高通量检测,提供了...
Python元学习实战是一种高级的机器学习技术,它涉及学习如何学习,使得模型能够从不同的任务中提取通用性,从而在新任务上表现出更强的适应性和性能。这本书《Python元学习实战》提供了丰富的代码示例,帮助读者深入...
【AutoTraining:快速学习自动-开源】 AutoTraining 是一个专注于自动化学习的开源项目,它旨在为开发者和数据科学家提供一种快速、便捷的方式来构建和训练机器学习模型。开源软件的特性使得用户可以自由地查看、...
PCR(聚合酶链式反应)是一种在体外快速扩增特定DNA片段的生物技术。这项技术的核心是利用DNA的热变性特性,即DNA在高温下会解旋成两条单链,而在适宜温度下可以重新配对形成双链。PCR通过反复循环这个过程,使得DNA...
**标题**:“线上减肥训练营,足不出户,仅靠拉几个社群,发几条朋友圈,月实现入五位”这一标题明确指出了项目的盈利模式及实施策略。它强调了通过建立社群和社交媒体营销来吸引客户,并实现可观的经济收益。 **...
此外,不断关注新技术动态,参加技术社区讨论,阅读官方文档,也是持续学习和提升的关键。 总之,这条语言学习线路涵盖了从后端到前端,从基础到进阶的广泛内容。根据自己的兴趣和职业目标,你可以按顺序学习,也...
此外,不断学习新知识、新技术也是必备的职业素养之一。 #### 5. 注重实践经验 理论知识虽然重要,但是实践经验往往更能帮助一个人成长。对于Oracle DBA来说,通过参与实际项目、处理真实环境中的问题可以更快地...
- **传感器新技术**:探讨当前发展中的传感器新技术趋势。 - **总结**:回顾整个课程内容并进行总结。 #### 六、传感器技术的重要性实例分析 - **“亚特兰蒂斯”号航天飞机**:因燃料传感器故障而多次推迟发射。 -...
在本节课中,我们将深入学习如何使用川教版三年级信息技术下册中的“画图”软件,这是一款基础的图形编辑工具,适合初学者探索和创作简单的数字艺术。课程分为几个部分,旨在帮助学生掌握基本的绘图技巧和纠正错误的...
这种技术允许在100M(快速以太网通道,FEC)或1000M(千兆以太网通道,GEC)以太网端口之间聚合多条链路的带宽,形成一个高速数据通道。即使通道中的某个线路出现故障,其他线路仍能保持聚合,从而提高了网络的可靠...
2. **开发鸿沟**:这个术语可能指的是技术熟练度的差距,或是新技术引入时对旧系统的冲击,学习如何跨越这种鸿沟是每个开发者和团队面临的挑战。 3. **科技交汇**:在不同领域的技术融合,如人工智能与软件开发的...