洋哥!我要进大厂!

阅读本文大概需要4分钟。

最近不少读者咨询洋哥如何进大厂,回答的多了就想着要不整理出一个系列文章出来。说干就干,第一期先写写应届毕业和刚工作不久的计算机专业的童鞋如何进大厂。

先说说必须要做到的几件事:

第一,学校内的课程,计算机基础知识,如C语言,数据结构,计算机组成原理,计算机网络,计算机操作系统等这些基础专业知识一定要理解掌握,在校招中,这些内容必考。

第二,提升自己写代码的能力。不会配置环境,不会框架,就去找资料自学,B站,慕课很多免费视频课程。

第三,做项目。这里不是指学校做的项目,而是真正可以部署上线的项目。你可以去GitHub上找,也可以从学长学姐或者老师看是否有合适的项目,或者找一些大厂实习岗位。

第四,疯狂刷算法题。leetcode上的题目很多都可能在校招中被拿来当面试题,《剑指Offer》也挺不错,leetcode最起码刷个200,300道,然后把《剑指Offer》背一遍,基本没大问题了。

以上基础,如果读书期间没有打牢固,工作后也必须想办法拼命学习。

再说说我应届毕业加入腾讯的学习路线吧:

首先攻克C语言,这个没什么,谭浩强的《C语言程序设计》反复看,然后一行行在电脑上敲出来。

当时对计算机缺乏系统认识,最难理解的就是指针,书上说它是个变量地址,那么问题来了,什么是地址?一不小心,指针就让程序Crash了。直到读研的时候,看了大学教材:《计算机组成原理》这本书,我才明白指针背后的含义。

攻克完C语言之后,听师兄师姐说数据结构也是自学编程需要攻克的重难点。从数组到链表再到堆栈、二叉树、平衡二叉树、红黑树、B+/B-树,简直就像看天书。还记得二叉树的先序,中序,后序遍历就把我弄晕乎了。更别提后面的AVL树的删除以及B-树。

我应付看不懂的方式也很粗暴:做笔记,勾选出没看懂的部分,反复看。一遍不行看两遍三遍四遍,直到所有内容看懂为止,看懂后就上机,上到天昏地暗上到头晕脑胀。数据结构这本书,记得来来回回看了10多遍,上机100小时以上。

这之后开始系统的学习网络、C++、VC,还记得有一本非常厚的书:《C++ Primer》,可以说上面的每一个例子,都上机造过轮子。

随后开始啃《Effective C++》、《More Effective C++》、《C++程序设计原理》、《深度探索C++对象模型》、《STL源码剖析》、《计算机网络系统方法》、《TCP/IP详解》。

除了疯狂自学,毕业的压力也很重,但掌握的东西越多,你对未来就越笃定。

因为我的目标是毕业后做游戏开发,所以,主攻的三大方向很明确:Window C++开发、算法、网络编程,这些都是游戏编程所需要掌握的硬核技能。除了这些,大学期间我还开始疯狂刷题,当时我是在PKU ACM网站上刷的:

刷题和疯狂学习的过程是枯燥且伴随痛苦的,编译报各种不通过的时候让人无比抓狂,知识点学不会的时候会让你怀疑自己的智商。曾经看过的一部分书籍:

成长的过程,润物细无声,极难察觉。但那段枯燥痛苦的学习和刷题岁月让我未来的道路受益匪浅。毕业后,我也如愿拿到腾讯游戏的Offer,开启了职场生涯。

在我那个时代,线上资源并不丰富甚至是匮乏!今天各种论坛、公开课、学习资料非常丰富。最近指导师弟师妹应对秋招,我找了一些资料,这里也顺便读者们推荐下:

核心就是通过刻意练习的方法学习计算机基础课,主要要攻克三个方向(攻克了会让你如虎添翼):

一、操作系统

操作系统真的可以说是一个奇迹,它为我们做了非常厉害的事情,以至于我们根本感觉不到,只有通过学习它,我们才能深刻体会到它的美妙绝伦,甚至会被计算机大佬们的设计思想所震撼,有些设计思想实际上也是可以应用于我们工作开发中。

操作系统有四大模块,分别是内存管理进程管理文件系统管理输入输出设备管理。推荐大家按照这个顺序去学习操作系统。

尤其要首先学习内存管理,因为它不仅是最重要最难的模块,同时他和其他模块的关联性也最多。搞定内存管理,就是把操作系统攻克了一大半。

另外美国有很多优秀的操作系统公开课,比如mit6.828、哈弗OS/161,这些都可以系统学习下。

这类课程都会给你提供一个mini os壳程序,相当于一个核心组件,剩下的你可以自由发挥。比如你可以设计线程管理、文件系统等等。

相比只是看操作系统的书籍,这种学习方法的效率简直高100倍!


下面是课程官网:

https://pdos.csail.mit.edu/6.828/2018/schedule.html

国内也有一些顶尖高校也是采取类似的方式,比如清华ucore基于 Linux 0.11魔改版本:

