作者 | Elye

译者 | 无阻我飞扬     责编 | 孙胜

出品 | CSDN(ID:CSDNnews)

你的弱点可以成为你的力量。接受它,逆转它,以患为利。

我们都是人,并不完美,都有弱点,它影响着我们。它确实让我们成为一个比预想更渺小的人。然而,如果我们知道如何正确引导它,它就可以成为推动我们前进的很棒的工具。

同样地,作为开发人员,这些弱点中的一些似乎是我们职业生涯中的绊脚石,但我们可以逆转它,从而帮助我们进步。

下面是我的一些经验。

没有实质根据就不会表达

沟通对于一个人的职业生涯来说很重要。良好的表达能力使一个人成为更好的沟通者。

对我来说,在没有真正了解的情况下很难表达清楚。在开始交流和分享之前,我需要花点功夫确定它是如何实现的。让我感到惊讶的是,有些人在知之甚少的情况下总是能言之凿凿。

因此,当开始一个新的职业生涯,一个不熟悉的新项目时,我几乎无法做出任何承诺,也很少提供任何信息。我总是起步比较慢。这种无能让我努力,让自己为此做好准备,不辞艰辛,确保我了解所有细节。

一旦这么做了,我将能够更好地分享、沟通和承诺。言之有物,因为我对此有经验。我了解背景,能够更好地表述它。我说的东西会更加真实可靠。

这些局限迫使我为任何项目和工作做好准备,无怨无悔。

语言沟通能力差

英语不是我的母语,只是在学校作为必修课学习过。语言从来就不是我喜欢的科目,而且我对任何语言都没有很强的掌握能力。

我的写作能力比口语好。口头交流更难,因为它需要反应迅速、思维敏捷。但是在写作时,我们有时间选择合适的单词并正确地构造句子。

由于这个局限,每当准备启动一个项目时,我通常会写下需要分享的内容,它会让我更加清醒。然后,会在项目开始前发送我的文章给大家,以便其他人提前了解接下来要做的事。

在创建技术文档时,大多数情况下,我使用图表来尽可能多地表达我的意思。我发现这简化了我试图提出的所有技术要点。与团队分享这些图表在项目启动和讨论过程中也非常有用。

写文档不是我最喜欢做的事情。这样做是因为我需要去做。事实证明,它非常有用,得到了开发小伙伴们的赞赏。

尽可能多地了解所有细节的欲望

我有这个问题。当探索一些未知的东西时,我会尽可能地深入其中。这与我之前的问题有关,如果我不能完全了解它,就会感到迷茫。

举一个简单的例子:我知道PorterDuff Mode是用于图像处理的,大多数人用它只是为了取整图像。如果我们需要做同样的事情,可以重用或复制代码,无需了解PorterDuff Mode还能做些什么。

在感觉到差距时,我只是给自己一些时间来深入研究细节,了解清楚每一个可能的方面,并搞懂如何实际使用它们。

另一个例子是完整的Kotlin集合函数套件。我把它编译了很多遍,并尝试着一个接一个地浏览了其中的 200 个。这真的很耗时间,花了不少功夫。我从不自称是专家,也不记得所学过的一切,但我所学的在我的记忆中留下了一些足迹。正如我所记录的所学到的内容,当有一个场景可以使用的时候,我可以回忆一些记忆里存在的东西,并更快地想起它(我是怎么做到的,见下面的第5点)。

不可能什么都学,这需要时间,但无论学到什么都会是一个加分项。

从来都不是最棒的,学习需要时间

我特别羡慕思维敏捷的人,他们能快速获取抽象的知识,当他们聆听技术分享的时候,频频点头表示完全理解所分享的内容。

我不是那样的人,我必须一遍又一遍地听技术分享,必须对其进行编码才能明白并理解培训师所说的内容,必须像剥洋葱一样慢慢深入研究,慢慢理解每一层,必须从最基本的组件开始理解,然后慢慢回到大局上来。

在这样做的过程中,我探索到了更多并了解了主题的细微差别。我还深入探究了为什么一开始我很难理解这个特定主题;也许我丢失了一些上下文背景或误解了部分陈述。

随着对这个主题了解的越来越多,我选择用一种更简单的方式写出来和大家分享,希望那些面临同样挑战的人能更轻松地学习。一个例子如下:

这样一系列的学习帮助我缓慢但没有困惑地构建了知识体系。开始的时候是很痛苦,但随着所学知识的积累而变得更容易。

