这都是作为程序员的基本技能,将长期伴随你的程序员职业生涯。如果你的目标是从事软件开发和编程工作,那么这些都是保持竞争力可以学习和提高的东西。
数据结构和算法如果想成为一名合格的程序员,那么必须了解掌握数据结构和算法。这是任何编程工作面试的重要主题之一,如果不知道基本的数据结构(例如数组、链表、映射、集合),就不可能编写真实世界的应用程序。数据结构和算法是最能体现程序员基本功的方面,不管计算机专业还是培训课程,数据结构和算法都是首先教授的内容。
已经参加工作但数据结构和算法知识欠佳的同学,花点时间学一学,不要只是满足于学会什么什么工具和框架,基础知识有百益而无一害。
源代码管理源代码管理是用来存储代码的,程序员必须了解Git和SVN等版本控制工具。源代码管理可以降低对具体人员的依赖,有利于代码审查,提升团队的整体水平。
从大的社会发展趋势来说,分布式是大趋势,Git 正好适应了这个趋势,之前的主流代码管理方案比如 CVS,SVN 都是集中式的。由于分布式的特点,造就了更高的灵活性,可以适应更多的场景。所以Git一定程度上简化了市场,对于初学者来说,GitHub终极版:MasterGit和GitHub是一个很好的开始,也需要熟练掌握诸如分支和合并等高级版本控制概念以及使用命令行和GUI的工具。
文本编辑器作为程序员工作时,没有一天不使用文本编辑器。即使对于非程序员和任何与计算机打交道的人来说,它也是必不可少的工具之一。
一般主要是在Windows上使用NotePad,在Linux中使用VIM,但是在高级编辑器方面有很多选择,比如Sublime和NotePad ,后者提供类似IDE的功能。不妨花点时间学习最喜欢的编辑器和键盘快捷键,了解一些提高效率的技巧。
IDE对于任何程序员来说,现代IDE都是非常重要的工具。对于C、C 和C语言程序员,选择非常明确:Visual Studio。对于Python开发人员来说,Jupiter Notebook每天都在变得越来越好。对于Java程序员来说,有三种主要的IDE可供选择:Eclipse、NetBeans和IntelliJ。对于用“世界上最好的语言”PHP的程序员,PHPStorm、Sublime Text 都是不错的选择。
数据库和SQLSQL允许用户每次访问一大批的数据。通过一条语句,SQL命令就能够检索或者更新多个表中的数千条记录。这就避免了很多的复杂性。当想要处理每一条记录时,计算机程序不再需要按照特定的顺序一次读取一条记录。过去需要数百行程序代码才能完成的任务,现在只需要几行代码就可以完成。SQL是经典之作,数据库无所不在,程序员应该熟悉一些基本的数据库概念,如规范化和表设计以及SQL。
关键是应该熟悉数据库,知道如何插入/更新/删除数据,以及如何编写SQL查询来检索数据,对诸如连接聚合函数之类的高级概念的了解也将很有意义。
UNIX或Linux与SQL一样,UNIX也经受住了时间的考验,已经存在了30多年。由于大多数程序员在某个时候都必须在UNIX机器上工作,因此对Linx命令行的良好了解是很有帮助的。
它可以让程序员以更高的效率工作,可以搜索文件,通过检查系统的CPU和内存使用情况来了解系统的状况,并执行基本任务和高级任务。GitHub上有一份入门&进阶指南,名字叫“命令行的艺术”,在GitHub收获了5万标星,这份资源不仅能帮助刚接触命令行的新手,对有经验的人也大有裨益。
ExcelExcel是程序员、软件开发人员、项目经理、交易者和商务人员的最佳工具之一。它不仅仅是电子表格软件,还提供了许多有用的特性和功能来执行复杂的数据分析。
程序员可以使用Excel来跟踪进度,协调数据,数据分析,数据质量检查和项目规划。这就是为什么敦促每个程序员深入学习Excel的原因。它不只有复制和粘贴数据,还应该一些基本的功能,比如搜索、排序、过滤和VLOOKUP来比较数据。