https://github.com/hoverwinter/HIT-OSLab


二、数据库

国内说数据库就是mysql,这点要相信我!

首先概览下mysql的知识体系:

基础:

  • sql语句

  • 表结构设计

调优:

  • 索引、慢查询优化

  • 配置参数调优

核心原理:

  • InnoDb存储引擎 (包括隔离级别、事务、锁、缓存池、回滚日志等等)

  • Mysqld (包括连接管理、进程管理、查询缓存、查询优化、日志等等)

架构与运维:

  • 用户与权限、安全

  • 备份与恢复

  • 日志

  • 分布式与高可用

对于零基础的同学:

首先,学习基本的SQL语法。完成这个后,你就可以编写SQL语句了。这一步推荐:W3Schools的 SQL 教程。

其次,学习数据库的主要功能和使用方法,比如用户相关或者权限相关等等。


推荐两本书:


1.《MySQL必知必会》这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql。

这本书学习的方法是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。


2.《数据库系统概念》这本书是很多数据库运维必看的,非常赞,看完这些并且实践+思考之后,可以算入门了。

接下来对于希望成长为数据库大拿的童鞋:


推荐四本书:《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》。

三、计算机网络

网络知识在工作中非常非常重要

我分三个阶段来介绍:


1. 入门

第一本书 建议看谢希仁的《计算机网络基础》


2.进阶

然后第二本要看 《TCP/IP详解1:协议》,这个阶段需要多思考和动手网络在LINUX系统上发挥的最淋漓尽致,所以在学习的时候最好学习LINUX配合使用,学习LINUX,推荐《鸟哥的LINUX私房菜:基础篇》。

学习网络过程中,要不断抓包分析等,自己能写些简单的应用来发包更是完美。抓包工具推荐:LINUX环境下用TCPDUMP,windows环境下用 wireshark。这个阶段写习完后,已经是个小高手了。

主要技能应该是 :对TCP,IP,DNS,icmp等协议应该都蛮熟了得了,dhcp/tftp/ftp等协议也应该都懂些,重点是要学会如何分析一个协议及LINUX系统的基本操作也差不多了。

3.高手阶段

这个阶段需要有一点的编程能力,指C/C++编程。主要学习的方向是协议的实现和协议的架构原理。


协议的实现方面, 主要学习底层协议(指传输层及以下)的实现, 这些协议都是在操作系统层面实现的,最好的教材是《TCP/IP详解:实现》。至于网络架构这块,可以学习《计算机网络》这本书。

另外,计算机专业多刷算法题好处多多,算法厉害的人进大厂非常容易,这里推荐一本BAT大佬的算法笔记:尼玛!BAT大佬的刷题笔记太经典!(文末送书)。

今天就写这么多,下一篇谈谈社招如何进大厂,敬请期待~

·················END·················

你好,我是findyi,毕业于华科、清华,

一位大厂的业务负责人,

做过大厂技术总监,

也做过小厂CTO的产品技术人,

同时,也是一位信奉终身成长的职场人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/305610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调整png的不透明度_TGA与PNG的优劣对比

一、TGA与PNG的特点(一)PNG 解码混乱 不稳定 有时候不能识别 放在AE里呈像杂质,斑点极多。PNG相当于视频格式中AVI。而TGA 更接近原始格式,更安全稳定,两者质量单独的最优无损情况下效果差不多。图1TGA格式二值化后放到…

这难道不是.NET5的bug? 在线求锤?

hello,最近在对一个使用.NET5项目的认证授权系统进行重构,对.NET 5的授权中间件的源码有些看法。也希望同学们能帮我理解。一个朴素的需求这是一个api项目,默认所有的api都需要授权, 少量散落在Controller各处的api不需要授权访问…

win2008r2用户账户控制什么意思_养老保险统筹账户是什么意思?有什么用?

我国《社会保险法》规定:基本养老保险实行统筹账户和个人账户相结合的方式。对于在职职工来说,养老保险费分为单位缴费和个人缴费两部分;单位一般按照缴费基数的20%划入到统筹账户中,个人按照缴费基数的8%计入到个人账户里&#x…

android手机拍摄权限,react-native 手机拍照权限

