每位初级开发都应该知道的六件大事
程序员世界从来没有“容易”二字,对于入门级的开发者,应该注意些什么呢?作者 |calevans译者 | 弯月,责编 | 屠敏出品 | CSDN(ID:CSDNnews)以下为译文:我的...
程序员世界从来没有“容易”二字,对于入门级的开发者,应该注意些什么呢?
作者 | calevans
译者 | 弯月,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
我的第一份软件开发工作是为父母的公司工作。在这之前,我已经使用Commodore 64很多年了,而且我的软盘上还有一些运行良好的代码,我会把这些代码带到我朋友家中,供他们复制使用。后来我的父母买了一个新的计算机系统,但他们却无法利用这个系统完成他们的工作。很幸运的是,这个系统是用BASIC编写的。于是,我假装很懂BASIC,并挺身而出正式成为了一名软件开发人员。
那都是36年前的事儿了,但至今我仍坚守在这个岗位上。尽管我从未攻读过计算机科学学位,也从未接受过任何软件开发方面的正式培训,但我有两种学习的方法。
观察别人、与他人交谈、向他人学习
犯错误
在本文中,我将讲述多年来积累的经验教训,多么希望当初我就能懂得这些。如果你刚开始学习编程,那么希望本文能对你有所启发。
耐心
对自己有耐心,对别人有耐心。作为初级开发人员,你自然不会无所不知,而且你还会犯错误。如果你很幸运能进入一家公司工作,那么请珍惜。好的公司会明白你正在学习。他们会为你指定一名“伙伴”帮助你解决问题。当你感到迷茫时,他们会为你指明正确的方向。
再重申一次,你会犯错误。你提交的PR中会包含严重的逻辑错误(就像一颗炸弹)。如果将你编写的代码投入实际生产,那么可能会导致一半的数据库被删。有时你编写的代码还会引发安全漏洞。然而,这都没有关系。这就是我们要进行代码审查的原因,目的就是让其他开发人员帮助你发现这些问题,并帮助你成长。
告诉你一个秘密:团队中的高级开发人员也犯过这些错误,而且很有可能就是这两年的事儿。
要对自己耐心一点。你迟早会成长为一名优秀的开发人员。只要你坚持下去,终有一天会摆脱“初级”的头衔,但这需要时间和经历,还有很多的错误。
学会高效敏捷
在过去的35年中,软件开发界中唯一的不变之处就在于一切都在变化。编程语言起起落落,框架变化得如此迅速,甚至连最佳实践也会随着时间的推移而不断发展。作为初级开发人员,你会遭受双重打击。你必须学习当前的技术堆栈才有用,但是你还需要掌握这些技术栈的变化。最重要的是你必须时刻关注新技术,尽管这些技术可能会对你有用,也可能根本没用。学习的能力才是事业成功的关键。
注重核心原则,而不是工具
语言、框架、平台、IDE、测试框架,这些技术的兴衰转眼即逝。你所掌握的某个框架知识可能在3-4后就过时了,等你转向新框架时,之前的努力就白费了。
然而,面向对象程序设计、功能程序设计、设计模式、SOLID等概念将跨语言和框架,让你终身受益。
这并不是说你不应该努力成为最优秀的Java开发人员,也不是说你不应该花时间学习技术栈和工具,我的意思是通过精通语言和工具背后的概念来降低学习的难度。这些知识在其他语言和技术栈也同样适用。
观察你周围的轮子
说“不要重新发明轮子”的人是个傻瓜。我永远不会将自行车轮胎放到全美赛车协会的赛车上,他们的赛车使用的是特殊的轮子。软件开发人员需要经常重新设计轮子,因为他们需要具有特殊属性的特殊轮子。
但是,你不应该尝试亲自编写所有的代码。你可以尝试重新发明所有的轮子。环顾四周,浏览Github或Gitlab上其他人的代码。 PHP开发人员有一种强大的资源名叫packagist,JavaScript开发人员拥有一个类似的工具名叫npm。无论你使用哪种语言,都应该首先熟悉打包和依赖项管理工具,只有这样才能查看其他人创建的代码。你需要编写的功能有99%的概率已经存在了。不妨先尝试一下。
如果找不到能够100%满足需求的产品,那么想想看是否可以建立一个分支,而不是从头开始做?
有的时候,软件开发人员的确会重新发明轮子,但是当我们这样做时,我们知道我们为什么这样做,而且在被问及时可以坚定地捍卫这个决定,因为说实话,这毕竟是我们不得不选择的最昂贵的选择。
多读少写
电影中的软件开发人员(通常称为黑客)经常坐在两个屏幕前,一边看着两边的代码迅速滚动,一边煞有其事地点点头,仿佛他们正在阅读和理解他们看到的代码。然而,现实中并不会出现这一幕。
更为常见的情况是,软件开发人员在某个代码仓库的基础上建立分支,克隆到本地,然后打开编辑器,开始阅读代码。阅读别人的代码是最佳的学习方式。如果你知道代码的作用,那么阅读代码的过程中你就可以看到其他人解决问题的方式。
就像伟大的作家,他们的阅读量远远超过了写作量,伟大的软件开发人员阅读的代码量(他们自己的和其他人的)也超过了他们编写的代码量。作为初级开发人员,你应该加倍努力。由于你没有现成的代码可供复制和粘贴,因此你需要了解其他人解决常见问题的方式,并思考自己该如何解决。
寻找导师
还记得本文开头的故事吗?那个时候还没有互联网。当时我们有BBS,但没有太多共享的内容。所以,我不得不买书。看书、写代码,然后不断尝试,直到代码可以运行。
如今,软件开发人员拥有大量的信息和示例代码可以参考,比如Stack Overflow、Stack Exchange、Reddit等等。尽管如此,找到代码只是解决问题的第一步。接下来你需要确定某个解决方案是否可行。为此,你需要找到一个好导师。
你需要找到一个参谋。这个人希望你取得成功,并愿意花时间帮助你取得成功。你可能需要下一番功夫才能找到合适的导师,一定要坚持下去。只有不断尝试,才能找到合适的人选。
找到导师后,请记住黄金法则:“切勿浪费导师的时间”。在需要的时候,你可以打电话给导师。一位好导师会检查你的情况,但仍然允许你在需要时提出问题。不要因为一些简单的问题打扰导师,你可以搜索互联网自己解决这些问题。只有在走投无路时,再向他们求助。他们是你职业生涯中的精神支柱,而不是你的司机。他们会为你提供指导和建议,但你不应期望他们会给你答案。
总结
欢迎来到软件开发的美好世界。也许你刚大学毕业,或刚结束培训班的学习,但这不是此次旅程的终点,而仅仅是一个开始。除非你退出这个领域,否则一切都不会结束。你需要坚持学习、成长和发现。软件开发人员既是艺术家,又是科学家,还需要穷其一身坚持学习。拥抱这些优秀的品质,勇往直前,为创造美好的明天而努力。
原文:https://hackernoon.com/the-six-most-important-things-junior-developers-need-to-know-to-begin-and-sustain-their-it-careers-vir3tkt
本文为 CSDN 翻译,转载请注明来源出处。
热 文 推 荐
☞在以太坊上开发 Dapp 的瓶颈和门槛有哪些? | 博文精选
你点的每个“在看”,我都认真当成了喜欢
更多推荐
所有评论(0)