张口就来?一个五年技术程序员,要价20k?需要具备那些技能?


程序员的发展方向可以划分为技术专家、架构师、技术管理、管理。
薪资20K相对来说是比较资深的程序员,具备的技能远超初级程序员。他应具备的技能以及相应的水平如下:

技术面试笔试都考算法题,所以leetcode的至少得刷两三百道,《剑指offer》所有题目都练习一遍,做过ACM更好。

不要求你手写红黑树(Red/black tree),但AVL哈希表堆 这些简单得数据结构需要自己操作实现过。链表,线性表必须熟悉,语言得标准库实现需要了解。

内存、堆栈、函数调用、数得表示等等,至少《CSAPP》得过一遍。操作系统是有哪些构成、进程得状态,切换、调度进程间通信方式(共享内存、管道、消息)等,尤其是校招,对于操作系统方面知识得考察时非常多得。


计算机网络知识比较繁杂,
推荐学习下面这本书,

这本书从我们最常见接触得HTTP,FTP,SMIP等应用层协议讲起,可以清晰得看到引入各个层次得作用。



SQL得会写,推荐《SQL必知必会》,几个范式有没有正式运用过?,如何进行领域建模,数据库设计,才能使得每次查询得开销最小?数据库原理方面推荐《数据库系统概念》,包含了SQL到数据库设计,在到数据库原理,这部分也是面试常考的。


B数、B+数索引,Hash索引,索引得使用,主键索引、覆盖索引、最左前缀原则、索引下推等。


后台开发基本是离不开网络编程的,甚至整个后台开发也可以看作是做网络编程的。只不过别人的框架帮我们做了协议解析、网络数据传输、解封包这些底层操作,网络编程技能还是很重要的,特别是对于Linux,Python开发来说

选择一门自己喜欢的编程语言很重要,推荐python必看书籍:


《“笨办法”学Python》

如果只是用过几个框架建议不要写到简历上,可以去GitHib上面参与开源项目。GSOC学习,任何一个花上半年时间去实现一个简陋的原型。(如实现一个简单的内核)都是非常好的加分项。
程序员薪资高低一般是与你的技能、经验成一个正比关系。每次找工作面试的时候考察的都是候选人的技能、经验相关水平。然后给予一个相应的级别,在确定一个工资范围。想要获得高薪程序员的专业技能是核心,其次是沟通表达能力。