本文章首发于微信公众号【坂本先生】
有很多刚刚踏入软件工程专业的学生或许对该专业还不太熟悉,不知道自己的努力方向,没有想好自己未来的路怎么走,如何走。
没错,我原来就是其中的一员。当我真正将要踏入社会的那一刻,在写简历的那一刻,我才明白自己的大学生活缺少了什么。以下的内容只是我个人对这个行业的一点理解和一些建议。希望能帮助那些刚刚进入这个专业的学弟学妹们。

前言

该文主要分为三大部分
互联网行业相关工作分类及描述
考研还是工作?
一些零散的宝贵经验(给学弟学妹们的)

一、互联网行业相关工作分类及描述

其他的学校我不知道,我们学校在大三的时候开过一门《职业生涯规划》的课。下面的内容也是我作业的一部分,就是探讨软件工程行业的工作选择的。
简单分成两大类:技术类和非技术类

1、技术类

1.1 前端
主要做的工作是用代码写出展示界面和一些特效。需要说明一点,不知道其他公司是怎么分类微信开发的,我们公司把微信开发(小程序开发)归入到了前端部分。总体来说前后端薪资都是差不多的。
前端联系比较紧密的是UI设计师。但是UI设计师相关的知识软件工程大多是不教的。UI设计师的工作就是设计出比较好看的界面和图标,合理的页面布局等,需要掌握一些专业的设计软件。有兴趣的可以自行谷歌学习。另外,我们在大三的时候学过一门《界面设计》的课,还是很不错的。建议学弟学妹们好好听一听。
1.2 后端
后端的工作需求也是比较多的,我对后端的理解就是完成系统所需的功能。你可以理解为前端定义了一个东西长得怎么样,后端定义了这个东西有什么功能。
不想吹Java,但是现实是Java的需求量真的很大。当然也有C++,python工程师,就我们这一届来说,除了Java外这两个方向的职位也有看到,只是比较少罢了。
因为我现在的职位就是Java后端工程师,虽然是在一个初创型公司,但是开发规范还是不错的,在公司能跟着大佬学习很多。不得不说Java后端需要掌握的东西实在太多了。需要详细了解的可以关注我微信公众号,里面有我的联系方式,希望结交一些小伙伴一起学习努力,哈哈哈
1.3 Android
说一说移动端开发,前几年移动端开发人特别多,导致了需求量过剩。所以到我们这一届,移动端人才特别缺,移动端开发工资特别高。不得不说如果打算就业工作,选对方向真的很重要(2019届算法和后端竞争比较大)。
1.4 IOS
1.5 游戏开发
游戏的开发,我对具体的工作还是了解的不深,有兴趣的可以自己搜索相关资料
除了上述的开发的相关工作,一些其他的工作也属于技术岗位,虽然也需要一定的编码水平,但是需要掌握一些其他的特殊技能
1.6 人工智能与深度学习工程师
感觉这个工作主要招的都是研究生,毕竟是比较高端的技术,对应的薪资也是较高的
1.7 运维
个人感觉这个工作非常苦逼,枯燥没意思。运维的工作就是把开发好的项目在服务器上部署发布和长期的运行维护,需要精通熟悉linux系统。一般小公司是没有运维的~,没错,你猜对了。在小公司这部分的工作是交给开发来做的,项目无论在线上除了什么故障都来找开发,有点难受。
1.8网络安全分析师
这个工作呢?需要掌握网络安全的相关知识,但是你要知道在本科阶段学校教给你的东西,在这方面是完全不够的,如果真的对这方面非常感兴趣,可以自己搜索相关知识,多多参加相关比赛,或者是项目等
1.9 软件测试
软件测试是一个非常关键的一个工作,其实软件测试的工作分为两种,一种是测试工程师,另一种叫做测试开发工程师,
其实在本质上这是两个本质不太相同的职位。
测试工程师是偏重业务逻辑的测试,即功能性测试,说白了就是说某个功能好不好使。写代码能力不强也不要紧。
测试开发工程师是开发人员,比较偏重自动化测试工具的开发。
总结:国外的软件行业是把软件测试环节看的非常重要的,软件的测试环节也有一系列的严格的步骤,不知道其他的学校,反正在我们学校会开一门《软件测试》的课,我感觉非常不错,教材使用的也非常好。但是在国内的话只有大厂的测试环节会比较好。总体来说测试也是一个非常好的行业,压力也不是太大(当然是相对于开发来说)

2、非技术类

2.1 产品经理
产品经理的工作简单的讲就是决定了一个产品的发展。可以把产品经理比作导演,把程序员比作演员。导演决定了一部戏的发展走向,而演员是具体实施者。一个好的产品经理必须是一个好的交流者。说到这里我已经迫不及待的想和产品互怼了(〃''〃)
2.2产品运营
负责产品的运营,平时和用户沟通的比较多。如果产品运营对现有的系统有不满,需要制定新功能的话,需要和产品经理研究,制定统一的解决方案。之后产品经理需要和技术部门经理讨论方案,选择最优的方案,最后制定开发任务

