This commit is contained in:
youngyangyang04
2021-09-05 23:19:48 +08:00
parent b880bac080
commit b2c6d5078a
31 changed files with 1336 additions and 80 deletions

View File

@ -35,6 +35,8 @@ target = 4
## 思路
对完全背包还不了解的同学,可以看这篇:[动态规划:关于完全背包,你该了解这些!](https://programmercarl.com/背包问题理论基础完全背包.html)
本题题目描述说是求组合,但又说是可以元素相同顺序不同的组合算两个组合,**其实就是求排列!**
弄清什么是组合,什么是排列很重要。
@ -220,6 +222,23 @@ const combinationSum4 = (nums, target) => {
};
```
Rust
```Rust
impl Solution {
pub fn combination_sum4(nums: Vec<i32>, target: i32) -> i32 {
let mut dp = vec![0; target as usize + 1];
dp[0] = 1;
for i in 1..=target as usize {
for &j in nums.iter() {
if i as i32 >= j {
dp[i] += dp[i- j as usize];
}
}
}
return dp[target as usize];
}
}
```
-----------------------

View File

@ -191,35 +191,23 @@ Java
```Java
class Solution {
public boolean canPartition(int[] nums) {
if(nums == null || nums.length == 0) return false;
int n = nums.length;
int sum = 0;
for (int i : nums) {
sum += i;
for(int num : nums){
sum += num;
}
if ((sum & 1) == 1) {
return false;
}
int length = nums.length;
int target = sum >> 1;
//dp[j]表示前i个元素可以找到相加等于j情况
boolean[] dp = new boolean[target + 1];
//对于第一个元素只有当j=nums[0]时,才恰好填充满
if (nums[0] <= target) {
dp[nums[0]] = true;
}
for (int i = 1; i < length; i++) {
//j由右往左直到nums[i]
for (int j = target; j >= nums[i]; j--) {
//只有两种情况,要么放,要么不放
//取其中的TRUE值
dp[j] = dp[j] || dp[j - nums[i]];
}
//一旦满足,结束,因为只需要找到一组值即可
if (dp[target]) {
return dp[target];
//总和为奇数,不能平分
if(sum % 2 != 0) return false;
int target = sum / 2;
int[] dp = new int[target + 1];
for(int i = 0; i < n; i++){
for(int j = target; j >= nums[i]; j--){
//物品 i 的重量是 nums[i],其价值也是 nums[i]
dp[j] = Math.max(dp[j], dp[j-nums[i]] + nums[i]);
}
}
return dp[target];
return dp[target] == target;
}
}
```

View File

@ -9,7 +9,7 @@
> 二叉搜索树删除节点就涉及到结构调整了
## 450.删除二叉搜索树中的节点
# 450.删除二叉搜索树中的节点
[力扣题目链接]( https://leetcode-cn.com/problems/delete-node-in-a-bst/)
@ -25,7 +25,7 @@
![450.删除二叉搜索树中的节点](https://img-blog.csdnimg.cn/20201020171048265.png)
## 思路
# 思路
搜索树的节点删除要比节点增加复杂的多,有很多情况需要考虑,做好心里准备。
@ -228,7 +228,7 @@ public:
};
```
## 总结
# 总结
读完本篇,大家会发现二叉搜索树删除节点比增加节点复杂的多。
@ -246,10 +246,10 @@ public:
迭代法其实不太容易写出来,所以如果是初学者的话,彻底掌握第一种递归写法就够了。
## 其他语言版本
# 其他语言版本
Java
## Java
```java
class Solution {
public TreeNode deleteNode(TreeNode root, int key) {
@ -279,14 +279,9 @@ class Solution {
}
```
Python
## Python
```python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def deleteNode(self, root: TreeNode, key: int) -> TreeNode:
if not root: return root #第一种情况:没找到删除的节点,遍历到空节点直接返回了
@ -318,7 +313,7 @@ class Solution:
return root
```
Go
## Go
```Go
// 递归版本
func deleteNode(root *TreeNode, key int) *TreeNode {
@ -404,9 +399,9 @@ func deleteNode(root *TreeNode, key int) *TreeNode {
}
```
JavaScript版本
## JavaScript
> 递归
递归
```javascript
/**

View File

@ -39,6 +39,11 @@
## 思路
如果对背包问题不都熟悉先看这两篇:
* [动态规划关于01背包问题你该了解这些](https://programmercarl.com/背包理论基础01背包-1.html)
* [动态规划关于01背包问题你该了解这些滚动数组](https://programmercarl.com/背包理论基础01背包-2.html)
这道题目,还是比较难的,也有点像程序员自己给自己出个脑筋急转弯,程序员何苦为难程序员呢哈哈。
来说题,本题不少同学会认为是多重背包,一些题解也是这么写的。

View File

@ -39,6 +39,11 @@
## 思路
如果对背包问题不都熟悉先看这两篇:
* [动态规划关于01背包问题你该了解这些](https://programmercarl.com/背包理论基础01背包-1.html)
* [动态规划关于01背包问题你该了解这些滚动数组](https://programmercarl.com/背包理论基础01背包-2.html)
如果跟着「代码随想录」一起学过[回溯算法系列](https://programmercarl.com/回溯总结.html)的录友,看到这道题,应该有一种直觉,就是感觉好像回溯法可以爆搜出来。
事实确实如此,下面我也会给出相应的代码,只不过会超时,哈哈。

View File

@ -167,7 +167,7 @@ public:
## 其他语言版本
# 其他语言版本
Java

View File

@ -46,6 +46,7 @@
这是一道典型的背包问题,一看到钱币数量不限,就知道这是一个完全背包。
对完全背包还不了解的同学,可以看这篇:[动态规划:关于完全背包,你该了解这些!](https://programmercarl.com/背包问题理论基础完全背包.html)
但本题和纯完全背包不一样,**纯完全背包是能否凑成总金额,而本题是要求凑成总金额的个数!**

View File

@ -10,7 +10,7 @@
> 如果不对递归有深刻的理解,本题有点难
> 单纯移除一个节点那还不够,要修剪!
## 669. 修剪二叉搜索树
# 669. 修剪二叉搜索树
[力扣题目链接](https://leetcode-cn.com/problems/trim-a-binary-search-tree/)
@ -20,7 +20,7 @@
![669.修剪二叉搜索树1](https://img-blog.csdnimg.cn/20201014173219142.png)
## 思路
# 思路
相信看到这道题目大家都感觉是一道简单题事实上leetcode上也标明是简单
@ -228,7 +228,7 @@ public:
};
```
## 总结
# 总结
修剪二叉搜索树其实并不难,但在递归法中大家可看出我费了很大的功夫来讲解如何删除节点的,这个思路其实是比较绕的。
@ -238,10 +238,10 @@ public:
本题我依然给出递归法和迭代法,初学者掌握递归就可以了,如果想进一步学习,就把迭代法也写一写。
## 其他语言版本
# 其他语言版本
Java
## Java
```Java
class Solution {
@ -264,16 +264,10 @@ class Solution {
```
Python
## Python
```python3
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
if not root: return root
@ -285,17 +279,11 @@ class Solution:
root.right = self.trimBST(root.right,low,high) // root->right接入符合条件的右孩子
return root
```
Go
## Go
```go
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
// 递归
func trimBST(root *TreeNode, low int, high int) *TreeNode {
if root==nil{
@ -313,6 +301,7 @@ func trimBST(root *TreeNode, low int, high int) *TreeNode {
root.Right=trimBST(root.Right,low,high)
return root
}
// 迭代
func trimBST(root *TreeNode, low int, high int) *TreeNode {
if root == nil {
@ -347,7 +336,8 @@ func trimBST(root *TreeNode, low int, high int) *TreeNode {
```
JavaScript版本
## JavaScript版本
迭代:
```js
var trimBST = function(root, low, high) {

View File

@ -7,7 +7,7 @@
<p align="center"><strong>欢迎大家<a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
## 701.二叉搜索树中的插入操作
# 701.二叉搜索树中的插入操作
[力扣题目链接](https://leetcode-cn.com/problems/insert-into-a-binary-search-tree/)
@ -24,7 +24,7 @@
* -10^8 <= val <= 10^8
* 新值和原始二叉搜索树中的任意节点值都不同
## 思路
# 思路
其实这道题目其实是一道简单题目,**但是题目中的提示:有多种有效的插入方式,还可以重构二叉搜索树,一下子吓退了不少人**,瞬间感觉题目复杂了很多。
@ -195,7 +195,7 @@ public:
};
```
## 总结
# 总结
首先在二叉搜索树中的插入操作,大家不用恐惧其重构搜索树,其实根本不用重构。
@ -204,9 +204,10 @@ public:
最后依然给出了迭代的方法,迭代的方法就需要记录当前遍历节点的父节点了,这个和没有返回值的递归函数实现的代码逻辑是一样的。
## 其他语言版本
# 其他语言版本
## Java
Java
```java
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
@ -253,7 +254,7 @@ class Solution {
}
```
Python
## Python
**递归法** - 有返回值
@ -267,7 +268,8 @@ class Solution:
if root.val > val:
root.left = self.insertIntoBST(root.left, val) # 递归创建左子树
return root
```
```
**递归法** - 无返回值
```python
class Solution:
@ -294,7 +296,8 @@ class Solution:
return
__traverse(root, val)
return root
```
```
**迭代法**
与无返回值的递归函数的思路大体一致
```python
@ -326,7 +329,7 @@ class Solution:
```
Go
## Go
递归法
@ -343,8 +346,10 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
}
return root
}
```
迭代法
```
迭代法
```go
func insertIntoBST(root *TreeNode, val int) *TreeNode {
if root == nil {
@ -370,9 +375,9 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
}
```
JavaScript版本
## JavaScript
> 有返回值的递归写法
有返回值的递归写法
```javascript
/**
@ -404,7 +409,7 @@ var insertIntoBST = function (root, val) {
};
```
> 无返回值的递归
无返回值的递归
```javascript
/**
@ -444,7 +449,7 @@ var insertIntoBST = function (root, val) {
};
```
> 迭代
迭代
```javascript
/**

View File

@ -382,7 +382,7 @@ used数组可是全局变量每层与每层之间公用一个used数组
以下在计算空间复杂度的时候我都把系统栈(不是数据结构里的栈)所占空间算进去。
子集问题分析:
* 时间复杂度O(n * 2^n)因为每一个元素的状态无外乎取与不取所以时间复杂度为O(2^n)构造每一组子集都需要填进数组又有需要O(n)最终时间复杂度O(n * 2^n)
* 时间复杂度O(2^n)因为每一个元素的状态无外乎取与不取所以时间复杂度为O(2^n)
* 空间复杂度O(n)递归深度为n所以系统栈所用空间为O(n)每一层递归所用的空间都是常数级别注意代码里的result和path都是全局变量就算是放在参数里传的也是引用并不会新申请内存空间最终空间复杂度为O(n)
排列问题分析:
@ -390,7 +390,7 @@ used数组可是全局变量每层与每层之间公用一个used数组
* 空间复杂度O(n),和子集问题同理。
组合问题分析:
* 时间复杂度O(n * 2^n),组合问题其实就是一种子集的问题,所以组合问题最坏的情况,也不会超过子集问题的时间复杂度。
* 时间复杂度O(2^n),组合问题其实就是一种子集的问题,所以组合问题最坏的情况,也不会超过子集问题的时间复杂度。
* 空间复杂度O(n),和子集问题同理。
N皇后问题分析

View File

@ -0,0 +1,84 @@
# HR面注意事项
[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里已经有一些录友开始准备HR面。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210807155107.png)
甚至星球里已经有录友拿到百度提前批的offer
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210808102821.png)
看到一些录友面试这么顺利还是非常开心的同时我也在知识星球里分享了HR面最容易遇到的 问题,已经应该如何回答。
相信公众号里不少录友也会遇到同样的问题,所以就给大家再分享一下。
HR面的话如果不犯重大问题一般不会刷人。
但有些同学也会犯重大问题这样丢了offer可就太可惜了。
**HR的职责是选择符合公司文化价值观的员工**,那么说到文化价值观,大家可能感觉 这虚无缥缈的,怎么能证明自己符合文化价值观呢。
其实HR主要从如下几个问题来考察大家只要把这几个问题想清楚就差不多了。
## 为什么选择我们公司?
这个大家一定要有所准备,不能被问到了之后一脸茫然,然后说 “就是想找个工作”,那基本就没戏了
要从**技术氛围,职业发展,公司潜力**等等方面来说自己为什么选择这家公司。
要表现自己如何如何看好这家公司,期待和这家公司一起成长。
## 有没有职业规划?
一般应届生都没有明确的职业规划不过当HR问起来的时候不要说 自己想工作几年想做项目经理工作几年想做产品经理甚至想当leader带团队这样会被HR认为 职业规划不清晰,尽量从技术的角度规划自己。
这个策略同样适用于社招。
虽然大部分程序员的终极目标都想做leader或者做管理极少数想要写一辈子代码的大牛除外不过国内环境对这种大牛并不友好
大家都想做战略做规划,那比写代码有意思,有成就感多了。
但不要说出来,一定要围绕技术这块来规划,根据你的岗位,**一年 技术达到什么程度,三年在某个技术领域有深入研究,五年成为技术专家之类的**等等。
这块其实我和HR朋友还真的讨论过我说就大厂百分之九十五以上的程序员都不想写代码以后指定是想转产品或者升leader做项目管理 但你为什么还要问这么 无聊的问题呢。
HR朋友的回答是你不说真相我会认为你可能对技术有追求但如果你说出真相那么明确你对技术没有追求。
所以即使你有其他想法在职业规划HR面的时候**也要仅仅围绕技术,树立自己要深耕技术的形象**。
## 是否接受加班?
虽然大家都不喜欢加班但是这个问题我还是建议如果手头没有offer的话大家尽量选择接受了吧
就说:自己可以介绍 XX程度的加班。
如果确实身体不适,那就直接拒绝,毕竟健康是第一位。
## 坚持最长的一件事情是什么?
这个问题大家最好之前就想好有一些同学可能印象里自己没有坚持很长的事情也没有好好想过这个问题在HR面的时候被问到的时候一脸茫然不知道该说啥。
憋了半天说出一个不痛不痒的事情。这就是一个减分项了!
问这个问题主要是考察大家的韧性,会不会做一个件事遇到困难就中途放弃了。
星球里的录友可以说自己坚持每日打卡总结,这也是可以的,毕竟这种需要自己克制才能做到的事情。
## 如果校招直接会问期望薪资XXX是否接受
这里大家如果感觉自己表现的很好 给面试官留下的很好的印象,**可以在这里争取 special offer**
这都是可以的,但是要真的对自己信心十足。
## 如果社招,则会了解前一家目前公司薪水多少
**这里大家切记不要虚报工资,因为入职前是要查流水的,也就是要把上一件公司的银行流水截图报上来,这个是比较严肃的问题。**
好了,说了这么多,希望对大家有所帮助。
---------------
加入「代码随想录」知识星球,[点击这里](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)

View File

@ -0,0 +1,75 @@
马上就要九月份了,互联网大厂的秋招的序幕早已拉开。
发现[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里有一部分录友想放弃秋招,直接准备明年的春招,估计关注公众号的录友也有不少有这种想法的。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210813103515.png)
一般有这种想法的录友都是 **之前没有准备好,或者是总感觉时间赶趟赶趟,然后突然间 发现时间不赶趟了。。。**
也有一些感觉自己没有实习经历,简历上也没什么好写,想下半年去找一找实习,不去秋招,然后直接准备春招。
**对于这种情况,我的建议依然要冲刺秋招!**
# 把秋招当做最后的机会
**等到春招的时候,可以选岗位已经很少了,各个大厂几乎都招满了**
而且就算秋招没找到好工作,一般 11月份左右一些大厂还会有补招腾讯就经常补招。
补招的情况是就是腾讯发出了 offer有的候选人 选择违约,不来了,那么腾讯就需要补招,把人数凑齐。
可能有录友想谁居然连腾讯的offer都拒绝呢
其实挺多的例如有其他大厂的核心部门offer父母给安排了 国企、央企 的核心岗位,或者有的选择 读博了之类的,导师毕业能给安排留校 或者去其他高校任教。
所以几乎每年腾讯都要补招其他大厂也会有补招一般是11月份所以就算秋招没拿到大厂offer依然有机会
话再说回来,面试其实也很看缘分,**永远没有真正准备好的时候,知识一直都学不完**。
所以 **把秋招当做最后的机会,就算秋招没找到,也可以在冲春招,而不是 直接放弃秋招**
# 放弃秋招,对心态的影响
如果直接放弃秋招,等 今年 10月份身边同学都找到工作了那时候的场面就是歌舞升平大家天天吃喝玩乐。
见面打会招呼就问:你去哪了,你签哪了?
那时候如果自己还没有面试,还在准备面试,此时自己心里阴影面积有多大,甚至会影响春招找工作。
# 面试要趁早准备
每年这时候,都会有同学后悔,我怎么就没早点准备,就感觉时间不够用。
所以也给明年找工作的录友们2023届提一个醒现在就要系统性的准备起来了因为明年春季实习招聘 是一个很好的进大厂的机会,剩下的时间也不是很多了。
来看看[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里,一位准大三的录友准备的情况
![](https://code-thinking-1253855093.file.myqcloud.com/pics/星球大三.jpg)
再来看看一位准大二的录友准备情况
![](https://code-thinking-1253855093.file.myqcloud.com/pics/星球大二.jpg)
**我已经预感到 这两位 等到秋招的时候就是稳稳的offer收割机**
[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)还有很多已经开始提前准备,或者看了 星球发文状态就开始着手准备的录友了。
所以 **所谓的大牛,都是 很早就规划自己要学的东西,很早就开始向过来人请教应该如何找工作,很早就知道自己应该学哪些技术,看哪些书, 这样等到找工作的时候,才是剑锋出鞘的时候**
我们远远还没有到拼智商的程度。
这里 也是给公众号里的录友们提一个醒,估计还有不少录友依然在感觉时间还赶趟,但 未来的卷王已经在路上了 哈哈哈。
**不过话说回来,现在互联网求职确实卷!**
但这是社会问题,我们改变不了。
**卷的核心是,好的东西少,但要想的人多!**
**如果你也想要,就要提前准备,提前规划,提前努力!**
也希望录友们都能找到一个自己心仪的工作,加油💪。

View File

@ -0,0 +1,61 @@
其实我几乎每天都要看一些简历,有一些写的不错的,我都会在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里分享一下。
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210626172902.png)
这次呢,我再专门说一说简历中的【专业技能】这一栏应该怎么写。
很多同学【专业技能】这块写的很少,其实不是掌握的少,而是没有表达出来。
例如有的同学这么写:
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210626173915.png)
---------------------
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210626173940.png)
--------------------
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210626174018.png)
-------------------
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210626174809.png)
这些【专业技能】都写的很少,其实是可以在丰富一些的。
我来给大家拓展一下、
* 熟练C++列举C++的若干知识点),了解 Javapythongo (适当补充对这些语言的理解)
* 熟悉常见设计模式(例句一些设计模式)
* 熟悉linux操作系统vim开发环境列举网络编程相关知识例如epollsocket等等
* 熟悉网络列举网络协议相关考点tcp/ip,http, https, 三次,四次握手,流量控制等等)
* 数量掌握数据结构与算法(列举常用算法,最好搞透一个算法,说对该算法有独到见解)
* 数量使用Git等版本控制
* 以上为公共写法,下面可以在补充自己的其他领域的内容
针对以上这个模板, 再来补充相关内容:
1. 熟悉C/C++熟练使用C的指针应用及内存管理C++的封装继承多态STL常用容器C++11常用特性(智能指针等) ,了解 PythonGtest等。
2. 熟悉常用设计模式(单例模式,工厂模式等)
3. 熟悉Linux下vim开发环境了解网络编程IO多路复用epoll等等。
4. 熟悉OSI五层网络模型熟悉TCP/IP,UDP,HTTP/HTTPS,DNS等网络协议熟悉TCP三次握手四次挥手流量控制拥塞控制等手段。
5. 熟悉常用的数据结构(链表、栈、队列、二叉树等),熟练使用排序,贪心,动态规划等算法。
6. 熟悉使用Gitvscode工具使用。
但需要注意的是,这里写的点,自己一定要熟练掌握,因为简历上写的,面试官一定会问。
这样有一个好处,就是 **缩小面试官的问题范围** 只要简历上写的,你都准备好了,那么简历上的知识点面试官一定会问,这样你就掌握了主动权。
举一个例子如果简历上直写熟悉C++。其他都没介绍那么面试官指定围绕C++漫天遍野的问起来了,你也猜不透面试官想问啥。
如果简历写熟悉C/C++熟练使用C的指针应用及内存管理C++的封装继承多态STL常用容器C++11常用特性(智能指针等)。那么面试官基本上只会问内存管理多态STL和C++11的一些特性 **这样你就把面试官的问题都圈在可控范围内**,从而掌握主动权!
这一点很重要,希望大家要有这个思路,去写自己的简历。

View File

@ -0,0 +1,83 @@
# 关于实习,大家可能有点迷茫!
我在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里回答了很多关于实习相关的问题,其实很多录友可能都有这么样的疑问,主要关于实习的问题有如下四点:
* 秋招什么时候开始准备
* 要不要准备实习
* 实习是不是重要?
* 什么时候找实习最有帮助
* 如何选择实习的offer
下面都分别来说一说:
## 秋招什么时候开始准备
![实习二](https://img-blog.csdnimg.cn/20210502145513517.png)
**准备工作指定是越早越好的**
准备的越早在89月份就越淡定每年校招很多同学都会对于准备找工作总感觉赶趟赶趟结果到了8月份开始慌得一笔了。
正常校招8月份就开始提前批各大企业提前抢优秀毕业生有的企业甚至7月份就开始。
基本到了7月份可能就没有整块的时间静下心来准备找工作那时候已经铺天盖地的各种招聘信息甚至一些同学已经拿到了offer了。
所以准备找工作的内容以7月为终结点比较稳妥七月份之后以复习为主有个整体框架定时复习补充补充多和同学交流面试经验。
## 要不要准备实习
有的同学是34月份准备面实习然后7、8月份就去企业实习了**实习有利有弊**。
如果可以去一线互联网公司实习,而且岗位也合适,那当然要去,如果去不了也别难过,因为实习生大部分都是打杂,干的活甚至都写不到简历上。
也有一小部分的实习生能够真正做到项目。
如果没有去实习,就把基础好好补充一下,**基础打好,毕竟对于应届生基础最为重要** 编程语言、数据结构算法、计算机网络、操作系统、数据库这些都是基础,规划好时间把这些内容学好。
**对于应届生来说,项目经历是锦上添花,不是决定性的**
有实习经历(前提是实习工作内容是真正的做项目,不是打杂),那么面试的时候面试官可能对项目经历感兴趣,问基础的内容就比较少, 如果没有实习经历,就把基础内容巩固一下,校招是一样的。
## 实习是不是非常重要?
![实习一](https://img-blog.csdnimg.cn/20210502114600147.png)
**大厂的实习经历对秋招还是很有帮助的**
但也不绝对,实习的话会耽误三个月左右,如果没有转正,而且一直在打杂的话,再去找秋招工作,**那时候一些基础的内容就都忘光了,反而秋招很被动**。
现在当然也可以按照准备找实习的状态来要求自己,给自己点压力,毕竟找实习准备的知识和秋招准备的知识差不多。
也可以提前经历一下面试,培养一下面试感觉,数据库方面知识你比较短缺,可以通过大量看这方面的面经迅速补充一下(秋招之前还可以系统看一看)。
如果拿到了大厂的实习offer就去吧实习的时候心里要有个秤如果工作是打杂就要尽快自己抽时间看基础准备秋招。
**另外需要注意的是,有些公司投递过简历面试没通过是有记录的,所以投递要当心,不要感觉投简历没有成本**,我知道的例如阿里,你每次投简历都有记录,如果实习面试都挂了,秋招的时候面试官也会看当时实习面试的记录(会考虑当时实习面试的结果)。
## 什么时候找实习最有帮助
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210502151249354.png)
6月份那时候基本不招实习生了找的话也是日常实习没有转正实习时间是比较长的要六个月如果不是暑期实习就直接准备秋招吧。
**只有应届的暑期实习才有转正的机会,因为企业这样安排也是为了提前发现优秀毕业生!**
例如:今年暑期实习,只招明年毕业的应届生。
## 如何选择实习的offer
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210502152023574.png)
如果目标应该是C++后端开发那客户端实习offer可以选择别去了。 或者 选一个实习时间最短的offer先去着例如两个月之类的这样既能体现一下工作流程也别耽误太多时间毕竟客户端开发不是你的目标
**实习也不是必要的,一要看实习的岗位,是不是你想要的工作,二是实习的内容是不是打杂**,一些实习岗位其实是在浪费时间,如果转正不了的话,秋招就特别被动了,耽误了复习基础的时间。
还有就是**秋招的时候,一定要找小公司先练手,然后在面大公司**。
以上基本覆盖了大家对实习的各种疑惑不过现在已经到了5月份实习面试基本结束了如果没有拿到实习offer大家安心准备秋招吧依然可以冲刺大厂

View File

@ -0,0 +1,68 @@
# 秋招和提前批都越来越提前了....
正在准备秋招的录友,可能都感受到了,现在的秋招越来越提前了....
以前提前批,都是 8月份8月份中序左右而不少大厂现在就已经提前批了。
不少录友在 公众号留言,和[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里,表示提前批来的还是有点快。
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210618162214.png)
还没有把刷题攻略刷完的录友,要尽快刷完,至少先刷一遍,了解相关题型。
星球里,也有一些录友感受到了提前批的突如其来。
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210619190111.png)
目前已经开始的提前批有 vivo tp-link京东百度.....
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210619190022.png)
有的录友已经明显紧张起来了。
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210619190354.png)
其实这才刚刚开始,等 7月份 以后,又是铺天盖地的信息,大家更没心情静下心来看书了。
# 关于提前批的一点小建议
**首先我们要知道为什么有提前批?**
提前批不是大厂们呆着没事闲着多给我们一次面试机会,**而是提前抢优秀毕业生**,这一点大家一定要明确。
了解了为什么有提前批,这样我们就有正确的心态面对它了。
如果没有准备好,或者自己定位因为不是 “优秀毕业生”,先不要碰提前提。
当然可以先面一些自己不想去的公司的提前批,用来练手。
至于对于自己心仪的公司,如果盲目参加提前批,首先会打乱自己的复习计划,和心态,然后就是提前批挂了后台都是有记录的。
只要是大厂的内部信息化做的比较完善,提前批挂了,是一定会记录的。
**那么提前批有没有影响呢?**
很多招聘宣传的时候说,提前批挂了对秋招没影响,确实在一定程度上没影响,因为提前批挂了,依然可以投递秋招。
然后秋招面试的时候,面试官在不在意你的提前批成绩,就是另一回事了。
我之前内推了一些录友面试腾讯微信支付的部门面试官和我很熟悉我最近还和他吃了饭聊一聊我内推的同学他说看后台记录有些同学都投过好几次了他看了之前面试结果的评价之后就直接pass了。
所以大家可能要想好一个回答,就是面试官可能问:你的提前批为什么挂了?
而且提前批挂了都是有当时面试官评语的如果7月份提前批面试面试官评价这位候选人基础不行。
秋招的时候,面试官也不会相信,一两个月能把基础补上来了。 即使你的基础其实没问题,只不过恰巧面试中的几个问题没答好而已。
对于技术能力确实强的同学我建议全力以赴准备提前批面试因为提前批要求就比较高很容易谈sp offer。而且现在就拿到了大厂offer比找实习还香。
如果没准备好的同学,建议不要让提前批打乱阵脚,有计划的巩固基础,准备秋招。或者先拿自己不想去的公司的提前批练手。
好了,说了这么多,希望对录友们有所帮助,加油💪

View File

@ -0,0 +1,95 @@
自运营[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)以来,我已经给星球里的录友们看了 一百多份简历,并准对大家简历上的问题都给出了对应的详细建议。
社招,校招,实习的都有,其实大家的简历看多了,发现有很多共性的问题,这里就和大家分享一下。
我的简历模板也分享出来了,大家在「代码随想录」后台回复:简历模板,就可以获取!
# 简历布局
不少录友的简历布局就很不合理, 有的把专业技能放在最下面了,有的甚至把教育经历放下面了,建议简历布局的顺序是这样:
* 教育工作经历
* 专业技能
* 项目经验
* 荣誉奖项
* 个人简述
# 教育工作经历
一些录友可能本科学历不是很好,然后 简历上直接不写自己的本科学校。
其实教育经历是最基本的,你不写 面试官也一定会问,问出来 那么感觉更不好,所以关于教育经历,大家是一定要写的。
写本科以后教育经历的就行了,一些录友可能是 高中就读了一些特别牛逼的高中,然后把高中也写出来了,哈哈哈,高中经历真的就不用写了。
还有一些社招的录友,研究生和本科之间空了几年,这几年 一定要说清楚做了些什么,甚至是“编一下”,因为这个面试官也会问的。
# 专业技能
一些录友简历上没有「专业技能」这一栏,或者写的很短。
可能是不知道该写啥,甚至就不写了。
通常「专业技能」是在 「教育工作经历」之后的,我这里给出一个模板,大家按照这个格式来写「专业技能」就可以。
1. 熟练使用 C++掌握Go了解 Java、Python、PHP 等编程语言
2. 熟练使用 linux 下 vim、Git 开发环境
3. 了解 Linux 下网络编程、TCP/IP 协议
4. 掌握基础数据结构和算法的基本原理
5. 英语六级XXX
一些录友会列举自己主修的课程,列了一堆,其实凑篇幅 我是理解的,就是感觉简历太单薄的,列课程来凑。
但大家凑篇幅 尽力在「专业技能」和「项目经验」上凑篇幅,如果把 自己主修可能都列出来,会让面试官感觉没有什么干货。(有的同学甚至靠留白才凑篇幅,这就更不要了)
当然应届生如果有一些课程自己成绩确实很好,可以和「教育经历」写在一起,简单并行列举一下就可以了。
# 项目经验
很多录友写项目经验就是流水账这是什么项目自己完成了功能1234。堆了很多字。
要知道面试官是不了解你的项目的,面试也只有 一个小时左右的时间,如果堆了很多文字 面试官也懒得去读。
面试官最在意的是什么呢?
**项目中有哪些技术难点,以及 你是如何克服的**
这是面试官最关心的,也是最能体现出候选人技术深度的问题。
所以大家在描述项目经验的时候,一定要时刻想着,这个项目的难点究竟是什么,要反复问自己这个问题。
可能有的同学说了我这项目本来就没有难点啊就是1234功能然后 遇到不会的,百度搜一下,差不多就这样了。
**项目没有难点,也要自己“造难点”**。 因为这个问题是面试官必问的!
所以一定要准备好。
还有不少录友的项目经历都写了 web server使用线程池 + 非阻塞 socket + epoll(ET 和 LT) + 事件处理 (Reactor 和模拟 Proactor) 等等。
这个项目可能是很多准备后台开发的同学 首选的 项目。
这种自己搞的小项目,**最好把你的代码上传的github上然后在简历中贴出github地址**,面试官一定会看的。
如果看你的代码写的确实不错,那指定是加分项。比简历上写的天花乱坠都强!
还有的同学项目经历特别多写了56个项目每个项目都是概述了一下自己做了XXX。
其实面试官,基本就会和你深入聊 2个的项目左右列举这么多项目没有用的关键这些项目一看也是技术含量不大。
**所以不用单纯堆项目个数。项目经历 两个足够,把两个项目搞深搞透**
# 校园经历
一些录友会把自己学校工作列出一大堆,例如各种学生会啊,创新部门啊之类的。甚至有的会把自己的减肥经历也列举出来。
如果面技术岗位,这一块其实不是面试官关心的,可以在 最后一栏「个人简述」,简单一两句概括一下自己的学生会经历就好,表明自己沟通能力没问题。
关于标明自己有毅力,有恒心,不怕吃苦等等,都简单一句概括。
好了,关于简历的问题,我就先分享这些,估计应该击中了不少录友的痛点了。

View File

@ -0,0 +1,29 @@
# 究竟什么时候用库函数,什么时候要自己实现
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里有录友问我,刷题究竟要不要用库函数? 刷题的时候总是禁不住库函数的诱惑,如果都不用库函数一些题目做起来还很麻烦。
估计不少录友都有这个困惑,我来说一说对于库函数的使用。
一些同学可能比较喜欢看力扣上直接调用库函数的评论和题解,**其实我感觉娱乐一下还是可以的,但千万别当真,别沉迷!**
例如:[字符串151. 翻转字符串里的单词](https://mp.weixin.qq.com/s/X3qpi2v5RSp08mO-W5Vicw)这道题目本身是综合考察同学们对字符串的处理能力,如果 split + reverse的话那就失去了题目的意义了。
有的同学可能不屑于实现这么简单的功能,直接调库函数完事,把字符串分成一个个单词,一想就是那么一回事,多简单。
相信我,很多面试题都是一想很简单,实现起来一堆问题。 所以刷力扣本来就是为面试,也为了提高自己的代码能力,扎实一点没坏处。
**那么平时写算法题目就全都不用库函数了么?**
当然也不是,这里我给大家提供一个标准。
**如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数**
**如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,那么直接用库函数。**
使用库函数最大的忌讳就是不知道这个库函数怎么实现的,也不知道其时间复杂度,上来就用,这样写出来的算法,时间复杂度自己都掌握不好的。
例如for循环里套一个字符串的inserterase之类的操作你说时间复杂度是多少呢很明显是O(n^2)的时间复杂度了。
在刷题的时候本着我说的标准来使用库函数,详细对大家回有所帮助!

View File

@ -0,0 +1,62 @@
# 代码随想录上的题目最好刷两遍以上
今天秋招可能要提前很多往年9月份开始秋招今天可能9月份就已经结束了所以 正在准备秋招的录友,还是要抓紧时间了。。
星球里已经有录友的给出了关于秋招提前的信息
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210801104138.png)
那么在正式秋招之前,大家在准备算法,代码随想录上的题目 应该刷几篇呢?
**至少刷两遍,只刷一遍是不够的**
只刷一遍基本就会忘,而且关键方法论理解的也不到位,对递归三部曲,回溯三部曲,动规五部曲,只掌握了简单招式,而没有理解真正精髓。
拿到最简单的反转链表来说,只做一遍,下次面试出现基本还是做不出来。
这也是星球里 录友们的 多么痛的领悟!
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210731183247.png)
**等大家刷第二遍的时候,才能找到触类旁通的感觉!**
第三遍基本就得心应手了。
在[「代码随想录」知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)中,我都是强调大家要至少刷两遍,有时间的话刷三遍,
可以看看星球里录友们的打卡:
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210701122522.png)
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210701122422.png)
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210701122313.png)
有的录友已经开始三刷:
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210727234031.png)
我为什么鼓励大家有时间的话,多刷几遍呢,首先这里的题目都是经典题目,而且在面试汇总也是频频出现,
下面也是星球里的录友总结的面经:
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210701121136.png)
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210723125816.png)
## 那么已有的题目刷完了,可以刷些什么呢?
我在Github上也做了一些题目的补充在[上榜之后,都有哪些变化?](https://mp.weixin.qq.com/s/VJBV0qSBthjnbbmW-lctLA)说到了。
对于面试来说除了「代码随想录」上的题目再了解一下排序系列简单图论深搜广搜最小生成树最短路径等高级数据结构并查集字典树了解一下之后就差不多了。随便在leetcode找一些题目保持手感题量至少300+,会稳一点。
关于深搜和广搜,其实深度优先搜索,我在二叉树的专题中讲解递归遍历,和回溯算法中 都讲了。
广度优先搜索,在二叉树树的层序遍历也讲了。
而图论中主要是在邻接表上进行的深搜和广搜。
面试中还是很少会考察图论,因为图论的代码量往往比较大,不适合在面试中考察,**面试中出现题目概率最大的是二叉树,回溯算法和动态规划!**

View File

@ -0,0 +1,47 @@
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里,有一位博士录友,本硕都不是计算机,博士转的计算机,问了这样一个问题
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210903213924.png)
一下是我的回答,在这里分享给大家。
我的一些研究生同学,都在读博,有的毕业有的还没毕业,平时和他们聊,对博士就业也是有一定的了解,这里说一说我的建议。
对于博士,强烈建议能去高校就去高校,这样最大程度发挥出了博士的好处,赚国家科研经费的钱还是香的。
虽然现在对青年研究者并不友好基本经济大头都被实验室boss拿走了。
但高校壁垒高外界再优秀的人才也进不去和你竞争所以可以小范围的卷。出来的话就是和整个社会AI领域甚至和研发的同学一起卷。
**在企业 是谁有能力谁就上, 在高校,至少你得有博士学位才能上! 这就是很高的门槛了**
而且能给博士提供岗位的企业少之又少,所以博士的就业面反而窄了。
可能有同学想,薪酬要的低一点还不行么,其实博士毕业对薪资还是有要求的,如果薪资和本科,硕士应届生一样的话,自己也接受不了。
所以高校能给博士的机会更多一些,不过现在高校也是 青年科研人员都是 五年合同制,如果没有产出,也要走人了,压力也很大。
及时这样,还是建议能去高校去高校,当然这需要有心善、能力强、有人脉的博导,那是最好的了,(**注意这里选择博导,心善是最重要的一个选项**
实在去不了高校,接下来我们在看企业。
博士找工作不建议走正式招聘流程,例如走官网投递之类的,面试都没戏。
**AI岗现在对coding能力工程能力要求都很高企业现在特别喜欢有科研能力和工程能力的博士**,但这种人才还是稀缺的,大多数博士可能不会做那么多的工程项目,更别说还是本硕是非计算机专业的博士。
所以博士找工作要靠门派最好你的导师实验室大boss 有哪些徒弟在外面企业BAT华为之类的干的很好能联系上就是同一门派的师兄弟。
联系上,做一个内推,他们看一下你的博士论文和研究成果,如果行的话,面试基本就是走个流程,这样就很舒服了。
如果上来一波算法题,然后 操作系统,网络 数据库,这样考察下来,基本计算机专业的博士也招架不住,毕竟大多数博士是科研型的,一般来说工程能力比较弱,计算机基础哪些基本也没时间看。
再说一说非科班博士如果有机会去面试,**一定要重点突出知识的迁移能力,和对学术的研究能力,这个是硕士本科生所不能具备的**。
企业还是比较喜欢有快速学习能力和知识迁移能力的人,因为技术是不断在变化了,只有学习能力足够强再能跟上。
所以**不能和本科硕士去硬拼专业技能的储备量**,特别是最新最热的技术(因为本来就是非科班嘛), 要体现出博士对技术对知识的理解,这是你的优势。
以上是我的回答,希望多大家有所启发。录友们周末愉快🌹

View File

@ -0,0 +1,69 @@
# 特殊的七夕
昨天在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)发了一个状态:
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815084126.png)
我还以为 过节嘛,录友们应该不会打卡了,但还依旧阻挡不辽录友打卡学习的步伐,来瞅瞅:
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815100028.png)
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815100109.png)
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815100212.png)
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815095902.png)
当然了,我截图了一小部分,星球里每天的信息量都非常大。
如果说一个人坚持每天总结记笔记,**其实是很容易放弃的,今天不记,明天不急,后天不整理感觉也无所谓**。
这样时间就一点一点的被浪费掉了。
**因为我们学过的东西都会忘,不及时整理,时间就不能沉淀下来**,这就造成了一边学,一边忘,最后感觉自己好像也没学啥的感觉!
所以每天记笔记,及时整理,是非常重要的。
这个习惯其实靠自己约束很容易放弃,但一群人一起坚持,就会不一样,大家相互监督,每天不总结记录点什么就会感觉少了点啥。
而且,大家每天的总结,我都会看,有问题 我都及时指出来,这样也防止自己学着学着学跑偏了。
昨天我也在[知识星球](https://mp.weixin.qq.com/s/X1XCH-KevURi3LnakJsCkA)回答了几位录友的问题,其中有两个问题 还是比较典型的,估计公众号里的录友也会遇到这样的疑惑。
所以也给大家说一说:
## 准备的太晚了,想放弃秋招,直接准备春招
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815091442.png)
很多准备今年秋招的录友感觉自己还没准备好,想先找实习,或者 自己在学习学习,然后直接春招。
其实不到万不得已,我还是建议要冲刺秋招。
如果说,因为没准备好,提前批放弃还是可以的,但秋招不能也直接放弃了!
秋招没找到好工作一般11月份左右一些大厂还会有补招腾讯就经常补招实在不行再准备春招春招可能国企单位会多一些。
**而且面试也很看缘分,永远没有真正准备好的时候,知识一直都学不完**,所以 把秋招当做最后的机会,就算秋招没找到,也可以在冲春招,而不是 直接放弃秋招。
还有就心态方面来说,直接放弃秋招,等 今年 10月份身边同学都找到工作了天天吃喝玩乐见面打招呼就问你去哪了你签哪了。那时候 自己心里压力会非常大,甚至会影响 春招找工作。
## HR/面试官问你手上有没有其他offer如何回答
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210815091819.png)
这个问题,无论是校招还是社招,大家都会遇到。
如果大家手上有其他更好的offer或者说同等水平公司的offer可以说一说这样凸显出自己的优势你们不要我有更好的公司要我 这样给面试官或者HR点压力可以争取到更高的薪酬。
如果没有更好的offer可以说没有然后解释只认准贵公司从技术氛围职业发展公司前景来说贵司多么多么的好我多么渴望和贵司一起成长之类的。**总之,就是捧起来,显得自己很专一**。
都是套路,哈哈哈哈。
**好了,说了这么多,希望对大家有所帮助**

View File

@ -0,0 +1,61 @@
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里准备秋招的录友还真不少,也会回答过不少关于秋招的问题。
![](https://img-blog.csdnimg.cn/20210507195443924.png)
能感觉出来慌,不止这一位提问题的录友,很多同学都是这样,就是感觉一天天过的很快,也没干什么事情,然后心里就一直恐慌。
其实**慌主要是因为没有计划**,每天没有目的,然后一天一天的过,秋招越来越近,自然慌的很。
我在这篇里系统性的解答了实习相关的问题,[关于实习,大家可能有点迷茫!](https://mp.weixin.qq.com/s/xcxzi7c78kQGjvZ8hh7taA),也提到了 一般秋招8月份就要正式开始了那时候各种提前批面试小道消息甚至身边一些同学已经拿到了offer恐怕已经没有时间静下心好好学习了。
所以从现在看是满打满算,还有三个月的准备时间,如果利用好还是挺充足的,不要每天在把时间浪费在各种无聊的活动上。
这里我来列举一下,此时大家应该明确哪些事情:
## 确定自己要面试的岗位
说道选择哪些岗位一般的回答都是选择自己感兴趣的呗兴趣是最好的老师之类的balabala。
但我能亲身体会到,目前咱们的教育环境 也不可能说培养出什么 自己真正的兴趣,在大街上随便问一个人你的兴趣是什么? 基本回答都是:吃喝玩睡呗,还能有啥兴趣。
所以务实的建议是:现在去各大公司校招招聘官网 把所有的岗位都看一看,看看都有哪些要求,结合目前自己的经历和已经掌握的内容,看看哪些岗位可能最接近,然后再问问师兄师姐 这个岗位或者公司如何,最后后就把自己的目标岗位定下来了。
也有很多录友在星球里问我关于一些公司,岗位前景之类的问题,我都会给出相应的建议,这也是我工作过程中接触过了解过的。后面我也把部分内容整理一下,在公众号分享一下。
这样接下来的时间就是全身心去准备这个岗位所需要的技能。
**不少同学在秋招的时候,试试算法岗感觉也行,投投前端感觉也行,尝试后端也不是不可以,甚至再面面产品经理**
**这样在秋招的时候就很被动了**,哪个岗位都没准备好,哪个岗位还都想试试,大概率是最后都没面上的。
所以现在就要把自己的目标岗位锁定了。 不同岗位之间 要求还是不一样的。 大家去看看招聘官网的要求就可以了。
## 制定学习计划
知道自己的目标岗位了,也知道岗位的要求了,剩下的就是制定详细的计划。
* 编程语言
* 计算机基础(操作系统,网络,数据库、设计模式)
* linux相关客户端岗位应该不需要
* 项目
* 准备自己的博客github
这几块按照岗位要求8月份应该学会哪些内容需要看哪些书等等。
然后以八月份以deadline开始倒推每个月应该学哪些每周应该学哪些每天应该看那些。
把这些都明确了,心里就不慌了,也不会每天浪费大量宝贵的时间。
星球里的录友每天都在坚持打卡,总结自己今天学习的内容,这样就很好,把自己每天学习进度量化。
这样每天过的就很扎实。而且每天的打卡星球里录友和我都可以看到,我也会及时评论评论,大家也相互监督。
给大家看一位录友在星球里的总结:
![](https://img-blog.csdnimg.cn/20210507204017952.png)
大家平时的话,也要养成这种总结的习惯,只有及时总结把自己学过的内容积累下来,才能把时间沉淀下来,要不然就是一边学一边忘的节奏了。
**其实这种习惯,无论是秋招,还是准备跳槽,还是平时工作积累,都非常总要!**

View File

@ -0,0 +1,76 @@
# 大厂的新人培养体系是什么样的
之前我一直在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)和大家讲,能进大厂一定要进大厂,大厂有比较好的培养体系。
也有录友在星球里问我,究竟培养体系应该是什么样的呢? 大厂都会这么培养新人么?
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210717173307.png)
其实大厂部门也是非常多,不同的领导对待新人的态度也是不一样的。
就拿腾讯来说,腾讯里面 上千个部门基本就是上千个小公司只不过外面披一个腾讯的壳子每个小公司的leader风格截然不同。
赶上什么样的领导了,这就看命运了。
**只能说进大厂,大概率会有一个比较好的培养体系**
那么好的培养体系是什么呢?
要从两个方面来说:
* 给你详细的学习路线(自我技术提升)
* 给你有产出的活(用来晋升)
## 详细的学习路线
关于详细的学习路线,一般大厂入职之后配有导师的,导师给你安排的每一个功能,应该带你熟悉整个研发的流程。
一个功能的开发,需要经历如下几步:
1. 看需求文档,确定需求
2. 这个需求包含了哪些功能
3. 有哪些难点
4. 后台架构是什么样的(要有架构图)
5. 定协议(前后台一起商量),服务与服务之间的,后台与客户端之间的
6. 设计数据结构+算法=程序
7. 预估一下容量各种资源例如带宽存储CPU等等
8. 考虑一下部署(安全性,容灾,可伸缩性。。。。)
9. 设计评审
(上面过程都是在分析)
10. 编码
11. 自测
12. 联调
13. 交给测试
14. 代码review
15. 合入
16. 发布
可以看出来,写代码仅仅是 其中的一小步。导师应该带你走一遍完整的开发流程,然后告诉一些注意事项,**这样为自己程序员生涯打好基础**。
可能有的同学会感觉:我就开发一个小功能,哪用得着这么多步骤,一把梭哈,直接代码写完。
哈哈,这么想的同学一般是没有参与过大型且流程规范的项目开发。互联网千万级用户的项目,几十上百人一起开发是需要规范的,**所以上面我说的每一步都很重要!**
## 有产出的活
初入职场的同学,可能都非常在意能不能学到东西,也就是自我技术提升,往往忽视了你干的活,是否有产出,能不能用来晋升。
这里就是很多所谓的“套路”,老司机一般挑的活符合如下几点:
* 非常规整(周边没有烂糟的额外工作,例如还要开发各种小工具之类的)
* 独立模块(不需要和其他人扯皮,省事)
* 对项目组很重要(既有技术难点,又没有大量的业务增删改查)
* 风险系数比较低(上线出问题,锅甩不到他这里)
这种活就是好活,用来晋升的利器,而且干着也舒服。
但一个项目,一定会有大量需要打杂的活,写各种脚本,各种处理数据,然后看各种问题,整理文章,汇报,开发边缘工具等等。
新人一般进来都是先打杂的,**但如果领导确实是细心培养你,还是额外给你一个小模块,让你做好,这个小模块就是让你用来晋升的或者转正的**。
这个建议不仅适用于实习生,对于初入职场的同学也很用帮助,这个部门是不是有在培养你,老司机一眼就能看出来,只不过新人可能自己很难发现。
所以需要过来人点拨一下,大家就知道自己现在的处境了。
希望对大家求职和工作有所帮助!

View File

@ -0,0 +1,43 @@
# 已经在实习的录友如何准备秋招?
最近在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)一位录友问了实习生如何权衡工作和准备秋招的问题。
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210703230618.png)
其实这个问题挺有代表性,我之前一直讲的都是没有去实习的录友应该怎么怎么办,其实已经在大厂实习的录友也有很多烦恼。
这里我说一说已经有大厂实习经历,准备秋招的重点。
一般来说有大厂的实习经历,**面试官的兴趣都在大厂实习的项目经验上**。
所以关于权衡实习和准备基础这两个方面,**可以把主要精力放在项目包装上,其次是看基础**。
要在包装实习项目上多花点心思,实习生做的项目偏上业务很正常,不可能让实习生搞太复杂的,一旦出了问题还得导师背锅。
自己干的活,或者项目很简单 不要紧,可以好好包装一下,如果没有难点,**可以结合业务自己“造”难点**,大厂内部研发文档都特别多而且特别全。
例如整个项目的立项,各个模块的开发,以及研发中遇到的困难,技术选型,上线事故,等等这些都是有完整的文档记录的。(当然大厂也有一些部门研发流程很原始,没有文档,全靠口述)
从这些文档中也可以找出 难点糅合到自己的项目中。
假如线上出了事故,虽然自己不用去排查但可以跟着同事们一起看问题,一起分析,甚至帮他捞捞日志,打打下手。
这次事故的表现,起因,定位等等,排查问题的同事都会记录的清清楚楚,放在项目文档下。
可以把这些文档都多看看,然后就可以转变成自己排查线上事故的经历了。
**这种经历在面试官来看就是很大的加分项了**
所以在大厂实习,想包装自己的项目方法有很多,只不过一些同学初入职场,对自己有帮助的资料或者内容不太敏感,不善于利用已有的资源。
**需要过来人点一下,基本就上道了,哈哈哈**
当然不是说只要在大厂实习,基础完全就不用看了,抽空也要看,只不过 项目经验(项目的包装)更重要!
关于提前批,一般来说本厂实习生是不能参加提前批的。
你可以参加 其他大厂的提前批,只不过参加提前批是有代价的,面试不通过都是有记录的,得看自己项目准备的如何,能不能拿出手,而且一边实习一边面试可能也不太方便,如果想试一试,就找自己不想去的企业的提前批试试水!

View File

@ -0,0 +1,91 @@
# 客三消!
给大家科普一下:什么是客三消。
翻译过来就是客户端三年消失。
**听起来是不是有点吓人**!这种说法略夸张,但只要能传开,就说明客户端一定有一些困局,并不是空穴来风。
昨天卡哥在朋友圈里分享了一个段子的截图
![](https://code-thinking-1253855093.file.myqcloud.com/pics/IMG_3986.jpg)
然后朋友圈就炸了,上百条的留言,问我这是为啥。
其实这个问题在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里也有录友问过我。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210905091037.png)
当时已经详细的回答了一波,估计很多录友都有这方面的困惑,所以在公众号上再来给大家讲一讲。
**关于星球提问中SRE和后端在这里就不介绍了卡哥重点说一说客户端**
客户端目前比较突出的问题,主要是 这四点:
1. 客户端岗位需求相对较小,而且有越来越小的趋势
2. 技术做深相对较难
3. 客户端晋升相对困难
4. 中年危机 (其实程序员有,不过客户端可能更明显一些)
## 岗位需求相对较小
客户端需求的减少主要是体现在中小厂或者说创业公司因为大家都养不起原生客户端基本都会采用跨端的技术方案也就是大前端即一套代码可以编译出各个端的版本包括安卓IOS等各种终端
这样就节省了很大的人力,不过目前在功能上一定没有 原生客户端体验好。
**但大前端取代客户端是技术趋势!**
如果选择客户端,那么就多少要掌握一些跨端技术方案。
互联网软件的思维就是轻前端重后端为什么PC软件搬到了浏览器上移动APP搬到小程序上都是这个道理一般重头戏在后端。
所以后端的需求才会比较大。
## 技术做深相对较难
这里就不止客户端,其实前端都有这个问题。
关于前端和客户端的区别,其实没有那么严格的定义,大家可以理解 前端包含了客户端。一切可视化皆为前端。
前端框架、渲染引擎 变化相对快,可能你刚熟悉一个框架,然后就换了,最关键是可能还拿不准哪一种框架日后会成为主流,一不小心就跑偏了。
而后端框架变化相对就慢得多,而且 更容易(或者说更有机会)把技术做深,因为 高并发,高可用,低延迟 这些基本都是后端的工作。
正是前端 技术栈更新太快,所以要持续高强度学习 (这种学习可能不是往深去学习,而是 适应一个又一个框架的学习)。
而且前端 很容易陷入需求的反复变化之中,因为一个功能或者界面的修改,都是前端同学的工作量。
后端可能 什么都不用改,接口都是一样的,然后就可以空出时间研究技术。
## 晋升
目前在大厂,客户端职业天花板相对较低,一般情况下,可能到组长就到头了。
搞技术一路升上去甚至到CTO的基本都是后端这也是因为前面讲过的大部分的互联网产品重头戏在后端所有后端更有机会把技术做深更直白说后端更有机会在晋升做ppt的时候 “吹牛逼”。
## 中年危机
这个就更范范一些了,程序员都有这个危机,不过客户端可能更突出一些。
原生客户端的岗位需求确实会越来越少,如果继续干下去,没有晋升到管理层,然后退居二线公司,发现二线公司都没有原生客户端的岗位,那么就非常被动了。
所以可以往大前端的方向去转。
大前端现在也有很多技术方案ReactNative和weex阿里脸书的方案FlutterGoogle的方案微信小程序腾讯的方案
不过最终哪一个方案一统天下,这还是未知数,所以就需要持续学习咯。
# 总结
以上就是我在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里的详细回答。
注意我这里说的一般情况,当然各个岗位都有佼佼者,或者说大牛,客户端也有大牛,也很香,不过这是极少数,就不在讨论范围内了。
希望对大家理解目前客户端的趋势有所帮助。

View File

@ -0,0 +1,28 @@
# 技术不太好,也不知道对技术有没有兴趣,我该怎么选?
最近在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里解答了不少录友们的疑惑,其实发现一个挺普遍的问题:
* 我技术很一般
* 对技术也没有什么追求
* 要是对什么岗位感兴趣我也不知道
* 以后自己喜欢干什么也不太清楚
**相信说到了不少录友心里去了, 其实目前应试教育下 确实很难找到自己感兴趣的事情**
但我想说的是,并不是技术不好就什么都做不了,依然有很多选择,只不过录友们没有接触过,所以就不知道自己接下来要往哪个方向走。
这里我给出一些路线,大家可以参考:
方向一:走纯研发路线,去大厂,如果真的对技术提不上兴趣可能会走的很辛苦。
方向二:如果技术还凑合,不做纯研发,退一步也可以考虑去大厂做测试相关的工作,对技术要求没有那么高,但也需要技术能力,而且技术能力越强越吃香。
方向三:去银行,证券,国企类的企业去做研发岗位,这种国有企业的技术面试相对简单不少,比较轻松,还很稳定,收入虽说不高,但生活足够滋润。
方向四做toC面向普通用户的产品经理toC产品经理这个岗位就特别卷因为这个岗位门槛太低了任何专业的同学都可以去做产品经理。 这样自己所学的技术就基本没有用了也凸显不出技术上的优势但如果自己真的对APP之类的各种应用得心应手优点缺点用户爽点、日活、次留等等手到擒来倒可以试一试。
方向五做toB的产品经理包括云计算大数据这些产品都是需要产品经理的例如百度云腾讯云阿里云等等这种产品本身就是技术产品所以需要懂技术的产品经理来做设计即需要产品的抓住需求的能力也需要懂点技术既可以发挥自己的技术能力还可以做产品规划基本也不用写代码。
对技术要求不高的岗位也挺多的,发展也很好,只要大家多去了解,总会找打符合自己的岗位。

View File

@ -0,0 +1,42 @@
最近华为提前批已经开始了,不少同学已经陆续参加了提前批的面试。
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)上就有录友问我这么个问题:
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210711002802.png)
华为是比较看重学历的如果学校比较好985以上华为的面试会随意一些几乎就是走一个流程。
我记得当初校招的时候,华为来我们学校就是 几个大巴把整个计算机学院的同学拉到酒店批量面试面试过程差不多就是走个形式大家基本都拿到offer了。
不是说 非985/211的同学 技术就不好,而是当企业每年要招上万人的时候,通过学历还筛选相对来说是 效率较高且成本最低的一种方式。
不过现在竞争越来越激烈了,华为也很少这种粗暴方式来召人。再说华为给出的薪酬相对互联网大厂也 很有竞争力,发展前景也很不错。
那么在说一说面试的内容。
可能有的同学感觉,我为了面试,准备了这么多,结果面试都没问,就问问项目问问编程语言就完事了。
这其实很正常!
不同的公司,同一个公司不同部门,同一个部门不同面试官 面试风格都不太一样。
可能部门就比较缺人,面试官看一下 简历 学校可以,技术看上去还凑合,项目也还行,那么面试可能就放水一点,然后就过了。
毕竟面试官也很忙,在大厂谁都不想当面试官,都是工作之余加班的工作量,**所以面试官也想快点结束**。
还有另一种可能,就是部门已经招满了,但依然安排了面试,那么面试官就随便问问,然后也不会招人了。
还有一种,就是有的面试官就习惯考察算法题,问完算法了,其他的他也就不会问了。
因为操作系统,网络,数据库这些面试官在面试之前也要突击准备的,工作那么多年,都忘的差不多了,**所以要复习一波,这也是工作(都是加班啊!)**。
甚至可能面试官前天刚要和女朋友过生日,然后就没准备计算机基础方面的内容,索性面试的时候也就不问了.....
这都是有可能的,很多同学可能没做过面试官,所以对一些面试过程就容易想不通,其实面试官也是普普通通的打工仔,他也不想加班,也想只要人品端正,积极肯干,随便召个技术差不多的就算了,哈哈哈。
所以说,面试有的时候也很看缘分的,大家辛辛苦苦造火箭,结果面试都没问是很正常的。
大家也放平心态,把该做的做好,剩下的交个天意了。

View File

@ -0,0 +1,51 @@
# 秋招上半场的总结
八月份已经接近尾声,不少录友已经在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ) 已经总结了秋招的上半场。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210829214839.png)
可以看出 这位录友也是身经百战目前也拿到了几个offer。
星球里还有不少录友已经拿到了字节阿里百度提前批的offer。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210829231035.png)
不过绝大部分录友还在经受着考验,处于焦虑的状态,秋招上半场也是几多欢喜几多愁。
找工作其实是一个很虐心的过程没有offer、没准备好、面试没发挥好、差一点就能把这题过了 等等,每一个场景都给大家增添一份焦虑。
星球里有一些录友就找到了一个方向,或者一个准备同一家公司的伙伴,就会好一些。
![找到了同伴交流](https://code-thinking-1253855093.file.myqcloud.com/pics/20210820093109.png)
**有时候,有压力,自己憋着,没人交流,只会压力越来越大**
对于还没有offer的录友我对大家的建议也是**心态要稳住,要适当放低预期,不是所有人都要大厂,但不能放低自己对学习的要求!**
有些同学,经过几次面试的打击之后,直接就自暴自弃,狂玩几天想释放压力,这么做的结果,只会压力越来越大。
所以,**秋招进行时大家不要过于放松无论什么情况只要没有拿到心仪offer就不能放松一旦放松之后换来的就是更看不到希望**。
有的同学可能学校不好,有的同学是转行计算机,一路下来确实艰难。
我在星球里,看到的不仅是大家准备秋招过程的每日学习总结、打卡,也看到了一些录友的不容易。
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20210829221259.png)
说实话,看着评论区,还是很感动的,估计这位 打卡的录友,也得到了很大的鼓励。
这可能是 成千上万 目前正在冲刺秋招应届生 的一个缩影。
面试不仅仅是只看技术也挺看缘分的有的同学可能感觉莫名其妙的就挂了有的同学可能感觉莫名其妙的就拿到了offer。
我就简单列举几个原因。
* 可能部门缺人,或满了
* 可能是当天面试的同学都不太行,就矬子里拔大个
* 可能之前有几个优秀的毕业生但按照之前的标准都没过然后面试官发现这么下去招不到人了一下子就把标准降低了然后轮到了你你感觉你发挥的并不好但也给你offer了。
所以面试也有很多很多其他因素,也很看缘分。
大家放平心态就好。

View File

@ -0,0 +1,50 @@
# 秋招进行时,其实大家都很焦虑
大家应该都发现了,提前批和秋招都越来越提前的,大部分的录友此时的心态还是挺焦虑的。
特别是大三的同学吧,同时面临这找工作和考研两个方向的诱惑。
一位录友就在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)问了我这个问题:
![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210724183240.png)
其实 互联网35岁中年危机应该吓退了不少小鲜肉互联网35岁中年危机是真的网上哪些关于裁员的消息 大多数也都是真的。
但我想说:特别是正在找工作的同学,大家应该都是 95后00后可以先不用想那么长远能把未来五年规划好就不错不错的了现在行业的变化都是两三年一变天等大家35岁的时候都不一定啥样了。
而且卡哥还替大家先趟趟路,哈哈哈
现在的大三,最忙的就是两伙人,**考研的和找工作的,这两条路都挺难的**。
另外还有不少录友应该在考研与找工作之间摇摆。可能有的学校大多数都在找工作,有的学校大多数都在考研,不过应该考研占绝大多数。
关于考研我的观点是,如果 本科毕业能拿到大厂或者中厂offer可以不考研看看自己比较优秀的学长学姐毕业都去哪了是否去了大厂如果比较优秀的学长学姐 就业也一般,我还是推荐读研的,因为顺便也提升一下学历。
但有的同学是从大一入学就规划了自己 以后直接工作的,这种无论学校如何,我都是比较支持的!
**因为从大一就明确自己的方向,按找工作的要求来学习,一般来说 最后找工作都不会差**
最危险的是,大一大二没计划,到了大三开始摇摆,考研还是找工作。这种是最危险的,如果在纠结一阵纠结到 现在的话,那基本哪条路都走不好了。
对于现在找工作的录友,可能发现身边的同学都在考研,而且在准备找工作中,可能还没有明确的学习计划,东打一发西扯一下,就会很焦虑,主要也是身边一起工作的同学可能不多,交流的少。
找工作是一个累心的过程非常累恨不得哪家公司赶紧给我个offer让我干啥都行甚至怀疑自己是不是要再去考研。
**其实这时候,不是自己方法不对,也不是自己选择的路错了,而是需要一个过来人,给你打打气**
静下心来,把最近开始面试的公司排一下,把自己还要学习的内容做好计划,都列出来,按着一步一步去执行,心里会踏实的多。
再说考研,考研也一点都不轻松,进大厂卷,**现在计算机考研比进大厂还卷(特别是名校计算机)**,如果考研没考上,找工作还挺难的,毕竟考研那套知识,对于找工作来说几乎没啥用。
所以不论是找工作,还是考研,大家都是一样的焦虑,每条路都不好走,但自己一旦选择了,就坚持下来,走好自己的路。
话再说回来,**现在不论身在什么阶段,都离不开“卷”,就算最后进了大厂工作,依然也是卷**。
大家都感觉自己准备面试好辛苦,好心累。其实给你面试的面试官,可能自己手上的模块线上又出问题了,还要担心年底是不是要背锅了,是不是年终没了,晋升不了了,是不是要准备跳槽了,甚至应届生的工资比自己的还高 等等。
**所以面试官也许比你还心累!**
是不是想到这里,心里就舒服点了,哈哈哈哈,其实是有时候自己很迷茫但没有人沟通,就会陷入一个死循环,只要和过来人聊一聊,没啥大不了的。
大家其实这这样。

View File

@ -0,0 +1,53 @@
# 对程序员来说,英语到底重不重要
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)有一位录友问了我这么一个问题。
![](https://gitee.com/programmercarl/pics/raw/master/pic1/20210605193955.png)
这个问题我曾经在上学的时候也思考过。
这次正好来好好说一说。
当时我搞ACM的时候都是英文题目的哪会有中文题目现在力扣全面汉化也是最近几年的事情。
如今又工作了这么多年后重新看待这个问题,又有更全面的看法了。
其实我想说,**对英语对程序员即重要,也不重要!** 这是要看环境,看背景的。
如果你现在在准备秋招,或者是跳槽,目标是冲刺国内大厂,那么暂时不用花费精力学英语,就算四级都没过,大厂面试官也不会问你过没过四六级的。
貌似华为对英语四六级是有要求的如果面试BAT英语不是关键性问题。
但工作之后,英语其实就很重要了,也要注意程序员英语和普通英语是不一样的。
一手的技术资料,和优秀的问答 基本都是英文的,国内的资料都是别人嚼过的,质量参差不齐。
而且国内的问答社区其实环境并不好懂的人都懂真正解决问题还得靠Stack Overflow。
**所以技术文档英文Stack Overflow Quora才是程序员的利器**
工作以后如果你把程序员英语(注意不是普通英语)练好,其实对技能和视野的提升是很有帮助的。
这里为什么强调是程序员英语呢, 因为有太多专业词是CS特有的而不是日常英语。
**继承,多态,变量,英文怎么说? 估计可以难住不少人了**
所以当我们查问题的时候,第一反应 一定是用 中文关键词去搜索,因为我们不知道对应的英文关键词(也懒的去查一下)。
所以英语好,这是一种技术壁垒,可以任意遨游在中文和英文的世界里,有两极的思考!
**那么对程序员来说,英语口语重要么?**
如果你直接想去外企的话,练一练吧,也是挺重要的,如果在国内的话,用处不太大。
那一定有人说了:练好口语 一定是有利的。
这个我也 赞同,练啥其实都有有利的,但我们要看**投入产出比**
我在学校的时候英语口语还是挺不错的,当时学校的留学生我基本都认识,和他们扯扯皮没问题,可工作这些年之后,全!都!还!回!去!了!
所以如果练习口语一定要有目标要么就是雅思托付考试要出国要么就一定要去外企找机会transfer美帝这样有一个环境可以一直保持下去。
否则,花费大量时间练习,其实仅仅是感动自己,过不了多久,就都还回去。(例如说我,哈哈哈哈)

View File

@ -0,0 +1,40 @@
# 到底要不要读研
在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)里讨论了一下关于要不要读研的问题。
![](https://gitee.com/programmercarl/pics/raw/master/pic1/20210613230829.png)
其实不少同学纠结于计算机专业要不要考研。
我的观点是 **如果认为自己本科毕业 可以拿到大厂的研发岗offer那么就不用读研**(除非保研到一个特别好的学校了)。
那么怎么能发现自己本科毕业能不能拿到大厂offer呢。
看看自己学生学哥学姐,大部分人的就业去向,如果很多都可以进入大厂,那么就可以追寻他们的足迹。
如果自己学校本科毕业,就业比较一般,那么就去读研吧。
当然这里还有一个情况就是算法岗算法岗一般要求研究生学历以上。但算法岗现在很卷985高校研究生找算法岗的工作都很难既要顶会也要coding的能力。
目前的现况是很多搞AI的985研究生都在转研发岗**但如果你依然立志从事人工智能(说明是真的热爱),那么就去读研吧**。
研究生毕业去做研发岗和本科毕业做的研发,其工作其实没区别。那么为什么读研呢。
现在环境就比较卷,两个候选人,实力差不多,一个本科,一个研究生,价钱也差不多,那么大厂就要个研究生呗,在招生简章里看着也好看,说明公司都是高学历人才。
当然一般来说 研究生毕竟又多读了 两三年,普遍会比本科强一些。
**PS大厂研发岗校招本科和研究生薪资几乎没啥差别**
那么话在说回来,**如果打算考研,那么就争取更好学校的研究生,提升一下学历,把考研所付出的努力最大化**。
最后关于本科生要不要读研:
* 本科如果有实力去大厂做研发,那么就去!
* 如果本科去不了大厂,可以考虑考研,考研是一次提升学历的机会,一旦选择考研这条路,就给自己点压力!
* 如果知道AI岗位目前就业情况依然要立志从事AI那么就去读研

View File

@ -0,0 +1,40 @@
# 面试中遇到发散性问题,应该怎么办?
这周在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)有一位录友问了我这么一个问题,我感觉挺有代表性的,应该不少录友在面试中不论是社招还是校招都会遇到这一类的问题。
问题如下:
![](https://gitee.com/programmercarl/pics/raw/master/pic1/20210529183636.png)
首先面试官评价:基本的知识都懂还可以,但是知识碎片化。
因为现在基本大家都是背面经,所以对考点知识点掌握的都不错,确实对整体上理解不够。
但如果想对整体上理解深入,需要花费很大精力的,而且要把书看的很透彻,那这种候选人基本都是拔尖的。
关于操作系统啊,数据库等等,大多数录友应该都是靠面经,其实背面经也是最高效,性价比最高的方式的,如果真的去把书看透,一本《深入理解计算机系统》够看一年了。。。。
所以面试官基本不会因为这个问题而把你pass掉那位提问的录友也是顺利进入了三面。
那么面试中遇到这种发散性问题应该怎么办呢?
其实他问的这种问题,**就没指望你能说出 正确的答案,这是没有标准答案的**,例如淘宝京东的那种登录的场景 没有经历过 是不知道究竟怎么回事的。
而问你对操作系统的理解,也是千人千面没有标准的。
遇到这种问题,你就结合自己的想法,大胆说,不要说这个我不知道,那个我没遇到过之类的。
你说的解决方案,一定是有问题的,面试官在质疑你的时候,**你要表现出很兴奋,积极和面试官讨论:为什么不对**,然后说出你的观点,结合你所知道的理论知识。
大胆说,不要怕,一般情况你的理论知识都比面试官强,面试官工作好多年了基础知识早忘了,基本都是面试你前一天突击一个小时(暴漏真相了哈哈哈)
**忌讳:面试官一质疑你,你就开始怀疑自己,心想那我说的不对吧,然后就不说话了。。。**
最后这种发散性的问题,也没法去专门准备,因为这种问题主要是**考察候选人对技术的态度和沟通能力!**
所以大家如果在面试遇到这一类发散性问题,一定要积极沟通,**表现出你对技术的追求和优秀的沟通能力**。
**注意 和面试官讨论的时候要面带微笑,不要板着脸,面试官也会喜欢以后和这样的人做同事!**
好咯,心法已经传授给大家了。