偏头痛杨写给年轻程序员的一些经验&攻略&干货

原文地址:https://blog.csdn.net/piantoutongyang/article/details/80102304

前戏
在程序员这个圈子里摸爬滚打了几年,在魔都和帝都呆过几年,
在不断的总结与复盘,不断的进坑与出坑,不断的试错与撞墙,不断的走弯路,
循序渐进的总结出了一些自认为宝贵的经验干货。

当然我的观点只是我个人的一些见解,很有可能说的有问题,希望大家及时纠正。
当然每个人都是在不断变化的,所谓“屁股决定脑袋”,每个人的高度决定每个人的视角,
当然了,我也是在不断变化不断进步的,我会把日后总结出来的经验继续补全到这篇文章中。

每当看到很多年轻的职场小白们走了自己当年走过的弯路,撞的头破血流,这让我痛心疾首。
于是想分享出自己的一些经验,对各位年轻同僚的发展尽一些绵薄之力。
本文的重点章节在于职场经验的分享,毕竟职场的潜规则,是很多课本与老师不会教你们的。

好的习惯跟你一辈子,坏的习惯也跟你一辈子,所以怎么办?



综合篇

学会换位思考
如果我是他,我站在他的立场,我会这么去思考?我会怎么去想?这样做符合不符合我的利益?
如果我是他,我会不会很生气?这件事会不会影响到我的工作?我会不会跟你树敌?
换位思考是在出现问题的时候,快速解决,快速管理自己情绪的一种有效的技巧。
站在对方的立场上去思考问题,会大大降低自己做错事的几率。


学会复盘与随时记录
无论是工作中,技术中,情感中,生活中,我们都需要有复盘&总结的能力,尤其是在逆境时。
正所谓失败并不可怕,我们不应该害怕失败,可怕的是没有从失败中汲取有价值的信息。

人无完人孰能无过,知错能改善莫大焉,其实后来想想走弯路也是一种捷径。
出现问题后,多从自己的身上找原因,不要给自己找一些借口,我们要正视自己身上的问题,
才能汲取更多的营养,自己帮助自己快速成长。
此外,我们还需要有举一反三融会贯通的能力,类似的场景发生了,就有快速解决问题的能力了。

在遇到问题或者有灵感的时候,立刻把想记下的点写到云笔记中,这些记录下来的东西,
就是自己的小金库,形成自己的知识体系树,这是一笔宝贵的财富,定期复盘,会让自己受益匪浅。
把自己总结的知识点再润色一下,然后发布到网上,帮助更多的人,是不是会更好呢?

学会使用云笔记,有道云笔记,印象笔记等等,在pc上记录,无论是在网页、手机、pc上都能同步。


知足者长乐
一辈子都要和别人去比较,是人生悲剧的来源(例如别让孩子输在起跑线上)。
其实有两种论调,一种是知足者常乐,一种是不知足者常乐。
如果你能看到我的博客,证明你还是一个普通人,
既然是普通人就不要期望达到业界翘楚例如马云那样的高度,也不要幻想有朝一日可以飞黄腾达。
成功对于每个人的定义都不一样,但想成为人上人,是要付出常人所不能付出的努力,
例如马云在创业失败后几次之后还会选择创业,就这一条就会过滤掉很多人。
所以,知足者常乐,还是那句话,人生苦短,在有限的人生里,不仅仅只是努力工作这一项。
但我并不是说让大家都消极心态的生活,不努力,颓废,各种浪等等。
努力还是很有必要的,自我挑战,自我提升,自我驱动,这些都是好事情,但要学会知足。

贪婪是人性的一个弱点,当你没有房子的时候你想买房,当你有了房子,你想换更大更好的房子,
你想买车,有了车之后,你想买更好的车,这些都是需要代价的,会让你的生活很疲惫不堪,
再想想30岁之后要面临的中年危机,上有老下有小,很多地方都要用到钱。
所以学会扪心自问一下:“值得吗?”,如果答案是肯定的,那么就去做,如果是否定的,
那么要学会知足者常乐。


不要轻易承诺
不要轻易做出承诺。承诺的事情就一定要尽可能做到,满嘴跑火车的人是得不到信任的。
轻易承诺的人会让人觉得你很轻浮,信口开河,尤其是当你食言的时候。
无论你有什么理由,食言就是食言了,会陷入信任危机,没人愿意听你所谓的理由或是借口,
还是那句话:信任是很贵的,没有金刚钻别揽瓷器活。
往大了说,这也体现了诚信,也是人品的一种体现,这是立足的根基,无论是在哪里。


职场篇
看到很多职场小白横冲直撞把自己撞得头破血流,也让我有些痛心疾首,忽然想到了以前的自己。
职场中其实有很多潜规则,约定俗成的规矩,而不是写在白纸黑字上的规矩。
在职场中会遇到各种奇葩的事以及奇葩的人,会让自己吃亏,受苦,恶心,不爽等等,
这些都非常非常正常,你经历的事情,别人也一样经历过。不要认为自己是那个最不幸的人。

尽量不要与任何人树敌,重要的事情说三遍。
尽量不要与任何人树敌,重要的事情说三遍。
尽量不要与任何人树敌,重要的事情说三遍。

在职场中即使做不到让自己成为受欢迎的人,那也不要做招人讨厌的人。


不要做情商很低的人
情商写在了前面是有原因的,与后面讲的很多东西都有因果关系。
情商这个知识点如果要是展开的话则需要单独再写一篇文章,我自认为情商比技术要难的多。
简单来说情商包括了:
1.管理好自己的情绪,不轻易动怒,伤害与攻击别人;
2.快速识别对方的情绪,学会察言观色,不要火上浇油,要雪中送炭;
3.能影响对方的情绪;

情商低的人即使能力再强,也会在职场中树立很多敌人,最终寡不敌众,被大家干掉。
情商低的人就好像浑身是刺的刺猬,别人想帮忙,伸手过去,却被扎的一身刺。

成为全民公敌是一件很恐怖的事情,如果不正确看待自己的问题,那么到了下一个职场环境,
不知不觉中又成为了全民公敌,周而复始,一直游走于职场的边缘地带。
网上也有很多关于情商的文章和书,自认为情商不高的同学可以去拜读一下,然后复盘。

在职场环境下管好自己的嘴,什么话该说,什么话不该说。
很多情况下,一个同事开了一个小打小闹的玩笑本意上只是想逗一下周围的同事,殊不知弄巧成拙,
让一些人听完之后心里会非常反感,从而在不知不觉中树敌,被大家讨厌。

例如之前市场部和hr精心策划了一次团建,然后xxx吐槽说活动做得不好,
然后被坐在附近的市场部同事听到了,可想而知对方的心情。
在职场中,不要跟任何人说任何人不好,或者任何活动组织的不好,不要树敌。

工位上自己说话或者发脾气的时候,注意旁边有同事在听呢。
不要说任何人的坏话,在别人谈论别人坏话的时候,不加以评论。
你在背后说任何人的坏话都迟早有一天传入这个人的耳朵。


不要轻易跳槽&不要轻易与同事或上级有冲突
其实用人单位是很注重员工的稳定性的,不要为了多几千块钱就跳槽,跳槽前想好自己的职业规划。
个人建议在一家单位至少呆1-2年以上,这也会位你下一家单位面试的时候加分。

在工作时,遇到让自己不顺心,不爽的事情非常多,也非常正常,不要与同事&领导起冲突,
学会控制自己的情绪,混个好人缘,不要传播负能量,因为正规单位发offer后hr都会进行背调,
如果前公司说了一些你的坏话,你懂的。。。
找别人不对在哪里?其实应该是找别人对在哪里?找自己不对在哪里,学会换位思考。


不要挑战任何人,尤其是你的领导,但除了你的下属
有些国内互联网厂的企业文化就是互怼文化,必须要怼,互怼其实是可以促进团队发展的。
如果进到这种厂里,请随意挑战你的领导、同事,为什么?因为要合群,要融入团队。
但如果企业中没有这种互怼文化,或者互怼文化不强烈,那么请继续往下看。

"你这个地方做的怎么这么LOW啊?",这句话可以在心里想,但是切忌不要说出来,
就算他真的很LOW,也不要去说他,因为如果这是真的,自有他的领导去说,所谓“存在即有价值”,
他能在这个位置上站住脚,自然有人家厉害的地方。

如果你去吐槽一个大领导管理方面的疏忽,甚至去攻击这个领导,
殊不知领导在很多年前就是某某商学院毕业,拥有非常多管理经验的人才,
这无异于关公面前耍大刀,自取其辱。

挑战领导这件事情,我是吃过亏的,领导之所以能成为你的领导,这说明这个领导肯定有过人之处,
这些点至少是你目前无法企及的,你懂得这些东西,人家早就懂了,至于为什么没有解决,
肯定是有苦衷的,有原因的。不要认为只有你聪明,别人都傻,让你站到他的位置上去做决策,
你可能一天都干不了。

而一旦你挑战了,如果掌握不好分寸,就可能会让领导不爽,从而可能与你树敌,一旦你树敌过度,
你就成了团队中的全民公敌,以后有什么好事是想不到你了,坏事准有你,还会职场冷暴力,
那最后的结果就是像狗一样被赶出团队,狼狈不堪。

尤其是在公共场合挑战领导,与领导作对,事实证明,这无疑于作死。
领导不会去提拔一个总是与自己作对的下属。并且有些情况下属能想到的一些idea,
领导早就已经想过了,之所以没有实施肯定是有什么难言之隐。

看领导不爽,觉得他太LOW了,但你有没有想过,
一旦他走了之后,下一个也许还不如他,或者还跟他一样,包括让自己坐在他的位置上,
自己也不一定干的比他好,他做不到的事情,你到了那个位置上,你也许依然做不到。

所谓“存在既有价值“,他能当上你的领导,自然有过人之处,比你强很多的地方,
也许是情商,也许是控场能力,也许是沟通能力,也许是能抗事儿,也许是有关系等等,
领导的领导绝对比你更精明,不然公司早就黄了,要知道你是来打工的,不是来搅局的。

而挑战下属就变成了理所应当的事情,挑战下属是为了让下属成长,双赢的局子。
下属也要适当的挑战,不要总挑战,引起公愤,让team反目成仇,度自己把控。

在给对方提意见时,需要考虑到对方的感受,是不是对方可以接受的意见,包括态度等等。
多challenge自己,少challenge别人。
总挑战别人,看这个不爽那个不行,你的周围会全都是敌人,周围的人也会把你视为敌人。


不要让别人等你
开会时所有人都到了,就差您一个人,不是上厕所就是在打电话,这样大家会对你的印象大打折扣,
大家会认为你就是这样一个不守时的人,并且还会浪费大家的时间。
还包括赴约,参加集体活动,工作进度等等。
项目要上线,就差您这一个功能有问题从而导致整个项目delay,您说您是不是很气人?
又双叒叕不知不觉的树敌了吧?

谁都不傻
能成为你的同事,能成为你的领导,能成为你的下属,大家谁都不傻,真的。
你曾经用于对付领导的把戏,都是领导之前对付领导之前的领导的,不要自欺欺人。
你对下属的不公平,对下属的抠门,对下属的不关心,下属也会心寒,从而间接导致离职。
这就是上面强调的,为什么我们要学会换位思考。


吃亏是福
你的能力,在别人的眼中是明镜的。各项能力,沟通能力,理解能力,组织能力等等,谁都不傻。
大家都不傻,脏活累活谁都不爱干,但是你干了,大家心里就会暗竖大指,佩服你,认可你。
会有个好人缘,将来你加过的班、吃过的亏、受过的苦都会加倍返利给你,相信我。
那些自作聪明从不吃亏的人,反而是最傻的,大家普遍会远离这种“聪明人”。
吃亏是福,被人利用从某种意义上来说也是一种好事,这证明你至少还有被利用的价值。

如果领导不断的在挑战你,让你身心疲惫,痛苦不堪时,其实这是一件好事,
这会让你加速成长,成为一个脱离平庸,蜕变为卓越的人,等你足够成熟的时候,你会感谢他。
一个好领导对下属最大的爱,就是让下属成长。


