完全零基础者,如何正确学习编程?
的有关信息介绍如下:
跟着北大计算机学长的路线走吧!学长秋招大概面试过互联网几个头部大厂和几个外企,基本都拿到所谓的special offer了。主要拿到的互联网offer包括腾讯,字节跳动,快手,美团;外企的offer拿到的有PayPal和freewheel。基本是差不多面试的都拿到offer了,在投递的时候也是选择性投递。一定记得点赞~~!
这个回答里边分享了我在校招中拿到的offer以及对应的工资情况:
下面给大家一些建议:
1、学会自学编程,利用Mooc、b站、网易云课堂、Coursera等平台自学编程,大学很多老师都是念ppt,不少985、211老师也不例外,计算机本来很有趣,听这种ppt课程只能是劝退,应该是看一些高质量精品课程高效学习编程。
2、学习国外大学的公开课,如像MIT,斯坦福,普林斯顿,伯克利等等都有公开课,而且质量非常的高。比如伯克利的CS61b数据结构,MIT 6.828 的操作系统,斯坦福的CS 144计算机网络。 不得不说,美帝顶级大学的课程很硬核,比如mit的操作系统课程,核心就是带你完成一个mini 操作系统。如果你想手写tcp,手写编译器,学这些课程就对了!
3、读经典书籍,尤其是大黑书系列,如《深入理解计算机系统》、《算法导论》。你会发现那些21天学会XX,一周速成都是什么破玩意,误人子弟。
4、学好计算机网络、操作系统、数据结构与算法和计算机组成原理四门计算机核心课程,这四门课就如同盖房子的地基,会使你的编程之路走的更扎实。功利点讲,是考研408的四门课程,是互联网大厂面试必考的知识!
而且计算机应用层知识更新换代太快了,就拿java来说,10年前还在用ssh框架,5年前是ssm,现在已经是springboot,springcloud微服务化!但计算机基础知识是不变的,基础打牢了,新知识很快融会贯通。
5、到大三上决定考研还是工作,校招是进入大厂的最好机会,一定要清楚地认识到,提前做好准备。不要在大学虚度光阴,不要做毕业就失业的学生。一定提前去牛客网逛逛,去leetcode刷刷题,去看看剑指offer。
6、参加实习,记住暑期实习不是暑期找实习,而是暑期去企业实习,找暑期实习是在大三下的2-4月份。求职早就是优势,本科生在大三上就要开始准备,研究生在研二上就要准备。
7、参加一个计算机社团,进入ACM队,进老师的实验室,这些都可以,找一个志同道合的团队一起做项目,一起coding,切记不要在宿舍虚度光阴。至于学生会等官僚主义的组织,会动不动就让你旷课干活,就别报了。
8、多刷leetcode,多刷leetcode,多刷leetcode,重要的事情说三遍,大二就可以开始,将来不管是去外企还是国内大厂,算法必考,尤其想去外企的,基本每场笔试都要来2、3道算法题。
9、双非、普通本科从来不是进不了大厂的根本原因,不可否认的是学历歧视确实存在,但技术只要过关,够聪明、勤奋,仍有机会进大厂。我的读者群里,不少双非的同学照样拿到字节、腾讯的offer。
10、多写代码,Talk is cheap. Show me the code,计算机编码是根本!一天100行,毕业时10w行,不愁没有好工作。
都看到这里了,不要白嫖哦,动动你的小手指,给学长点一个赞啦 接下来学长分享给同学们一些优质的学习资源和公开课,助力同学们高效学习
一、计算机学习路线-课程
1、计算机导论
youtube的这门计算机科学速成课,讲了计算机的方方面面,里里外外,涵盖的知识点非常的广,然而讲述的时间却不是很长,精简干练深入浅出。
【计算机科学速成课】[40集全/精校] - Crash Course Computer Science
2、C语言
C语言是一门面向过程的编译型语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。 推荐浙江大学翁凯老师的C语言程序设计
C语言程序设计_浙江大学_中国大学MOOC(慕课)
3、数据结构与算法 视频方面推荐 浙江大学陈越老师的数据结构
老师讲得蛮接地气的,学完足以对付蓝桥杯。 数据结构,重在实践,多写代码,就懂了。
4、计算机组成原理
学习计算机组成原理,就会知道计算机是如何工作、如何协调运行的,计算机就不在是黑匣子。 计算机组成原理是计算机专业的核心主干课之一,也是学习计算机的其它后续课(如计算机系统结构、操作系统等)的重要的专业基础课。 国内视频推荐哈工大的
国外视频推荐课程选择cs61c,课程总时长约25h。
书籍就看唐朔飞老师就好了,这门课学起来还是比较难的。 国外书籍推荐:深入理解计算机系统
这门课重点讲授计算机系统的硬件组成,及其主要功能子系统的基本原理和逻辑设计,考研的必须要学好了。
5、操作系统
学习操作系统目的并不是让你去编写自己的操作系统,而是更好地理解程序运行的平台,从而更好地编写程序。
操作系统(哈工大李治军老师)32讲(全)
每节课都带着回顾一下上一节内容;遇到问题先提出一个浅显直接的初级解法,然后在此基础逐渐优化。
【精校中英字幕】2015 CMU 15-213 CSAPP 深入理解计算机系统
书籍推荐:
操作系统实战:阅读小型系统内核的代码是一个很不错的方法,可以巩固对操作系统的理解。 强烈推荐,xv6,这是由 MIT 的一门课程所维护的从 Unix V6 到 ANSI C 和 x86 的移植。 《操作系统导论》有一个附录,记载了一些 xv6 实验项目,有很多很棒的想法。
6、计算机网络
中科大郑老师的计算机网络公开课讲得很棒,最近在b站很热门
mooc是2020年秋科大自动化系本科课程录制版,可与中科大学生一起完成专业知识的学习。 在介绍计算机网络体系架构的基础上,自上而下、以互联网为例系统地阐述了网络体系结构各层次的主要服务、工作原理、常用技术和协议,包括应用层、传输层、网络层、数据链路层和物理层,最后是网络安全原理和协议。 国外视频,推荐计算机网络cs 144,课程总时长约25h,共计9个课时。 国内计算机网络公开课几乎都没有实验,想手写tcp、 udp强烈推荐这个课程
书籍:计算机网络 自顶向下
7、数据库
哈尔滨工业大学-数据库系统(上+中+下)
CS145:Introduction to Databases Course Information
CS245:Principles of Data-Intensive Systems
CS346:Database System Implementation
如果想想手写B树、操作磁盘,推荐 MIRT 6.830。
实验是让你写个小型关系型数据库,比如 lab1实现数据库基本的存储逻辑结构。
8、计算机体系结构
推荐苏黎世联邦理工2020年秋季计算机体系结构课程:
Onur Mutlu教授讲课,他是ACM和IEEE院士,获得了2019年的莫里斯·威尔克斯奖。 大致上相当于苏黎世联邦理工2020年春季课程或者是他之前在卡内基梅隆大学上过的18-447课程的进阶版。
9、编译原理 CS-143 斯坦福编译原理 课程以理论和实践并重,课程项目为制作一个面向对象风格的 Cool 编译器,还是很有难度的。
b站也有对应的资源:CS143: Compilers。b站也有对应的资源:
二、参加实战
1、参加比赛
计算机竞赛不仅能提升编程能力,还能在你找工作时充实简历。常见的计算机类比赛有: 算法类的竞赛比如ACM-ICPC(国际大学生程序设计竞赛)、蓝桥杯、CCCC-GPLT(天梯赛); 数据挖掘及人工智能类的比赛,比如Kaggle、KDD(国际知识发现和数据挖掘竞赛)、阿里天池、DataFountain、腾讯广告算法大赛、Heywhale和鲸; 各大公司举办的商业比赛,比如华为软件精英挑战赛、百度之星等; 工程项目类比赛,比如中国大学生计算机设计大赛、Imagine Cup(微软“创新杯”)、花旗杯; 在线oj算法竞赛,比如lintcode、codility、leetcode
2、做项目
学校老师有项目可以跟学校老师做,没有的话,可以做Github上开源的项目。 现在资源这么发达了,b站上也有很多培训班的项目视频,可以一步步跟着做。
Java的练手项目给大家推荐的是这个,可以跟着视频手把手做一个项目出来,SpringBoot通用项目:电商支付实战+电商平台双系统。
需要帮忙修改简历的可以私聊我,可以帮你分析是简历的问题还是投递方式的问题。
对自己当前的学习比较迷茫的也可以私聊我,因为已经帮了不同情况的球友规划过学习路线,也顺利了解决他们的问题。



