NEFU转专业到计算机科学与技术专业个人经验分享
Posted CurleyD
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NEFU转专业到计算机科学与技术专业个人经验分享相关的知识,希望对你有一定的参考价值。
目录
前言
为什么写下这篇文章?
在我刚刚进入大学的很长一段时间都是两眼一摸黑,很多很简单的事情都搞不懂,比如:一直想转专业到计科但苦于没有信息资源,没有努力方向等等,可以说浪费了很长一段时间在原地踏步。现在我已经转专业到了计科专业,想把一些小的经验分享出来,尽自己的微薄之力发一发光和热~
谁适合看这篇文章?
有志于转专业到计算机科学与技术专业的NEFUer.
在阅读之前请认真思考几个问题:
1.为什么要转计科?
2.相对于原来的专业你是否更适合学习计科?
3.转计科后你是否会后悔?
如果你思考后还坚定的想要转专业,请阅读正文。
正文
转专业时间线
大一上:无
大一下:学期末教务处发布转专业通知,学生在教务系统中填报转专业的一、二志愿。
大二上:开学进行笔试 + 面试,公布拟录取名单,被录取的学生签字确认转入,至此结束。
信息获取渠道
1.学校官网:教务处通知栏里能够找到往年的文件(考核文件以及录取名单)
2.本校已经转专业成功的往届同学:可以问到具体转专业面试的问题等等
3.各种交流群:群里面会有很多热心的学长学姐及同学,很感谢他们!
4.b站 / 知乎等:很多人会分享转专业相关经验(虽然不是NEFU的,但也有参考价值)
计科转专业要求(个人解释版本)
成绩:
不能挂科,加权成绩越高越好。
计算机基础 / 了解程度:
必须掌握C语言(笔试会用,我们今年似乎是因为疫情没有上机考试改成了笔试),其他相关知识 / 比赛经历等等越多越好
其他:
良好的礼貌和态度,一个让人信服且真诚的转入理由,一定的英语口语能力(回答简单英语问题),比别人具有什么转入的优势等等。
转计科学习路线(零基础向)
仅仅面向没有学习方向的小白,大佬随意orz
基础:
看得过去的成绩 + 掌握基本的一些计算机相关的能力 + 英语
1.成绩方面:尽量在大一上及大一下卷加权成绩,越高越好,但也不要唯成绩论(加权成绩高是一种对自己能力的证明,并且为以后转入后保研做准备,但要注意不能只卷加权成绩,如果只有加权成绩高,但是计算机方面不那么了解的可能不会成功。)
2.计算机方面:大一上学习C语言和基础计算机知识,大一下学习简单的数据结构和一些简单算法。(注意这些知识只是基础的要求,学了这些知识可以入门)
3.英语方面:四六级,口语方面(面试会考口语)
提升:
打牢基础 + 深入学习 + 参加计算机相关的比赛
1.熟练掌握C语言,数据结构链表部分,计算机基础知识。
2.掌握一些有用的算法知识(比如快速排序,归并排序等),学习另一门编程语言python / java等。
3.参加计算机相关比赛:蓝桥杯,程序设计天梯赛,ICPC / CCPC(有难度),CSP认证。(这里只推荐参加蓝桥杯和CSP认证,因为这两个门槛较低,前者获奖容易,后者会C语言就能拿170分。)
2022个人转计科过程记录(笔试+面试)
笔试
考试时间2022.8.30上午八点半到十点半
考试形式为手写代码, 实现语言要求为C语言(可能因为疫情原因没有上机考试).
笔试过60分可以参加面试.
题目:
1.读入一个数n, 输出n的所有因子.
2.从键盘读入三个数, 输出最大的.
3.从键盘读入3×3方阵, 输出 3×3的方阵的主对角线元素之和.
4.比较两个字符串是否相同(具体定义见百度), 相同输出Y, 不同输出N. 串的长度不超过100, 要求不能用库函数. (这个题目我记不太清楚了, 可能是问的字典序大小谁大?)
5.判断一个字符串是不是回文串是输出Y, 不是输出N.
PS:都是一些简单的C语言题目,但是转专业要求文件里提到的链表没有考到,可能因为我当时考的是试卷2,或者是不能上机认为手写链表太浪费时间?
答案:
我写的应该是全对了,但有些非常规做法(涉及到简单算法知识),为了避免大篇幅代码段,我会传到CSDN的资源里,也可以直接加我Q我发你(见文末),可以免费下载下来参考下。
面试
面试时间2022.8.30下午一点到晚上八点.
按照笔试通过的人进行随机排序后面试.
PS: 如果你的面试顺序靠后,请记得带上充电宝和一些吃的!
问题:
中文:
1.你是什么专业, 学习成绩怎么样, 为了转入计科付出了什么努力?
2.你说你参加算法竞赛, 有什么成绩吗? (针对我个人情况问的, 别人应该大概率不是这个问题)
3.你原专业是XXX专业(手动打码自己owo), 为什么要转到计科(要求不能回答兴趣和就业前景好这两点).
4.你有什么缺点?
英文:
what's your favourite subject? (你最喜欢的学科?)
注意!
重点在于回答中凸显自己的相比其他同学的优势,自己付出了什么努力,自己现在已经了解了一些计科的知识,想要未来更进一步探索,自己对未来的规划很是清晰等等。并且要不卑不亢,沉稳一些,不能够贬低原专业,也不能说自己学习能力不行之类的话。
后记
整理的一些转专业需要的资料(通知,录取名单等)
这个见我CSDN的资源那,或者加我,我发你都行,免费下载~
我的神奇操作(图一乐就行了owo)
众所周知,补退选能够退自己专业的课程选其他专业的课程(风险极大,极不推荐!!!)。
我下学期由于实在太想学计算机相关的了,直接破釜沉舟给自己的课程都退掉了,换成了和计算机类完全一样的。学了离散数学和高级语言程序设计,这两门课程考的还行(96,100),当时我面试时候说了这点,感觉老师们对我的看法好了不少。
但并不是说退课程就一定是好事!你一旦退课,首先,转不过去会很麻烦,其次,你会一个学期都基本上自己去上课,很容易懈怠,我的高数就是因为这个原因考炸了。所以谨慎退课!
END.
感谢观看,如果有问题欢迎联系我:1253897581@qq.com, 祝各位转入理想的专业, GL&HF!
经验分享丨你想知道的四个计算机专业分支都在这里了!
如果你想进大厂,那果断选择考研;如果非要根据你的需求和实际情况,从这四个分支里面选择一个分支,我强烈建议你,四个分支——计算机科学与技术,软件工程,网络工程,数据科学与大数据技术中,请果断地选择——计算机科学与技术。
我再次非常负责任地告诉你,当你拥有了硕士学位,且选择了“计算机科学与技术”这个分支,在大厂的眼里,你绝对是最根正苗红的科班,是他们选择相关人才最正统的专业,没有之一!
什么软件工程、网络工程、大数据,说白了只是正统计算机科学技术下面的一个分舵而已。这些专业之间的关系肯定也不是平行的。大数据是最新的,它们和软件开发、coding的关系不那么大,理论研究偏多。
如果非要选择排名,第一选择——计算机科学与技术,第二选择——软件工程;第三选择——大数据。第四选择——网络工程。
不过,话说回来,倘若你将来要选择的是大学毕业后直接进入开发岗位,其实专业名词就反而没有那么重要了。重要的是你的技术栈!那么软件工程就是你的第一选择!
在这里,我个人推荐一条比较务实的学习路径——
你在学生时代真的要好好把握,如果能耐得住寂寞,就好好地把基础打牢,学习透一门编程语言(JAVA or C语言/C++,不推荐把python/Go/PHP作为第一语言),然后好好地刷牛客或者力扣;再把网络原理+ 网络编程 + 操作系统 + 设计模式 + 数据结构和基本算法好好学习到位;再配置5到10个开源项目,如果还能有时间,那就再去研究研究linux内核。
一旦有了这些底子,BATJ + TMD 这些大厂真的可以随便进。
网络工程
其实网络原理和网络编程并不是一回事,网络原理主要注重理论,网络编程主要是指TCP/UDP/HTTP编程;学习网络原理和网络编程,你需要掌握以下这些知识点:
http协议,数据格式,常见响应码和返回码,HTTP1.0与2.0的区别,请求方法,存在哪些安全隐患,知道 https 是如何加密的、数字证书如何形成,什么是对称加密、非对称加密。http会话结束标志;Get与Post的区别;https建立连接的详细过程,哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解?
TCP协议:三次握手、四次挥手、TCP/IP的数据链路层的交互;如何保证可靠传输、流量控制、拥塞控制。定时器,数据报文格式;socket编程的每个步骤的意义与参数代表。TCP的状态转换?TIME_WAIT状态的作用?
UDP:主要考察应用场景以及与TCP哪些不同?
select/poll/epoll的相关原理;select的各个参数作用?有哪些读/写事件?有没有更高效的IO模型?
send/recv有哪些出错情况?分别应该怎么处理?阻塞和非阻塞套接字的区别,send/recv的在阻塞和非阻塞下表现有啥不同,和同步/异步概念的区分?
当然,还有一些更高层次的问题,也值得你去思考:
网络框架对比和源码分析ACE/ICE/ZeroMQ/Mudo/Libevent/nginx
自己去设计网络请求框架,怎么做?
书籍推荐
关于推荐书籍,大家一般都会推荐《计算机网络:自顶向下》、《图解http》这两本。但我个人感觉当中的术语太多,难理解,门槛偏高,不太适合初学者。
我觉得初学者可以先看这两本,对于兴趣的培养也很重要。一本是尹圣雨的《TCP/IP网络编程》(韩国人写的),里面都是通过举例子来带你理解,写得非常好;另一本我的印象十分深刻,游双的《linux高性能服务器》,我当年,就是看了这本书,才正式从嵌入式端转为服务器开发的。
那你可能又想问,具体要怎么学习怎么看书?纸上学来终觉浅,绝知此事要躬行!没有捷径,我当时是耐住了性子,挨个儿把书里的demo代码一个个敲完了!自己边看边动手的收获是非常大的,强烈推荐这种方法!
至于操作系统,我个人就要强烈推荐一本宝藏书籍——《操作系统哲学》。
我个人建议不要去学那些网上推荐得特别多的,比如《现代操作系统》、《操作系统——精髓与设计原理》、《深入理解计算机操作系统》……这些书我看一眼目录,就感觉只有一个词,那就是枯燥无味……(喜欢这些书的人别喷我,纯粹分享个人感受)而当我发现了《操作系统哲学原理》这本书以后,我真是太佩服作者了,他能够把如此索然无味的操作系统知识,写得那么有趣,真是太奈思了!
在这本书中,你需要掌握以下:
进程/线程使用场景、内存分布、区别与联系
操作系统的内存对齐/字节对齐
处理器管理与存储管理
进程的通信方式/线程同步方式;linux常见的进程间通信方法有哪些,自己用过哪些?可举例。线程的同步方式有哪些?
僵尸进程是怎么产生的?怎么回收,请讲出回收僵进程的至少两种方法?如何查看进程是僵尸进程?程序退出后,Linux为什么不直接回收该僵尸进程?
fork及wait问题,什么作用?返回值代表什么意思?
linux应用程序中如何处理信号,有哪些常见信号,分别代表什么意思,怎么利用信号做进程间通讯?编写一个守护进程的方法?
……
再来说说数据结构和算法的推荐书籍,吐血推荐——程杰老师的《大话数据结构》。
每个人的精力有限,很多内容千万不要贪多。
如果只是一个开发岗位,那就掌握最常用、最基础的20个数据结构与算法,学习它们的“来历”、“特点”、“适合解决什么问题”和“实际的应用场景”。只需要下定决心,把这些常见的类型搞明白就行了,这也足以搞得定90%以上的公司面试及工作内容了(PS:如果是算法岗位,就当我没说)。
数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Tire树
算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
具体分为3个小步骤:
边学边练,每周花1~2 小时集中攻关一个数据结构和算法,全部写出来;
多思考、多拓展、还有理解适合解决什么样的问题;
自我激励,每次学习完做一篇学习笔记。
至于最后的设计模式方面,吐血推荐的书籍还是程杰老师——《大话设计模式》。
设计模式是在软件工程实践过程中,软件开发者们总结出的良好的编程方法,使用设计模式能够增加系统的健壮性、易修改性和可扩展性。那么,当你进行开发的软件的规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定。
最后回归正题,还是那句老话,愿大家能耐得住寂寞,最终如愿进入你理想中的大厂。
如果你想在大学期间更好的提升你的编程核心能力(内功)不妨从现在开始!
微信公众号:C语言编程学习基地
以上是关于NEFU转专业到计算机科学与技术专业个人经验分享的主要内容,如果未能解决你的问题,请参考以下文章