专栏名称: StuQ
实践驱动的IT教育平台
目录
相关文章推荐
BB姬  ·  没人能真正击败Faker了 ·  2 天前  
新浪体育  ·  姚明是时代背锅侠吗 ·  5 天前  
体育大生意  ·  南弱北强新格局?CBA好像变天了… ·  6 天前  
51好读  ›  专栏  ›  StuQ

看看“悲催”的码农得学多少东西?

StuQ  · 公众号  ·  · 2017-08-06 20:35

正文

来源| 码农翻身
作者| 刘欣
一入IT深似海,从此夜归是日常,敢问出路在何方——学无止境!

要想成为一名程序员,首先你得会一门编程语言,比如 C、Java、Python、 PHP等,但是光语言本身还差得远,还得学习这门语言得类库,学完类库还得学框架, Spring、struts、hibernate 、mybatis 每一个都不是善茬。

做前端的同学也不用说了,html / JavaScript / css,再加上一大堆前端框架Angular、React、Vue,总得学会一样吧。

学完了框架才能做项目,找工作,才有可能开始光荣的增删改查之旅。

但是这还远远不够,前面说的这些知识只能算是入门。

数据结构和算法必须得学,要不然你写的代码永远没有隔壁的张大胖写的好,同样的需求,人家的代码赏心悦目,你的凌乱不堪,被领导批得体无完肤。

所以《算法》、《大话数据结构》、《图解数据结构》、《算法导论》...... 统统都来吧, 数组、栈、队列、二叉树、图、排序、搜索保证不把你淹没。

平时和大家聊天,一定得能说出几种常见的设计模式,尤其是单例模式的几种写法,要不然出门都不好意思给人打招呼。

一直做一个被分配任务的初级码农肯定是不行的,所以面向对象的分析和设计必须学习,要不然将来领导给你委以重任,让你做分析和设计,你怎么去划分模块和服务,怎么去设计接口?依据什么原则和指导方针?

软件的开发过程及最佳实践也快变成码农必备了,敏捷开发,DevOps,单元测试,持续继承,TDD, 结对编程......必须得跟上趟。

作为程序员的自我修养,计算机的基础知识也是必备。

计算机的组成原理,冯诺依曼结构必须得了解,要不然整天写程序,都不知道计算机是怎么工作的,被人家笑话;如果想深入一下,数字电路、汇编也需要略知一二,因为在某个阴暗的犄角旮旯总会有汇编在等着你。

数据库得学,基本的SQL,表的设计都得会,范式、锁、隔离级别让人头大。

深入一点的还涉及到调优,在架构层面还得了解分库、分表、备份、读写分离。

光关系数据库还不够,NoSQL在互联网时代很流行,工作中很有可能用到, 不会不行。缓存也跑不掉,memcached 和 redis 已经是工作中的必备了。

现在不联网的程序几乎都要绝迹了,所以计算机网络得学,至少得理解http、https、socket、tcp 是怎么工作的,由 https 引出的 RSA 和 Hash,证书也得知道是怎么回事。

安全其实是个大话题,像什么XSS、CSRF、SQL注入......应该成为Web编程必须要考虑的事情。

操作系统也得学,这样才能理解进程/线程,还有他们之间的通信和同步,以及同步 / 异步,阻塞 / 非阻塞,select / epoll 等听起来很时髦的词汇。虚拟内存和文件系统,总得明白一个大概。此外,Linux的基本命令怎么着也得能敲出来一些,如果能使用 vi 就更好了。

深入理解 Java 虚拟机啊,搞不明白虚拟机是怎么工作的,系统中有些问题你还真搞不定。

还有Tomcat,Ngnix ......都不是一时半会儿就研究透的。

你可能还会听人说:离散数学很重要,是计算机学科的基础!那就去看看吧,除了布尔运算之外,其余的什么等价关系、偏序、命题演算、谓词演算、群、格......彻底把人搞晕。

这些基础知识没还搞定,什么云计算、大数据、微服务、容器又开始鼓噪起来了,你难道不想了解一下?难道不怕落伍?

码农就是这么悲催,被各种新技术赶着不断向前,但是反过来看,要是对软件编程有兴趣,那简直是太幸福了,新玩具不断出现,玩都玩不过来。所以想在这个充满挑战的行业里一直保持就竞争力, 那就不断的学习吧。


斯达克学院 StuQ 特邀请迅雷技术总监刘俊强老师联合策划推出《从入门到精通 Spring REST 实战》系列课程内容,用视频教程配合在线答疑的形式帮助学员从入门到精通,快速掌握 Spring REST 实战核心技能。

限时优惠价:1599元,扫码添加小助手咨询课程详情~


点击「 阅读原文 」,抢购吧~