每个软件开发人员都应该知道的 10 件事
1 应该是“不要以纯文本形式存储密码。”
披露:本篇文章包含附属链接;如果您通过本文提供的不同链接购买产品或服务,我可能会收到报酬。
如果您一直在自学编程,并且想知道每个软件开发人员或程序员应该学习或了解哪些最基本的东西,那么,这里列出了您可以学习的一些基本知识,以便成为一名优秀的程序员。
作为Java 博客的作者,我经常收到读者(尤其是初学者)的提问:计算机科学专业的毕业生可以做些什么来为软件开发职业做准备?我可以学什么才能成为一名优秀的程序员?或者对初级开发人员的期望是什么?
这些人大多是大学生、初级开发人员和学习编码的人,他们可以通过互联网获取大量信息,并渴望提前学习,为编程工作面试做好准备。
在本文中,我将分享我认为每个软件开发人员都应该知道或学习的 10 件事。
这包括C++或Java等编程语言、数据结构、算法和计算机网络基础等基本计算机科学概念、 Git、Microsoft Word 和 Excel 等基本工具、SQL和UNIX等技能、Eclipse 或 Visual Studio 等编辑器以及文本编辑器。
这个列表绝不是完整的,我没有包括一些更高级的东西,比如正则表达式,但它确实为你提供了程序员应该知道的东西的良好起点。
如果您希望从事软件开发并寻找编程工作,那么您可以学习和改进这些内容以保持竞争优势。
每个程序员和软件开发人员都应该知道的 10 件事
闲话少叙,以下是我个人认为每个程序员都应该知道的一些技能,无论他从事什么工作。这些都是基本技能,会对你有所帮助。
在这些技能上所投入的时间、金钱和精力都会在您的整个职业生涯中获得回报。
1.数据结构和算法
如果你想成为一名程序员,那么你就应该熟悉数据结构和算法;这是没有办法的。
这是任何编程工作面试的重要主题之一,如果您不了解基本数据结构(例如数组,链表,映射,集合),就不可能编写真实世界的应用程序。
这就是为什么每个程序员都应该在计算机科学课程中认真努力学习数据结构和算法。
即使您是自学编程,那么您也必须了解数据结构和算法;事实上,许多编程训练营都会首先教您数据结构和算法。
如果您想自学,那么《数据结构和算法:使用 Java 深入研究》 是一个不错的起点。
而且,如果您需要一些免费的替代方案,那么这个免费的数据结构和算法课程列表也会很有用。
2. 源代码控制(Git)
源代码控制用于存储代码,并帮助程序员在团队中协作。例如,如果许多程序员在同一个代码库中工作,但开发不同的功能,那么像 Git 这样的源代码控制工具可以帮助他们协作,而不会互相干扰。简而言之,如果你想成为一名程序员或软件开发人员,你必须了解 Git 或 SVN 这样的版本控制工具。
值得庆幸的是,Git和Github简化了市场,现在超过 70% 的组织使用 Git,因此您可能只需学习 Git 就可以了。
顺便说一句,您也应该花一些精力在命令行上学习 Git,并且您应该熟悉高级版本控制概念,例如分支和合并以及使用命令行和 GUI 的工具本身。
我向所有想要在线学习 Git 的人推荐GitHub Ultimate:Master Git 和 GitHub课程。
但是,如果您需要更多选择,您还可以查看此免费课程列表以在线学习 Git。
3.文本编辑器(Vim)
作为一名程序员或软件开发人员,我无时无刻不在用 Vim 这样的文本编辑器。即使是对于数据库管理员、系统管理员等非程序员,以及任何使用电脑的人来说,它也是不可或缺的工具之一。
我主要在 Windows 上使用 NotePad,在Linux上使用 VIm ,但在高级编辑器方面,您有很多选择,例如 Sublime 和 NotePad++,它们提供了类似 IDE 的功能。
我建议你花点时间学习你最喜欢的编辑器和键盘快捷键,一些效率提升的技巧也是可以学习的。如果你喜欢 Vim,那么Vim MasterClass是最好的入门课程之一;如果你是 Windows 用户,那么可以学习Sublime Text for Rapid Web Development,学习另一个强大的文本编辑器 Sublime。
4. IDE(IntelliJIIDEA 或 VSCode)
当我开始软件开发时,我需要在记事本或 DOS 编辑器中编写代码,然后保存文件,从命令行运行编译器,并通过运行 ANT 脚本创建包。像调试和性能分析这样的操作对我来说是一个遥不可及的梦想,但像IntelliJIDEA和 Visual Studio 这样的 IDE 的出现彻底改变了现代程序员开发软件的方式。
换句话说,像 IntelliJIDEA 或 AndroidStudio 这样的 IDE 对任何程序员来说都是最重要的工具。对于C、C++和C# 程序员来说,选择显而易见:Visual Studio。而对于 Python 开发者来说,Jupiter Notebook 也正在不断完善。
对于 Java 程序员来说,有三种主要的 IDE 可供选择:Eclipse、NetBeans 和IntelliJ IDEA。
虽然我最喜欢的是 Eclipse,但 IntelliJ IDEA 可能是其中最强大的。如果你恰好是 IntelliJ IDEA 的粉丝,那么我建议你阅读《IntelliJ IDEA 技巧:提升 Java 开发人员的工作效率》,以便更好地学习你的 IDE。
如果您需要更多选择,您还可以查看此免费 Eclipse 课程列表和此推荐的一些IntelliJIDEA 课程列表。
5.数据库和SQL
SQL 是一项经典技能,或许也是所有软件开发者最宝贵的技能。它已经存在了 30 多年,我认为它还会再存在 30 年。鉴于数据库的普遍性,程序员除了熟悉SQL之外,还必须熟悉数据库的基本概念,例如规范化和表设计。
数据库有很多,例如Oracle、Microsoft SQL Server、MySQL、PostgreSQL,但只需了解其中一种就足够了。关键在于你必须熟悉该数据库。你应该知道如何插入/更新/删除数据,以及如何编写 SQL 查询来检索数据。
了解诸如加入聚合函数之类的高级概念是一项很大的优势,如果您想获得这些知识,那么完整的 SQL BootCamp是一个很好的起点。
而且,如果您需要一些免费的替代方案,这里有一份面向程序员和软件开发人员学习 SQL的免费课程列表。
6. UNIX 或 Linux
与 SQL 一样,UNIX 也经受住了时间的考验。它已经存在了 30 多年,我希望它在未来的许多年里也能继续存在。
由于大多数程序员有时必须在 Linux 机器上工作,因此熟悉Linx 命令行大有帮助。
它能让你高效地工作。你可以搜索文件,通过检查 CPU 和内存使用情况来了解系统运行状况,并执行基本和高级任务。
如果您想学习 Linux 命令,我建议您参加Udemy 上的“5 天学会 Linux 并提升您的职业水平”课程。
如果您需要一些免费的替代方案,那么您也可以查看Dev.to 上的初学者学习 Linux的免费课程列表。
7. Microsoft Excel
我把 Excel 列入这个清单可能会受到很多批评,但我仍然认为 Excel 是程序员、软件开发人员、项目经理、交易员和商务人士的王者工具之一。它远不止是一个电子表格软件。
它提供了许多实用的特性和功能来执行复杂的数据分析。我使用 Excel 来跟踪进度、协调数据、进行数据科学研究、检查数据质量以及进行项目规划。
Excel 用途广泛,因此我强烈建议每位程序员深入学习。与其只是复制粘贴数据,不如掌握一些基本的搜索、排序、筛选和 VLOOKUP 等函数来进行比较。
如果您想从头开始学习 Excel 或想要提高您的知识,Microsoft Excel --- Excel 从初学者到高级是一门很好的入门课程。
8.编程语言
当然,如果你想成为一名程序员,那么你必须了解一门编程语言:C++或Java,或者Python或JavaScript。你可以选择任何你想要的语言,但我个人建议你至少应该了解 Java。
它非常容易上手,因此是初学者的理想选择。它功能强大,几乎可以帮你做任何事情。
它提供的库涵盖了从 Web 开发等基础功能到处理大数据等复杂任务的各种功能。如果您决定学习 Java,那么《Java 完整大师班》可能是您最好的入门选择。
如果您需要更多选择,并且不介意从免费资源中学习,那么您还可以查看这份针对初学者的免费 Java 编程课程列表以及这些免费学习 Java 的网站。
9. 网络基础知识
当今世界是一个互联的世界,无论您走到哪里,都会发现计算机网络,从您在家中使用 Wi-Fi 连接许多设备,到学校、大学和办公室使用局域网 (LAN) 连接到互联网。
你编写的大多数应用程序,例如 Web 应用程序或移动应用程序,都不是独立的,而是客户端-服务器类型的应用程序,请求将通过网络传输到服务器。客户端可以从世界任何地方访问你的应用程序。
最重要的是,您必须了解网络基础知识,才能理解、开发和支持您的应用程序。如果您想了解更多信息,我建议您参加Udemy 上的“完整网络基础知识”课程。对于初学者来说,这是一个很好的起点。
如果您需要其他选择,那么《非技术人员计算机网络简介》也是一个不错的起点。
10.脚本语言
在第八点中,我让你学习一门编程语言,现在我又让你学习一门脚本语言?为什么?编程语言不能用来做脚本语言吗?
嗯,确实有一些编程语言既适合OOP 编码也适合脚本编写,比如Python,这就是我要求你至少学习它们的原因。
但是如果您碰巧选择了C/C++或Java,那么您就无法像Python或 Perl 开发人员那样快速地完成某些工作。
这就是为什么我建议每个程序员都学习 Python,如果你同意的话,完整的 Python 训练营是一个很好的入门课程。
脚本语言可以轻松创建工具和脚本来解决编程世界中的常见问题。如果你精通 Python 之类的脚本语言,那么你可以轻松地将一些日常工作自动化。
再次强调,我建议你学习 Python,一举两得,如果你需要更多资源,这些免费 Python 课程列表也非常有用
计算机科学专业的毕业生和所有想成为程序员或想从事软件开发或 Web 开发人员的人都可以使用此列表来了解成为一名成功程序员所需的事物、工具和技能。
您可能想探索的其他编程文章:
- 2021 年 Java 开发者路线图
- 2021 年学习 Spring Boot 的 5 大课程
- 2021 年值得学习的 10 种编程语言
- 2021 年每个 Java 开发人员都要学习的 10 个工具
- Java 开发人员 2021 年应该阅读的 10 本书
- Java 开发人员应该知道的 20 个库
- Java 和 Web 开发人员在 2021 年应该学习的 10 个框架
- 2021 年值得学习的 10 个 Scala 和 Groovy 框架
- 我最喜欢的深入学习 Java 的免费课程
- 深入学习 Spring 框架的五门课程
- 面向 Java 开发人员的 10 门免费课程,学习 Maven、Jenkins 和 Docker
- 面向 Java 开发人员的 10 门免费 Spring Boot 课程
- 面向 Java 程序员的 10 门 Spring Boot 高级课程
- Java 开发人员为何要在 2021 年学习 Docker
文章来源:https://dev.to/javinpaul/10-things-every-software-developer-should-know-39pePS - 顺便说一句,如果您有兴趣了解更多程序员应该知道的事情,互联网上有很多指导,例如《程序员应该知道的 97 件事》一书,这是每个认真的程序员必读的书。