合格程序员的“十项全能”,你都具备吗?

原文:https://dev.to/duomly/soft-and-hard-skills-you-need-to-be-a-good-developer-5ah4
翻译整理:大道至简

image.png

每种职业都有其特殊的要求。例如,要成为一名医生,你必须了解生物学,完成医科大学。作为一名教师,你需要获取资格证,还要关心学生。

同样,当你决定成为一名程序员时,除了你学到的主要技术外,还有一些常见的硬技能和软技能,每个开发人员都应该具备。本文就来分享一下我认为在程序员的工作中至关重要的软技能硬技能,各有 5 项。

每个程序员都该具备的 5 项软技能

1. 沟通和协作能力

根据大部分人的刻板印象,程序员就是一个人坐在地下室里,用电脑像变魔术一样开发出各种软件,很久不和任何人说话。这纯粹是对开发人员群体的误解,因为沟通是我们工作中非常重要的一部分。

首先,为了理解我们将要实现的项目需求和解决方案,我们必须与团队中的其他人进行沟通。每个人都不愿看到因为误解而犯错的情况。这就是为什么开发人员在工作中需要良好的沟通技巧。

除了沟通技巧,团队合作也很重要。作为一个团队,可以做得更多,拿出更好的解决方案。当你需要实现某个功能时,最好与团队中的同事讨论一下,特别是以前没有做过的事情。有些人可能已经做过这种解决方案并且有了可以分享的经验,顺便说一下,你就可以学到一些新东西。

2. 解决问题的能力

程序员的工作主要是解决问题。每次我要创建不同的东西时,我都必须找到最好的解决方案,同时还要考虑业务需求和程序性能。

如果你现在以初级程序员的身份开始职业生涯,或者你刚开始学习编程,你会发现解决问题的能力有多么重要。在这之前了解它是很重要的,不要气馁。

我认为,这个工作很大的一个优势就是每天都在解决问题。你不会感到无聊,每天都要面对不同的问题,或者即使是类似的问题,你也会尽力找到更好的解决办法或者尝试不同的方法去解决。

即使你一开始经常容易放弃,你也有可能学会如何解决问题,通过完成任务打怪升级。如果你觉得某个问题不可能解决,那请记住每个问题至少有一个解决方案。想想之前那个根据手机壳颜色更换 App 主题的产品需求,还真能做到。

3. 好奇心

你可能很好奇,为什么好奇心在程序员的工作中如此重要。这很好,因为你开始好奇了,哈哈!但说真的,一个好的程序员能学会很多东西,并且对技术、新解决方案等很感兴趣。

如果你对新技术的工作原理感到好奇,你想尽快学习一个新框架,并尝试去用它,看看它是否比其他东西更好,这是一个好消息。

作为一名程序员,学习将成为你生活中的一大部分,所以让编程成为你的爱好也很重要。这样,看到新的技术出现需要学习的时候,你就不会感到力不从心,表示“别再出新框架了,学不动了”。

此外,好奇心可能会引导你加入程序员社区,在那里你可以学到更多东西,也可以分享你的知识。

4. 适应能力

正如我之前提到的,在编程中,很多东西都在改变。新的框架、库、技术和方法不断出现。几乎每个项目都有不同的设置,你必须快速适应新情况和新环境。

如果你是那种乐见变化的人,并且在事情一成不变时很容易感到无聊,那么你可能会发现自己适合做一名程序员,并能从这份工作中获得很多乐趣。

此外,一直以来,不同的框架受欢迎的程度不一,所以如果这对你不构成问题的话,它也会帮助你在市场上被注意到,而且你能够轻松适应公司使用的新技术。

5. 时间管理能力

在每一份工作中,工作与生活的平衡都是非常重要的。当你是一名开发人员时,通常有灵活的工作时间,在这种情况下,能够正确地管理时间是非常重要的。

如果你知道如何计划你的工作,并能估计你需要多少时间来完成一项特定的任务,这是一项非常有用的技能。否则,你可能会导致这样一种情况:你会为了各种琐事疲于奔命,然后总是没日没夜地工作。

此外,你需要找时间学习,所以记住,有时你需要一两个小时的私人时间来了解最新的技术,这点很重要。

说完软的,再来说硬的。

每个程序员都该具备的 5 项硬技能

1. 编程语言与框架

程序员需要了解编程语言和框架,这一点没什么可说的。但要成为一名优秀的程序员,深入了解至少一种编程语言是很重要的。

如果你能够尝试学习另一种编程语言,并对它们之间的差异有一个概念,那就太好了。

选择哪种编程语言作为你的主要语言,取决于你自己和你想要解决的问题。你可以看看值得学习的编程语言排名,看看你是否可以选择任何你感兴趣的。

2. 数据库知识

在开发人员的工作中,理解数据库的工作方式是非常重要的。它是应用程序中保存数据的主要部分。

作为一名程序员,你应该掌握一些基本的知识,比如如何创建、删除、更新、插入一条记录。如果你知道如何组织数据库就更好了,在特定的项目中使用哪个数据库更好,以及为什么。

此外,你还应该能够确保数据库中的数据的安全性。

可能有人会问,如果我是做前端开发的,还需要懂数据库吗?在前后端分离、职责清晰的情况下,确实前端不需要关注数据是如何存储的。但是了解一点数据库,对于我们理解数据结构和走向全栈开发会有很大帮助。

3. 数据结构和算法

算法是按照某种顺序执行以获得输出的一组指令。算法不直接关联任何编程语言,它们是解决排序或搜索等特定问题的方法。

在程序员的知识体系中,数据结构和算法应该占有重要的一席之地。虽然没必要成为算法大牛,但常见的算法分析和实现方法应该要掌握。算法说白了就是解决问题的套路,熟悉了这些套路,解决问题更容易。

4. 源码管理

正如前面提到的,团队合作是软件开发人员工作中非常重要的一部分。考虑到协作,开发人员需要一种方法来同时处理一段代码,而不破坏其他人的工作。这就是为什么源代码控制对于每个程序员来说都是非常重要和必需的技能。

源代码控制让我们能处理同一代码库的不同分支,并在每个开发人员的工作完成后将其合并到一起。几乎每个开发岗都要求这个技能,但也不用太担心,因为现在已经有各种图形化界面的源代码控制工具,即使你不习惯用命令行,你也可以使用图形界面。但是你必须理解基本的术语和操作。

5. 测试

为了保证代码在不同的情况下工作,开发人员创建了单元测试。为了确保一切正常,大多数公司都会招测试人员,但是在通过功能测试之前,检查代码是否正常工作并且没有破坏其他东西也很重要。

每个开发人员都应该具备一些测试方面的知识,以确保所完成的工作具有一定的质量。

总结

如你所见,做一名程序员不仅仅是学习编程语言的基础知识。要成为一名优秀的开发人员并有能力变得更好,你还需要一组特定的软技能和硬技能。好消息是,你可以很容易地训练硬技能,特别是如果你对技术感兴趣的话,但是提高软技能可能需要更多的工作经历和时间。当然,这是完全可能的。

这篇文章列出了我认为需要掌握的技能。如果你觉得少了什么,或者不需要什么,请在评论中告诉我,我也想知道你的意见。
加油!

Kayson Li wechat
看到这个颇有气质的 logo,不来关注下吗?
坚持原创技术分享,您的支持将鼓励我继续创作!