大时代势不可挡
无论您是一个刚萌芽的开发人员,还是几个Hello Worlds的支持者,还是您是一个拥有10多年经验的经验丰富的软件工程师,每个开发人员在某个时候都已经想到了一个问题:
“我如何成为一名不可阻挡的程序员?”
好的,也许不是完全用这样的措辞来表达的-但您明白了。 关键是要像他们一样。
我们都已经看到了他们 :那些在睡眠中编写代码的专家,他们似乎总是知道解决任何问题的正确方法。 他们是10个不同开源项目的最大贡献者,他们的GitHub贡献图是纯绿色的,他们甚至可以在一夜之间为甚至您最古怪的功能构想创建原型。
那么,你如何成为其中之一吗?
嗯,这个问题的答案是没有银弹的答案,仅仅是因为“势不可挡的程序员”的含义取决于所讨论的开发人员而有所不同。 但是,不必担心,因为即使开发人员在此过程中遇到了一些困难的日子,开发人员仍然可以做很多事情来磨练自己的技能并使编写出色的代码变得轻而易举。
让我们从最重要的内容开始:练习。
首先,最重要的是,除了常规的,精心设计的实践之外,没有其他开发人员能够在编程方面变得更好。 编程是一种技能,就像其他任何技能一样,编程需要时间,耐心和定期挑战才能变得更好。
一些练习方法可能是:
近年来,一些顶级科技公司的大量面试问题示例已进入网络。 现实世界中有成千上万的面试问题,从基本到难以解决的范围很广,因此初学者和专家都可以找到一些有用的概念进行深入研究。
如果从列表中回答问题听起来很无聊,总有interviewing.io ,一项免费服务,在谷歌等公司所连接的工程师找人来练习自己的面试技巧。
卡塔(Kata)从武术的角度讲,是指一些小练习,可帮助练习者掌握所学的任何动作。
对于Code Kata来说,这个概念很简单:每天一次又一次地进行一次小练习,每次都重新执行一次,几乎没有改善,直到您对它的前进,后退以及各方面的了解为止。
每个kata的目标是提供一个实践新概念的空间,以便将其内化,并使您的kata解决方案在每次迭代时都变得更好,更优雅。
就像面试问题一样,从众包清单到精选的选集以及围绕提供引人注目的代码katas的整个企业,在互联网上不乏可找到的katas。
![](https://i-blog.csdnimg.cn/blog_migrate/ec76b2a31e8d17994837cf4deeedc892.png)
在磨练您的编程技能时,您只能自己取得长足的进步,而找到经验丰富的人可能是更快地变得更好的最佳方法之一。
可能要花三个小时(因为您找不到合适的关键字)来找到问题的解决方案,然后找到一个可以在第一个结果下完全满足您的需求的库,这是区别于其他人的方法。
幸运的是,事实证明,编程常常是一种协作体验,并且您将有机会与经验丰富的编码人员进行合作,而这些人员正是您在职业生涯中的位置。
这种协作可以采取以下形式:提交拉取请求并进行审核,参加会议或编写文档以供其他开发人员阅读。
哎呀,即使没有身体由更有经验的程序员所包围,你仍然可以去像堆栈溢出的地方找人谁等着回答你的问题,并为乐趣提供指导。 真是个世界。
不仅如此,您自己回答Stack Overflow的问题可能是帮助巩固已经学到的技能的好方法。 毕竟,他们说除非您可以向其他人解释,否则您并不能真正理解某些内容。
无论是新的数据科学库,新的测试套件还是您以前从未使用过的前端框架,阅读文档都无法取代直接的经验。
即使只是从软件的快速入门指南中复制和粘贴代码片段,也可以发挥所有作用。 实际上,运行代码并亲自使用它是您作为程序员可以养成的最佳习惯之一。
本质上,玩吧!
在最基本的级别上,这可能仅意味着尝试功能并观察其输出,或者可能意味着有意破坏脚本并将其重新组合在一起。 您甚至可以尝试为自己感兴趣的内容创建自定义移动应用 。
当您对正在使用的代码更加满意时,可以尝试使用自己的代码对其进行扩展,以更好地满足您的需求。
任何已经编程了一段时间的人都必须与过去的自我抗衡。 每当您需要特定数据时,“贴上您”的意图就非常好,因为他们对列表进行了索引。 过去,您没有办法知道字典本来是更经济的解决方案。
重要的是,“呈现给您”可以指出您的错误,并对下一步如何更好地实现它有所了解。
查看自己的代码虽然有时会很痛苦,但它可以是一种很好的方式来掌握您作为编码器的发展水平,并在遇到新问题时提供继续前进的动力。 您会知道“未来”已经得到了支持。
![](https://i-blog.csdnimg.cn/blog_migrate/e53b8a42f8bc31f64f7d581cd97b8939.png)
推荐给世界各地的程序员的经典著作之一是《实用程序员》 ,由安德鲁·亨特(Andrew Hunt)和戴维·托马斯(David Thomas)撰写。 在其中,作者为希望在各个领域变得更好的程序员提出了许多建议:从业务开发到更好的代码重用习惯。
但是,这本书中有一条建议已经完全渗透到了编码时代精神中,即每年都要学习一种新的编程语言。 现在,这听起来像是一个艰巨的任务,但是很难否认了解多种语言具有的优势。
听起来有些愤世嫉俗,但是了解多种语言的好处之一是,它可以使您的市场变得非常有市场。 了解Python , JavaScript 和 PHP不仅可以为您提供更多的潜在工作机会,而且在简历上看起来也很棒(只要您可以备份它!)。
当然,还有另一个明显的好处–解决新问题时,您将有另一种语言可供选择。 不仅如此,您还将开始理解为什么应该选择一种或另一种语言。
例如,您可能会了解到,Erlang字符串从根本上来说是整数列表,也许您应该针对自然语言处理需求而转向Python,同样,您最好为HTML /转向JavaScript。 DOM控制需求。
目前,学习新语言可能对您来说是一项太多的承诺。 在这种情况下,您应该将自己应用于另一种不可阻挡的程序员的关键技能:熟悉您的工具。
现在,无需在这里点燃古老的Vim与文本编辑器的争论(或者天堂禁止Vim与Emacs的争论)。 相反,让我们遵循一般性建议,即您应该学习最大程度地使用工具。
是的,您的编辑器是其中的一种工具,并且即使有一天回到您舒适的文本编辑器中,也有很多令人信服的论据以各种形式学习vi或Emacs。
即使您没有选择走那条路,那也不是不了解所有事情的借口。 学习键盘快捷键,学习如何安装附加程序包,找到喜欢的lint,并且为了您的天赋,如果您的编辑器可以处理断点(几乎所有断点都可以),请使用它们!
而且,也不要只专注于编辑器。 了解您最常用的命令行实用程序的所有标志,了解您选择的外壳(并考虑学习使用脚本编写脚本),并确保您始终阅读手册
学会使用工具不仅使您看起来像是入门者的向导,而且还以明显的方式提高了工作效率。
好的,我们仍在努力不煽动任何互联网仇恨,但这不得不说: 全栈开发人员并不真正存在。
现在,在干草叉问世之前, 并不是开发人员无法学习构建和管理成功软件所需的所有知识。
而是,没有一个全栈开发人员能够以同等的能力来完成所有这些事情。 在任何全栈开发人员团队中,可能会有一些人喜欢管理基础结构和安全性问题,或者喜欢摆弄前端的东西,等等。
专业化只是意味着选择这些首选的专业领域之一,并通过添加补充您的专业知识的技能来进一步深入研究。 显然,您不会忘记所有其他全栈技能,没有比对您所热衷的领域拥有广泛知识更好的方式打动雇主和同事了。
就是说,您绝对可以成为所有行业的成功杰作,但要确保您是某些行业的大师,而不是任何一个领域的专家。
这里的所有都是它的! 完成上述所有操作,而无需执行其他任何操作,那么您将成为一名势不可挡的程序员。
不,这显然是个玩笑。 有多种方法可以成为更好的程序员,并且不可能在一篇文章中列出它们。 如果这些技巧都没有引起您的共鸣,请寻找其他提高技巧的方法。 重要的是您要不断尝试。
![](https://i-blog.csdnimg.cn/blog_migrate/e7f538d05a45d0c2d28948ae4ed8d6fc.png)
许多程序员发现自己患有冒名顶替综合症,认为他们需要对自己的技能有信心之前,必须成为世界上最好的程序员。 具有讽刺意味的是,为自己消除这个神话是迈向真正不可阻挡的程序员的关键一步。
初学者还是高手,只要你付出努力,每天多学习,你有这么多的动力,你将不能够是什么, 但挡不住发现自己。
翻译自: https://www.javacodegeeks.com/2019/08/behaviors-unstoppable-programmer.html
大时代势不可挡