找工作的一些感悟——前端小菜的成长
前些日子辞掉了工作,比较轻松,有大把的时间写博客神马的,陆续面了几个不错的互联网公司,有成功的也有失败的,阿里的面试及offer都来的很意外,还没来得及投百度,由于阿里给的条件及工作内容都让我很满意了,唯一的遗憾是得离开北京去杭州,不知道现在还要不要投投其他的也试试。
至于为什么选在年前离职,其实这并不在我的计划内,从毕业起就在这个很小的公司工作,只有六、七个开发人员,但是感觉自己学到了很多东西,工作内容也很有创造性,但最近半年来对老板给公司制定的方向感觉不是很认同,还有非常多的因素就不多说了,让我工作效率很低,有时候带着抵触情绪工作,这样做出来的东西可想而知。继续做下去只能是耗着,耗到年终拿个年终奖然后年后辞职?自己不能接受,所以在网上投了些简历,向公司提了离职。
写在前面
本文虽然是在说面试感受,但不含面试题,以后会多少总结一些面试的知识点,但希望从本文中看到面试题神马的可以Ctrl+W了。然后虽然找到了自己满意的工作,但本人并不是成功人士,也不是技术大牛,但凡读过我两篇博客的人都可以看出来,我只是前端小菜一枚,自然不会高屋建瓴、口吐莲花,文中说的只是一些自己工作不到三年来经过面试洗礼后的一些认识与感受,和大家见解不同还望多多指教。
自己没有想象的那么好
扯淡的东西完了,说一些找工作的感受。开始找工作对我最大的冲击就是人家问的东西太多自己没接触过的。大家都说技术人员到一个公司两到三年是一个瓶颈期,工作内容、使用的技术已经轻车熟路,不在有学习的压力,习惯了舒适,我来公司不到三年,面试过程中越来越多的意识到这个问题。之前因为能够很快完成工作内容,出了bug也能很快解决,对自己的技术很自信,随着不断的面试越来越没有自信,因为开始是别人问的东西自己一知半解,然后是闻所未闻。
可能也是由于面试的都是一些相对不错的公司,对技术的要求比较高,但自己认真反思了一下,觉得有几个问题,发现很多初级的程序员也都有这些问题
对工作用不到的技术漠不关心
我开始的时候觉得自己是对技术很有兴趣的人,总会逛一些技术博客、网上回答一些技术问题、给公司新人进行技术培训,现在回头看看自己总是在自己的舒适区,都是围绕着目前工作的技术转圈,对一些工作用不到的技术进去看两眼就出来了,不会耐下性子去学习。
很多时候我们会发现自己的技术面很窄,实际上我们有的只是一些孤立的知识点,没有形成面,很多问题的解决方案使用的技术我们看了后会懂,但是自己却想不出来,我觉得这是因为知识的不连贯导致的,如果读博客的同学也意识到了自己有此类问题,建议平时在逛论坛、博客的时候关注一下自己不熟悉的相关知识,会有很大收获。
三天打鱼两天晒网
这个和上面的恰恰相反,但也是有害的,很多同学技术方面兴趣很广泛,对数据库、设计模式、前端等等都有研究,者没什么问题,是好事儿,我工作一年的时候还在立志做架构师,天天读面向对象和设计模式等方面的书,后来觉得算法和数据结构很重要又买了很多书去学习,然后感觉NoSQL很流行,又在网上搜了很多相关的博客作为书签保存了下来,之后又看到了Memcache、Redis、Hadoop。。。
到最后除了工作一直在用的技术,这些我都没有学会。相信有很多我这样的同学,会经常关注编程语言排行榜、十大热门技术。。。,然后上网搜相关博客,买书立志要学习这些人们技术,然后就跳到大公司甚至BAT、工资翻倍神马的。在网上看到一些大牛的博客惊羡一番后,存到自己的书签后者粘到自己的笔记中,告诫自己一定要学习这些知识。或者在网上下了几百G的教学视频、电子书。。。半年后发现那些都变成了封存,除了激励了我们三分钟的学习热情,给我们个心里安慰,什么作用都没有。
我所说的三天打鱼,两天晒网,并不是指我们学习了两天就去玩儿了,而是指我们在学习过程中没有恒心把一项知识搞明白就去看另外的知识去了,对技术都是浅尝辄止,最后导致什么都没学好。面试的时候问到相关知识,觉得自己研究过,但回答的千疮百孔。在学习新知识的时候我们需要量力而为,把一个兴趣经过一定时间的学习、研究转化为自己的知识后再去转向下一个兴趣,,甚至做到学而时习之,这样才可以年年有鱼,年年有余。
其实我们在浏览一些技术博客、论坛的时候可以做个简单的check list,把感兴趣知识记下来,每周或每月看看自己的check list,看看自己进展到哪项了,循序渐进一步步来。
试图一蹴而就,而后高枕无忧
曾经有那么一个阶段我每天学习Linux及Linux C编程,主要是看了某份调查报告搞这个很挣钱,自己要是学会了立马能变高大上、直接空降到BAT,买了一些书一目十行看完,觉得看完后就对Linux有深入认识了,结果可想而知,如今仍然是对Linux一知半解,Linux C编程只能呵呵了。
不少同学也会有这毛病,认准一个目标不错,Linux C编程确实很重要也很挣钱,但是首先这个目标适不适合自己,如果自己并不感兴趣,也没有相应的努力在里面,只是奔着挣大钱那么学习的效率应该不会很高,至少不会主动去接受很多相关知识。
然后目标适合自己后很多同学都会有一种急躁情绪,试图一蹴而就,看书一目十行,看视频用1.8倍速率,觉得看完某些书、写出某个例子等就会掌握XXX了,这样的结果就是只是都是零散而模糊的,当工作需要或者别人问起的时候,似懂非懂、做不出正确决定。
作为技术人员,要熟知的一点儿是计算机领域技术日新月异,不可能学会某项技术以后就能轻松躺着领钱了,我们不如静下心来,把知识钻研明白,给自己做个坚实的基础,有新知识来临的时候我们也可以应对自如了
自卑
最近和很多同学同事聊天发现在技术人员身上有个隐藏很深的问题——自卑!没错,就是自卑。这里的自卑并不是指衣着不光鲜,觉得不好意思哪种。有些做的不错的同学偶尔都会流露出自己学校不怎么出名,再怎么努力也不会有很多进入国际知名企业的机会,我有个很好的朋友对设计很感兴趣,学过美术,也很有品味,当我们聊职业规划时说既然对工业设计感兴趣可以去奔驰、苹果去试试嘛,当然有开玩笑的意思,让我始料不及的是他第一时间的反应是这怎么可能,而不是说人家需要什么条件他达不到。
在很多刚入行的技术人员身上我们都可以看到这样自卑的影子,在未经了解的情况下就否定了自己,觉得自己不可能做到某事,自然也不会有这方面针对性的努力,想都不会去想,能做到的希望就更小了。一年前有次冲动想离职,让朋友帮我推荐职位,朋友问我希望什么样的工作,我说工资到XXX就行,朋友说可以去百度试试,我心里第一反应就是,这怎么可能,我就一普通本科生,人家多少985研究生都进不去,我怎么可能。
事后我看了一下百度对前端的要求,并没有我想象的那样离谱的高,自己平时也就搜集了一些互联网公司对前端的要求,针对性的学习了一些,感觉进步比较大(这也在一定程度上造成了文章开头是说的过分自信)。
其实很多时候看起来遥不可及的目标并没有那么远,很多次我们都是被自己的幻想和恐惧吓住了,甚至连第一步都没有敢迈出去
怎么成长
说了这么多问题,让我回首,如果有一次重来的机会的话我会这样过
对自己有清晰的定位,当然这得在一定尝试之后才可以,并不是所有刚毕业的人就对自己的技术、职业有着清晰的了解,但工作两年后应该对自己有一个定位了
- 是否对从事技术感兴趣
- 喜欢什么工作
- 讨厌什么工作
最近几个月不愉快的工作经历让我更深知,要做自己认同、觉得有追求意义的工作,这样才能最大程度激发个人的创造力,如果工作了两年还不明白自己喜欢什么,除了工资追求什么的同学需要好好想想了
对自己有清晰的定位以后就可以尝试一些有挑战的事情了,无论是在公司工作还是想跳槽试试其他机会,给自己定一个目标并为之努力,千万不要今天觉得hadoop工资高去学hadoop,明天觉得nodejs流行又去学nodejs,太过贪婪有时候反而让我们一无所获。
相信做到了上面两点的同学每年肯定都会有很大收获,啰嗦了这么多感觉都是虚的,说一下自己从小白到小菜的过程(好有成就感。。。)
我的炼狱
有些人大学一路学霸,有些人成了游戏高手,我则平平凡凡过了四年,除了斗地主和CS没玩过其它游戏几乎,没挂过科也没拿过一等奖学金,对编程也是一知半解,没打工赚过钱,毕业前没有任何项目经验,没做过任何作业外的程序设计。把大部分时间都泡在图书馆看历史书,360度无死角平常人一个,现在看有些在校生的博客都汗颜,自己上学那时就知道在CSDN上下载源代码,除了课本上的知识没主动学习过任何东西,应付考试就行。
工作后突然感觉好多东西不会,开始看一些业界推荐的好书,一年后开始在CSDN上回答问题,答了半年在博客园上写博客,中间的各种经历上面也提到过,学了很多乱七八糟的东西,最近一年找到了自己的兴趣所在——前端,看了《JavaScript高级程序设计》、《CSS权威指南》,还有博客园上很多前端大牛的博客成长了很多。
每个人都有自己的学习方式,研究流行库函数的源码、分析淘宝等网站的源码、读好书等等,我这里只写一些认为对自己帮助比较大的方式(仅仅是前端学习)
1.读好书
尤其对于初入门的同学读好书尤为重要,开始学习前端的时候我下载了很多JavaScript经典代码100段等类似的东西,也试图做出一些精美的网页,但抄人家的代码确实能够出来效果,自己却不知道为什么可以,而且稍微想改动一下就束手无策,代码出了一些小问题也让人感觉莫名其妙,只能瞎改一通。
这是因为我们还没有建立知识基础,有很多原理性的东西不明白,对于前端入门学习,个人觉得有几本好书和资源值得推荐
- http://w3schools.com/ 这个网站就不多说了,web学习基本的东西都可以找到
- 《JavaScript高级程序设计》 在javaScript经典书籍中这本和犀牛书《JavaScript权威指南》尤为耀眼,但我觉得前者更适合初学者,因为它是按照教程的方式由浅入深,一步步教人学会JavaScript,有一定基础了可以看看后者,使自己JavaScript方面知识更全面
- 《JavaScript语言精粹》 虽然里面每章都引用一些几乎和内容无关的莎士比亚的戏剧让人觉得这是卖弄,但这本书确实值得人一看,对改善自己的代码,更加深入理解JavaScript语言特性有很大帮助
- 《CSS权威指南》 这本书不是在告诉你每个CSS属性,而是简单却又深入的阐述的CSS一些原理性知识
- 园子里汤姆大叔的 深入理解JavaScript系列 虽然这不是JavaScript入门的作品,但是非常值得一看
- 张鑫旭的个人博客 这哥们知识渊博,很多问题都讲的非常深入,而且文风很幽默,相信看了会有很大收获
2.自己动手写博客
没有诋毁回答问题的意思,毕竟StackOverflow都那么强大了,但是对于小白和小菜而言个人觉得写博客是个很不错的提高方式,很多知识看一遍觉得自己明白了,和自己能够应用知识实现某个功能之间有很大差距,实现功能到写出博客说明白某个技术的前世今生又是很大一个进步。
建议大家都自己写写博客,梳理一下自己知识,有时候我们希望写一个技术点,但发现我们还需要很多相关知识才能说明白,就会去了解这些知识,我们写的是一个点,收获的是一条线甚至一个面。在写作过程中会得到大家的鼓励、批评、意见,这些都是让人进步的动力,而且把自己学到的知识分享出来可能会帮到很多人,何乐而不为呢。
3.临渊羡鱼不如退而结网
不知道大家有没有这样的感觉在网上看到一些技术大神的履历后觉得人家是天才,心里还能安慰过去,看到园子中很多在校生对知识都理解的那么深入,汗颜不已觉得自己还不如人家没工作的,觉得自己学晚了,要是大学的时候多努力,现在就多牛逼了等等,直接打击的没有了学习的动力。或者是看到同学的工资几乎是自己两倍心里着急,觉得时运不济,没给自己个好机遇,就这样沉落下去。
我有一段时间是这样度过的,现在看看自己那段日子虽然无数次立志要抓紧学习了,可是急躁,没有静下心学习任何东西,技术上的进步反而不如天天陪我女朋友逛北京免费公园的日子。我们把太多精力用在了和别人比来比去,心急气躁打乱了自己持续的学习节奏,这样反而是有害的。心里平复后看看自己上个月写的博客,觉得自己学习了这么多知识一个月,也算是很大的进步了,临渊羡鱼不如退而结网,自己踏踏实实,一步一个脚印做到比昨天的自己更优秀就可以了。
最后
啰嗦了这么多缺陷和自己的想法,不知道是不是对同样处于小白到小菜挣扎的同学们有帮助,再回到最开始说一下自己的面试经历。决定要走了就在网上投了一些简历,因为大家都盛年后是公司招人的高峰期,所以自己想年前试几个并不是非常了解的公司,不行的话就当练练手,总结经验全力准备年后投百度,没想到起初的面试虽然给自己了些打击,但从反馈上来看还算不错。于是投了一些大公司的简历,那天在博客园的右上角看到一些招聘信息,进去后发现是个专门做互联网招聘的网站,感觉还不错(防止广告嫌疑,不说名字了,其实这个招聘网站也在招人,我还去试了,因为公司离得比较近,约好下班后过去,结果人家忘了这回事儿,去的时候面试官下班走人了),在上面看到阿里巴巴的招聘信息,看了一下觉得要求并不是很高,就投了,当时并没有抱多大希望,没想到一天后阿里就给了联系安排了两轮电话面试、两轮HR面试,都是电话进行的,然后就通知说过了,体检完就给发offer了,回想起来好不真实,但也在面试过程中学习到了很多。
前前后后面试了不少,但给感觉值得总结的不多,大概有老罗的锤子科技、网易、京东和阿里,以后有时间总结出来和大家分享一下。说了这么多做个总结:
梦想太遥远很多时候都是我们被吓倒了,没有尝试迈出第一步,也有时候是因为我们没有足够的耐心一步步走完,总是想快跑到彼岸,却在迷失了方向。个人能给和我一样同处小白或小菜阶段的程序员的建议就是,对自己有定位找到合适目标后,为目标持之以恒的努力,不被其它诱惑干扰。
在前进的路上与君共勉!