7月分享

大家好,我是转发七月的,今天给大家带来我的一次分享。分享仅代表个人观点,大家听听就好,希望能帮助到大家。

本次分享的主题是 关于程序员的 职业规划,希望能帮助大家能开心的度过20岁,幸福的过好30岁

先给大家讲个故事,2019年英雄联盟S9冠军FMVP小天,在2018年时还默默无闻,没有LPL的队伍要他,一个人每天独自住在地下室里孤独的打Rank,每月薪水大概只有5000块。这与他同期的选手相比,简直是少的可怜。直到FPX选中他,才有了今天的FMVP。

小天还是幸运的,能在LPL中打比赛的选手,年薪不会少于100万,更何况是获得了世界赛冠军的选手,薪水更是不敢想象,这还不包括各种商业活动、直播所带来的收益。

但这令人艳羡的收入背后,是需要付出及其残酷的努力的,残酷到令人可怕。

职业选手的训练是强度是非常高的,一天十几个小时的训练+Rank是常有的事儿。很多人觉得打游戏很开心,但真的让你一天打十几个小时,一般人是受不了的。每天中午起床、训练、比赛、rank一直到深夜凌晨,第二天再重复,枯燥且乏味。一年也大概只有在春节的冬歇期会有一个月的休息时间。很多选手因为常年的训练,腰部、背部、颈椎、手都有不同程度的伤病。

即使这样的付出,也很难站在LPL的顶级联赛上。LPL只有17个队伍,能活跃在这个顶级联赛的选手全国只有不到100人。职业选手之间的竞争远比其他运动要残酷太多了。更何况职业选手的黄金年纪最多只有5年,从18岁到23岁,有的选手甚至更短。这比足球、篮球等运动的黄金年纪要短太多了。

没有哪个职业是轻松的,在那些耀眼光环的背后,其实是无尽的辛酸、泪水与汗水。要想获得成功,刻苦的付出是最最基本的要求。

恕我直言,我们现在很多人的刻苦的程度是远远不够的。

但我并无意怂恿各位同学都像职业选手这样刻苦。每个人对待生活的要求是不同的,有很多人本身对物质要求不高,也不愿意去付出努力,这并不能说他们有什么问题。生活并不是只有物质才是唯一的快乐。

做一个有趣的人,也是个不错的选择

但人生最可悲的是,既有太高物质追求,又不肯付出相应的努力。夹在两端是焦虑的本源。

所以同学们需要想清楚要追求的是什么,如果是追求物质,那必然要付出极其艰辛的努力,除非家里有矿

所以,不管你以后想做什么,认清自己,看看自己愿不愿意为物质付出这么多的辛苦,才是最重要的事情。只有认清这一点,才能为自己选择一条合适的路。

就如同我们之前谈到的电竞选手,即使你一年四季刻苦训练,都不一定能站在LPL这个最高级别的联赛上,所以刻苦的努力只是一个基本条件,还需要有天赋,更需要有一些运气。

刻苦+天赋+运气,要想获得成功,这三者其实缺一不可。

经常有学生会问我,编程需不需要天赋?

不得不承认,其实,是需要一些的。天赋可以决定你最终在编程路上的高度,像C#之父、Linux之父,这些天才之人毫无疑问是有天赋的。不是每个人都能通过努力达到这样的高度。

但人生有趣的地方就在于,我们并不想达到这些程序天才的高度,我们绝大多数的人其实也只是想让自己通过编程吃饱、穿暖,过上小康的生活

鸡汤告诉我们,只要你努力,没啥做不到的。这其实不现实。就算做到了,也未必是你真的想要的。所以最关键的就是认清自己,没必要去做那些付出很多却收益很低的事情。

就拿程序界的LPL联赛——BAT来说,其实国内几百万程序员,能在BAT的程序员其实少之又少。所以你确定你拼劲全力就一定能进去吗?技术是一方面,更多的时候其实进BAT还需要一些运气。

能进去固然很棒,但进不去也大可不必觉得人生就没有了希望。很多中小公司的程序员过的未必比BAT差。当然进BAT是很多程序员的执念,这个就另当别论了。

我这篇分享没办法帮助大家进BAT,但如果你认真看,它至少可以让你在程序这条路上走的更远,生活过的不会太差。

所以,认清自己是大家在规划自己职业路径的时候,首先要明确的事情。只有在明确了这一点,我们后面的分享才有意义。

我们程序员的职业生涯大概是从20岁开始。20岁我们都在干什么?也许我们还在校园的象牙塔里挥洒青春,也许我们已经走出了校园进入了职场

如果我们还在校园里,那最重要的其实只有2件事情:

  1. 好好学习
  2. 谈个女朋友/男朋友

没有比这个更重要的事儿了

如果你所在的学校属于一本以上,那我的建议是专注计算机基础理论的学习,包括操作系统、计算机原理、算法和数据结构、Java语言的学习。项目可以少做甚至不做。大厂校招是会考虑学校的。

如果你所在的学校不是很好,那么应该把实践(项目)放在第一位,同时,你的期望值必须要调低一点,否则你会很焦虑,焦虑不是件好事儿。

如果你所在的学校不是很好,那么应该把实践(项目)放在第一位,同时,你的期望值必须要调低一点,否则你会很焦虑,焦虑不是件好事儿。

换句话说没有一个好的学历,那就必须拿作品来说话,作品是一个程序员最好的自描述,比你那些花里胡哨的简历要实在很多。很多程序员说没有好的项目,这是骗自己,无论是参与开源项目,还是自己尽可能的1:1模仿优秀的互联网项目这都是很好的做法。当然最好的还是能参与一些开源的项目。

这一条同样适用于现在工作不是太好,想跳槽去BAT的同学

用能放的上台面的纸面实力,弥补学历的不足,是同学们去大厂的最好方式。一定要看得见,有说服力。如果你有一个Star在2000+的项目,其实去大厂很轻松。

这里强烈建议大学生可以学习一下Java,这对培养自己的编程思维非常有好处,因为Java这个语言是经典编程思维的代表,而很多经典编程思维动态语言是不强调或者说非常容易忽略。很多后端能够很轻松的成为全栈开发者的原因是因为,他们是从Java开始的编程之路,从Java入手学习别的语言比较轻松,但反过来从动态语言入手再想学习Java、Go等语言就不是那么轻松。

Java、C#、C++ 三者任意一个即可

一定要选择 这类经典的编程语言

考虑到实用性,目前也只有Java最合适

Python和JS都不是最好的首选语言,作为二语言最合适。

为什么 建议是这3个语言。因为这些语言有很多 跨语言的编程思维

在这里插入图片描述这是Java中的思维,但其实是软件工程中的思维,不论是JS还是Python,其实都有这样的需求

不会因为是动态语言就不需要

很多同学看不懂源码的根本问题 不是在于自己太菜了 语法不熟悉

还是 这些 软件工程的思想不熟悉,不懂得为什么好的框架代码都要写的很复杂

这个时代一个程序员掌握多种语言是再稀松平常不过的事儿了。

追求多语言不是目的,但一个人能够灵活应用多种语言,是一种能力的体现

如果在工作中有条件和能力的话也应该补习下Java。很多在前端同学看起来非常神奇的思维和机制,其实在后端编程里是非常常见的,比如一些设计模式、IOC容器等概念。

很多人说算法是好程序员和普通程序员的分手岭,这句话放在过去是正确的。但现在对于软件这种高度封装的东西,要求实在太高了

思想和设计模式才是 最合适的分手岭

如果在大学时能少玩游戏,多学习一些编程技术,差不多是真可以积累2到3年的工作经验,出来找工作是比其他人有很大的优势的。(主要是现在大学,不学习的人太多),大家要把握好这个机会。

我们是技术人,技术自然是要过硬的。所以在我们的20岁的时候是最好的学习技术的时机。在这个年纪,大多数人没有家庭的负担,也没有太大的经济压力,如果这个时候不去认真学习,那么30岁后,就没有这个环境和心境了。

