研三刚签完工作,我给你分析一下。
我女朋友比我大一届,也是985的计算机硕士,在银行做后端,看到你的问题我比较有感触,想从我的角度给你写一些东西。
首先说明,轮子哥等等大佬回答了这个问题,我是轮子哥的粉丝,但是我并不很认同轮子哥和其他一些除了说题主水平不够,并没给出什么建议的答案。我想题主你来到知乎问问题肯定不是想找人来批评自己的,关于自己的水平相信你自己有一个更全面的评价,我会从自己的角度尽量帮你分析,并且给你一个明确的建议。
我从后往前分析你的问题:
1.首先你说,觉得研究生做前端太亏了,这个问题我是这样分析,首先,技术和岗位没有高低之分,有些同学下意识的存在算法岗>后端>前端>测试这样的想法,这种想法我能理解,但是你一定要明白这是不对的,且不说真正的前端大神对于编程的理解比我们这种自认为是做算法的"算法工程师"高出多少,单就工资而言,对于应届生而言,平均来看并不是说算法岗的工资就是最高的,我自己的秋招体验来讲,我拿到了工资很高的后端开发岗(毕竟工资不是我唯一的选择标准,所以最后没有接下这个offer),这个道理同样适用于前后端岗位的比较.其次,如果你认为研究生做前端太亏了,那是因为你在研究生期间一直研究了后端技术吗?我认为这是不可能的,无论什么专业的研究生,读研期间一定是以理论研究为主,实践动手为辅的,按照这个逻辑,我们可以说凡是硕士毕业去企事业单位工作而脱离科研的研究生,都太亏了,这显然是有问题的逻辑.
研究生毕业之后能从事与自己研究内容相关的工作无疑是最理想的,然而并不是每个人都能这样的,那么这些人都亏了么?也不尽然,如果通过读研提升了自己的能力,打开了进入科研领域的大门,或者能够在就业市场上比本科时的自己更有竞争力,那不但是不亏,反而是大赚,你看有道理么,最起码,很多银行不招本科生,那如果你去了这样的公司,就没有浪费你计算机研究生的身份呀。
2.你说你觉得前端刷题的时候很直观,并且从这里感觉到端有比后端简单的地方。从这里我能看出,你和我女朋友一样,逻辑能力不是很强。当然你可以反驳我,但是如果你觉得自己在写程序,刷题的过程中存在尝试记忆一些代码的现象,或者在理解一些非线性的算法时存在困难,例如调试一个递归程序和多线程程序时,不能在大脑里理清逻辑,再或者在独立设计一个完整的程序时缺乏思路,那么这反映出你缺乏或者欠缺解决问题的方法论,这种东西是决定在面对一个系统问题时能否独立解决问题的关键,那么,无论将来要从事前端还是后端,都要有意识的训练自己这种能力,一般来讲后端对于逻辑能力的要求更高。
3.纠结要不要学习js。一般来讲,编程语言是一通百通的,我们很难做到精通到一切细节,但是拿来一门没用过的语言,在简单的入门学习后,进行常规使用还是可以的,如果你现在是研一研二,那就不要纠结了,假如你能把Java写的很好,我想学一个新语言也不会很难,况且js不是很难学。即使日后不干前端,多学一门语言只有好处没有坏处。我们实验室做机器视觉,基本所有人都能写四五种语言,这真的不难。
4.压力呢,前后端都有压力啊,什么行业或多或少都有压力。很多人觉得银行没有压力,可是在银行工作的人会告诉你他们也有交付压力,也会加班。压力这个东西,在你对自己的技术不顺手的时候会变大。那么前端压力大还是后端压力大呢?这个问题比较难回答了,我女朋友觉得他们组的前端明显比她这个后端压力小,一方面是由于他们组的前端工作量比较少,另一方面是这个前端业务比较熟练。另一方面,有人可能跟你说过,前端要学的东西多且杂,后端要学的东西深,但是对于银行这样的国企,他们的技术非常稳定,就前端来讲,只需要研究一个很小的子集完全就能精通业务了,但是对于其他的互联网公司,我认为保持一定的学习能力和学习热情是必要的。我不做前端,但是我觉得你只会H5C3JS这些只能说是必备的基础知识,需要学的东西还有很多,不妨看看面经。
5.我想从其他角度给你一些建议。首先选择了从事计算机行业,一定要保持学习,比较忌讳的一个现象就是业务少的时候闲的摸鱼,然后业务多的时候发现自己原来不会的东西还是不会,这样会进入一个恶性循环,导致在工作忙的时候压力总是会瞬间加大,实际上平时的学习积累能分散摊平这种压力;其次,独立自我思考很重要,遇到问题要充分自我思考,如果一定要问别人,尽量提出经过充分思考的二级问题,这样既不会失去自我思考的机会,也能节约时间,并且避免了对于同事关系的过度消耗。
6.那么说了这么多,究竟是选前端还是后端呢?我通过我女朋友的经历,给你的经验是,如果你想尽量减少自己在工作时遇到的压力,那就要尽量从事自己熟悉的事情,你想,无论后端前端都有一个基本能力范围,你可以估计一下,以你现在的能力,到找工作那一天,假如你集中全力学习后端知识,或者集中全力学习前端的知识,这两种技能,哪一样自己能更擅长呢?选更擅长的那一个。
最后,祝你能找到一个喜欢的工作。
以上。 |