很多团队都有痛点
在一个团队呆的时间长了,难免有遇到很多无法解决的痛点,
因此很多小伙伴会选择攻击别人或干脆离职,但离职前一定要想清楚,
你现在在这个团队里遇到的痛点可能下一个团队中没有,
但下一个团队中大概率有其他让你无法忍受又无法解决的痛点,或者干脆还有现在的痛点,
那你怎么办?刚入职就离职吗?


不要说同事或领导的坏话
即使工作中出现了让你不爽的同事与不爽的领导,即使他们真的很LOW,这也很正常,
这些痛点无论你在哪个团队,几乎都会出现。一旦你不爽的时候,千万不要总发牢骚,
传播负能量,说谁谁谁的坏话,这些坏话往往都会传到那个人的耳朵里。

相反,多说领导和同事的好话,这些话也会传到那个人的耳朵里,这样对你是加分的。
一个总传播负能量的人,一定会被领导清除出团队。如果实在受不了就离职,
离职的时候领导问起原因,也不要各种吐槽,而是说自己的想法,给大家一个台阶下,
领导比你聪明多了,所谓凡事留一面,日后好相见。


公司不是学校
没有人有义务帮你,帮你是情谊,不帮你是本分。
在职场中没有班主任,没有同学,没有考试,没有作业,没有挂科,没有逃课。
你做的不好就做好被清理出去团队的准备,没有人会同情你的无能。
这就是职场,没有人会忍受你那张扬的个性,所以努力工作的同时,
请以谦卑的姿态面对身边的每一个人。

不要像在学校里一样,为自己的错误找出很多理由,不要一害怕就推脱责任,领导不傻。
工作没做完就自己加班去做,有需要学习的知识就回家里用自己的时间去学。
把在学校时的臭毛病赶紧改掉,尽快融入职场环境,这才是成人的世界。

公司是一个给你发工资,让你的能力转化成利益的地方,时间就是金钱,我的朋友~
学校是一个你得交学费,教你知识,能包容你各种问题的地方。
所以,尽快从一个孩子,变成一个成年人,这是你在职场中的必经之路。


学会帮助别人,助人为乐
有朝一日你一定会深刻理解这么一句话:“帮助别人就是帮助自己”。
现在已经不是单兵作战的时代,而是讲究团队合作的时代,要有全局意识,此外去帮助别人,
正所谓“乐于助人”,会让你的人缘会更好,更招人喜欢,体现了你高尚的品格。
别人不帮你,但是你帮别人,你就是高手,你的人缘也会越来越好。

尝试把看不惯的人看惯
在生活&工作中当然我们会遇到很多看不惯的人,自认为很LOW的人,很没素质的人,
三观差的人等等,见到这些人就不爽。那一些为人处世的高手会转化这种不爽,
每个人都有优点和缺点,那建议是看看他的优点,放大优点,缩小缺点。
如果一直抓住缺点不放很有可能早晚会与其树敌,双输的局子。
与让你不爽的人还能保持着融洽的关系,这是高情商的一种表现,喜怒不形于色不是贬义词。
情商高的人,是不会让你察觉出他的情绪的。
如果想提升情商,那么请尝试与那个让你非常不爽的人交往起来。

不要让领导主动来check
如果领导从来不check你的工作,证明你让领导非常放心,是一个非常有价值的员工,
相反如果领导隔三差五的都来问你工作进度,那证明你已经陷入了信任危机,领导对你很不放心。
要学会发起主动沟通,主动汇报,让领导放心。
不要总是把一些不确定的词汇挂在嘴边,尤其是在给领导汇报工作的时候,
例如:“大概”、“好像”、“也许”、“可能”等等,这样的话术会让领导对你更加的不放心。
此外,问领导问题,最好带着解决方案去问,这样领导会很爽。
工作需要可视化,可量化,并指定deadline。

当领导在画饼时
以前听过一个笑话就是一个员工的离职原因是:“消化不良,消化不了领导画的大饼”。
画饼是领导的一项必备技能之一,领导为了留住有价值的员工,或者鼓舞团队士气,经常会画饼。
例如我们今年的目标是几个亿的营业额, 如果达到这个目标,我们就会分红,
到时候每个人都会有几十万的年终奖,没准大家就能实现财富自由了,迎娶白富美,走上巅峰。
又例如我们近两年会上市,到时候大家都会有股份。。。
又例如,今年我们的业绩达标后,会带大家去欧洲旅行。。。等等等等。
面对领导画饼时,我们要做的就是面带微笑,坚信这一目标会达成,但自己心里有要有点B数。

先让自己值钱再想着挣钱
很多人都会抱怨自己的工资少,然后美其名曰:“反正就挣这么点钱,那就只干这么点事儿就可以了”
大错特错,员工在刚入职的时候,谁都不知道你有多大的能力,有多大的潜力。
但如果你做的事情远远超过你的薪资,那领导只要是不傻想留住你的话,肯定会给你涨工资,
这样你就走在了一条正轨上。公司是一个宝贵的平台,善加利用,会让自己以后有很大的溢价空间,
而不是天天抱怨收入,消极怠工。
先让自己值钱,再让自己挣钱,自己能力不足时,谈钱真的没有意义。
如果你刚毕业BAT给你2000月薪,你去吗?

用心去工作&自我挑战&自我驱动
我不管你是出于激情也好,职场素养也好,工作习惯也好,新鲜感也罢,工作时要走心。
这种感觉就好像你走心的去追一个你暗恋已久的女神一样,对待工作也应该如此。
我有没有想到更多更优的解决方案?我有没有义务通知到相关人员?我有没有及时的汇报进度?
我有没有double check?我有没有想到一些可能出现的状况?
我有没有跟同事与上级保持融洽的关系?我有没有真正的理解这个需求?
我能不能再多做一点事情把这件事情做到卓越?
说白了就四个字:自我挑战&自我驱动。
所有的用人单位与领导都喜欢自驱型人才,前提是情商也要跟得上。。。


水至清则无鱼
尤其是刚入职的新人,进入团队后积极想表现自己,表现欲极强,特别想证明自己比别人多优秀,
总是看不惯这个,看不惯那个,经常去挑战其他同事或领导,最后导致到处树敌,受到冷暴力。

