有几个朋友通过公众号“程序视界”的后台和QQ问了我一些问题,比较典型,列出来看看。
- 我是工作一年多的Java程序猿,最近有些疑惑和烦恼,技术方向什么的都不太明确,想和你聊聊。
- 我去年7月毕业,跳过一家公司了,现在在一家中小型公司做4G通信模块的维护,负责内置协议栈(TCP/IP),感觉很难学到东西,每天遇到的技术点都不同,很难深入学一项技术!是不是要考虑离职?
- 我今年刚刚毕业,在广州一家私企,已经做了一年了,老板对我还不错,不过现在感觉公司没有什么发展前景,未来也不知道怎么去发展。我主要学Java。现在学了一些新的东西,Docker,ElasticSearch这些。现在目前的感觉就是任何东西都是自己去摩挲,学不了一套完整的体系。也不知道过完年后怎么办。
- 我是电气工程专业,毕业一年了,我现在下决心转行做前端开发。一个人来北京学习前端。但是招聘都需要一年以上工作经验,而且一看转行都不看好。大哥,怎么破?
- ……
我选择的这些问题有几个共同之处:
- 提出问题的朋友都是刚入职场没多久
- 对将来的方向感到迷惘,不知道该怎么办
迷惘是非常正常的,不迷惘才不正常,那些在青春期就明确了人生目标与方向的人、那些在大学校园就确认了将来职场路线的人,不是“正常人”,是少数派。要知道,你不是一个人在迷惘,大多数都在迷惘中忙着追求。
谁的人生不迷惘?谁的青春不迷惘?然而我们最好不要从青春到年老、从职场新人到退休老炮儿一直迷惘,所以,我准备聊聊初入职场那些事儿,看看怎样在迷惘中寻找方向。这次我们要聊下面这几个话题:
- 对于刚刚踏入职场的新人,什么是最重要的?
- 如何寻找方向?
- 怎样快速提升技术能力?
让我们从一个真实的故事开始吧。
2014年3月份我们公司来了个又聪明又勤勉又自律又敦厚的实习生XJ,他之前的考研经历,让我和小伙伴们都衷心赞叹。
2012年XJ本科毕业后进入东软,在IA事业部研发中心负责算法模块,每天朝九晚六从不加班。
在XJ负责机器学习智能算法部分时,每天被各种数学公式虐,深觉数学有用,可惜本科专业课没好好学,有些遗憾。另外大连距离甘肃太远,他想离家近点,有意离开大连。
在看到一起住的两个小伙伴离职后,XJ决定考研,找厉害的导师学数学。考虑到读书和工作地点与家乡的距离问题,他选择了西安电子科技大学又年轻又厉害的博导陈为胜老师。
XJ决心考研时,2013年9月份已经过去好多天了,距离考试只有不到三个月时间。而他还要靠现有的工作维持生活,必须上班,他能用的时间只有晚上八点以后和来回公交车上的50分钟。于是他制定了下面的学习计划:
1). 晚上八点到十点学习数学分析,十点到十二点学习高等代数。前一个半月仔细看书,后半个月巩固,最后一个月做题。
2). 来回上班路上用手机背英语单词,最后半个月背作文模板。
3). 早上到公司先看半个小时左右时政新闻熟悉政治,最后一个月背题。
对XJ来讲,有很多实际的困难:
首先,没有队友一起奋斗,需要自己坚持,非常考验毅力。
其次,习惯了一帮人每天一块吃饭玩耍聊天打游戏,人少了不习惯。
再次,每天白天正常上班,累是一方面,晚上回去由动转静的过渡很煎熬,半天静不下来心,他的做法是每天吃完饭看个游戏视频然后看书。
还有,要照顾宿舍另外两个一起上班的小伙伴的感受,他们累了一天回来看电影聊天他得忍住不去聊而且不能苛责和约束他们。
最终XJ完成了自己制定的学习计划,考试结果出来,数学分析115,高等代数93,英语49,政治65,总分322,过了西安电子科技大学的复试线(305),成功进入复试并且顺利通过。
XJ也是职场新人,也遇到了问题,然而他通过寻找目标、制定计划、坚决执行,成功改变了现状。他的经历,能够回答我们前面那几个问题。
职场新人,什么最重要
从校园走入职场的新人,年龄大概在22~24岁吧。这个年龄段,按照舒伯的生涯发展阶段理论,属于探索阶段。探索阶段的职业发展课题有:
- 能力与才能的进一步成长
- 学习计划的选择
- 独立性发展
- 适合自己的专业、工作的选择
- 有关专业技能的发展
这是前辈牛逼人物总结的,具有极强参考意义。想想我们大多数人毕业找工作时都以薪水多少为导向,真是误入歧途了。谨记,对职场新人来讲,应该用最快的速度让自己更值钱,而不是斤斤计较我现在赚多少钱。
至于怎样才能让自己更值钱,参考前面的职业发展课题,可以用一句话总结:找到适合自己的职业,打磨专业技能,不断提升能力,尽快独当一面。
XJ在工作中发现算法对数学要求很高,于是他决定以后从事算法相关的工作,为此进一步选择读研来提升自己的数学,这符合“让自己更值钱”的原则。
如何寻找方向
在“想跳槽?先看什么是好工作”一文中,我们讨论了什么是好工作。其实对大多数人讲,契合自己的天赋和才干的职业,可能是最好的职业。所以,要找方向,就得从这一点入手。
荣格这句话——“小的时候,做什么事能让时间过得飞快并让你快乐,这个答案就是你在尘世的追求。”——很可能一语惊醒梦中人。
“如何快速定位自己热爱的工作”一文中也提供了一些切实可行的方法来帮助我们找到自己喜欢做的事情。
然而现实情况是,对有些人来讲,发现自己的天赋,找到自己喜欢的工作并不是那么容易,很可能要反复分析、探寻、尝试才能拨开迷雾,整个过程会非常艰辛,艰辛到随时都想放弃。我只想说,别放弃希望,在路上也是一种修行,你曲折的航道会让将来豁然开朗的那一刻更加珍贵。
那么,在这个话题下,还能谈些什么呢?这里有三个问题:
- 你能干什么?
- 你想干什么?
- 你适合干什么?
假如你对自己的目标不是那么清楚,就不断地问自己上面这三个问题。每周分析自己现在做的事情,问自己一次这三个问题,把答案记下来。持续去做,直到有所发现。
假如一直找不到自己想做的职业,那就:爱你所干的,围绕它发展自己的技能,让自己成为这方面的高手;假如有方向但出于种种原因不敢毅然决然地去追求,那就在现有工作之余先为你日后的方向“忙活”起来,储备相关知识和技能,具体可以:阅读相关书籍、看视频资料、参加培训、参与相关活动、参加相关社群。
对XJ来讲,他的方向,来自于对现有工作内容、感受的分析与总结。这是我们寻找方向时最常用的一种方法。你有不满,你有痛苦,你有各种不要,由此就会推出你的想要。
其实不管你找了多少方向,最重要的,是:去做。要相信你可以做到并开始行动,并且要坚持。流于想想,流于说说,是不可能有真正改变的,即便机会来了也不可能落到你头上。
最后,推荐几本和这个话题相关的书吧:
- 《发现你的天赋》
- 《持续的幸福》
- 《现在,发现你的优势》
- 《现在,发挥你的优势》
怎样快速提升技术能力
塞利格曼在《持续的幸福》一书中总结了成就公式:
成就 = 技能 x 努力
这里的努力指“花在目标任务上的时间”,而不是“早上八点到单位晚上十点回家中间都在打游戏”这种看起来很努力的努力。XJ的努力正是这样:把时间尽可能多的花在你认为最重要的与你的目标正相关的事情上。
这里的技能,则取决于你的职业方向,你做什么,就会有相关的技能。你做Android开发,Java和Android Framework可能就是你的技能。你做移动端游戏开发,Unity3D或Cocos2d可能就是你的技能。你做电子商务,J2EE、PHP、MySQL、Apache等可能就是你的技能。
我们假设你已经选定了技术方向,然后来看怎么提升技术能力。就我个人的经验,大体有这么几点需要注意:
- 在实践中运用你的技能(没机会要发现或创造机会)
- 记笔记,常回顾,常总结,发现不足,针对性提高与完善
- 制定进修路线,以C++为例,语言本身基本学习路线可能是“C++基础语言、数据结构、常见算法–>设计模式–>STL–>C++11–>函数式编程与泛型算法”,结合工作需要,还有很多基于C++的框架需要学习,比如Qt、ACE、Boost、FFMPEG、OpenH264、WebRTC、CEF等。
- 与优秀的人一起工作,远离混日子的那些家伙
- 别人可以领你进门,但修行一定靠自己
- 每一个技术方向都可能带来成就,但行动可能是艰苦和复杂的,也可能是长期的。要耐得住寂寞,沉下心来去努力,今天看张三做前端拿钱多就去转前端,明天看李四做iOS开发赚钱多就转iOS,往往几年下来反倒不如坚持做精一件事能让自己更值钱
- 学习学习再学习,上班闲暇学,下班闲暇学,人家打游戏看电影压马路时你还学,努力10000小时之后你就飞跃了,然而之后还要持续学习终身学习
相关阅读:
“程序视界”好想伴你成长,扫码关注: