{eval=Array;=+count(Array);}
刚开始工作2年,工资多少这都不重要,最重要的是规划好自己的职业发展路线、阶段性目标,然后超这目标前进。程序员两条路,一个是走向架构师、一个是走向项目管理,关键看自己喜欢哪个。
拿本人来说,比较喜欢走技术路线,做技术方面的大拿,实际上大多数程序员都是喜欢成为别人口中的牛人、大拿。那么怎么变成牛人呢?
我认为基础是非常重要的,现在很多培训机构出来的工程化程序员,基础很弱,一问三不知,遇到问题不知道从哪里入手解决,这样是很难拿到高端技术岗位的offer的。
我以我的经历来说下怎么打基础,这里推荐几本书《深入理解计算机操作系统》、《数据库系统概念》、《SQL权威指南》、《算法导论》,如果是搞JAVA方面的程序员,必须深入读《深入理解JAVA虚拟机》、《JAVA并发编程实战》、《设计模式》。这些书都是经典书籍,除了能帮助你在日常项目中能更好解决问题外,还能够应付各种技术面试。所以平时有事没事就拿出来翻翻,加深印象,熟记于心,这些基础的书籍读完你可能会觉得自己原来了解的知识真的很少,会让你变得越发谦逊,不在自以为是(我见过好多程序员在做了几个项目后觉得自己牛的不可一世,结果面试的时候满头大汗,啥都答不上来)。
除了计算机基础知识牢固外,还要时刻学习市面上的各种开源框架,紧跟时代步伐,这里说的学习不是说会用就可以了,而是要深入框架内部,去进行源码学习,自己去一边看代码一边画对象关系图。我记得Hibernate刚出来的时候风靡一时,当时我还在自己封装JDBC,觉得会Hibernate很牛叉,于是把hibernate源码拿来深读一边,理解里面的设计思想和各种设计模式在框架内是如何运用的,之后用起Hibernate变得得心应手,成为解决项目疑难杂症的当仁不让的人选。上面是个例子,当然现在首选的ORM框架还是MyBatis,如果你也在从事JAVA方面的研发工作,MyBaits的源码你是否已经深读过了呢?
接下来,如果你想找高薪的技术职位,那么去大厂是最好的途径,国内一梯队的ucloud、百度、ucloud,二梯队的头条、京东、美团、滴滴,还有偏传统行业的ucloud,都能帮助你完成高薪梦想。那么怎么才能跻身进入这些公司呢? 在技术上面,除了精通(一定是精通,源码级别的、思想级别的)上面那些计算机知识和业界流行框架外,大型分布式的软件架构是必须要掌握的,这里说几个方向,一是大型分布式缓存的设计和应用(radis、tair)、大型分布式数据库的设计和应用(cobar,tddl)、大型分布式消息中间件(Kafka、RabbitMQ),为什么我这里要强调“设计”?就是你需要具备独立设计类似上述中间件的能力,而不仅仅是会应用。所以这时候你会发现你之前所学的基本功有了用武之地,你之前熟读各种框架的源码,深入理解设计思想和设计模式,你能在各个环境很快找到问题的根本点、比如设计中的性能的瓶颈在哪里、failover机制怎么设计、什么情况下需要进行幂等控制等等、怎么限流控流等等等等。
那很多人会问我,平时的项目过程就是简单的CRUD,接触不了这么深的东西,我想说的是,如果你有明确的目标和坚定的信念,那你一定会在日常的工作学习中去向这个方向努力,手上的项目没有,就自己搭项目,在自己的电脑上搭建分布式环境,我之前就是在自己的(高端)笔记本中装了5个虚拟机,自己玩各种分布式应用和架构,先把思想和原理弄通弄熟,在找机会去实践。如果当前的公司没有实践的环境,就说明你在当前的公司已经遇到发展瓶颈,必须去选择能让你实践梦想的公司,可能你不能一步就跳进BAT,但是凭借你自己的基础和实例已经很容易找到能让你展示才华的公司,然后再借助实际的大型项目经历,往你的终极目标迈进。
最后说下,现在是dt时代和正在迈向人工智能时代,大数据软件架构师是非常珍贵的,大数据方面,现在业界的开源框架,比如Hadoop体系、Spark体系、Storm等等,无一不是以大型分布式软件架构为思想搭建的,你为此都准备好了么?
如果你现在只是刚刚工作的两年的程序员,除了CRUD外,你还掌握了什么技能?如果你是一个有梦想和激情的程序员,不要为眼前的每月5000块所沮丧,坚持学习,坚持沉淀,月薪5万不是天方夜谭。
1:选择一个方向,嵌入式?web?移动互联网?
2:努力提高自己的专业技能,一定要有深度,学习一些语言之外的东西,比如服务器运维,数据库,前端。
3:尽可能的不要长时间呆在外包公司,快餐式的开发对技能帮助不大
4:多和别人学习、沟通,学习别人的工作经验
0
回答0
回答0
回答0
回答10
回答4
回答9
回答0
回答1
回答5
回答