当我进入一个新的学科或领域时仍然很难,但通过努力,学习和掌握它并非不可能。

我很健忘……很快就忘记了所学到的东西

当深入研究一个特定的技术主题时,我觉得对它有了很好的了解,可以阐述细节,解决遇到的任何问题,那是一种如此美妙的感觉。

然而,作为一名开发人员,我们不会长时间停留在某些技术领域。我们在一段时间内广泛使用一种技术,然后继续前行,可能需要一段时间才能再次回到这个技术领域。

以我的经验,虽然我们继续前行,但有时仍需要再次回到那个技术领域。鉴于这些项目的深层背景,我不记得我学到了什么。可能对它有一个模糊的记忆,但要想回到以前的状态,还需要大量的挖掘。

由于有这种健忘的特质,当深入学习某个主题时,我会迅速记录所学到的东西。我在git-repo上用真实代码创建了一个简单的项目,写下每一个可能的细微差别,并尽可能清楚地阐述它。

同样,写这篇文章需要耗时耗力,我们可能再也用不到它了。所以这就是我在Medium上与其他人分享的原因。如果我们再也不需要它,至少它可以帮助别人。

但是当我们再次需要用到它时,就会变得超级、超级有用!只需要快速地浏览一下,就会想起来很多,即使忘记了它的一些细节,我也有之前编写的简单可行代码的repo示例参考。

因为我是它的作者,所以一切都变得非常清楚。(好吧……有时也不太清楚,我很遗憾没有把一些细节写得更清楚……但你知道,它仍然有所帮助)。

缺乏自信,感觉无能

也许是因为家庭教养或自己的性格特质原因,我几乎觉得自己无法胜任任何工作。我必须付出百倍努力,才能感觉自己在某些方面"还好"。

当第一次开始我的职业生涯时,我仰慕那些资深和更有经验的开发人员。他们有太多的行业知识,我在大学时几乎没有学过。在进行技术讨论时,我在他们面前感到胆怯,所以一旦有机会,我就迫不及待地尽最大可能地向他们学习。

随着年龄的增长和知识的积累,我不再那么胆小了。我可以更好地与他人互动,但仍然时不时地感到缺乏知识,尤其是与周围的人的相比,其中包括比我更初级的开发人员。

这种感觉确实让我很谦逊,因为我知道还有很多东西要学。对于年轻的开发人员,我经常不耻下问,询问我所不了解的领域,并寻求向他们学习。不得不说我学到了很多!

因此,那种无能的感觉让我对每个人都很尊敬,我知道仍然可以从每个人身上学到一些东西。我从不羞于问,因为我不是专家。每一次的求教和学习,都会让我成为更好的开发人员。

思维迟钝……因为我想太多了!

多年以前,我喜欢的女孩问我是否想参加某一天的活动。正常的回答会说"是",但我犹豫了,我想三想四……

一位经理考虑给我升职,我犹豫了一下,想着"我能做到吗?","如果我失败了怎么办?"

多么可怕的性格特质!我正在努力变得更加果断并提高我的决策能力。

然而,这样一个场景构建的思维过程,当应用于编程时,会有很大帮助!当编写代码或撰写文档时,我的大脑开始考虑各种极端情况和潜在的问题。

最初,"多分支思维"很容易让人分心,因为我们把给定的问题复杂化。当我学习如设置和划分它们时,它成为一种将工作范围划分为更小的任务和制定测试场景的一种方法。

我希望不会完全抛弃这个性格特质。

随和……没有特别的偏好

对于程序员来说,随和是一个非常反常的特质。程序员应该是固执己见的,并且有着强烈的偏好--从语言的选择到风格的偏好。

像制表符与空格、分号、花括号这样简单的样式在编程界引起了数十年的争论。

对我来说,我有一些观点,但我可以从两个方面看问题。我确实尝试过自以为是(因为这似乎是成为程序员的必然要求),但最终还是屈从于大多数人的偏好。

对于程序员来说,这怎么可能是一个很好的特质呢?我结交朋友,和每个人都相处的非常愉快。我加入了开发者团体,与团队融为一体。我学习并理解两方面的观点,开始慢慢消化和理顺它们。

在得到来自不同方面的所有信息后,我形成了自己的观点。这样的观点可以更全面,因为它们涵盖了不同方面的考量。

有鉴于此,我现在确实有了自己的观点,但我仍然很灵活,而且遵循得很好。对我来说,团体偏好优先于个人偏好,我可以从更多的角度看问题。

结语

我们都有弱点,这是不可避免的,但这并不意味着这些弱点必然决定了我们会成为什么样的人。

如果只是随波逐流,屈从于它,我们就会感到挫败并陷入恶性循环,这使我们越来越难以走出困境。

然而,如果我们不断努力,努力弥补弱点所不能提供的东西,可能会对结果感到惊喜,结果可能比我们没有弱点会更好,可能因祸得福。

原文:8 Weaknesses That Shaped Me To Become a Better Developer

声明:本文由CSDN翻译,转载请注明来源。

开发者必备的知识图谱来啦!60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!

8 个弱点助我成为更好的开发人员!相关推荐

  1. 致谢 开源开发者的贡献_对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点...

    致谢 开源开发者的贡献 by Luciano Strika 通过卢西亚诺·斯特里卡(Luciano Strika) 对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点 (How contr ...

  2. 成为更优秀的开发人员:第一步-“制造”粉丝

    编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问.自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理.现居住于加州中部城市 ...

  3. 如何通过提问成为更好的开发人员

    如何通过提问成为更好的开发人员 这是新的一年的开始,所以我想以一篇我已经计划写了一段时间但从未真正开始创作的帖子开始.我最近开始了一份新工作,加入Elastic[1],负责开发他们的 .NET 语言客 ...

  4. 成为更优秀的开发人员:第二步-知道你的核心竞争力

    编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问.自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理.现居住于加州中部城市 ...

  5. elixir开发的项目_我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员...

    elixir开发的项目 by Nikolas O'Donnell 由Nikolas O'Donnell 我对Elixir的介绍:学习另一种编程语言如何使您成为更好的开发人员 (My intro to ...

  6. im和音视频开发哪个更好_找时间成为更好的开发人员

    im和音视频开发哪个更好 There's no time for anything. At least that's how it feels doesn't it? No time to learn ...

  7. 赞扬别人团建评论_赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员...

    赞扬别人团建评论 开发人员的测试工具箱就是其中之一,很少保持不变. 可以肯定的是,一些测试实践已被证明比其他测试更有价值,但是,我们仍在不断寻找更好,更快和更具表现力的方法来测试我们的代码. 基于属性 ...

  8. 赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员

    开发人员的测试工具箱就是其中之一,很少保持不变. 可以肯定的是,某些测试实践已被证明比其他测试更有价值,但是,我们仍在不断寻找更好,更快和更具表现力的方法来测试我们的代码. 基于属性的测试 是 Jav ...

  9. IDEA JetBrains 推出 Mono 编程字体真牛逼,更适合程序开发人员!

    >>号外:关注"Java精选"公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料.开源项目. Intellij IDEA 公司 JetBrains  ...

最新文章

  1. javascript中变量
  2. 软工第二次练习——团队展示
  3. Linux命令在线查询
  4. 为什么销售员贷款比较难?
  5. Javascript模块模式学习分享
  6. mysql 无论输入什么都是现实 not found_NotAPanda
  7. Jfinal 显示欢迎页 index.jsp
  8. 初试django模型层
  9. Android  Doze and App Standby模式详解
  10. 你知道该如何搭建 AI 智能问答系统吗?
  11. 《Android游戏开发详解》一2.9 类
  12. Bailian4021 最大乘积【序列处理】
  13. adb卸载手机内置软件
  14. 解决Android部分手机图片剪切返回崩溃问题
  15. 计算机科学之父——图灵
  16. 文件夹怎么加密 怎么给文件夹加密
  17. C#实现语音朗读功能
  18. 服务器每天自动变密码,Windows自动修改系统密码分享
  19. ch341a_USB转串口/并口驱动
  20. Visual Studio无法下载及安装

热门文章

  1. 东大OJ-一元三次方程解的个数
  2. Git和GitHub 总结
  3. Django中ORM常用字段类型及参数
  4. 【HHHOJ】NOIP模拟赛 捌 解题报告
  5. Redis集群Windows
  6. MVC5中Model层开发数据注解
  7. [DC]学习design compiler
  8. Python函数调用(2)
  9. 【转】用Microsoft Ajax Minifier帮你的Javascript瘦身
  10. [论文阅读] AMPNet: Average- and Max-Pool Networks for Salient Object Detection