第一步 :在 android/app/src/main/AndroidManifest.xml添加然后运行项目在手机应用权限哪里查看这是添加前的这是添加后的第二步调用import React, {Component} from react;import {View,Text,Image,StyleSheet,Button,Modal,TouchableHighlight,TouchableOpacity,D…

idea 一直在build_让web开发部署提速 8 倍的一款 IDEA 插件,你有在用?

原文:http://suo.im/4on4JE 来源于云栖社区>中间件小哥作为一个 Java 程序员,我们大多数会在 Intellij IDEA 中基于 SpringBoot 来开发 WEB 应用,所以本文中的测评将会基于以下几个架构来构建:开发环境:IDEA项目组织方式&…

Android 调用12306接口,GitHub - AndroidyxChen/loading-12306: 仿PC端12306的刷新loading的自定义view...

loading-12306仿PC端12306的刷新loading的自定义view效果图:核心代码及实现逻辑如下:mPaint.setColor(mColor);mPaint.setTextSize(50);//1、动画开启前,theCircle的初始值为-1,所以初始化时只走canvas.drawCircle()方法&#xff…

FreeBSD 下的 MySQL 备份方案

作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。核心提示:如何在 FreeBSD 下实现 MySQL 的全量及增量备份&am…

IdentityServer4(八)使用EntityFramework Core对数据进行持久化

上几篇,我们创建了客户端,scope,启动时,IdentityServer把这些配置数据加载至内存,但是,如果我们想要更改配置,就必须停掉IdentityServer,然后重新启动。且IdentityServe在r运行过程中…

centos 重启网卡_CentOS7网络配置和修改网卡名称及常用服务管理命令

1.设置IP地址和网关及DNSCentOS7里面的网卡名称不在是eth0,1,2而改成enoxxxxxx的格式,en代表的是enthernet以太网,o代表onboard内置,这种新的方式不但长,而且难记,不过优点也比较突出,有编号唯一性&#xf…

C# 中的动态类型

翻译自 Camilo Reyes 2018年10月15日的文章 《Working with the Dynamic Type in C#》 [1] .NET 4 中引入了动态类型。动态对象使您可以处理诸如 JSON 文档之类的结构,这些结构的组成可能要到运行时才能知道。在本文中,Camilo Reyes 解释了如何使用动态…

python根据列表绘制柱状图_python把一个列表画柱状图

原博文 2018-10-18 14:28 − https://blog.csdn.net/w113691/article/details/80385534... 相关推荐 2019-12-07 19:38 − 用python画简单的树 代码如下: import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, t): time.sleep(0.00…

基于电子邮件的InfoPath表单发布的注意点 [Infopath 2007]

让我们先来看看InfoPath 2007提供的其他几种发布方案:1. 将InfoPath模板发布到SharePoint Server或者InfoPath Form Server2. 将InfoPath模板制作成一个安装程序3. 将InfoPath模板发布到一个共享网络地址上方案1,3 都必须依赖已有服务器或网络,而方案2 则…

如何在 C# 8 中使用 Index 和 Range

C# 8 中有几个比较好玩的新特性,比如下面的这两个:System.Index 和 System.Range,分别对应着索引和切片操作,这篇文章将会讨论这两个类的使用。System.Index 和 System.Range 结构体 可以用它们在运行时对集合进行 index 和 slice…

Hybrid-APP技术原理

源宝导读:Hybrid-APP技术不仅具有“Native APP的良好交互体验”同时也具备“Web APP跨平台开发的优势”。既然Hybrid-APP有这么多优势,那么究竟什么样的APP才算Hybrid App呢?本文将分享我们的技术研究成果。一、什么是Hybrid-APP狭义的Hybrid…

基于微软ASP.NET AJAX框架开发幻灯片播放网页

一、 简介 最近,微软ASP.NET Ajax 1.0框架以其完整的基于Ajax的web开发方案呈现在web技术人员的前面,凭借与遗留ASP.NET系统的有机整合以及完全面向对象的客户端JavaScript组件模型两大绝杀正在引起越来越多的基于.NET平台的web开发者的关注。本文应该属…

推荐:.Net 5开源免费的内容管理系统

背景介绍内容管理系统(content management system,CMS)是一种位于WEB 前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理…

河南信息工程学校计算机组装比赛,计算机技术系承办2019全员化试点项目计算机网络装调赛项...

2019年10月16日,由河南省教育厅主办、河南省职业教研室承办的技能竞赛全员化试点项目“计算机网络装调”赛项在河南信息工程学校开赛,来自全省37所学校的96名选手同台竞技,和谐交流。“计算机网络装调”赛项是2019年河南省中职教育技能竞赛的…

限制IIS站点的内存,避免级联影响

背景 代码写的有问题,会很容易出现内存泄露的问题。应用如果是部署在docker容器里面的,可以限制这个应用的内存。那么,如果是传统的.NET Framework应用,部署在IIS上面呢?老黄曾经遇到过在一台服务器上面,II…

笔记本怎么查看hdmi版本_涨知识丨一文看懂笔记本电脑HDMI接口

上一期文章我们同大家简单介绍了笔记本电脑Type-C接口及其日常用途,今天我们来聊聊笔记本电脑上另一个常备的电脑接口HDMI,它究竟是什么,有哪些用途,我们一一为您揭晓!如图所示,有着HDMI标识的接口就是我们…

中小企业CRM评测-用户交互_易客

用户交互<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />如何评测在这个部分我们应用了用户接口易用性方面的几种测试方法&#xff0c;以客观的评估参测产品在用户接口设计方面的素质。物理操作负担主要是由参测产品完成一组既定…