很多同学经常问我,老师,我觉得我很迷茫,我不知道怎么学,我也不知道到底要学到什么程度。这个问题在我看来,它本质是因为,我们本末倒置了技术。技术是一个实践性很强的东西,我们太多做技术的还抱着应试教育那种学习模式,高考又不考编程,并没有一个能决定你人生的考试等着你。

拿我自己的经历来说,我从不为找工作去学习技术。从我学习第一门语言开始,我就是为了做点东西和解决问题。高中的时候是为了在文曲星上用Basic语言写个RPG小游戏给自己玩;大学时是为了给老师做项目;工作了也是为了去解决一个个的问题,在解决问题中去学习编程。

但我才工作时,写程序到凌晨3、4点是再正常不过的事情了。驱动我的并不是 薪水,也不是为了完成任务,而是一份成就感,我把工作的项目当自己的作品。我的起点就别很多人要高

没有目标的学习,确实很容易迷茫。而且很容易学了就忘记了,学了也不知道学的到底是个啥,因为你没有把自己学习的东西用到实践中。
你需要考虑的是技术的转化,上班打工这只是转化的一种途径,其实还有很多。

技术要服务于 收益,而有了收益反过来 是可以促进你的技术成长的。

这是双向的,而不是单向的

很多同学说,我就是不知道目标是什么。这很简单,你完全可以参与一个开源项目,或者自己给自己虚拟一个项目,甚至是可以在慕课购买一个课程,以这个课程的项目为雏形,不断丰富和完善。我就见过一个同学,学了我的电商课程后,人家硬是不断的扩展不断的追加新的功能,最终做出了一个中等规模的电商小程序,有团购、有秒杀。团购的业务你不知道吗?秒杀的业务你不知道吗?所以说,没目标没项目都是借口呀,同学们。

有一个同学,看了我的KOA课程后,自己去研究了我的开源项目Lin-CMS,做了一套完整的应用程序。我其实挺佩服这些同学的,这才是真的把一个课程的价值发挥到了极致。

而我们大部分同学仅仅只是 被动的把课看完了,并没有动手去做 一些自己想做的东西。技术这东西其实很纯粹,无非有两个途径:1. 打工赚钱。2.做自己想做的东西

第一个 用处自然是显而易见的,但第二个用处很多同学 没有意识到。

如果你依然还是在用教育都已经抛弃的应试态度在学编程,那还是建议三思,这是走不远的。

编程技术浩如烟海,你指望靠学去学完 学好,那是不可能的

20到30,这10年时间其实是非常短暂的。以前我们谈35岁的程序员危机,但现在由于程序的门槛越来越低,30岁就是程序员的危机了。不是说30岁和29岁有多大差别,其实在生理上没有太大差别,但在心里上差别是巨大的。这不仅仅是企业对30岁人的态度,你自己其实也会觉得30岁是一个巨大的门槛,你已经不再年轻了。

30岁时,如果再想着靠技术吃饭,基本不太现实。比你便宜的年轻人有,你30岁要求的薪水不可能和20岁的人一样,你有妻子有孩子,怎么可能期望和20岁一样。你觉得你和20岁的人比,你的优势是什么?经验?很抱歉,经验其实对于程序员这个行业来说,没有那么大的鸿沟,因为软件在现代来说,已经模式化了,它不是高精尖的产业,你的经验可能一文不值。

所以,30岁要拼的是综合素质,包括沟通能力、领导能力、管理能力、分析问题的能力,你的经验只有结合这些能力才能值钱,你之前的技术积累只有结合这些能力才能继续发光发热。

很多做技术的人心里是瞧不起做管理的人的,我以前也是,觉得技术是纯粹的,管理能干啥?但最后随着年岁渐长,我明白了一个道理,想有更高的回报就需要提供给企业和社会更大的价值。一个人只做技术的价值是有限的,但管理不同,管理可以让一群人的价值最大化,这也是为什么管理的薪资肯定是要比普通技术要高不少的原因。

