当前位置: 主页 > 建站知识 > 软件开发

软件工程考研专业方向-安老师好:我是一个大连某二本院校的在读生

发布时间:2023-06-18 22:16   浏览次数:次   作者:佚名

城市地下空间工程考研方向_软件工程考研专业方向_材料加工工程考研方向

安老师好:

我是一个大连某二本院校的在读生,专业是计算机+日语强化。上大学以来一直关注着您的公众号,读了很多您的文章,学到很多东西,也受到过您的鼓舞,随您一同成长进步。

目前我已是大三下,站在第二个人生岔路口,正为各种浮在空中的想法烦恼不已。身边的同学水平都很一般,我也并没有比他们优秀多少,所以烦恼是相同的;学校的老师各有各的心事,并不真的在乎每个学生的发展,也请教不出个所以然来;您之前的文章,一直给我力量,那时本以为只要沉下心别焦虑,就这样走下去,时间自会给我答案。如今我收获了一些,也有很多遗憾,仍是在徘徊迷茫。所以这次写邮件打扰您,向您请教。

我目前的情况是这样的:

算法能力:浙大PAT甲级考了两次,第一次81/100,排名231/1041;第二次57/100,排名428/1398。今年三月的蓝桥杯B组C/C++省赛一等奖。PAT刷过100多道真题,过程十分痛苦,但最终有所收获。在二刷的时候仍然吃力,而且让我很郁闷的是,二刷写的代码还没有一刷写的简洁优雅;还有一刷做出来而二刷做不出的题,备受打击,二刷没完成,所以第二次考试准备不充分。个人觉得PAT甲级整体要比蓝桥B组省赛难,考点覆盖本科数据结构的方方面面,多考察字符串/排序/查找/树/图,没有动态规划和大模拟;蓝桥杯研究的不深,赛前也没准备软件工程考研专业方向,全凭PAT的底子和同行衬托。

语言能力:CET4 545/CET6 506。听力口语写作很弱,完全没练过,全靠阅读硬撑,词汇量背了10k,实际水平自我估计在6~7k左右吧。技术文档阅读的话,读的不多,粗看过一点点C、JSP和Python的文档,大概意思能懂,细节吃力,另外专业词汇掌握得不够,所以没做到能无障碍阅读原文文档的程度,某些情况下需要借助在线翻译。日语因为当初想法很坚定地要考研,又觉得日语英语打架,所以没怎么上心,目前水平在N2之下,但对自己的底子还是有信心的,肯努力的话半年拿个N2证书应该不是难事。

项目能力:无正式项目经验。这点是我个人比较在意的。除了课程要求的大作业之外,自己练习写过JSP+Oracle+Tomcat的登录/注册网页(但HTML+CSS+JavaScript学的很一般,蜻蜓点水,就没写),想尝试MVC模式,却写的不伦不类,以失败告终。Python照着书敲过一遍简单的3*3神经网络,训练识别手写数字,算是增强了感性认知,也懂了一点点基本原理;目前正在写简单的静态网页爬虫。实际上大三上学期初找过老师,想接触机器学习,无奈老师只推荐了一本入门PyTorch的书,就没再理我。硬着头皮看了一点感觉缺乏很多前导知识,所以没继续深入。另外感觉我所看到的所谓“机器学习”,不过是调API自己逗自己玩而已,和想象中的各种高深半毛钱关系没有,所以感觉很幻灭。

数学能力:几乎为零。这是最让我感到无力的一点。初等数学学的很差,无论是数学思维、学习方法、基础知识和习题量都差的很多,导致现在学习高数寸步难行。

专业课:数据结构学了3遍,在四大专业课中学得最好最深入。然而即使这样说,也没能深入到红黑树这种高级数据结构,基础内容到现在也忘了大半,归并排序应该是很难写出,更不用提快排。算法分析只能理解到双层循环是O(n^2)的程度。其他三门只跟着学校学过,对比教材目录的话,实际都只学了一半不到。

专业排名:前5%。

软件工程考研专业方向_城市地下空间工程考研方向_材料加工工程考研方向