3、总结

简单画一个图来说明一下各个人员在一个产品流程中的角色,当然这只是一个简单的图,现实中可能会有各种问题,大的公司流程可能会更多(如果有误,希望大佬给出宝贵意见)

二、考研还是工作?

这个我不想多说,因为我也是刚刚毕业参加工作,没有真正体会到考研和工作的利弊。
先说下我的观点:无论选择哪条道路,相信自己的决定是正确的
直接上知乎大佬的回答,可以做下参考

回答一

作者:Shengsheng
链接:https://www.zhihu.com/question/60462553/answer/193112194
谢邀。是这样的,这个要看你怎么选择。如果你想以后不做开发,想做研究,甚至读博做教授,那么就读研读博吧。如果你致力于成为一名软件工程师,想在工业界混,那么又要分情况来说了。
安徽的211,只有安大和合工大,并不是什么很厉害的大学,跟985高校比起来还是差了一些。所以如果能够保研或者考研到985高校的,或者有条件出国留学的,可以考虑读研,但是这个只是为了拿到一块厉害一点的敲门砖,你读研的成长,绝对比不上在公司里面的成长。有条件出国留学的,真的可以考虑出国留个学,在外面非常锻炼人。如果考不上985研究生,也没资格保研,也没法出国留学,那么就不要读研了。去公司工作,3年后你同学读研毕业了,但你可能升职了,就算不升值也积攒了3年的工作经验,你的水平会比你那些读研的同学强很多。实际上,有了3年的工业界经验,你也不需要985、留学生什么的敲门砖了。另外,楼主说进不了BAT什么的...请充满信心,努力试一把,才知道究竟能不能进BAT啊。
答主本科也是软件工程专业,虽然现在在读研,但读的是兼职的,白天都在工作,晚上才会抽时间弄一下学业上的事情。对比我在工作中的收获和在读研中的收获,我觉得读研给我的收获几乎可以忽略不计...在工作中我学会了怎么从零开始构建分布式微服务架构,怎么调优接口提高并发量,怎么应对产品上线(表示每次上线都要跟同事奋战到第二天凌晨T^T...),怎么跟上级、同事沟通,等等等等...这些东西,不是在工业界做一线开发,根本接触不到,或者不会去想。
我本科同学有不少去985高校读研的,从他们那里我多少了解了一些国内读研的现状。我只想说,国内985研究生好水(当然跟学校有关系)...我同学研一就想出来工作了...不光教的课比较古董,老师的项目大多也都是以demo为主,很少有真正商用的,团队里面也几乎没有在工业界工作过的人。所以我想问,读研除了可以拿一块证书之外,能学到多少真正有用的东西?

回答二

作者:菜根谭
链接:https://www.zhihu.com/question/60462553/answer/186812668
看到好多小朋友 我就想老司机开车 软件工程 本科 工作十年 一贯的风格是告诉你们很多利弊 但是这次准备直接排序 站在我的经验和判断
\1. 名校研究生(清华 交大 中科院 中大 北邮) 机器学习和人工智能方向优先 \2. 真实实习 bat一流公司工作 \3. 重点学校研究生
\4. 实习 毕业 \5. 毕业
选择要有目的 多提供几个衡量目的的角度:
出国看世界与否?一线城市户口否?兴趣爱好匹配否?女朋友,家庭?职业目标IC还是管理还是创业?

三、一些零散的宝贵经验(给学弟学妹们的)

大三下学期大公司正在春招,招很多实习生,实习生的岗位相对来说还是比较好得到的。如果能够拿到大公司的实习生岗位,对将来招工作和考研都是比较重要的。但是大公司往往在北上广深,对其他外地学校的学生来说还是不太友好,毕竟大三往往还有课。如果不能去实习的话,建议大三下学期就开始准备找工作的材料,好好准备秋招。
学好算法,可以在秋招中脱颖而出,建议去刷LeetCode,很多公司的笔试题都是LeetCode的原题。注意!!!不要误认为自己有开发经验就不去准备这一部分。实际情况是如果你过不了笔试,你连面试的机会都没有~ 没错,现实就是如此残酷,我在这方面就吃了很大的亏。另外可以牛客网刷一些题。如果想要了解更多这方面的东西,可以到我公众号里留言私信我,如果人多的话,我就再写一些这方面的东西。
必须有项目经验,无论项目大小,保证项目的完整性
多参加学校的技术性比赛,无论是什么样的,你会慢慢在比赛中认识到自己想要什么
简单总结了一下软件工程专业必备的基本知识素养(如下图),比较惭愧的是一下知识我有大部分都掌握的一般般。希望学弟学妹们不要向我学习
如果想获取上方所有完整的思维导图,可以关注我的公众号回复【思维导图之软件工程】即可获取,有其他想法也可在我公众号里留言大家一起进步学习