那这些能力怎么培养?这些看似很虚却又很重要的能力其实并没有一个像技术一样的学习路线。很多同学说,我20岁还年轻,我应该先学技术,等我技术学好了,再考虑这些问题。大错特错。

这些能力的培养或者说综合素质的培养,不要说20岁还年轻,这些其实是应该从小就应该培养的。很多时候,等我达到了什么目标,等我生活安定了,等我先找到工作了了,我再干什么事情,这样的想法和放弃是没区别的。

我以前做直播的时候,跟大家聊说综合素质和重要,我推荐大家在学习之余需要多去读书,不是读技术书而是读文学、历史。当你的综合素质提高了,其实你会发现这些能力的获取途径自然就清晰了。综合素质可以影响我们的很多选择,而人生其实就是由一个个选择的结果堆积起来的,一次选择会影响到下一次,正确的价值观和人生观会影响你每一次选择。

大家有没有想过,为什么同样的两个人在同一家企业,为什么一个人的薪水可以比另一个高出1倍甚至好几倍?为什么每次加薪其他人的幅度都比你高?我带过不少团队,我心里很清楚是为什么,技术绝对不是主要的区别点。都到了一个篮子里了,大家耳濡目染,朝夕相处,谁还比谁的技术能差多少?其实主要还是有的人综合素质高,能把各种事情处理的仅仅有条,又有自己的原则,简单来说,就是做事儿做的漂亮。

这样在企业里,KPI肯定高不了,也不可能有前途。没有领导喜欢这样的下属,领导的事儿很多的,你指望他每一个细节都给你指出来,那和他自己去做有啥区别?为什么还要你去做。你能帮你的leader省心,你在企业里就不会差,无论是什么公司都是这个道理。这肯定不是仅仅只有技术就可以办到的,真需要大家提高综合素质

其实各行各业都对综合素质要求很高,但往往程序员这个职业有点另类,大多数人不看重综合素质,只是一味的猛学技术。

当然,我从不否认技术的重要性,只是我们现在很多同学太盲目的追求技术了。但如果你仔细观察身边的人,很多技术好的人,综合素质其实不差。因为综合素质其实可以帮助你更高效的学习,让你知道怎么学习,该学哪些,不该学哪些。这无疑是提高了学习的效率。简答点来说,综合素质可以帮你做出最符合你利益的选择。

综合素质高,编程思维其实自然是有的

相信我在不同的课程和分享中,其实一直都在强调综合素质,甚至是编程思维相比综合素质来说都没有那么重要

但什么是综合素质,我觉得很难用语言来描述。我给大家看个文档,来说明什么是综合素质在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个文档是 我们团队的一个人做的。完成这样的文档,我其实只说了3句话,需要有一个sql join的文档。样式做好点。逻辑清晰点

从两个角度来想:你是leader,你喜欢这样的员工吗

第二个角度,如果是你来做,你能做到这个程度吗?

如果你有这样的能力,不会愁未来

这其实就是综合素质的体现

其实各行各业都对综合素质要求很高,但往往程序员这个职业有点另类,大多数人不看重综合素质,只是一味的猛学技术。

当然,我从不否认技术的重要性,只是我们现在很多同学太盲目的追求技术了。但如果你仔细观察身边的人,很多技术好的人,综合素质其实不差。因为综合素质其实可以帮助你更高效的学习,让你知道怎么学习,该学哪些,不该学哪些。这无疑是提高了学习的效率。简答点来说,综合素质可以帮你做出最符合你利益的选择。

选择比努力重要。有时候对于普通人,对于没有逆天改命的能力的人来说,真不是假话。

上面的这个文档,其实很简单,都是现成的资料,但在实际工作中本身就不是让大家去弄高科技呀,就是踏踏实实把事儿做好做漂亮
所以,你可以仔细观察,很多高薪的人,其实他们都有一个共同的特点,就是能把事做好。能够最大限度的发挥资源的价值,尽可能的把事情做到极致。

