关于冒名顶替综合症的深夜忏悔(以及我如何应对它)
让我们开始吧...可以吗?
让我们开始吧...可以吗?
我经常自问。我经常会想,就我的职业生涯而言,我是否已经达到了我应有的水平。我学习这门语言,或者对这或那感兴趣,是不是搞砸了?我总是告诉自己,我需要沉浸其中,或者至少对测试、应用安全、开发运维和其他软件工程原理有所了解。
我写的代码干净、安全、高效吗?我是否正在成为一个更高效的问题解决者?我想成为科技界的魔法大师,我该怎么做?
我迄今为止的成就
从理论上讲,对于一个经验不足几年的人来说,我已经取得了巨大的成就。我曾在几次会议上就无障碍功能发表演讲,人们都说从中受益匪浅;我编写的教程也广受好评;我还负责过一些小型和大型应用程序的功能开发。我还被任命为一些项目的前端负责人。我做过自由职业者,也接受过合同工。我还成功避免了因为绩效或技术能力不足而被解雇(哈哈)。
我其实没有办法衡量自己的成功。我经常试着不去和别人比较,因为我很容易变得好胜,而且总是过度焦虑,甚至超出自己的承受范围。
我目前正在做什么?
我最近在做什么?首先,我开始写一系列 JavaScript 教程。我希望重点关注这门语言的核心基础概念,不涉及框架或库。我选择将我的技术博客重点放在这方面,首先是因为我的职业是前端开发人员。JavaScript 是 Web 开发中必不可少的“恶魔”,而我的目标是始终精通,甚至在某些方面做到“危险”。怎么做到的呢?就是要足够大胆,教授基础知识。如果你能把一些东西分解得让初学者也能理解,那就说明你很懂行。
我还在做什么?我正在学习 Golang,因为我喜欢无缘无故地让自己感到压力山大(开玩笑的)。但实际上,我学习它是因为我一直想扩展前端开发之外的技能。我知道你可能在想,为什么不直接用 Nodejs 和 Express 之类的工具构建全栈应用呢?好吧,当然可以,但要敢于与众不同,哈哈。(顺便说一句,我实际上用 Node 和 Express 构建了几个业余项目)。我认为语言只是工具,都有其优缺点。我正在努力学习一种更静态类型的语言,并且能够真正深入研究后端。我还花了一晚上的时间阅读一本关于 C 语言的书,以便稍微了解一下这门影响了我今天使用的语言的母语。我目前的目标还不是掌握 C 语言……至少现在还不是。在学习方面,我想把重点集中在几件事上。
说实话,我并不太在意学习每一种语言或框架。我更在意如何更好地解决问题,思考极端情况,以及如何为我接触的任何代码库做出更好的贡献。
关于冒名顶替综合症和潜在的自我破坏
我经常会想,我可能因为害怕自己不够好,把自己限制在某个框架里。我拒绝了过去的机会,因为我觉得自己还没准备好,我想我们很多人都有过这样的想法。我常常不给予自己应有的认可。这可能源于我过去的个人经历,那时我必须追求卓越,不能接受任何低于这个标准的东西。我对自己要求最严格。有标准是好事,但不能高到质疑自己在这个行业的价值。
我觉得自己是高级工程师吗?我尽量不给自己贴标签。我通常会争取高级职位(因为面试都是他们安排的,哈哈),至于他们如何评估我的价值,如何让我融入团队,那就由他们来决定了。我通常想,如果我能胜任这份工作,而且做得很好,那就好了。
我希望我的下一个角色是什么样的?
因为我的整个职业生涯都是前端开发,所以我预计我的下一个职位可能会涉及前端开发。但我更希望能够深入研究堆栈的不同部分,并磨练我的后端知识。听起来很棒。我愿意接受开发者倡导者的职位,因为我基本上已经出于热爱做了很多典型的工作职责(帮助开发者社区、做演讲、写教程等等),但呃。
关于倦怠的简短说明以及我为什么每天都在学习
好吧,我不想让你觉得我是个计算机科学迷,生活和呼吸都离不开代码,每天自然而然地学习几个小时。事实上,我恰恰相反。你可以看看我的背景故事,但本质上,直到几年前我才开始接触编程。但当我发现(并在几个月后真正致力于编程)之后,我便开始疯狂地投入其中。以至于我经历了太多次倦怠。甚至到了我一想到要打开编辑器就浑身发抖的地步。实际上,我不得不休息了几个月。不久前我才重新回到正轨,并努力不再这样做。我想学习的时候就学习,目前每天学习几个小时。最近我平均每天学习6个小时,那是因为我在学习Go,它非常有趣,而且我出于好奇心,想要学习如何构建可扩展、性能快速的后端。
我如何(尝试)应对这个问题:
- 多写一些关于技术方面的博客:分享我学到的东西,这大概就是我热爱编程的核心原因。我喜欢学习一些东西,然后创建教程,分解我学习或解决问题的步骤,并尽力用我最好的方式解释清楚。我认为,成为一个更好的“代码沟通者”(我用这个词来形容那些能向别人解释技术的人)会让你成为更资深的工程师,因为这样你就能更好地与团队合作,帮助经验丰富的和缺乏经验的人解决问题。
- 在 Twitch 上直播……不,说真的:我非常害怕直播编程。真的。但是我想克服这种恐惧,但又不想让自己感到太不舒服。所以从本周开始,我将在 Twitch 上直播我的学习内容,帮助大家学习 Codecademy 的一些课程。我每天都会花几个小时学习,纯粹是为了好玩,所以我觉得直播应该没问题。我喜欢分享我的笔记,也不介意帮助大家更好地理解他们正在学习的内容。关注我的 Twitter,了解我的直播时间表。
- 为开源做出贡献:这主要是因为我希望获得更多拥有功能、与团队合作的经验,并让更有经验的人公开剖析和审查我的代码。
- 成为一名软件开发者意味着永远学习:这确实是一个总能学到新东西的领域。我为自己喜欢深入挖掘一切运作机制而感到自豪,而且我每天都坚持学习一段时间,仅仅是因为我重新爱上了编程。
- 成为更优秀的问题解决者:不断提升我的计算机科学知识,并不断练习如何实现数据结构。我并非总是有动力这样做,但我知道这很重要。
- 坚持下去:经验是无可替代的。经验能让你精通一门语言,掌握解决问题的方法,并成为一名更全面的开发者。你需要经历无数次失败才能成长。无数种不同的错误产生方式,能让你学到无数种不再犯错的方法,哈哈。
- 提醒自己,即使是最优秀的工程师也会面试失败……很多次:我曾亲眼目睹过一个我认识的人(他从 8 岁就开始编程,对计算机科学的了解之深以至于我无法理解,并且从 18 岁起就一直担任高级职位)面试失败,并得到了一些极其严厉的反馈。有时,你的代码会被挑剔,甚至因为一些小事就把你开除。我必须记住,即使是最优秀的工程师也会失败,这没关系。这并不意味着你是一个糟糕的工程师。这并不意味着你是一个糟糕的工程师。这并不意味着你是一个糟糕的工程师。你只需要继续前进,昂首挺胸。你可以马上回去继续做那个业余项目或练习 Leet 代码题。如果必须哭的话,那就哭吧,因为那很正常,但在某个时候你必须继续前进。 说实话,我真不知道这是一篇公开的日记,还是在提供建议,但如果你觉得这篇文章有什么地方值得一看,请告诉我。这是初稿,我点击了发布,否则我可能早就放弃了,但我觉得这篇文章或许能帮助到我以外的人。## 我接下来要做什么?
- 今天晚些时候有望发布 Vim 的备忘单
- 需要更新我的个人博客网站,这样我才能更专业(哈哈)
- 每周至少发布一篇原生 JavaScript 教程。我已经有一些了,你可以在这里查看。
- 在 Twitch 上直播并做我的事情