如果你的能力真的很强,那我建议你在团队沉淀一段时间之后再厚积薄发,而不是刚上来就亮剑。
因为同事或领导可能会认为你刚进来就这么嚣张,以后那还了得,不经意间会有防御感。

新人就要有新人的态度,刚开始低调一点总是没有错的,先要融进大家的圈子里,再谈其他。
新人最重要的是合群,团队都加班,那你也加,团队都不加班,你也不加。
团队里普遍都打游戏,那你也跟着打,反之亦然。
团队里普遍都是T恤牛仔裤,那你也穿成这样,如果天天西装领带,那你也那么穿。
只有让大家觉得你不是威胁,你不是特殊份子,你才能在这个团队中混下去,
为后面的厚积薄发打基础。

职场高手即使很优秀也会故意暴露给同事一些缺点,让同事们知道自己也有缺点和问题,并不完美,
这样在自己不小心做错的时候才不会被别人放大,但如果相反你每件事都做的很完美,会让人嫉妒,
那周围的人就会把你不小心出现的失误、一些小问题放大,放在聚光灯下,得不偿失。
但切记不要把自己致命的缺点暴露出来,往往是暴露一些不痛不痒的小缺点。

看破不说破是比较明智的,聪明的人往往都会装傻,而不是特聪明的人往往会自作聪明。
很少有人喜欢跟所谓“聪明”的人在一起交往,因为怕被算计,被利用等等。
正所谓大智若愚,该精明时精明,不该精明时装傻。

在网上看到一段话觉得很好引用下来(出处已经找不到了):
职场中的生存,很多时候就是像在一个封闭的固定大小的空间里竞争,
你的空间大了,别人的空间就会变小,就会压抑和不满。
所以不管自己的能力高还是低,都要给自己和他人留有一定的空间。
对自己不重要的东西就不要极力去争取,因为对你不重要的可能是别人所看重的。


离职见人品
与分手见人品一样,千万不要认为既然都要离职了就跟这帮同事老死不相往来了,
然后就各种放荡,各种嗨,这样是作死行为,无论在哪家公司,只要在职一天就做好自己的工作,
尽量与所有人和平相处,这样回头下家单位背调你的时候,也会给你加分。
还有保不齐以后谁有事情要帮忙,同事都是自己人脉网络上慢慢积累的优质资源,
毕竟,信任是很贵的。

离职时,给大家留个好印象,该交接交接,该写文档写文档,做好自己的本职工作,
站好最后一班岗。

每个团队都有痛点,不爽到极点了之后就离职。
给大家一个好印象,千万不要说这个不行,那个不行的。路越走越窄。
离职的时候千万不要说东家不好,说自己的理由,不要得罪老东家。


当自己不认可领导的决策时
这也是一道很多公司hr的面试题之一,觉得领导的决策有问题,这是一件很正常的事情,
领导也是人,不是神仙,领导也会有出错的时候,正确的做法是单独找到领导,只有你们两的场景,
把你的建议表述清楚,记住是建议,而不是命令,如果领导听了,那就是皆大欢喜,如果领导不听,
那就按照领导的意思办,因为责任是领导在背,而不是你,你只是一个执行者,而非决策者。
反例就是在开会时向领导开炮,即使真的是领导错了,也会让领导非常没有面子,
呵呵,那你的日子就不好过了。


学习&技术篇
学习能力是一项非常重要的能力,我现在终于明白了当初老师为什么总说“好好学习,天天向上”。
其实这就是一种学习能力的培养,从小学习好,长大学习还好,那么进入职场后,
学习能力这块就比别人占优,竞争力也就增强了,有助于更快速的脱颖而出,走上人生巅峰。
脱离舒适区,自我挑战,自我驱动,大部分企业都喜欢自驱型人才。

还有一点就是要学会规划自己的职业路径以及做人生规划,低头走路不忘抬头看路。
所谓“人无远虑必有近忧”,虽然计划没有变化快,但有规划也是好的,让自己不再那么浮躁,
不再那么没有方向,让自己有能力做出比较正确的决策,让自己有能力管理自己的人生轨迹。

因为精力有限,网上又有很多关于技术类的文章,因此我做了减法,把技术类的总结弱化了。


真的要终身学习
不得不说干技术这行,真的很容易被淘汰,技术更新迭代的非常快,不学习就会被淘汰,
想当年只要学会SSH框架就可以找到一份收入不菲工作,
但你现在不会dubbo或spring cloud(中高级程序员),不会分布式,多线程,NIO,JVM等等,
你还能找到工作吗?未来的技术风口在哪里,谁也说不好。

这就是为什么要终身学习,活到老学到老,要保持住自己的核心竞争力。
这是我们这行的生存法则,我们需要居安思危,未雨绸缪,不要让自己落伍,落后就要挨打。
学习不仅是在提升自己的能力,更重要的是保证自己在行业中的生存机会。
想想中年危机,想想上有老下有老时你的状态,还能像现在这么嗨吗?

为什么研究生更具有竞争力和含金量呢?
研究生经历过考研的洗礼,能抗住巨大的压力,此外研究生具有超强的学习能力,
这些是用人单位比较看重的。底子好,又是一张白纸,谁不爱要?

看书?看博客?看视频?看公众号?去培训机构?看源码?什么都好,只要你学。
当然了,学习也有非常多的技巧,不是说你一个月能把一本1000页的书看完就可以了。
书里的知识你有没有掌握?有没有复习?有没有做笔记总结?有没有隔三差五的自测?
如果只是单纯的看,看完了过几个月就忘光了,也没有思考没有复盘没有总结没有笔记,
呵呵,那么恭喜你,这本书相当于白读了。
如果要是这样,那还不如把看书的时间用作更有意义的事情,反正也是浪费时间。

对于带书上有代码的例子,要自己亲手做一遍才行。
看懂了不是自己的, 只有自己亲手coding出来才是自己的。

想从码农的角色转换成工程师或架构师的高度,唯有学习这一条路。
不断的去思考,去学习,去好奇,去复盘,去实践。所谓"量变引起质变"。
有好奇心的人,成长空间会佷大。

