软件工程新生需要注意什么?

1447 篇文章 12 订阅
1447 篇文章 7 订阅

背景:985末流院校软件工程,学科评估为A–。

虽然我走的是保研路线,但是也实习过一段时间,对工作也有一点了解。

这里我先反对一下高赞答案里的书单。不可否认,确实有部分是该领域的经典教材,但是我并不推荐大一新生一上来就全盘照搬。主要有以下几点原因。

1.部分书籍是进阶型的,不适合新手。特别是看到Effective系列,我怀疑答主是在其他地方看到有提这些书,就一股脑写上来,可能自己都没怎么读过。这里顺便说下如何找计算机领域经典书籍或某个方向的学习路线,搜知乎或是豆瓣。但是,请记住,经典不意味着适合入门。

2.部分书籍适合当语言类的字典书,用来查找知识点。首先,你很难有毅力啃完这些书,每一本都是大部头。其次,即使你痛苦地学完了,很快也会遗忘,特别是那些边边角角的很可能一次也用不到的知识。这里我更建议先将一门编程语言的基础部分掌握后去做一个小项目,在实践中才能记牢知识,而且在解决问题的过程中会学到一些新知识,并且这些往往也是经常用到的。有不少书籍就是这样编排的,在一个小项目中穿插语言知识,学完一本书,就相当于用该语言完成了一个小项目。那时再看进阶书籍也不迟。否则只是自找苦吃,人为提升学习曲线,何必呢。当然,特别聪明过目不忘的人除外。

3.我不太理解为什么要在书单里列一些网络攻防和嵌入式的专业书籍。是因为答主学校的培养计划如此,还是以此凸显知识的全面性?不可否认,多掌握一些知识是好的,但是既然选择了软件工程专业,就把主要精力放在专业方向上,既不要高估了自己的时间和精力,也不要低估了软件工程方向的课程密度。当然,大大大佬除外。以我所在的软件学院为例,一共有三个专业,软件工程,信息安全,数字媒体。其中信息安全是专门搞安全一块的,就包括高赞答主列举的网络攻防。而我所在的软件工程的培养方案里完全没有涉及到专讲安全的课程。我们可以课后了解一些,但是最好不要花过多的时间在上面,不要舍本逐末。可以在学校官网上下载培养方案。这里又要提到高赞答主规划的路线,其实吧,先不说是否科学全面(也许想到一些就写一些),咱们作为大学生,基本的信息搜集能力还是要有的,官网上即可下载到细致全面的培养方案,如果想了解更好的学校的课程设置,依然如此。以下是我们学院软件工程的培养方案,仅供参考。

软件工程2016级培养方案(提取码hktq)​pan.baidu.com

吐槽完毕,下面进入正题。我的大学经历挺坎坷的,走了不少弯路,希望能带来一些帮助。

首先,我最想强调的是,尽早明确方向,保研还是工作,如果保研,选择哪个领域(NLP,CV,高性能计算……),如果工作,倾向哪个岗位(web前端开发,java后台开发……)。尽量在大二定下来,这样才能尽早针对性地准备,不同的方向侧重点是不同的,后面还会再提到。

无论保研还是工作,它们有一些共性。在实习期间和夏令营期间我感受最深的两点是:

1.基础专业课非常重要。企业面试和保研面试都会考察到基础专业课知识,尤其是数据结构与算法,操作系统,计算机网络,数据库这几门。这也是科班和培训班的显著区别。有一段时间,我曾陷入到各种框架的学习中,觉得用框架快速搭建一个应用很酷,而疏忽了对基础知识的深入学习,后来我挺后悔的。这些基础专业课决定了未来你是只能写写业务逻辑简单搭搭框架积木的低端码农还是计算机专家。此外,当你深入学习某个框架时,也同样离不开这些专业课的支撑。就算是写简单的业务代码,算法知识扎实的人也能写出更加优雅高效的代码。实习期间,我就见过有人开一堆容器实现业务逻辑,空间和时间复杂度都很高,明明只需要稍微用心设计就能避免这些。

2.围绕方向有的放矢。在准备保研简历时,需要围绕所选专业方向精心设计。在准备工作简历时,需要围绕所选岗位要求针对编排。当然,简历不仅是展示自我的材料,也是你这三年的努力指南。其实从大一开始,你就已经是在为最终简历的内容做准备了,无论是专业课成绩,比赛,还是项目。这也是我不推荐大家按照高赞答主笼统的书单或路线来做的原因之一。以我投递过的某暑期实习岗位为例。

围绕岗位要求,相关的专业课深挖下去,相关的比赛项目用心做两三个,足以消耗你三年的课余时光。当然,大大佬除外,下文不再强调。再退一步,比如你想毕业后主攻java开发,关于java的相关进阶书籍就够你啃上相当长的一段时间了,这还不算上应用消化的功夫。所以,不要迷信那些看起来广而深的书单,一定要明确方向后有的放矢。