综上,我对自己的评价是:二本院校的中上等生,一般努力,不够聪明。算法、英语、代码能力还凑合(6分),数学很差(2分),会一点日语(4分),学习能力尚可但不强(5分),为人处事很一般(4分),自我调整能力差(3分),认知水平差(3分)。目标不清晰,所以没有足够深入的领域,所学所思都很浅。

现在所烦恼的问题有很多:

1)考研or就业?

2)国内or日本?

3)Java or Python?

啰里啰唆写了这么多,请勿见怪。一方面是想把问题说得详细一些,描述一些我认为的“事实”,表达一些想法,希望尽可能多地暴露出认知上的错误,供您提出改进建议;另一方面,也是一种倾诉。现在的我,急于明确自己的方向,也贪心地想找到这个方向上的局部最优解,然后不后悔不留恋地勇往直前,遇见更厉害的自己。最后,非常感谢您能耐心地看完我这些幼稚的提问,也期待您的建议和见解。

回答:

这是有问有答栏目有史以来收到的最长的咨询邮件,这也是我决定回答的一个重要原因——因为你是真的想请人辅助自己分析一下。

这里我只回答考研还是就业这个问题。

首先,我从一个角度对软件开发工程师做个分类,方便我们讨论。

材料加工工程考研方向_城市地下空间工程考研方向_软件工程考研专业方向

软件开发工程师可以分为应用型、研究型和胶水型三种。

所谓应用型开发工程师,主要做行业应用开发,比如一个医疗挂号系统、一个OA系统、一个电商网站的商品展示模块、一个流媒体平台的广告管理系统等等。他们的主要工作,是了解业务,使用某种编程语言+某些框架,结合数据库等数据处理手段,实现业务需求。简单讲,是搭积木。其发展方向是:如何更好的搭积木、如何把搭积木搭得更有效率、如何使得搭出的积木建筑更稳定更易于维护和扩展。

应用型开发工程师在软件开发工程师中占比最大,其门槛较低,薪水较低,未来发展空间比较有限,工作5~8年,技能水准和收入基本都会见顶,这也是你看到开发者群体整天讨论35、40这种年龄歧视问题的原因。(参考:)

见顶后基本出路如下:

所谓研究型开发工程师,主要做算法和底层构件的开发,比如音频算法、机器学习算法、图像处理算法、网络传输算法等等。他们的工作,更为专精,基于抽象的算法或者底层模块来解决偏技术层面的问题或者已抽象为技术问题的业务问题。

常见的研究型开发工程师,有音视频算法工程师、机器学习算法工程师、深度学习算法工程师、图像处理算法工程师、数据挖掘算法工程师、推荐算法工程师、搜索算法工程师、自然语言处理算法工程师、语音识别算法工程师、数据科学家等等。

这些方向有几个特点:

学历和专业要求高。很多公司的JD中都标注数学、物理、计算、模式识别等相关专业硕士或博士。这一点去拉勾或猎聘都说我说的职位就可以确认。

需要持续不断在一个方向积累,既有知识、技能和经验非常重要。

报酬高。50k、80k一个月的JD,相当不少,做这类工作的,年薪百八十万的大有人在,翻过百万达到百十多万甚至数百万的,也不少见。

职业寿命长。这是由工作性质导致的——算法本身的更迭没那么快,而且往往是渐进性的。比如神经网络是几十年前的东西,这几年又大放异彩;比如噪声抑制、语音增强,都是发展了多少年的算法和技术。

城市地下空间工程考研方向_软件工程考研专业方向_材料加工工程考研方向

在研究型开发工程师中,又有两类,一类是只做算法研究和实验,不怎么写代码的;一类是负责用编程语言把第一类研究的算法实现出来的,这类也要求很深的算法功底。

研究型开发工程师的未来方向比较明确:专家。

所谓胶水型开发工程师,是介于研究型和应用型之间,比如做SDK开发和API设计的,这类工程师,一方面衔接底层的算法,一方面对应用层提供接口。

胶水型工程师的要求比应用型要高一些,需要理解算法,需要有更好的程序设计能力。

