如果你已经编程了一段时间,并且想学习编程,那么你可能在想什么才是一个好的程序员?计算机科学与技术专业毕业生能做些什么,来为软件开发职业生涯做准备?

在本文中,我将分享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这样的脚本语言有很好的掌握,那么您可以很轻松地运用它。

这个列表决不是完整的,但它为程序员应该知道的事情提供了一个良好的起点。如果你的目标是从事软件开发,并想找一份编程工作,那么你可以学习和改进这些东西,以保持在竞争中的领先地位。

长按二维码 ▲

订阅「架构师小秘圈」公众号

如有启发,帮我点个在看,谢谢↓

每个程序员都应该知道的10件事!相关推荐

  1. web开发程序员有几种_每个程序员都应该知道的10种流行的Web开发工具

    web开发程序员有几种 Are you planning to get into web development? Take a tool with you, it's scary out there ...

  2. 刚入门的程序员朋友需要知道的30件事

    朋友们,我是床长! 如需转载请标明出处:http://blog.csdn.net/jiangjunshow 如果你想成为一名程序员,这个建议可以帮助你走上正确的道路. 程序员不是一个容易的职业,每年都 ...

  3. 程序员都应该知道的 10 大算法

    目录 算法一:快速排序法 算法二:堆排序算法 算法三:归并排序 算法四:二分查找算法 算法五:BFPRT(线性排查) 算法六:DFS(深度优先搜索) 算法七:BFS(广度优先搜索) 算法八:Dijks ...

  4. 每个程序员都该知道的10大编程格言

    编程格言1:无风不起浪 (There is no smoke without fire) 编程格言2:预防为主,治疗为辅(An ounce of prevention is worth a pound ...

  5. 大规模运行MongoDB应该知道的10件事

    MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其 ...

  6. 女孩做妻子前应知道的10件事

    女孩做妻子前应知道的10件事 一段时间的甜蜜恋爱期过后,你和心爱的他终于要踏上期盼已久的红地毯.你发誓一定要做个最幸福的小女人,要成一个永远让丈夫着迷的好妻子.从一个女孩的身份转变为一个妻子的身份前, ...

  7. 学习Go之前你应该知道的10件事 | Gopher Daily (2021.04.21) ʕ◔ϖ◔ʔ

    每日一谚:Don't use an interface if it's not clear how the interface makes the code better. Go技术生态 编写好的单元 ...

  8. 使用Mono平台前,请牢记产品观点(所有.Net程序员都建议知道的)

    技术领域有很多让人深感困惑的地方,不管是架构师.设计师还是程序员,在完成任务之余,偶尔都有自责的地方:程序员在使用新技术完成任务的时候,有时会觉的自己旧技术都没有完全掌握,使用新技术有些好高骛远:设计 ...

  9. 每个程序员都应该知道的GitHub Repos

    GitHub是领先的Git存储库托管服务,其中包含许多代码存储库,库等的源代码. 在本文中,我将为每个开发人员介绍GitHub存储库从播客到免费书籍再到学习路线图 1.Awesome Resource ...

最新文章

  1. 清华校友打造Python调试神器
  2. xmindcore.java_求解Xmind问题
  3. 2018美团笔试字符串问题
  4. 某大学多站联动获取webshell
  5. KVM 虚拟机在物理主机之间迁移的实现 -- 静态迁移/动态迁移/存储迁移
  6. MySQL高级-SQL优化
  7. ie11兼容性问题,jsp在IE11显示不全问题,ie11覆盖内容问题解决方法
  8. Ardence BXP 3.5 - 4.1 PNP 方法
  9. UWB定位记录二(DWM1000模组介绍)
  10. layui 表单 验证整数
  11. ssm基于Android的自来水收费系统APP(ssm+uinapp+Mysql)
  12. java实现excel动态表头导入
  13. C语言——打鱼晒网问题
  14. 微信小程序 + shiro 实现登录(安全管理) —— 保姆级教学
  15. python中code函数是干嘛的_[Code] Python简单小知识
  16. 【24位IEPE振动加速度音频采集卡-北京阿尔泰科技】
  17. centos liunx升级内核
  18. 博途PLC ADRC自抗扰控制完整SCL源代码
  19. 产业分析:快手私域经营
  20. 标致携手《VISION视觉》与建筑师刘威畅想设计的未来

热门文章

  1. python traceback模块_Python中的traceback模块
  2. BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)
  3. 0x32.数学知识 - 约数
  4. P1160 队列安排
  5. android 音乐播放器专辑图片旋转,如何在我的音乐播放器(Android)中显示专辑封面?...
  6. matlab噪声倍频带声压级,近海风电场水下打桩噪声传播特性
  7. c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验
  8. C++中构造函数调用构造函数
  9. Linux命令行笔记
  10. 三步走——带你打造一份完美的数据科学家简历|(附件有PPT福利)