程序员招聘感悟
最近在帮团队招聘Linux服务端C++程序员,进行了40天左右,每天看简历100份+,简历看了很多,满意的不多,感慨颇多,自己做服务器开发也有六年了,结合自己的经历和招聘感悟,总结下程序员应该有的职业发展道路。
一、练好基本内功
程序员犹如武林高手,内功深厚,随便一门武功都能克敌制胜。程序员内功需要修炼啥,操作系统,数据结构,网络协议,架构能力,不管使用哪种编程语言,不管是前端和是后端,这些基本内功都是需要的,这些是普通程序员和大牛的分水岭,面试和看简历时候,发现很多人连基本的内功都没,何谈技术。现在编程入门门槛越来越低,各种框架层出不穷,尤其是前端和游戏程序员,很多人只是使用现场的框架,做做业务,不想着修炼内功,技术自然很难提升,工资涨的也慢,这些都是很现实的问题。
二、专精一门技能
程序员世界就像武侠世界,各种语言百花齐放,各种技术层出不穷,但是若想发展的好,必须有自己专长的地方。简历中看到有些人做几年C++,又做几年Java,然后可能又做几年go,还有些做了两年前端,又做两年后端,最后看着会的很多,哪个都没精通,在面试的时候表现的深度不够。技术多学几门是好事,但是必须有自己的主技术,必须把一门技术深挖,这样才能形成自己的核心竞争力。其实技术都是相同的,精通一门后,其他的学习和使用简单很多。看那些大牛,比如云风,陈皓,哪个不是如此。
三、坚持学习,不断总结
程序员是一个特殊的职业,需要不断的学习和提高,这个世界里技术和知识很多,如果不保存一直的学习习惯,很难锤炼自己的技术。很多人由于工作忙,加班多,每天将自己投入的繁忙的业务开发中,很长时间不看书,不学习技术,时间长了,感觉自己很难有很大的提高,进步特别慢,慢慢的跟别人拉开很大的距离。
总结和反思也是特别重要的,自己工作中做到的业务,有没经常思考,有没更好的解决办法,怎样更好的提高性能,提高开发效率,保证稳定性,怎么快速的完成需求,当你思考很多的时候,你会发现自己有很多需要改进的地方,这个时候你就是在不断的进步中,假以时日,你的成就绝对会比别人高一大截。其实写博客也是一种很好的总结方式,每周坚持写一篇,收获绝对不小。
四、保持激情
如果对某种事情充满激情,即便开始没有获得成功,也会咬牙坚持,坚持到最后,总能收获很多。谷歌喜欢招聘擅长运动的人,因为运动能教人从失败中重新站起来,能让人不那么容易放弃自己追求的事情。
五、关注开源
开源代码就像武林秘籍,我们平常多研究开源框架和代码,开源极大的提高我们的架构能力和编码水平,毕竟代码是最好的老师。很多程序员工作了五六年,甚至更久,都没怎么看多开源代码,这样的人很难达到特别优秀的境界。
上面写的可能有点虚,但都是肺腑之言,最后附上一些干货,分享一下服务端程序员需要拥有的技能和知识:
C++/Java语言基础,比如C++的虚函数,或者java的jvm
数据结构和算法,比如排序,链表,hash_map
多线程并发知识,比如锁,线程切换
网络编程知识,比如tcp/http协议相关知识
Linux常用命令和问题排查办法
设计模式和重构
缓存系统/中间件技术/NoSql
数据库技术,比如mysql存储引擎,索引
架构能力,比如游戏服务端,web服务器
分布式技术,比如一致性