所以,企业需要什么样的员工?这个答案太多了,但我认为是可以概括一下的:
企业需要的是能把事情做好的员工。很多同学在有人带着你、指导你、事无巨细的告诉你怎么做的情况下能把事做好,但这句话其实更准确的来说,是需要你主动的、独立的把事情做好。领导其实只应该起到一个协调资源和提供资源的角色,怎么做,做到什么程度是应该由你自己来决策的。

好,这个话题,我们暂时先讲到这里。下面我谈下职业规划的问题。

其实程序员未来的路相对于其他行业来说,实在是太窄了。可选的不多。

这主要是因为程序员是一个是相对比较封闭的群体,除了技术,综合素养、人际关系、沟通能力、眼界其实都是偏差的。这大概是我觉得程序员这个职业最不好的地方。但程序员必须有一个觉悟就是再你看起来牛逼哄哄的技术,其实在很多人眼里,他只是个工具。对于绝大多数人来说,技术也只是谋生的手段。

由于技术的频繁变迁,程序员在技术上也很难形成积累,所以其他很多职业都是越老越吃香,只有程序员这个职业是走下坡路。所以30岁后的程序员,如果没有很好的综合素养,真的很难。

其实技术这个事儿越到后面越不值钱是很正常的,其他很多职业是先付出才有收益,但技术不同,它只需要付出少量的精力突击学习就能找到一份还可以工作。这点和其他需要前期投入很多成本的职业不同。这个行业门槛偏低,享受了低门槛的优势,就必定要在未来付出相应的代价。

程序员在未来大抵有以下4个方向:

  1. 技术一条路走到黑
  2. 半技术、半管理,做综合性的复合人才
  3. 自主创业
  4. 直接转行

一条条分析。

能在技术上一条路走到黑的少之又少。能走这条路的很大程度上是真需要一定的天赋,大多数人走不到黑就爬不动了。

第三条,这个不多说了,能自主创业成功的,那是你的能力。如果你有这个能力,我觉得基本不需要听其他人的意见,你必定有很强的自我选择和分析能力。

第四条,也有很多人走,但大多数是被迫无奈只能转行。

最实际的目标,也被大多数前辈证明了确实可行的只有第二条。有很多同学说,做纯管理,不是不可以,只是没有优势,你20岁都在为技术奋斗,这些积累需要物尽其用的利用起来。技术是你傍身的优势,不能丢掉。只有兼具技术和管理才是你最大的优势。

这就是为什么前面我特别强调,技术不是唯一,把事做好才是你的目标。我们很多同学体会不到,是因为你从来都只站在一个执行者的角度去看待问题和完成任务,从来没有站在一个leader的角度去看待问题。你必须和你的leader保持同理心。时间长了,你自然就具备了一定的管理和分析能力。

所以,你的目标就是把事情做好,而不是把技术学好。技术学好这个要求其实很低,把事情做漂亮才是难点。

把事情做好的一个先决条件是你有一定的大局观和分析能力,这一点非常重要,这也是为什么很多人到了30岁后无法转技术管理的原因。你20多岁的时候只知道每天耕耘自己的一亩三分田,做前端的永远不学服务端,做服务端的永远不了解前端,你如何能有全局的分析能力和大局观?

前端这个称号其实是人家给你画的圈,不应该成为你自己的枷锁。其实在我心里从来就没有全栈,这在过去本身就没有前后端之分,何来全栈之说?很多同学说,过去不分前后端是因为没有那么多的框架要学习,这是本末倒置,还是抱着考试的态度在学习。

在我看来,现在的前端比过去简单太多了,开发一个项目的成本比过去低太多了。jquery时代是没有组件化也没有数据绑定,想想只这两点能节约多少成本?以前你需要自己用原生的JS模拟类这个概念,因为那时候没有ES6,想想现在的ES标准。

所以我不推荐大家把自己贴上前端开发还是后端开发的标签,自己给自己打标签的行为是非常愚蠢的。因为你扼杀了你自己的可能性。