但对于学习也不要非常极端,一天到晚啥也不干除了吃饭,睡觉,就是学习。
经我研究发现,一个人在不同的时间段学习的效率是不一样的,
拿我来举例子,你让我学一天的效率跟学几个小时的效率差不太多。
就是大脑已经学不进去的时候,那就干脆不要学,而去做其他的事情。
但如果每天都坚持学习,那么就会越来越优秀。
正所谓:游戏可以打,妹纸可以撩、烟可以抽、酒可以喝,但是还是要花时间和精力用来学习。

如果你是一名在校学生,你喜欢学什么就可以学什么。如果你在企业里工作,要注意,
学习新技术应当对本人和公司都有用。
要是仅仅出于个人的喜好而学习新技术,通常得不到领导的支持。记住双赢理论,而不是你自己赢。


学会做减法
学习跟生活是可以融会贯通的。
例如你会20种技术,但没有一项是深入的,都只是皮毛阶段,这样在职场中是有问题的。
在有限的人生有限的时间里,你不可能把所有的东西都做到最好,因此需要取舍,找到自己的方向。
你问一个航天员,他会不会JVM的优化,他肯定不会对吧,他甚至不知道什么是java。
一个人成熟的标志,就是懂得取舍。
学海无涯,人生苦短,应该把有限的时间与精力用在最有意义的地方,工作技能中要做减法。
要打造自己的竞争力,有自己的强优势,一般人无法超过你的,那你就有价值了。
有句俗话叫懂得越多越知道自己有多无知,懂得越多在某种场景下并不是一种好事,
因为这会让自己陷入恐慌之中,尤其是对于新手玩家。

学会时间管理
之前公司hr会给我们培训,什么是时间管理,以及衍生出来的四个象限。
一天的标准上班时间是8小时,利用好了可以干很多事,用得不好时间一晃而过。
我们应当在机能处于最佳状态时做最重要的事情,在最差状态时干最次要的事情。
什么时间用来学习?什么时间用来社交?什么时间用来玩?什么时间用来撩妹纸?
这些都是需要自己统筹规划的,如果不懂时间管理,日子一天天浑浑噩噩的过,
看见别人升职加薪,入职BAT,自己只能望洋兴叹,在羡慕别人的时候,殊不知他们付出了多少。


参加一些线下的技术沙龙以及技术论坛
其实参加这些技术论坛除了会学到一些技术之外,还有一个重要的附加值,
那就是会增加自己的人脉,认识更多的技术同僚,很多和蔼可亲的大神都是乐于分享的,
分享知识的同时还会分享自己的微信号, 那你加上这些大神的微信号,有问题的时候可以沟通,
没问题的时候看看大神发的朋友圈,也会嗅到一些技术的前沿知识,让自己不再处于知识孤岛状态。

即使没有加上大神的微信,退而求其次,也可以加一些技术同僚的微信,让技术沟通成为可能,
从而一步一步编织自己的技术人脉网络。


刻意培养自己的逻辑思维能力
我认为人的大脑就像齿轮,时间长不转动齿轮,齿轮就会生锈,从而导致反应迟钝等负面影响。
没事做一些逻辑题,appstore上有很多这种app,那么为什么要做呢?
逻辑思维不强的人做不了合格的程序员,因为在程序员的日常工作中充斥着大量的逻辑,
无论是数据库、代码、需求、架构、运维还是同事之间的沟通都蕴含了大量的逻辑&关系等等,
有的时候业务人员想不明白咱们得想的比他们更清晰,这样才能把风险降到最低。
产品经理描述完了需求,程序员听不懂或不知道如何转化成代码,这就尴尬了。。


新人面对吨级的知识点(java服务端方向)
在我的技术群里了解到很多未毕业或刚毕业的童鞋们出现恐慌心理,发现要学的东西太多了,
不知道学什么,未来的方向也比较迷茫,看着周围的童鞋都在面试,拿offer,很紧张。
如果你是想走java后端工程师的话,那我的个人建议是:
三大分支为基础(java基础+mysql基础+spring基础),java基础可以看我的系列文章。
之后再学一些非常主流的开源框架例如:spring+springmvc+mybatis+springboot。
之后再学习2个服务器软件:nginx+tomcat,简单学点html+ajax+jquery,
之后拿这些知识去做一个demo网站,里面有增删改查的功能,然后就可以去投简历了。

个人建议:新人不要深入学习前端的技术,因为前端是前端工程师这个岗位去做的,
不要学大数据&人工智能等等,也是同理。

包括现在很火的微服务,rpc,分布式(包括消息队列与缓存),多线程并发,NIO,JVM等等,
以及研究各种开源框架的源码,这些知识点都是以后要深入学习的,
刚入门的童鞋可以不要把有限的时间精力耗费在这些上面从而造成恐慌心理。

而对于有多年经验的老玩家而言,也要学会做减法,打造自己的技术深度,结合技术广度,
打造自己的金字塔形知识体系。


java后端工程师的主流技术学习路径
1.java基础阶段
类、对象、变量、接口、抽象类、数据类型、封装&继承&多态、异常、内部类、注解、泛型、
枚举、多线程、IO&NIO、网络编程;

2.java web基础阶段
servlet、filter、listener、jsp、session&cookie、tomcat、mysql、jdbc、junit、html、javascript、
json&xml;

3.单机web系统&前后端分离阶段
spring、springmvc、mybatis&spring jdbc、nginx、druid&c3p0&dbcp、quartz、gradle&maven、git&svn、jenkins、linux;

4.RPC&分布式&面向服务阶段
springboot、dubbo、zookeeper、redis&memcached、rocketmq&rabbitmq、docker、mongodb、
hadoop、elk、drools;

5.微服务阶段
spring cloud、sevice mesh;

中间穿插着深入理解java多线程、NIO、JVM、GC、CLASSLOADER、数据结构与算法、协议、
设计模式等底层原理知识点。
以及JDK1.8之后新增的例如函数式编程等知识点,
以及尝试去阅读一些java底层和优秀开源框架源码。

上述这些每个知识点都可以展开成n个小知识点,再继续延展下去,像天女散花一样多,
这就是我为什么总要强调,要打造自己的知识体系树,结构化学习,结构化记忆&总结。
让知识记得更稳,更牢,更快。

