本文包含附属链接。有关更多信息,请参阅我的关联披露。
接触多种编程语言加速了我作为编码员的成长。
它给了我一个工具集来以多种方式表达问题并比较和对比不同的方法。这并没有立即让我成为一个更好的编码员,但它为我职业生涯后期的一些重大思维转变奠定了基础。
学习多种语言改变了我对 API 设计的看法,教会了我丰富类型系统的价值,并从根本上改变了我对数据表示的看法。
因此,让我们谈谈如何学习第二门编程语言。
选择第二语言
在本科的头三年里,我依次学习了 C++、Java 和 C。当然,也有挑战,但语法和程序结构的相似性让学习每种语言变得越来越容易。
另一方面,作为一名编码员,对我影响最大的语言一直是那些挑战我从不同角度处理问题的语言。 Python 对我做了这个。 SQL也是如此。
最近,Rel——我在工作中记录的 Datalog 系列中的一种声明性建模语言——让我重新思考我所知道的关于数据表示的一切。
最终,您选择哪种语言取决于您的目标。例如,您可以根据语言在您当前角色中的实用性来选择一种语言,或者扩大您有资格胜任的工作数量。
或者你可以为了好玩而做,这通常是我做任何事情的首选理由。
练习第二语言
如果你想快速流利地掌握一门语言,编程语言的关键与人类语言一样:沉浸。
但我不再有学生时的体力,也没有为人父母前的精力。我没有时间沉浸其中。我需要每周花几个小时就能完成的简短、专注和实用的技巧。
这对我有用。
使用抽认卡
这个概念很老套,但无论您是使用像 Anki 这样的数字抽认卡系统还是制作实体卡片,抽认卡都是一种简单方便的方式,可以在您有空的时候进行自我测验。
我为以下对象制作抽认卡:
- 经常使用的短代码片段或模式
- 内置函数和方法
- 标准库模块
- 新术语
- 不同用法的通用术语
我还是更喜欢用实体卡片制作一副牌。我喜欢使用可以放入口袋的小型空白3″ × 5″ 索引卡。它们非常适合在生活乏味的时刻进行一些练习。
输入所有内容
我最喜欢的练习之一是用我想学习的新语言找到一个编写良好的代码库,并从中键入代码片段。社交媒体和聊天服务器是寻求代码库建议的好地方。
我选择一个函数、类或模块——通常不超过 20 行——将它放在代码编辑器旁边的窗口中,然后开始输入。在我打字时,我会使用评论来记录我不明白的事情。然后我会仔细研究代码,研究我遇到的问题,如果有时间,我什至会把代码翻译成我更熟悉的语言。
我喜欢这个练习,因为它迫使你:
- 练习阅读新语言。
- 练习写新语言。
- 将新知识与现有知识联系起来。
- 让自己暴露在知识空白中。
- 让自己接触其他方法。
您可以在一个小时内完成它,而且效果很好。
记录你的进步
这是我得到的最重要的建议:
保留私人日记或在博客上公开写作。不要担心你的写作质量。相反,专注于记录您当前对事物的理解。编写概念指南,解释概念的工作原理及其重要性。制作备忘单。保存一个有趣的代码片段文件,并附有简短的解释。
写。写。写。
在我能够用简单、清晰的术语以书面形式解释它之前,我认为我对一个概念的理解是完整的。这永远不会在第一次尝试时发生。我可以花几个月——甚至几年——来改进东西。
这是一个简单的开始方法。
选择您最近学习的主题并回答三个问题:
- 为什么这个话题对你来说很重要?
- 该主题与您已经知道的事物有何关联?
- 你对这个话题有什么不明白的?
然后用不超过五句话描述主题。将文件存档在某个地方,几天后返回。在描述中让您感到困惑或不满意的任何部分下划线。
这五句话的描述成为你对这个概念的心智模型的外在表现。当您重新审视您的描述并随着时间的推移对其进行完善时,您的心智模型会得到改善。
深入挖掘
无论您是学习第二语言还是第一次学习编码,获得支持都会有所帮助。所有 Curious About Code 订阅者都被邀请免费加入私人 Curious About Code Discourse 服务器。
立即订阅并加入讨论!
成为更好的编码员。
每周六一封电子邮件,附上一条可行的提示。
总是少于 5 分钟的时间。
现在订阅
原文: https://davidamos.dev/dont-get-fixated-on-one-programming-language/