说完共同点,再分别谈谈保研和工作。

关于保研,我曾在一篇回答里详细写过,这里我仅针对软件工程专业说一些注意点。

准大一想保研应该怎么办?​www.zhihu.com图标

1.软件工程可参加的比赛有ACM,数模,英特尔杯,蓝桥杯,挑战杯等。建议准备保研的同学可以参加ACM,不一定要拿奖,主要是多刷题,即使不参加也要多刷题,可以到各种OJ或leetcode上。刷题(算法题)主要是为了夏令营或复试的机试,机试极其重要,有的学校的机试甚至直接决定了最终的结果。

2.还是那句,尽早明确读研方向。课余时间针对读研方向学习一些知识,做一些相关项目,对将来的保研面试大有裨益。虽然我们选择了软件工程,但是读研的话很多人都是偏向AI方向(并且大多也是报的目标院校的计算机学院),这些方向我们在课上很少学到(我们学校大四才开了一点相关的课程,大三就开始保研了,非常坑),尽早明确方向,才能尽早做准备。

3.在保研中,软件学院的学生会受一定的“鄙视”,但是只要尽早准备,硬性条件足够好,那也没什么。

工作方面,和保研一样,尽早明确方向,不论你基于兴趣,钱途或是其他因素。因为针对一个方向用心准备足以花上你非常多的时间。当然,我们不可能一开始就对各个方向很了解,可以花一段时间去体验去了解,但是不要拖太久,个人觉得最好大二就定下。之后,针对相关的专业课深挖,补充课程中未曾包含的知识,参加相关的比赛或项目……说个题外话,国企真的是955,至多965,项目上线前一阵子会加班,有时通宵,工资不高,养着不少比较水的人……

书籍方面,计算机相关的书有一个很大的特点,那就是厚,贵。一本书正常五六百页,背在书包里就像背了一包砖,十分适合用来泡面。当然,对于我们这些穷学生来说,最关心的还是价格。一本正版书动辄一百左右,我一个月生活费也就六百。所以我大学三年都是看的PDF,虽然很多是扫描版的,但是配套福昕阅读器,使用起来也不赖,最重要的是方便一边学一遍敲代码。为此我还买了一个几百块的大屏低端平板,专门用来在一些特殊场合下看PDF格式的书,很方便。以下是我读过的和没读过的一些书,有一些是我们的教材(国外的),有一些是经典书籍,有一些是课外学着玩,共计五十多本,不太好的地方就是被我勾画过了。这里还要提一点就是,信息搜集的能力很重要,学习通过各种手段来获取你需要的资源。这些书来自各个地方,百度云,磁力链接,脚本之家,CSDN等等。对于需要充值付费的网站,比如百度文库,可以到淘宝上购买,十块能下几百个文档,比开会员划算多了。

有需要的同学可以自取,不知道知乎会不会判我违规……

计算机相关书籍(提取码522t)​pan.baidu.com

笔记方面,个人觉得,用电子笔记更好,尤其是软件工程专业,高中那会儿条件限制不能用手机电脑,大学就挺好。我用的是印象笔记+XMIND,两者的免费版本都足够用了。以下是之前一篇关于做笔记误区的回答。

为什么很多学霸都不爱做笔记?​www.zhihu.com图标