注意请不要把有限的时间&精力浪费在过时的技术上,现在很多网上的老文章有很多都在误导新人,
让新人浪费时间,走弯路。

过时技术列表,箭头左侧代表过时的技术,右侧代表替代的技术:
持久层:jdbc->hibernate->ibatis->mybatis
WEB层:servlet->struts->springmvc
业务层:ejb->spring
远程通讯:mina->netty
数据库:oracle&mssql->mysql&postgresql
应用服务器:tomcat->weblogic&websphere&resin&jboss->tomcat
WEB服务器:apache->nginx->tengine
连接池:dbcp&c3p0->driud
消息队列:activemq->kafka->rocketmq&rabbitmq
页面:jsp&jstl&el->html+ajax
构建:ant->maven&gradle
版本管理:cvs&vss->svn->git
通信:xml->json
服务化:web service->restful url api&dubbo&spring cloud

提一嘴tomcat,为什么tomcat能力有限,还有人大量使用,
因为tomcat免费,开源,容易组成tomcat集群,用docker可以动态扩容。
在使用springboot之后,把tomcat内嵌到java进程中,使用上更加方便了。

以及不要去深入研究类似于安卓、前端、大数据、人工智能等方向,因为这些属于转行了,
所谓术业有专攻,把好钢用在刀刃上。



推荐的技术书籍&微信公众号
推荐的技术书籍:
《Java编程思想》
《深入理解java虚拟机》,周志明
《架构探险》系列,黄勇
《Java程序员职场全攻略:从小工到专家》,吴亚峰
《Java并发编程实战》
《Java并发编程的艺术》
《Java NIO》
《Spring实战》
《Spring源码深度解析》
《大话设计模式》
《设计模式之禅》

先自己测试
提测前有没有自己真正的测过?有没有写单元测试用例?
再简单的功能,即使没有自测过,也会有出现bug的风险,这不是自信与否的问题,
而是对自己提测代码负责任与否的问题。
如果经常把有bug的代码部署到测试环境,让测试工程师发现,会让自己的能力受到质疑。

尽量不要写重复代码
两段代码一模一样被复制到了不同的地方,那么这段代码就有重构的必要。
不要当代码复制师。思考一下,如何重构、封装,让其他人复用,使其结构合理。
当然,做到重构,需要去系统的学习一些类似于设计模式的知识,这样才会游刃有余。


面试篇
面试中有很多前辈总结出来的技巧,量变引起质变,多面试就好了,面试完记得要复盘,查缺补漏。
简历中尽量不要有黑历史,例如在一家单位呆了几个月就离职,这就属于是黑历史。

其实面试这个过程,是会让自己技术能力快速提升的一个有效途径。
面试官问你的问题,你没回答上来,回家后复盘总结,把这个问题攻破,以及学会举一反三,
这种学校效率很高,因为有动力,有方向。


写简历的技巧
关键信息要突出,把你最想表现的,最想让用人单位看到的重点&亮点放在前面。

简历需要简单明了,字数不在多,篇幅大的简历反而让考官觉得很繁琐,看不进去,
同时也会淹没你想要表达的长处与亮点,但也不要太短,一般控制在2-3篇A4纸即可。

简历可以做一定程度的夸张&美化,但请不要太过分了,度自己拿捏。
其实面试主要是针对简历的一种检验,如果简历中大部分情况属实,那拿offer的几率会增加。

简历不要做的太华丽,华而不实会被嗤之以鼻。
(就像你天天西装笔挺去上班,你们领导天天穿T恤,你觉得合适吗?)

投简历前,要先了解一下用人单位的岗位需求,尽量让自己的简历往那个方向靠拢。
不应该只准备一份简历,应该针对每个单位有不同的改变。


不要想跳槽的时候再去面试,再熬夜看书,临时抱佛脚会让你的压力非常大
注重平时的积累,把知识体系分块,总结形成自己的知识节点树,多理解多消化多背。
多看一些jdk的底层源码,有的时候好机会来了,你平时积累的又好,就立刻能抓住这个机会。
不想跳槽的时候也可以出去面试几次,知道自己在大环境下的竞争力有哪里,让自己变得更强。

面试前先看自己的简历,换位思考,把自己当作面试官,会问自己哪些问题
如果以前有过当面试官经验的同学,应该会很好的把控,简历中不要什么都写,瞎写。
问到一些基础问题你答不出来,就瞎了。
例如简历中写个掌握redis,然后问你redis与memcached的区别,或者redis能放多少种数据类型,
然后你说你忘了,基本上就可以回去等通知了。

面试官会问到之前的项目你有哪里亮点表现,要提前准备好
举一个具有代表性的技术难点,当时是如何攻破的。
例如之前的项目在生产环境下爆发了一个mysql的cpu与连接数双99%的情况,或者缓存一致性问题,
由我来快速定位和解决的。要把解决的背景、思路、解决方案、结果(STAR原则)阐述清楚。
如果真的没有任何场景,那就自己编一个,背到滚瓜烂熟,无懈可击。

给面试官划重点,让面试官问你一些你拿手的问题
例如你的算法很弱,多线程很强,当面试官问到算法时,
你可以说:“抱歉,算法我比较薄弱,我的强项在多线程,可以问一些多线程的问题吗?”
每个人都有他的强项与弱项,所以平时在积累的过程中需要打造一个自己的知识金字塔。
面试的时间是有限的,让面试官多在你的强项领域游走,那自然就没有太多时间问你的弱项,
所以整体面试是加分的。

面试官可能会问到之前项目的业务逻辑以及如何建表
面试前先看一边自己的简历,把业务逻辑想清楚,自己多问自己几遍,不要被问住。
还有面试的一个大忌就是特别紧张,说话结巴,面试官问一个问题要想好久。
如果想了一下,确实不会,就直接了当的说不会,不要拖。

回答面试官问题时,要有发散思维,不要只回答他问的那一个点
要发散性思维去给面试官更多的东西,让面试官眼前一亮,给自己加分。
例如面试官问你什么是索引,你回答完索引后还会自己发散到索引的优化,索引的类型,
索引的底层原理。
并把发散出来的东西跟他说一下,这样你就占据了面试的主动权,因为面试时间是有限的,
你如果能让面试官在你的强项领域花费了较长的时间,
那他自然就没有时间问你很多其他领域的问题,这样你的面试结果自然就是加分的。