如果你不想选择第一条 技术一条路走到黑,那么最好的做法就是前后端通杀,没有那么难,你觉得难只是因为你提前给了自己心里的暗示,不断的告诫自己这玩意儿太难了,我学不会。老程序员会告诉你,其实编程的本质是逻辑的运算,前端和后端本身就没有明显的界限。唯一的差异就是前端不管数据库,服务端不管CSS。

事实上,现在技术的发展趋势也是模糊了前后端的界限,这个就不用我再多说了。

如果你确实要选择第一条路,纯技术安身立命,我觉得选择一个点使劲儿学习专研,是正确的。其他三条路,在我们学技术的阶段,最好是模糊前后端。

单纯的认为自己是前端/服务端,还是没有跳出打工心态和考试心态。如果你是精研算法或者做数据或者做人工智能、大数据的,我推荐你精研一个方向。但我们是做Web的,Web相对于其他的方向本身就偏简单、含金量不高,再把前后端舍弃一个是说不过去的。单前端或者服务端其实是放弃了自主性,不给自己的未来留一些变动的可能。

第二点,还有一个非常重要的学习思路:注重细节。一个产品的细节才是灵魂,好的程序员和不好的程序员其实在技术本身上差异不大,但是好的程序员非常注重细节。如果你写代码的时候努力去做好细节,那么长期积累下来学习的效果是非常明显的,进步也会非常的快。如果你总是觉得,这样差不多就行了,写出来的代码千疮百孔,那我建议乘早放弃编程。

第三点,学习太多方法论不是一件好事情,以解决问题为目标才是最好的方法论。没有之一。我们很多同学特别热爱去看方法论,方法论本身没错,但问题是我们没有坚持下去的毅力也没有这个执行力。方法论的前提是你能很好的执行它。所以我们需要有驱动,解决问题就是最好的驱动力。太多同学迷失在方法论的探索里,永远在找方法,就是不肯去做。

从我的角度来讲,我觉得编程唯一给我的乐趣,就是能独立自主的做出一个完整的成品产品,一切尽在自己掌握,不求人的感觉真的很好。

下面是Java全栈课的小程序电商,能自己做出来的感觉是真的不错。如果你有这样的一个项目,无论是找工作、还是做外包都有很大的优势,用产品来说话,远比花里胡哨的说辞和简历要棒很多。

CMS:[http://sleeve.7yue.pro/#/login
在这里插入图片描述
小程序

希望大家能够明白,企业需要的是能做好事的人,不是会多少框架的人,说一千道一万,还是要拿出自己的作品。

最后可能我说了很多,同学们还是不清楚应该怎么做。其实很简单,五个字:
事事有交代

做好这点,你的人生不会太差

好了 ,咱们的分享到这里就结束了。

最后,简单介绍下我的课程。有兴趣的同学可以了解下

要学会 变现

物尽其用 技术也是同理

新java全栈,这个课程主要的目的有3个:

  1. 学习现在Web开发最主流的技术栈:小程序+Vue+Java。没有比这三个更主流的技术栈了。
  2. 培养编程思维。在课程中我们除了有SKU、优惠券、购物车数据同步等非常复杂的业务,还有数学矩阵、排列组合、设计模式、IOC容器、依赖注入等编程思维的课程。
  3. 培养综合素质和视野,你会看到我是如何从0开始一步步的分析问题、提炼需求最终完成了这个超大的项目。
  4. 对于前段开发者来说,如何进阶后端,以我的角度来看,如果你能接受Java,那必然优先选择Java,它有太多的编程思想,完全可以给你打开一个新的世界;掌握Java里的思想,未来学习其他的语言不是大问题;如果你实在学不进Java,那还是选择NodeJS/Python。都是动态语言,其实在编程思维上的提升,其实不大。
  5. 此外课程还提供了两个很好的工具:Lin CMS和 Lin UI,有兴趣的同学可以了解下。

[https://github.com/TaleLin

有空的同学 帮我们点个star,感谢支持

在这里插入图片描述
课程全部的知识体系在这里插入图片描述
目前第一阶段 前端高级小程序部分已经更新完成,第二阶段的Java api 部分也更新两周了,剩下的还在每周更新中。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值