我怎样才能成为一名专业/高级软件工程师,需要多长时间?
老实说,我认为这不是正确的问题。
我已经写代码将近1年了(2020年11月开始实习,中途返校做毕业设计一段时间),直到今天还有很多东西我仍然不知道。
当您成为专业人士时,并没有真正的神奇时刻。
相反,您应该有正确的心态,并意识到编程是一个漫长而曲折的旅程。它可以有起有落,但也非常有益和愉快。
因此,在本文中,我将分享 23 条重要提示,可以帮助您成为更好的软件开发人员。当然,这可能只是给自己的碎碎念,大家觉得不适应的话,在评论区告诉我。
科技行业非常不稳定,事物一直在想前变化。有太多的技术需要学习,有太多的语言可供选择。
这可能非常令人生畏。但是,如果您有正确的心态,并且喜欢学习新事物,那么您就可以享受学习新知识的旅程而不会感到不知所措。
当然,每个人的学习方式都不一样。因此,找到最适合您的方法,并掌握它,是你的当务之急。
如果你试图一次学习太多东西,你更有可能失去动力并放弃。
忘记源源不断的文章和人们告诉您需要学习这种新语言或新库吧。
相反,只选择一个你感到兴奋的,从基础开始并坚持下去,直到你对它感到满意为止。
在您开始时,阅读文档并遵循一些教程以基本掌握该语言可能是个好主意。
但在那之后,没有比用它构建一些东西更好的学习语言的方法了。
只有在您对基础知识有了很好的理解之后,才能考虑学习一门新语言来拓宽您的技能。
也许有一个应用程序或网站是您想建立很长时间的。比如搭建个人博客,写个个人的网站。
将此作为业余的手头项目。
如果可以的话,每天留出一些时间来处理它。
也许你会觉得自己在任何一天都没有取得多大成就,但罗马不是一天建成的。
几周或几个月后,您会看到您的作品焕然一新,这是非常令人满意的。在此过程中你将获得一些成就。
选择一个你觉得具有挑战的项目,但不会超出你的技能水平。随着您建立信心,您可以扩大规模并处理更复杂的项目。
事实上,只有当你不断挑战自己时,你才会进步。继续建造新的和不同的东西。
如果您刚刚开始学习,很容易陷入一个又一个教程一个又一个教程的陷阱。
说实话,我在大学的时候在哔哩哔哩看了太多的教程了,可就是每次动手的时候就忘了。
你猜怎么着?一旦你得到一份工作,没有人会牵着你的手,也不会有你需要完成的每一项任务的教程。
尝试打破这个循环,自己解决问题。
通过自己解决问题,你的学习能力会大大提高,你会对事情的运作方式有更具体的了解。
这是摆脱教程地狱的唯一最佳方式。
好消息是文档只需单击一下即可。您可以直接从编辑器中轻松查看您使用的 SDK 或库的文档。
公平地说,并非所有文档都是平等的,有些语言比其他语言更好。
但是通过知道如何阅读和使用它,您将减少对教程的依赖。如果你觉得英文不太好理解,你可以尝试去下载一些翻译插件去配合使用。
现在许多官方文档真的还是蛮不错的,比如我现在用的flutter
官网是这样的
go的官网
以及我最近在学的微信小程序
还有很多很多,等大家一起发现。
写代码的过程总是愉快的,但它也可能是一种令人沮丧的体验。
很难预先知道您的代码可能处于的每个状态(尽管编写测试对此有所帮助)。
有时事情不会奏效,你会发现自己被困了几个小时而没有取得进展。
那么当这种情况发生时你能做些什么呢?
如果您在控制台中遇到一些错误,请仔细阅读它们,因为它们可能包含解决问题所需的信息。
尝试熟悉代码编辑器中的调试工具。
使用打印语句和断点单步执行代码并验证您的假设,并学习更高级的调试技术。这些可以为您节省大量时间。
这是我在实习的时候发现的一个重要技巧。
这是程序员一直在使用的一项基本技能,即使是高级程序员。
因此,知道如何有效地找到答案可以为您节省大量时间。
如果您遇到错误,请将其复制粘贴到您喜欢的搜索引擎中,并仔细查看所有相关答案。
推荐使用google。
我们都去过那里。我们在 Stack Overflow 上找到了一些代码,并将其添加到我们的项目中,希望它可以工作。
不要只是停在那里。花点时间了解代码的实际工作方式。确保它适用于所有可能的情况,并对其进行调整以适合您的项目风格和约定。
需要注意的是,您在 StackOverflow 或其他论坛上找到的代码很快就会过时。毕竟相关api有时会更新。
人生苦短,事情出错的速度可能比你想象的要快。
所以要多喝水。做运动。吃好睡好。不要工作太多。
照顾好自己和身边的人。
这将使您成为更好的开发人员,并迫使您考虑代码中所有可能的边缘情况——而不仅仅是快乐的道路。
它还将教您如何编写可测试的代码,并了解诸如依赖注入之类的重要概念。
当您选择要编写的测试时,问问自己:
如果此功能不起作用,会有什么影响?
然后按影响优先编写测试:
尝试为业务关键代码提供良好的测试覆盖率,并尽可能多地自动化测试。
无论您在哪个编程领域,您都至少需要一些 Git 和命令行的基本知识,因为您将日复一日地使用这些工具。
尝试了解 Git 的更高级功能。当您与许多合作者一起处理项目时,这些将非常有用。
此外,熟悉持续集成系统以及如何设置它们。
您编码的原因是您正在尝试解决用户或客户遇到的真实、有形的问题。
因此,始终尝试关注用户和业务需求,并牢记大局。
这样你更有可能为产品增加价值。
我经常看到其他开发人员犯的一个错误,就是卡在一个问题上,越陷越深。
这不是很有效地利用时间。
因此,下次您遇到这种情况时,请设定一个时间限制。一旦时间到了,停下来休息一下。也许解决方案会在稍后灵光一显。🚿
客户/公司会付钱给你解决他们的问题,而不是了解 X 语言的语法。
了解如何将问题分解为更容易解决的小问题。
要解决大问题,您需要从大局出发,从 UX 到系统设计。
要设计和构建整个产品,您需要(至少部分)以下知识:
当然,如果你的角色更专业,你可以专注于一个特定的领域。
但无论如何,您都需要为工作选择正确的工具。
解决问题是一项抽象的、广泛的技能,需要时间来培养。
我最好的建议是在许多不同的项目上工作。当你这样做时,你会开始看到什么有效,什么无效,并借鉴你以前的经验。
引用之前看到的一句话
“经验丰富的工程师比初学者行动得更快的原因是因为他们在代码中遇到的大部分“门”都被打开了数千次。他们停下来思考,但很多事情都是通过回忆完成的。这就是为什么你需要练习、练习、再练习——丹·阿布拉莫夫
”
要擅长编码,您需要在足够长的时间内专注并不受干扰地工作。
编码时,尽量避免所有干扰。这包括社交媒体(微信,QQ,抖音)、电子邮件、人情世故!
如果需要,请为此设置特定时间。当你在编码时要说清楚,相信周围的人会理解你的。
“如果你没有计划,你就是在计划失败——本杰明富兰克林
”
凡是预则立,不预则废!无论您只是在处理一个项目,还是手头有很多事情并且您需要掌握它们,请尝试有条理的去处理。
我的习惯之一是每天将我计划做的所有事情列在 TODO 清单上。
而且我发现在一天结束时勾选所有任务非常令人满意(尽管有时我将它们移到第二天😅)。
除此之外,我还有更长期的目标和计划,以便我可以跟踪自己的进度并专注于重要的事情。
“我使用Ximd,百度脑图,gitbook,Notion来组织我的所有工作,它已成为我最喜欢的生产力工具(披露:我不是赞助 这是工具 - 我只是非常喜欢它们)如果可以,我会在后面出一篇相关教程。
”
很有可能在您的整个职业生涯中,您花在阅读代码上的时间比编写代码的时间多。
善于阅读代码将帮助您理解许多不同的代码库。
你在哪里可以做到这一点?
执行此操作时,请尝试考虑如何改进代码。
这样做会让你更了解有关样式和约定,这样就可以提高你写的方式你的代码。
你未来的自己会为此感谢你。😉
通过为现有的开源项目做出贡献,您可以提高您的代码阅读技能,并获得有关您自己代码的宝贵反馈。
首先,您可以加入GitHub 开源社区,其中包含许多有用的资源。
通过编写开源代码,您可以停止重新发明轮子并跨项目继承最佳代码。如果您的项目足够有用,它就会产生很大的影响。
这样做对你的简历也很有好处。一个好的 GitHub 个人资料可以切实证明你的技能和编码风格,并增加你找到工作的机会。
就个人而言,或许仅凭我的 GitHub 个人资料就让我在求职面试中脱颖而出,并一次又一次地协商出好的报价。请继续努力,加油,年轻人!
我的github
您无需阅读每篇文章并观看所有 哔哩哔哩 视频。
而且您不应该只关注教程。自己尝试更重要。
但是您应该尝试找到合适的资源来快速跟踪您的学习,这样您就不必自己弄清楚所有事情。
尝试查找定期分享优质内容并订阅他们的提要的专家列表(如果您喜欢 Flutter,我可以帮助你)。
我发现这是保持最新状态和了解新事物的好方法。
您无需成为专业设计师。
但是你应该了解设计的基本原理,并至少熟悉一种设计工具(这里有一些:Sketch、Figma(我公众号写过几篇教程)、Adobe XD)。
通过这种方式,您可以使自己的工作看起来不错,尤其是在潜在雇主或客户会看到这一点的情况下。
但它也扩展了您的知识范围,并帮助您从 UX 而不仅仅是代码的角度思考问题。
这个超级重要。如果你不能很好地沟通,我认为你不能成为一个伟大的开发者。
您应该能够用简单的英语解释事情(即使它不是您的母语),以便您团队中的非技术人员能够理解您。
除此之外,始终清楚地传达您正在从事的工作,您面临的问题,并确保按照您所说的去做。
如果您远程工作,请每天花 5 分钟分享您的更新。我总是这样做,我的客户真的很感激。
所有这些都建立了信任。作为可靠和值得信赖的可能是你的一个最好的资产,绝对是至关重要的,如果你是一个自由职业者。
你的工作就是你的品牌。您的品牌使您与众不同。因此,始终致力于提供最好的工作。
如果你能给共事的人留下深刻印象,他们就更有可能在你找新工作时推荐你。
当您发布自己的作品时,无论是 GitHub 项目、您的作品集、一篇文章还是 哔哩哔哩 视频,每个人都可以看到它(包括您真正想要的那个职位的招聘经理)。所以让它看起来很棒。
当你学到一些有用的东西时,就写博客。以书面形式解释事物可以提高您对某个主题的了解。
实践使你的写作更加清晰和简洁。这本身就是一项宝贵的技能 - 特别是如果您远程工作。
继续写作,你会建立一个可以与他人分享的知识宝库,并在需要时回来使用。
这也将提升您的个人资料和简历,并帮助您与社区互动。
如果您找不到所需的答案,请不要因此而气馁。
您可以随时在 StackOverflow 上发布您的问题。这样做时,请选择一个好的标题,并尝试提供足够的背景信息,以便其他人可以帮助您。
您可能会发现整个社区的开发人员都愿意提供帮助,只要您有礼貌并善意地提出要求。
我觉得我已经涵盖了许多,但我毕竟刚开始工作,还有许多不甚了解,如果这一切让你感到有些不知所措,请不要担心。
一步一步地做事情。只要你在学习并继续成长,那么你就走在正确的轨道上。
希望这篇文章可以给你一点启示,也欢迎大家在评论区留言。
联系客服