简单的先说一下,坐标杭州,12届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有6家公司。
面试经历
其中成功的有4家,另外2家失败的原因在于:
1、阿里巴巴B2B事业部的面试,两轮技术面试都过了,最后一轮面试是对方的主管,由于听说技术面试过了基本上90%都面试成功了,所以在和主管的交谈中也是毫无顾忌,说得天花乱坠,很多自己介于知道和不知道的东西都直接脱口而出了,结果多次被对方一反问就问得哑口无言。
事后想来,模棱两可的答案是面试中最忌讳的,这次的失败也让我认真地对待后面的每一次面试。
2、另外一家失败的是一家小公司,也就20来个人吧,整个团队是支付宝出来创业的,非常厉害。
面试完我多方了解了一下,对方认为我基本功什么的都不错,但是实际项目经验还是欠缺一些,因为对方是创业型公司,需要人上手就能干活,因此我在这个时候还不是特别适合他们团队。
至于其他成功的四家公司,给我的面试评价都挺高的,但我也不想记流水账,因此就不一一列举面试过程了。
程序员职业规划
下面主要谈谈作为一名工作3年-5年左右的Java程序员应该具备的一些技能以及个人的一些其他感悟。
起初在工作的时候,什么都不会,工作的环境压力也大。没工作几天就快要熬不下去了。但这毕竟是自己走入社会以来的第一份工作,总要坚持一下吧,至少当时是那么想的。由于自己的技术功底并不好,各种技术也不懂,一切的一切都得从零开始。就这样一步一步的伴着眼泪和汗水坚持到了现在。
每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的Java程序员们还没有自己的职业规划,希望你可以思考一下自己的将来。
// 一阶段----三年
我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。
我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段。
在这三年的开发生涯中,感悟到一个道理,自己并不属于自己,有很多的思想也并不能实现。举个例子来说吧,给别人做项目,拿到手的项目是别人分析好的,方案给你选定,尽管你觉得有不合理的地方,你有你的想法,但是也是无济于事,并不能得到别人的采纳。刚开始的时候,也许你还能提出你自己的观点,但结果是并不会被用到。久而久之,即便有了想法,也不想说了。就这样,一天到晚,压抑着自己的情绪。用别人的思路控制着自己的身体去工作。时间长了,疲惫不堪。
// 二阶段----五年
五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西,这些人永远就是个Coder,年纪大一些势必被更年轻的人给顶替。
有些人在三年里,除了写代码之外,还热衷于研究各种技术实现细节、看了很多好书、写一些博客、在Github上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物。
干货分享
作为一名Java程序员,该怎样努力才能快速成长为一名优秀的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系呢。
这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。下面是整理的一些程序员所需技术图谱:
1.1 架构师图谱
1.2 Java架构师图谱
1.3 一致性图谱
1.4 互联网大流量的方法
1.5 阿里巴巴常用小框架
1.6 架构方法论图谱
1.7 设计模式秘籍图谱
2.1 Java并发图谱
2.2 Java集合图谱
2.3 Java集合类图
2.4 Java List类图
2.5 Java Map类图
2.6 Java Set类图