从零基础到现在工作4年发现必须具备,或者是应该知道的技能。
IT技术发展的每天都太快了,按照我自己的经历现在开始整理一下必须会的东西。然后自己平常没事写的做一下记录。
因为是遇到了一些Tips就记录下来,所以文章也许排版乱,逻辑差,看不懂等等。因为都是给我自己看的,所以我看得懂就行。
无论在什么前端,后端,运维,等等什么工作岗位上。对于Linux的熟悉程度和一些批量操作能力基本上就是一个人工作经验的体现。
我在上班的时候发现从事10年工作的基本上对于Linux上的操作都是行云流水游刃有余,也许很多其他编程语法都需要查,但是对于Linux的操作真的就是能反映出一个人到底多少经验。比如一个文件夹下所有文件批量修改后缀,批量删除掉部分字符串,我这种初级的就一个个点击修改,但是大神就很简单。还有就是定时的操作一些任务,写一些简单的shell,打开终端使用vi就开始快速定位操作。GUI操作实在让我汗颜。
虽然说初级程序员也是上网查一查就知道怎么写的,但是有时候这种简单的小操作在效率上真的会被秒杀掉。打开浏览器查找命令花了5分钟,那个时候人家都已经写完了。而且不断的打开浏览器查找不仅仅是效率问题,有时候还会分心,无法集中注意力。
- 会用Vim & 终端部分快捷操作要会
- 基本网络知识必备
- 能写基本的脚本
- 学会一些常用的批处理复杂命令(要记住)
但是学习起来发现实际操作意义大于理论知识学习。所以还在项目中不断练习比较好。
这个也是在我学了一些语言Java,PHP,Python,JavaScript 之后悟出来的心得,就是编程语言可能会推陈出新,但是算法和数据结构就是永远不变的,事关一个程序员的思维逻辑训练还有对一些即使人家已经给你实现好的API的熟悉程度。
为什么那些外企大厂都每次考你的算法,我以前不明白,后来刷一了一下LeetCode我悟了,因为很多东西的实现,你必须要自己动手才能记得住。而且真的很锻炼一个人的逻辑思维能力。你算法写得好,那么无论什么编程语言你都能快速的上手。
- LeetCode最少刷200题
- 知道一些基本的数据结构的特点
- 每次学习一门新的语言的时候,可以尝试着从刷题开始。
这个真的是和上面的数据结构和算法感觉同样重要的,但是不同的语言可能会有不同的实现方式。不同的设计,这个只能说学有余力的时候了解每一门语言自己的设计吧。
容易学会,也容易遗忘。最好是学会优化!
- SQL(关系型)
- MongoDB(非关系型)
- Redis → 其实这个严格意义上来说都不属于数据库,但是也属于一个必备技能。
这个虽然属于运维方向,但是现在几乎每个公司都要学会云端技术,所以我觉得这个也是必须学的。AWS的云端服务一起配合效果更佳。这个其实不是重点的感觉。其实就是远程的Linux的感觉
现在几乎每家科技公司都有自己的云服务,这些几乎是必须掌握的。(虽然只要学会了1个,基本上都大同小异)
其实每个人都要有一丢丢美感的,会设计会让你网站整体都很有质感。
HTML + CSS + JS 三剑客缺一不可。最近感觉还要会Figma,这上面配合一下H5C3,感觉事半功倍。
这个其实不算是Coder的范围了,但是学会这个和上面的设计方面的一些加分的话。可能会让你升职加薪更快。
比如学会写好看的PPT,熟练的运营Excel,能把客户的需求快速把握住。其实现在社会的话,学点视频制作,达芬奇,Final Cut Pro这些也有可能会是个加分项。因为时代渐渐地就在朝这个方向发展。