这类工程师,更多存在于比较大型的公司或者转做技术解决方案的公司,因为只有这两类公司,才会投入资源在技术上做分层架构。

然后我们来分析你的情况。

你的学历为二本,在就业竞争中将处于劣势,很多好机会简历关通不过。

复习考研科目时存在明显的畏难情绪,实际也遇到一些困难。

对应用型开发方面的编程语言、做网站等等的了解,属于大学生中的正常水平:一知半解。这点没什么,多练习,慢慢涨涨经验就好了。

参加过一些算法竞赛,排名中上,有排名,有收获,应算是相当不错了。再深一步,感觉很吃力,实际开发中遇到算法、数学等相对深入的问题,理解不了。

软件工程考研专业方向_材料加工工程考研方向_城市地下空间工程考研方向

综合这些情况,如果你本科毕业后直接工作,大概率找到的职位是应用型开发工程师。

如果你觉得自己就是做做应用开发,干上十年八年再转行,那就现在出来。如果不甘于此,那就看长远一些,选择考研。

但为什么你会在考研和就业之间犹豫呢?

是因为你意识到考研对未来更好,但现在又吃不下学习研究的苦,感受到了很大困难,对考研失去了信心。

所以软件工程考研专业方向,你下意识里想回避考研,想去吃社会的苦,拒绝学习的苦,这与你的理性认识不一致,所以就纠结了。

为什么宁愿吃更久更多社会的苦,也不愿现在吃学习研究的苦?

这不仅仅是你的问题,是很多人的问题,有必要再展开来讨论下。

很多人之所以宁愿吃更多更久社会的苦也要逃避眼前学习的苦,第一个原因是:学习的苦就在眼前,压强很大,感受很强烈。社会的苦还没到来,有段距离,感受不是很强,而且在想象中可以分段、拉长周期、多次来吃,压力不大。

第二个原因是:我们脑子里总有一个幻想——说不定社会的苦吃一阵子抓住机会老子就飞起来了,再说,将来需要的话,老子还可以折回头来吃学习的苦。

现实点说,第二个原因,根本就是自我欺骗啊——我们犯了幸存者偏见的错误,把那些没怎么吃学习的苦又从社会的苦海中脱颖而出的个例当成了普遍现象,以为自己也能做到那样。但实际情况并非如此哦——我们往往高估了自己,或者有意高估自己以便合理化自己的选择。

软件工程考研专业方向_材料加工工程考研方向_城市地下空间工程考研方向

其实第二个原因和第一个原因一样,都是从我们『尽可能推迟痛苦的发生时刻』这个底层习惯衍生出来的。

这个习惯会引导我们选择『关注眼前感受,确保眼下少吃点苦,把大痛苦延后』这种迁就策略,而一旦你这么选择了,就会习惯并用行动拥护自己所处的环境——哪怕这个环境比较糟糕,经常有点小小的不满意和痛苦。但是我们会习惯呀,真的会习惯呀,不但会习惯,还会合理化这个选择,觉得蛮舒适的,认为这是自己的舒适圈,进而害怕变化,因为一旦引入新的变化,可能会有更大的痛苦随之而来。

所以,我们顺着那个小小的幻想所做出的自以为埋藏了『必要时破釜沉舟必能崛起』之后招的选择,往往就没有后招了。我敢打赌:80%以上的人都会吃惯了社会的苦忘掉了自己当时设想的后招。

所以,到底是坚持算法、数学、考研这些将来会更好的选择,还是直接放弃它们,出来做开发,一定要慎重考虑哦。

理性的分析是:面向未来做选择,从长远利益出发,选择考研。

当然每个人都有个人情况,而如果你发现自己真的吃不了学习研究的苦(就是学不进去或者身体状况不允许),那选择直接就业,也是合适的。

如果决定出来,就要利用复合优势:你是懂日语的计算机专业学生。这种组合优势,使得你做对日开发或者到日企工作,成功的概率会比不懂日语的人高很多。

这样选下来,接下来就应该加强日语和计算机编程的能力了。

说了这么多,总结一下要点:

希望对你有帮助。