不一定回答问题不出来就拿不到offer
面试官问的很多问题你回答不出来也没有关系,面试的过程主要是看面试官与你沟通有没有gap,
是否顺畅,看你是否顺眼,看你的态度,那是一种感觉,就像谈恋爱一样。
有的问题即使你答不出来,但说一下思路也是可以的。面试官把你虐的爽了,给你发offer也正常。

面试后的复盘与查缺补漏
其实就是一个review的过程,如果这次面试问你的问题你都答得非常好,那这次面试的价值不大。
相反,你答得不是非常好,或者很差,那价值就大了,回家后你把这些问题全部搞明白,
你就升值了。其实面试也是一个快速自我提升的过程。

如果你感觉面试官问你的问题都很low,不建议接offer
技术面试官代表着一个技术团队的技术峰值,如果问的都是很low的问题,
则表示这个团队的峰值。。。你懂得。
如果offer给的很好,想养老建议接offer,如果想技术快速成长,建议拒绝offer。
毕竟最好的技术成长方式就是在工作中实践。

期望薪资别乱要
一般来说在一线城市java工程师的平均薪资水平如下(2017年):
3-5年:10k-20k
5-7年:20k-30k
7-10年:30k-50k
要低了显得你能力不行,对自己不自信,要高了会把用人单位吓跑,因为毕竟hr会收到一堆简历,
比你能力强的,比你要价低的,比比皆是。
这里的工作年限不是你天天上班混日子呆到几年就行了,你懂的。

当面试官问到你的爱好
一般在技术面试后,面试官会问一些生活上的问题,例如爱好等等。
千万千万千千万不要说你的爱好是打游戏,即使你真的喜欢打游戏,或者旅行等等。
换位思考一下,如果让面试官知道你喜欢游戏、旅行等,就会想到你每天下班都会打游戏,
请假去旅行等。这不是用人单位想要的,可以说一下不影响工作的爱好,
例如:摄影、跑步、羽毛球之类的。

需要硬着头皮去看一些开源框架的源码
面试官一般会问你是否有看过源码的经历,如果说没看过,肯定会减分。
看源码前需要先了解里面的大概模块以及功能,还要熟读设计模式。
拿Spring举例,你要先知道什么是IOC与AOP,spring的组成,什么是动态代理模式等等。
然后再单刀直入,加断点一步一步跟。你如果能把一段源码说明白,也是面试的加分项。

需要有徒手画图的能力
给你一张纸一支笔,让你画图,没事在家里多练习几遍,问题不大,
并且徒手画图更能加强知识的归纳与总结,一箭双雕。
例如:JVM结构图,线程的生命周期,集合集成体系等等。

问面试官什么问题
一般主流面试的最后一个环节都是反转一下,面试官让面试者来提问,面试者需要抓好这个机会,
问太多或什么都不问都显得自己比较LOW,那应该问什么呢?个人建议问2-3个问题即可。
例如:目前使用的技术栈,架构,以及团队规模,产品的情况,当前日活,日均pv,并发量等。
通过这些问题求职者可以大致判断出这个团队未来的走向,面试是双向选择,面试者有权say no。
如果发现面试官回答的内容与自己的期望大相径庭,那么不建议接offer。


未来篇
现在很多人感叹中年危机,很多人对未来充满恐惧,那该肿么办?。
因为我对于未来也是拿捏不太准确,因此特地引用了雷之宇前辈的段落。

程序员发展4个方向


1.继续从事技术研发的路线
工作态度严谨,生活简单有序,不再轻易变换工作,希望通过努力工作,得到老板和同事的认可,
年轻时的锐气正在慢慢的消退。
因为他们的性格特点,基本上可以确定他们以后很难在职场上获得跨越性的发展,
成为技术骨干、或是技术专家是他们发展的方向。
一旦面临“失业”、“再就业”两个难题,面对上有老下有小而且还要供房,
供车的中产阶级恐怕是个致命的打击。

失业后贷款会造成很大的生活压力,不再提前消费。
建议:要改变命运,先改变性格,坚持半年晚上不从事工作、游戏、看电视,用此时间与人交往,
你的人生会有所改变。


2.晋升到技术管理层
一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提升的可能。
优势:
大多数有5-10年编程经验的程序员,通常具有较强的技术背景,也有一些客户关系的处理能力,
并且参与过多个软件开发,对团队项目协作有一定经验的人,项目管理无疑是一个很好的发展方向。
劣势:
项目经理往往对项目有很强的控制能力,以及与客户良好的协作能力。
但往往由于编程的时间少了,管理的工作多了,习惯成自然的认为项目的成败取决于客户关系,
或是过分强调自己的价值和作用,结果心浮气躁,频繁跳槽,长期下去会造成技术背景老化,
对项目的理解和控制能力下降,渐渐失去其应有的价值。
因此,务实、稳定、有主见、能独立思考的人是项目经理的合适人选。
如果你现在已经是总工或开发部经理,或者你眼看就有机会被提升为这类职务,
那么恭喜你,你走的是从“弼马温”到“斗战胜佛”这条金光大路,你不仅拥有很高的专业技能,
而且很显然,也有着很强的人际交往能力,你这类人根本不需要对未来有着任何的担心,
即使在一无所有的时候也很容易白手起家。

你是不是这类人很容易区分:
工作4-5年后,你会发现自己工作中指手画脚的时间比亲自开发的时间要多了,
而且大多数这类人在这个年纪手下应该有兵了。
相反如果你快30了还天天埋头于电脑前编写程序和画板子,或30多岁了还没有升到部门经理
(虽然你觉得你很有希望),基本上可以确定你不是这类人。
如果你是这类人,那么你唯一的想法就是尽快爬到中层or高层,因为有时人生偶然性太大,
能力和职位并不是总是相当吻合。


3.转行到市场、营销或其他领域
这类朋友当时转行通常并非自己志愿,属被逼无奈或其他原因,很显然,
拥有专业知识的他们显然在非技术部门中鹤立鸡群,遇到什么事情他们均可从专业的角度提出建言,
久而久之,他们获得更多的升职加薪机会也不足为奇。

