开始学习编码之前我要知道的内容

2020年12月30日10:55:25 发表评论 29 次浏览

本文概述

嗨, 我是尼克。 9年前, 我写了第一行代码。

像其他所有开始编程的人一样, 我唯一关心的就是编写代码。

对我来说, 编码是一种魔术, 你可以在键盘上键入内容, 然后计算机会立即在屏幕上显示你的工作结果。

但...

当我遇到现实世界并在6年前成为全职开发人员的第一份工作时, 这种魔力开始消失。

在这些年里, 我面临着编程工作的好, 坏和丑陋的一面。而且我已经学到了有关编码和从事编码职业的四项基本知识轻松地帮助我实现了297%的增长这些年来, 如果我刚开始就认识他们。

编码与编码无关

你认为编程是关于什么的?

写代码?

写好的代码?

编号

这只是整体的一部分。

编程与编码无关, 编程与解决编码问题有关。

最终客户不在乎你使用什么技术, 语言, 框架或方法。他们只关心一件事:你的产品是否解决了他们的问题。

这就是为什么很少有人关心引擎盖搜索使用什么技术的原因。只要人们能从中找到相关信息, 他们就会使用它。

这是我开始编程时希望知道的第一件事。

我将花更少的时间编写"最佳代码", 而将更多的时间以最快, 最好的方式解决客户的问题。

不要仅仅为了编写代码而编写代码。用代码解决客户的问题。

沟通技巧比编码技巧更重要

当我刚开始从事程序员职业时, 缺乏社交技能并不是我的主要问题。但是当我升到更高的位置, 升到中层, 高层, 然后再担任领导职位时, 我软弱的软技能就成了我的致命弱点。

当你与一群不同的人(工程师, 设计师, 经理等)一起开发产品时, 沟通才是使你成为"团队"并帮助你有效开发产品的唯一条件。

缺乏良好的沟通或社交技巧则相反。它增加了产品开发时间, 并降低了整体生产率。

这是你可能会遇到的真实情况:

领导团队告诉你的产品经理, 他们要创建一个新产品功能并将其放入下一个产品版本中。这并不紧急, 他们只想尽快(一如既往)发布它。

产品经理会在Zoom上给你打电话, 告诉你需要构建什么, 并询问, "你需要多少时间来建造它?"

你进行粗略计算并告诉他们, "我需要20个小时。"

产品经理对你的回答不满意。他们希望尽快发布它, 并向管理层表明他们可以快速交付结果(这是非常普遍的情况)。

他们问你"你能在10个小时内建成它吗?我们在下一个产品版本中确实需要此功能!"

而且, 你知道如果可以速成(无测试, 凌乱的代码), 但是你需要对其进行重构, 这将花费额外的30个小时。因为其他工程师在你发布时会使用你的混乱代码。重构后, 你将需要将其代码与你的代码集成在一起。

所以这是下一步会发生的事情。如果你的社交技能不好, 你将无法使产品经理相信你实际上需要20个小时来构建此功能。

为什么?

根据我的经验, 产品经理通常具有良好的社交能力。因此, 如果你不能说服他们延迟重构比现在花费20个小时还糟糕, 他们会轻易与你争论, 并说服你"以后重构是可以的"。

然后, 整个团队将在你进行重构时再损失30个小时(我也没有在计算修复不可预测的错误所需的时间)。

但是, 如果你具有良好的沟通能力, 你将更容易说服你的PM。

因此, 提高你的社交技巧和编码技巧(在Slack之类的小组聊天中发送模因):)。

并记住一个简单的事实:

人与人合作, 而不是机器。

如果你知道如何学习, 编程将变得非常容易

当我开始学习JavaScript时, 很难。因为我学错了方法。

阅读大量理论, 没有实践, 没有常规, 没有最终目标。混沌。

我认为这样学习是正常的。直到我发现刻意练习。

这是一种有目的且系统的练习(学习)。

正常练习和故意练习之间的区别在于, 要进行故意练习, 你需要真正专注。而且, 你必须有一个特定目标, 那就是要变得更好并提高性能。

经过深思熟虑的练习后, 我开始注意到学习JavaScript的速度有多快。我的知识开始坚持了很长时间, 而不仅仅是在上完教程之后的5分钟。我制定了最终目标, 阐明了为什么要学习JavaScript, 并了解了我需要学习的内容, 以及我不需要学习的内容。

因此, 这是你需要自己进行有计划的练习的条件:

  1. 找老师:提供旨在帮助你提高绩效的练习活动。
  2. 尽最大努力执行:经常被带出你的舒适区。
  3. 有明确的目标:不只是"整体改善"。
  4. 确保你专注于:请全神贯注, 不要分心。
  5. 完成深思熟虑的动作:没有自动驾驶仪。
  6. 立即响应反馈并修改你的策略。

当你开始学习一种新的语言, 技术, 框架或其他内容时, 请遵循这些规则, 以尽快取得丰硕的成果。

10X工程师不存在

在我职业生涯的开始, 我认为一个优秀的程序员是一个了解大量编程语言, 框架和方法的人。

我错了。

这样的心态只会生出我的冒名顶替综合症。我以为自己不配我现在的职位, 薪水, 我是个"骗子"。

因此, 我开始在Twitter上关注每个受欢迎的开发人员, 阅读每个技术出版物, 并倾注了数千个开发人员博客, 以使自己确信自己应得的, 并更接近"伟大的开发人员"的称号。

这不是健康的行为。

但是它帮助我发现, 我关注的很多人​​(我认为是10X工程师)实际上并不了解很多东西。

他们可能已经知道如何完成一些复杂的任务, 需要在几个领域中具有丰富的知识, 但同时他们也不了解一些基本的知识。就像他们知道如何设计高度可扩展的数据库体系结构一样, 但是他们不知道如何将元素与CSS垂直对齐。

非常感谢Dan Dbra Abramov(Redux的创建者)等开发人员创建了以下资源本文。他们帮助治愈了我的冒名顶替者综合症, 并向我展示了不了解某些东西是可以的。

到底...

如果你喜欢这篇文章, 请与你的朋友和在推特上关注我.

快速说明:我正在创建一个JavaScript课程, 在此课程中我将使用有意识的练习来将现代和实用的JavaScript理论与大量实际实践结合起来教你如何成为具有现代语言功能知识的熟练JavaScript开发人员。在这里加入。

另外, 每周我都会发送" 3–2-1–"时事通讯, 其中包含3条技术新闻, 2篇文章和1条建议。

知道最新消息, 订阅我的3–2–1新闻.

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: