如何成为一名更好的程序员

2025-06-04

如何成为一名更好的程序员

成为一名程序员并非易事。各种各样的技术、概念、规则和术语可能会让新手不知所措。更重要的是,你需要时刻保持最新状态。否则,你就会退步。

但是,如果你已经努力尝试并开启了你的开发者生涯,那么在提升编程技能方面,你还有很长的路要走。本文将为你提供一些关于如何成为更优秀程序员的建议。你还将了解你的公司如何帮助你实现这一目标。

持续成长意味着挑战任务

为了挑战自己作为一名开发者的水平,参与尽可能多的、多样化的软件项目是值得的。如果编程是你的日常工作,请思考一下你当前项目中哪些任务对你来说最具挑战性。然后与你的上司讨论。如果你发现当前项目有改进空间,请提出来。

然而,你不应该将学习经验局限于工作本身。想要成为一名程序员,你需要积极寻找日常工作之外的机会。

无论您是活跃的开发者、初学者还是 IT 学生,提升程序员水平最有效的方法之一就是成为开源项目的成员。您可以在GitHub上开始搜索。找到一个使用您想了解的技术栈的项目,并做出您的第一个贡献。有时,从零开始会更好——GitHub 也是开启您自己项目的好地方。您可以根据需求调整技术栈,从而学习任何您想学的东西。您的项目可以是您使用的应用程序的克隆,也可以是您需要的应​​用程序的新想法。

你不应该害怕那些看似困难甚至不可能完成的编程任务。直面挑战,走出舒适区,是加速你成长的最佳途径之一。最明显的好处是积累经验,这会让你在求职市场上更具吸引力。根据软件工艺方法,交付优秀的软件既需要理论知识,也需要实践经验。

CodeKata是一个有趣的编程学习方法,它强调将实践技能与理论相结合。这种方法假设你在获得新的理论知识后,应该将其应用于实践。练习得越多,你学到的就越多。为了尽可能多地学习,你需要经常练习。在这种方法中,练习是目标,而不是解决方案。

在挑战自我的过程中,你也会获得自信。或许你患有冒名顶替综合症,这是一种不断怀疑自身成就的心理模式。据估计,高达70%的人一生中至少会经历一次冒名顶替综合症。第一个可观察到的症状是你不相信自己真正配得上成功,这可能会让你灰心丧气,导致你成长缓慢甚至停滞。你可以在行为科学研究所撰写的这篇论文中找到更深入的分析。

但是,请记住要谨慎选择你的任务。要合理安排,避免一次性承担过多复杂的工作。失败也能让你学到很多东西,但不要贪多嚼不烂。尽管如此,在成为更优秀程序员的道路上挑战自我,利大于弊。

学习如何学习

有些人从中学或大学毕业后就失去了学习的意愿。即使是热爱学习的人,也很难保持持续学习的状态。幸运的是,这里有一些小技巧可以帮助你保持学习的动力

首先,深入了解你感兴趣的主题很有帮助。即使编程不是你的爱好,你也可以创建一个与你的兴趣相关的应用程序或网站。其次,避免反复学习,一次只学习一件事。第三,确保你理解主题,而不仅仅是死记硬背。死记硬背只在短期内有效。最后,从多个渠道学习。除了知识本身之外,学习知识的方式也是学习中最重要的方面。如果你喜欢视频,那就看视频。如果你喜欢书籍,那就读书。

黑板上写着各种编程语言:C++、Scla、JavaScript、GO、PHP、Java、CSS、Ruby C#、HTML、Python
作为一名程序员,你有很多东西要学。明智地去做吧!

为了高效学习,你需要一个合适的学习环境。首先,清理你的书桌。移除所有不必要的书籍、笔记本和干扰物。关掉电视,关闭手机通知,远离社交媒体。如果你觉得需要休息,那就去散散步。短暂的散步能促进血液循环,甚至能激发一些灵感,帮助你应对眼前的挑战。

你还应该考虑获得官方认证。例如,对于非英语母语人士来说,FCE、CAE 和 CPE等证书很有用。如果你对测试充满热情,可以考虑获得ISTQB认证。为了证明你的云专业知识,亚马逊证书是一项宝贵的资产。这些证书并不便宜,但投入的资金可以成为学习的额外动力。

学会自力更生

遇到问题时,你很容易向同事请教,或者在 Stack Overflow 上创建新的问题。然而,依赖他人的工作或知识只是权宜之计。长远来看,缺乏自力更生的能力会对你成为更优秀程序员的道路产生负面影响。

要想学到更多,发挥你的潜力,你需要自己犯错。当然,谷歌搜索和阅读案例研究并没有错。许多已知的编程问题已经通过这种方式得到了解决。不要试图重新发明轮子,也不要害怕使用众所周知的解决方案。然而,你首先应该寻求帮助的人是你自己。向别人请教并没有错,但首先要研究问题并提出一些想法。不要总是指望别人能解决你的问题。

如果您需要帮助,请了解如何提出正确的问题。首先,请确保问题描述充分。提供尽可能多的细节。如果您发现了错误,请尽可能提供重现步骤、错误堆栈或屏幕截图。同时,最好比较一下问题的潜在解决方案的优缺点。您可以向 Stack Overflow、GitHub 或与您的领域相关的 Slack 频道提问。

一个不好的问题可能是:

“我该如何退出 Vim?请帮帮我!”

现在比较一下应该如何提问:

我需要关闭 Vim 编辑器。我试过用 Ctrl Esc+ 和Alt+来关闭它F4,但没用。我可以关闭工作站,但我对文档做了一些更改,想保存它们。有人能解释一下如何关闭 Vim 并保存更改吗?

您可以在Stack Overflow 帮助中心找到与创建问题相关的良好实践的完整列表

公开你的代码

如果你还没有 GitHub 或 GitLab 等平台的账号,并且想要成为一名更优秀的程序员,那么你应该尽快创建一个。你写的代码能够充分展现你的个性,它展现了你的思维方式、技能和进步,也记录了你作为开发者的成长。然而,你需要虚心接受批评。

发布你的代码还能让其他程序员审阅。虽然自力更生对个人成长至关重要,但在学习过程中,经验丰富的程序员的视角也非常有用。

可视化呈现和摘要代码编辑及审阅屏幕
展示您的代码并准备接受审查。

如果您不想开发自己的项目,可以尝试为他人的开源项目做贡献。为了做出您的第一个贡献,您需要学习大量的代码。这些代码通常没有文档记录,并且代码风格与您的不同。不过,这是值得的。您不仅能学到很多东西,还能在编程社区中提高知名度。

为了顺利深入项目,您可以找到带有“good first issue”(“easy”或“beginner-friendly”)标签的问题。此标签专用于适合在项目中起步或相对容易完成的任务。例如,CKEditor 4 仓库以及其他非常流行的项目(例如Node.jsVSCode )中都提供了此标签。

社交和建立人际网络

深入了解编程世界最简单的方法之一就是参加各种会议
。成为一名演讲者可以帮助你积累经验。如果你没有足够的信心做完整的演示,可以进行一次闪电演讲,这是一种只需几分钟的简短演讲形式。用PreziGoogle Slides进行简短的演示,或者仅仅一张包含一段代码和解释的幻灯片就可以了。即使你不擅长公开露面,也应该参加,并倾听其他人的意见。案例研究演示对于了解编码实验中的成功和失败之处非常有用。

俗话说,人应该从自己的错误中吸取教训。但从别人的错误中学习会更令人感到安心。会议也为程序员提供了一个平台,让他们可以在开发者社区中讨论、交流和结识新朋友。别忘了将新联系人添加到你的社交媒体账户,以便与他们保持联系。如果你不使用社交媒体,至少创建一个领英账户来保持联系是个好主意。

与其他程序员交流是验证你的知识和观点的绝佳方式。即使你性格内向,也值得尝试。接触新知识和他人的不同观点会带来深远的影响。走出舒适区可以让你获得一些前所未有的领悟,这必将帮助你成长为一名优秀的开发者。与其他程序员的讨论也可以成为成为更优秀的公众演讲者的第一步。

此外,您还可以加入 Facebook、Reddit 或 Slack 频道上的专门群组,以在软件社区中获得更多新联系人,并交流知识和想法。

尝试联系您所在地区的本地社交媒体群组,例如 Facebook。您也可以通过Meetup找到它们,这样您就可以参加当地的编程活动,并收到新活动的通知。另一个寻找这些群组的地方是大学。几乎每所大学都有编程社区。

社交还能帮助你培养成为更优秀程序员所需的软技能。善于沟通、乐于助人、尊重他人、思想开放,以及能够从客户的角度看待软件,这些都至关重要。软技能是编程职业发展的关键,尤其当你想成为团队领导、导师或培训师时。

阅读、观看和聆听

要将知识付诸实践,首先需要获取知识。有很多知识来源可以帮助你成为一名更优秀的程序员。最显而易见的就是书籍。然而,选择书籍时务必谨慎,因为很多书籍已经过时(或即将过时)。它们大多涉及专业技术、语言或框架。在开始阅读之前,请先查看书评,甚至查看目录。这将帮助你筛选出不值得你花时间阅读的书​​籍。话虽如此,许多书籍对于软件开发人员来说都是经久不衰的经典之作。以下是一些可能永远不会过时,并且能够帮助你提升程序员水平的书籍:

堆叠的书
有各种各样的知识来源可供您选择。

  • 《程序员修炼之道》,作者:David Thomas 和 Andrew Hunt;
  • 重构:改进现有代码的设计(作者:Martin Fowler)
  • Thomas H. Cormen 著《算法简介》;
  • 整洁代码:敏捷软件工艺手册,作者:Robert C. Martin;
  • 敏捷软件开发、原则、模式和实践,作者:Robert C. Martin;
  • 《有效地使用遗留代码》作者:Michael C. Feathers;
  • 《程序员整洁之道:专业程序员的行为准则》(作者:Robert C. Martin)
  • 设计模式:可重用面向对象软件的元素,作者:Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides;
  • 领域驱动设计:解决软件核心的复杂性,作者:Eric Evans;
  • 破解编码面试:150 个编程问题和解决方案,作者:Gayle Laakmann McDowell;
  • Martin Fowler 撰写的企业应用程序架构模式;
  • 人月神话:软件工程论文集(作者:Frederick P. Brooks)
  • 算法 + 数据结构 = 程序(作者:Niklaus Wirth)。

除了书籍,还可以选择新闻通讯和博客。以下是一些值得关注的博客:

不幸的是,许多不太知名的博客上的文章都包含错误和虚假陈述。更重要的是,这些内容很多是专门针对初学者的,或者带有强烈的主观性。但最大的优势是这些博客大多是免费的。Pocket 是一款很棒的博客阅读工具它提供了一个移动应用程序和浏览器插件,拥有美观便捷的用户界面,可以保存文章以供日后阅读。

另一个提升程序员水平的好方法是关注开源项目中的议题和拉取请求。例如,GitHub 上的讨论就是丰富的知识来源。即使你没有在处理某个议题,也可以阅读或评论。不妨看看它在CKEditor 5Node.js中的表现。

如果您的预算更充裕或更灵活,可以考虑购买更高级的培训课程。这些课程的费用可能很高,但投资回报可能快速且显著。注册之前,请阅读一些评论。务必确认您选择的课程是否能获得有效且信誉良好的认证(以及有效期)。

最后,同样重要的是,视听媒体可以帮助你扩展知识。YouTube 上的视频、播客或Udemy等电子学习平台上的课程都是学习编程的好方法。这些教育形式,尤其是播客,最大的优势在于它们易于使用。你可以在日常锻炼或乘坐公共交通工具时阅读、观看或收听它们。在电车或健身房收听播客并不能让你一夜之间成为一位才华横溢的程序员,但它能让你成为程序员的一大进步。此外,会议的存档资料也极具启发性。许多演讲都会被录制下来,然后分享到 YouTube 上,例如2019 年 Chrome 开发者峰会

照顾好自己的健康

不要忽视你的饮食和健康。适量运动健康饮食对你的大脑有积极的影响。尽量减少咖啡、酒精和香烟的摄入。考虑多吃水果、蔬菜和健脑食品。减少垃圾食品的摄入

别忘了充足的睡眠——加班不利于你成为更好的程序员。睡眠不足也会对你生活的其他方面产生负面影响。更糟糕的是,如果你睡眠不足,早上又喝了很多咖啡,那会对你的身体和精神造成破坏性的影响

考虑骑自行车,而不是开车或乘坐公共交通工具。如果距离较短,可以步行上班。避免长时间坐在电脑前。短暂休息或短距离散步。

为一家投资于你发展的公司工作

如果你在一家充满关爱的公司工作,你成为更优秀程序员的道路会更加平坦。许多公司都知道,投资员工将惠及所有相关人员。而且,有些投资成本低廉,易于实施。然而,有些公司可能并不那么慷慨。如果你的公司没有明确的发展计划,不妨与你的上司沟通。向他们解释哪些做法值得引入,以及为什么这些做法对公司有益。重点关注公司和公司最终的利益。他们可能会问,投资员工有什么好处?不妨考虑以下例子。

将任务分配给多人

有组织的合作可以缩短开发流程,还能促进员工之间的知识共享。潜在问题可以更快地被发现和解决。共同的目标也意味着员工之间关系的改善。

结对编程是另一种解决方案,同事们坐在一起或共享屏幕。他们可以轻松地交流想法,并能更快、更令人满意地发现和解决潜在的问题。

代码评审

代码审查对员工和公司都有好处。在审查过程中发现问题总是比发布后发现要好。通常,它可以降低成本并节省开发人员的时间。代码审查还可以节省后续时间——如果一开始就对代码进行良好的审查,许多错误就可以避免。此外,它还具有与将任务分配给多人相同的好处,并能促进知识共享。

代码审查也可以成为更深入讨论的开端。你可以挑战意见和偏见,从而进一步学习和成长。在审查过程中,可以发现问题和需要改进的地方。查看CKEditor 5 代码库中的内容

GitHub 上关于代码审查讨论的截图
代码审查期间的讨论可能会带来启发。

发展基金

支持员工的另一种形式是设立发展基金。书籍和课程通常价格不菲,参加会议通常也不免费。设立发展基金是投资员工发展最直接的方式。

对最终产品和使用的技术产生影响

对开发的产品产生真正的影响不仅能激发你的动力,还能帮助你在所选的职业道路上取得进步。但机遇与责任并存。你要对你使用的技术负责。你需要维护、开发,甚至在未来修复它。

然而,从调研到实施再到部署的整个过程会让你受益匪浅。首先,你需要进行调研——找出各种方案的优缺点,最终选择最佳方案。接下来,你需要准备一个原型,然后是一个随时可用的实施方案。最后,你需要负责产品的发布。

每一步都能让你受益匪浅。成为一名优秀的程序员不仅意味着擅长实现功能和修复错误,还意味着擅长研究、维护产品,并说服他人采用你的想法。

如何找到这些公司?

要找到合适的公司,最直接的方法就是阅读评论。雇主评论网站是一个不错的起点。这些页面提供了关于薪资、面试和发展机会的非常详细的信息。

你也可以向其他程序员询问他们的公司,或者询问他们推荐的公司。如果你参加聚会和会议,通常就能看到程序员在哪些公司工作。关注一下他们的T恤和徽章。如果你遇到一些才华横溢的人,谈论一些有趣的项目,为什么不申请他们所在的公司呢?去问问他们工作的地方和他们参与的项目。此外,如果你看到程序员积极使用公司的小工具,这表明公司在员工方面很投入。

所有这些福利,你都可以在为 CKSource 开发CKEditor 生态系统产品时获得。你知道我们正在招聘吗?访问职业页面,看看我们还能为你提供哪些帮助来促进你的成长!

但最重要的是——享受编程的乐趣

如果编程过程中没有乐趣,提升编程技能就会更加困难。正如我之前提到的,编程并非易事。学习大量难以理解的东西却又不喜欢,这比编程本身更具挑战性。

你需要意识到,编程不仅仅是实现新功能和维护干净完美的代码。你常常会花费数小时甚至数天的时间进行艰苦的调试或重构。你还会遇到编写糟糕且充满错误的代码。

然而,编程可以让你创造出不可思议的事物。你可以简化、自动化甚至省去许多日常活动。此外,你还可以培养其他爱好。例如,如果你对气象学感兴趣,你可以搭建一个气象站并编写程序。然后,你就可以收集统计数据并进行预报。或者做任何你想做的事情!这就是编程的魔力。

遥控器和玩具车
享受编程的乐趣!

人活着不只是为了工作。你可以通过玩一些编程游戏来提升和运用你的技能:

从编程中获得巨大满足感的另一个方法是开发人们需要的软件。来自感激的客户和社区的积极评价能带来很大的启发。

但这还不是全部……

成为一名更优秀的程序员是一项日常工作。这需要付出大量的努力和奉献。提升软件开发者的水平没有一条通用的途径,本文虽然提供了一些建议,但绝对不是完整的。不妨在评论区分享你在 2020 年成为更优秀程序员的技巧和窍门。你也可以在我们的Twitter上联系我们。😉

文章来源:https://dev.to/ckeditor/how-to-become-a-better-programmer-4bho
PREV
为什么为 HTML 按钮指定类型很重要
NEXT
如何使用黑名单使 JWT 失效