升职为服务部门的经理或行政经理等职位,甚至成为总经理或副总经理,进入企业决策层。
建议:你如果确定在开发部无法获得很好的发展机会,不妨转到其他几个部门试试,换个生活方法,
不要太过于看中眼前的利益,多些尝试,多些机会可能会有意想不到的收获。


4.自己独立创业
通常开公司都是几个人合伙开始的,有做技术的,又做市场的,几个人一拍即合,通力合作,
共同策划。于是你找了地点,注册执照,买了几个桌子,再弄了2台电脑,每个人又凑了几万,
公司开张了。你坐在老板桌前,不停地有人来汇报工作或找你签字,人进人出中,
你看到了前途、希望、也看到了未来。
很快就得到了客户的订单。但完成订单让大家凑的那点流动资金不够了,
于是大家很高兴的又增加了投入。
你们的产品确实不错,市场也经营良好,客户慢慢的多了起来,订单来的时候一笔接一笔,
你每天都处于兴奋之中,但客户的回款总是会托一些日子,
所以你们为了资金的流畅运行又凑了一些钱,
这个时候身为总经理的你有一些心事了,因为银行帐号里的钱快趋于0了。

没事,等2个月回款了,一切都OK,谁干事业不吃点苦?你这么安慰着自己又投入到工作中,
资金总是在回款和生产经营费用之间走着一个窄窄的小木桥,你的帐上总是没有太多的钱,
扩大了的公司规模和许多意外情况,
使你再一次二次三次的与合作者们投入自己的资金,当然,这些钱也许你是借的。
最终有一天,你的会计再一次告诉你,老板啊,账上又没现金了,
吃过多次苦头的你终于下决心开始重视资金的运行,你裁掉了一些不必要的人手,
减少了开发的投入,要求市场人员签单的时候必须预付xx%的预付款,回扣也必须等收过款后再付,
同时也开始对产品的生产成本开始进行控制。

时间一天一天的过去,因为竞争对手的产品也对你的产品进行了仿照,
你的产品慢慢的变得不那么先进,市场人员也开始埋怨公司在合同资金方面规定太严格,
不好签单,生产成本的下降通常也导致产品毛病的增多,
客户也开始埋怨你的服务人员不能及时进行服务。

终于有一天,你重新走进了人才交流中心,以前你是来招人的,
现在你拿着自己的简历开始寻找一个工作。
公司的成功与否,与产品有关,与市场有关,但更重要的是与资金有关,
产品与市场都可以通过资金来弥补,而却没有任何东西可以替代资金。

建议:先参与经营,积累客户与经验,后尝试独立运作。
在你决定开公司之前,先估计一下你公司支持一年所需的资金数额,
包括人工费、生产、场地、广告宣传、市场、水电费等,
把你所想到的一切加在一起,看看多少钱,再乘以一个系数(如果你从来没有开过公司)。
开公司前最重要的是先确立你的后续资金来源,当现金流不好的时候怎么办?
房租要付,工资要开,市场要继续投入


注重积累
积累非常重要,无论是知识、经验、人脉网络,都需要积累。做每一件事、每个决定都要注重积累。
如同下围棋一般,要注意保持全局的形式和利益,如果你紧盯着每一个旗子的得失,
你所损失的往往是全局的利益。如果你已经有10年以上的工作经验,
那么有必要对未来进行一个相对宽泛的定位。然后尽量让每一次工作、
每一个决定都符合这个大的定位。

1.不要因为人际关系或待遇的问题选择跳槽
尽管你可能和现有的领导、同事有了比较大的冲突,
但请相信逃避不是解决问题的方法,如果你不能学会解决和化解这种冲突,
你在新的单位一定会碰到类似的问题。

如果你跳槽是为了获得更好的待遇时,那么首先建议你应该和你现有的领导面对面进行交流,
坦诚告诉他你的顾虑,困难和期望。即使双方没有达成一致,也要站在对方的立场上多加考虑,
尽量将离开给对方的损失降至最低。
因为保护对方的利益就是保护你自己经营多年的人际关系和客户网络。


2.不论你所服务企业的规模大或小,你的职位高与低,都要全心全意的工作
即使它可能和你对自己的定位有些冲突,你可以选择离开,但在你为它工作的每一天,
请竭尽全力。因为,你是在为自己工作,你所付出的每一分努力都是在为自己的未来多一点积淀。


3.多与从事市场营销工作的朋友进行交流
尽管你接触他们时可能总会觉得他们知识比你少,甚至素质比你低。
但实际上,他们可能比你更懂这个社会。尝试着参与到他们的圈子里去,
和他们一起聊聊天,打打牌,洗洗桑拿,你会通过他们接触到另外一个世界。


4.机会远比金钱重要
在年轻的时候,赚钱并不是最重要的目的,可能一个小小的机会就能让你的收入成倍的提高。
事实上,我也不建议年轻人(30岁之前)过早的购置住房,即使你现在租房子的成本很高。

年轻时精力充沛而且毫无负担,一切都不确定,一切皆有可能,这是何等的自由和洒脱。
你可以换一个城市,换一个生活环境,或者再回到学校继续读书,甚至选择出国留学,
感受一下地球另一边人们的生活方式。但如果你贷款买房,十余年的经济压力,
会让你在决策时有所顾忌,从而失去很多可能的机会。

因此,如果有机会参与到工作外的一些项目,认识一些其他的朋友,
不论是在现实中、网络世界、或者其他的地方,哪怕是帮助的性质,也要积极介入。
至少你会交到很多的朋友,你的人生也会因此变得绚丽而多彩。


总结
不知不觉写了小2万字了,其实有的时候我会在想,如果我没有走过那么多弯路,该有多好,
如果我的人生轨迹,职业轨迹中,有个像我一样的人带着我该有多好,那我会走多少捷径?
但其实有的时候,弯路就是捷径。。。

人生没有如果。
希望有幸看到最后的童鞋们,可以在自己的人生道路,职业道路上走的顺风顺水,
多走捷径,少走弯路,你们的提高,是对我最大的鼓励。
谢谢大家。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页