如果你已经编程了一段时间,并且想学习编程,那么你可能在想什么才是一个好的程序员?计算机科学与技术专业毕业生能做些什么,来为软件开发职业生涯做准备?
在本文中,我将分享10件我认为每个程序员都应该知道的事情。这包括一种编程语言,如C++或Java,基本的计算机科学概念,如数据结构、算法和计算机网络基础,如Git,Microsoft Word和Excel之类的基本工具,像SQL和UNIX这样的技术,Eclipse或VisualStudio之类的编辑器和文本编辑器。
每个程序员都应该知道的事情
不用再多费吹灰之力,这里列出了我个人认为每个程序员都应该知道的事情,不管你在做什么工作,这些基本技能将长期为您服务。在时间、金钱和努力,任何投资都将帮助你在整个职业生涯中获得回报。
1. 数据结构和算法
如果你想成为一名程序员,那么你就应该好好的去了解数据结构和算法了;这是没有办法的。这是任何一个编程工作面试者的必经之路,如果你不知道基本的数据结构(例如数组、链接列表、地图、集合),那么你就无法编写真实良好的应用程序。
这就是为什么每个程序员在计算机科学课程中都应该认真学习数据结构和算法的原因。
如果你是一个自学的程序员,那么你也必须要知道数据结构和算法;事实上,许多编程训练营都会首先教你数据结构和算法。
2. 版本控制
如果你想成为一个程序员或软件开发人员,你必须要知道版本控制工具,如git和svn。
值得庆幸的是,Git和GitHub已经简化了市场,现在超过70%的用户使用Git,因此您可能只需学习Git就可以摆脱困境。
顺便说一句,您应该在学习Git方面多做些努力,并且去了解高级版本控制概念,比如分支和合并,以及使用命令行和GUI的工具本身。
3. 文本编辑器
当我作为程序员工作的时候,没有一天不使用文本编辑器。即使对于非程序员和任何使用计算机的人来说,它也是必不可少的工具之一。
我主要在Windows上使用记事本,在Linux上使用vi,但在高级编辑器(如Sublime和Notepad++)方面,你有很多选择,它们提供类似于IDE的功能。
我建议你花些时间学习你最喜欢的编辑器和键盘快捷键, 如果您喜欢Sublime,那么 Sublime Text for Rapid Web Development是一个很好的选择。
4. IDES
对于任何程序员来说,IDES都是最重要的工具。对于C、C++和C程序员来说,选择VisualStudio是显而易见的。而对于Python开发人员来说,JupiterNotebook也是非常不错的选择。
对于Java程序员来说,有三种主要的IDE可以选择:Eclipse、NETBeaS和Intellij。虽然Eclipse是我最喜欢的,但Intellij一点也不差。
5. 数据库和SQL
SQL是一个经典。它已经存在了30多年,我想它还会继续存在。考虑到数据库的无所不在,程序员希望它熟悉基本的数据库概念,如规范化、表设计以及SQL。
对于这么多的数据库,只需了解一个就足够了。关键在于您是否了解数据库。您需要知道如何插入/更新/删除数据,以及如何编写SQL查询来检索数据。
6. UNIX或Linux
与SQL一样,Unix也经受住了时间的考验。它也已经存在了30多年了,我希望它在未来的几年里还会继续存在。由于大多数程序员必须在某个时候在一台Unix机器上工作,所以对linux命令行深入的了解会对我们有很大的帮助。
您可以搜索文件,通过检查系统的CPU和内存使用来了解系统的情况,并执行基本和高级任务。
7. Microsoft Excel
Excel是程序员、软件开发人员、项目经理、交易员和业务人员的主要工具之一。它不仅仅是电子表格软件。它还提供了许多有用的特性和功能来执行复杂的数据分析。
我使用Excel用来跟踪进度、协调数据、数据分析、数据质量检查和项目规划。
它有多种用途,除了复制和粘贴数据,您还需要了解一些基本功能,比如搜索、排序、过滤和vlookup来比较数据。
8. 编程语言
作为一个程序员,你必须知道一种编程语言:C++或Java,或者Python或JavaScript。你可以选择任何一个你需要的,但我个人的建议是你至少应该了解Java。
它很容易入手,这就是为什么它是大多数初学者的选择,它也非常强大,几乎可以让你做任何事情。
它从基本的工作(如Web开发)到用大数据完成更复杂的任务等等。
9. 网络基础知识
今天的世界是相互连接的世界,无论你走到哪里,你都会发现从你的家,到学校和办公室等许多设备上都在使用Wi-Fi,它们使用局域网(LAN)连接到互联网。
你要编写的大多数应用程序也不是独立的,而是客户机-服务器类型的应用程序请求将通过网络传递到服务器。客户希望从世界任何地方都能访问到您的应用程序。
归根结底,您必须了解网络基础知识,才能理解、开发和支持您的应用程序。
10. 脚本语言
在第8点,我要求你学习编程语言,但在这里我要求你学习脚本语言,为什么?相同的编程语言不能用作脚本语言吗?
当然,有些语言对OOP编码和脚本(比如python)都有好处,这就是为什么我要求你至少学习它的原因。但是如果你恰巧学习C/C++或Java,那么你不能像Python或Perl开发人员那样快速地做一些事情。
脚本语言会把创建工具和脚本以解决编程世界中的常见问题变得容易。如果您对Python这样的脚本语言有很好的掌握,那么您可以很轻松地运用它。
这个列表决不是完整的,但它为程序员应该知道的事情提供了一个良好的起点。如果你的目标是从事软件开发,并想找一份编程工作,那么你可以学习和改进这些东西,以保持在竞争中的领先地位。
长按二维码 ▲
订阅「架构师小秘圈」公众号
如有启发,帮我点个在看,谢谢↓