我用过有道云,OneNote,最终选择了印象笔记。相比之下,有道云功能比较少,OneNote同步捉急。印象笔记功能比较全面,并且现在支持markdown文档和内嵌的思维导图,而且支持各种平台,windows,android,ios,mac,网页(网页版的感觉做的超棒),简直是神器!(印象笔记要不要给我广告费(´▽`ʃƪ))最大的吐槽点是不支持多级笔记本,不过我用笔记本组配合标签用着还挺好的。下面是我记录的笔记情况。

我比较喜欢在自学的过程中把一些疑惑或者想深入了解的地方记下来等以后有时间了解决。

可以看到,好多都没继续解决,嗯,我的锅……

Xmind是做思维导图的,支持同步到印象笔记中,也能以不同的文件格式导出,同样支持多个平台。不过,等印象笔记内嵌的思维导图支持windows端后我就要转移阵地了(目前仅mac支持)。以下是我用Xmind整理的思维导图之一,由于比较庞大,仅显示了部分,对应的是《java编程思想》字符串一章。

电脑方面,讲真,如果用来编程的话,主要注意内存至少8个G即可。因为许多IDE很吃内存,比如用于安卓编程的Android Studio,IDE本身就能占两个G左右,开个虚拟环境又能占两个G。我一开始买的4个G的,最后不得不加根内存条。搞深度学习训练模型时会用到CPU,不过一般在自己电脑上跑的都是学习时的小数据集,大的数据集得放到服务器上跑,不适合用笔记本跑。有些情况下,需要开多个虚拟机,也很吃内存。总之,最主要的是内存不要太小,其他方面没什么大要求。4000块左右完全够了。我买的是游戏本,因为我打游戏……背起来挺重的,而且续航不足。这个就看个人需求了。

服务器方面,我买的腾讯云服务器,学生价十几块一个月,虽然配置不高,但是用于个人的一些小项目的部署足够了。具体的大家可以在用到时百度,配起来挺简单的。

github要会用,可以把自己平时做的一些实验的小项目整理下放到上面,也可以用于比赛中的团队协作。不推荐用来crtl c v,实验课要自己做,可以参考,但是一定确保参考的地方都懂。我身边就有把github上的代码直接当成自己做的,最后有些人还获得了不错的分数,可惜啊,浪费了一次锻炼代码能力的机会,最后面试人家一下子就能望到底。

说到github,我觉得git也有必要学习下,用于版本控制和团队协作,工作中必用到。也有少部分企业用的svn。

有一些学习的网站,像csdn啦,博客园啦,简书啦,知乎啦,wcschool啦等等。自己也可以在上面尝试发文章。不过上面这些都是中文网站,有些问题得到国外网站上也许才能得到解决,学会用谷歌,学会用英文。

此外,一定要学会整理。

1.代码整理

平时做的实验课作业啦,项目啦最好都有条理的整理好,不要乱七八糟的散落在硬盘里。将来都是可能用到的,比如准备面试。还有一点就是,在以前的代码上做拓展和修改,也可以用作其他某个实验课作业,既节省了时间,又在类比对比中学到了更多。包括其他一些材料也要学会整理。以下是我的整理,其实有一点点乱……

2.安装包整理

软件工程专业需要安装大量软件,并且动辄几个G,可以买个移动硬盘将安装包(操作系统,IDE,JDK等等)等存下来,避免以后因为意外情况重新下载安装,下载很慢的。特别是重装系统,下到你绝望。而且移动硬盘也可以用来装一些照片啦,视频啦,游戏安装包啦(很多几十个G的)等等。

暂时就这些,以后想到再补,希望有所帮助。

--------------------------------分割线---------------------------------

高赞答主说我喷他,在评论里顺带批评了我的学校怎么教育出了我这样的学生,然后又删掉了评论更新了回答还在说我喷他。既然如此,那我就回应一下吧。

1.知乎是一个表达不同见解的地方,为什么有人提出疑问和异议就要恶言相向呢?

2.断章取义真的很没有意思,一,我多次强调了大佬除外,高赞答主就是那样的人,他很有能力也很有毅力,读完了那么多书,还做了很多其他的事,二,我没有说大一就定方向,原文说的是先花一段时间去了解,建议大二把方向定下,这是基于我个人的惨痛教训,因为我直到大三下才确定了方向,之前一直这儿学一些那儿学一些,广而不深,吃了很多亏。特别对于保研的同学,明确方向针对性地准备更重要。怎么断章取义后,就成了我在“毒害新生的未来”呢?

3.他说为什么我不当面问他,而是在自己回答里“喷”。大哥,知乎里写回答反对一下别人回答里部分个人觉得可能不合理的地方还不行了吗?而且,这个回答除了前面一部分异议外,其他都是在分享个人经验啊。

4.知乎里的一部分人真的特敏感,其他的我也不想多说了,就这样叭。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一些开学季需要注意的事项: 1. 确认开学日期和时间:在开学前几周,学校会发布详细的开学日期和时间表,以及其他开学事项的通知。确保你已经掌握了这些信息,并准备好按时到达学校。 2. 购买所需的学习用品:检查你的课程清单,并购买所需的学习用品,例如教科书、笔记本电脑、文具、计算器等。如果你不确定需要什么,可以联系学校的教务办公室或你的导师。 3. 组织时间表:在开学前,制定一份时间表来规划你的时间。考虑到你的课程、作业、考试和其他活动,制定一个有序的计划,以确保你能够充分利用你的时间,并且不会漏掉重要的事项。 4. 认识新同学和教授:尝试认识你的新同学和教授。这将有助于你更好地融入学术和社交环境,并建立重要的联系。可以参加学校组织的新生活动或社交活动,或者在课堂上主动与同学和教授交流。 5. 确保有足够的资金:开学季通常需要购买一些必需品和支付学费。确保你有足够的资金来支付这些费用。如果你需要申请贷款或奖学金,尽早准备申请材料,以免延误。 6. 维护健康:开学季通常是疾病传播的高峰期。采取适当的预防措施,如勤洗手、戴口罩、保持社交距离等,以保护自己和他人的健康。 7. 调整心态:学术压力和适应新环境可能会让人感到焦虑和不安。记住,你不是唯一一个有这种感受的人。尝试放松自己,参加体育运动、社交活动或其他活动,以缓解压力。如果你需要帮助,学校通常提供心理健康服务,你可以咨询专业人士。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值