mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge branch 'master' into master
This commit is contained in:
44
README.md
44
README.md
@ -102,6 +102,7 @@
|
|||||||
* [看了这么多代码,谈一谈代码风格!](./problems/前序/代码风格.md)
|
* [看了这么多代码,谈一谈代码风格!](./problems/前序/代码风格.md)
|
||||||
* [力扣上的代码想在本地编译运行?](./problems/前序/力扣上的代码想在本地编译运行?.md)
|
* [力扣上的代码想在本地编译运行?](./problems/前序/力扣上的代码想在本地编译运行?.md)
|
||||||
* [什么是核心代码模式,什么又是ACM模式?](./problems/前序/什么是核心代码模式,什么又是ACM模式?.md)
|
* [什么是核心代码模式,什么又是ACM模式?](./problems/前序/什么是核心代码模式,什么又是ACM模式?.md)
|
||||||
|
* [刷题要不要用库函数](./problems/前序/刷力扣用不用库函数.md)
|
||||||
* [ACM模式如何构造二叉树](./problems/前序/ACM模式如何构建二叉树.md)
|
* [ACM模式如何构造二叉树](./problems/前序/ACM模式如何构建二叉树.md)
|
||||||
* [解密互联网大厂研发流程](./problems/前序/互联网大厂研发流程.md)
|
* [解密互联网大厂研发流程](./problems/前序/互联网大厂研发流程.md)
|
||||||
|
|
||||||
@ -129,45 +130,6 @@
|
|||||||
* [递归算法的时间与空间复杂度分析!](./problems/前序/递归算法的时间与空间复杂度分析.md)
|
* [递归算法的时间与空间复杂度分析!](./problems/前序/递归算法的时间与空间复杂度分析.md)
|
||||||
* [刷了这么多题,你了解自己代码的内存消耗么?](./problems/前序/刷了这么多题,你了解自己代码的内存消耗么?.md)
|
* [刷了这么多题,你了解自己代码的内存消耗么?](./problems/前序/刷了这么多题,你了解自己代码的内存消耗么?.md)
|
||||||
|
|
||||||
## 知识星球精选
|
|
||||||
|
|
||||||
* [秋招面试,心态很重要!](./problems/知识星球精选/秋招总结3.md)
|
|
||||||
* [秋招倒霉透顶,触底反弹!](./problems/知识星球精选/秋招总结2.md)
|
|
||||||
* [无竞赛,无实习,如何秋招?](./problems/知识星球精选/秋招总结1.md)
|
|
||||||
* [offer总决赛,何去何从!](./problems/知识星球精选/offer总决赛,何去何从.md)
|
|
||||||
* [入职后担心代码能力跟不上!](./problems/知识星球精选/入职后担心代码能力跟不上.md)
|
|
||||||
* [秋招进入offer决赛圈!](./problems/知识星球精选/offer对比-决赛圈.md)
|
|
||||||
* [非科班的困扰](./problems/知识星球精选/非科班的困扰.md)
|
|
||||||
* [offer的选择-开奖](./problems/知识星球精选/秋招开奖.md)
|
|
||||||
* [看到代码就抵触!怎么办?](./problems/知识星球精选/不喜欢写代码怎么办.md)
|
|
||||||
* [遭遇逼签,怎么办?](./problems/知识星球精选/逼签.md)
|
|
||||||
* [HR特意刁难非科班!](./problems/知识星球精选/HR特意刁难非科班.md)
|
|
||||||
* [offer的选择](./problems/知识星球精选/offer的选择.md)
|
|
||||||
* [天下乌鸦一般黑,哪家没有PUA?](./problems/知识星球精选/天下乌鸦一般黑.md)
|
|
||||||
* [初入大三,考研VS工作](./problems/知识星球精选/初入大三选择考研VS工作.md)
|
|
||||||
* [非科班2021秋招总结](./problems/知识星球精选/非科班2021秋招总结.md)
|
|
||||||
* [秋招下半场依然没offer,怎么办?](./problems/知识星球精选/秋招下半场依然没offer.md)
|
|
||||||
* [合适自己的就是最好的](./problems/知识星球精选/合适自己的就是最好的.md)
|
|
||||||
* [为什么都说客户端会消失](./problems/知识星球精选/客三消.md)
|
|
||||||
* [博士转计算机如何找工作](./problems/知识星球精选/博士转行计算机.md)
|
|
||||||
* [不一样的七夕](./problems/知识星球精选/不一样的七夕.md)
|
|
||||||
* [HR面注意事项](./problems/知识星球精选/HR面注意事项.md)
|
|
||||||
* [刷题攻略要刷两遍!](./problems/知识星球精选/刷题攻略要刷两遍.md)
|
|
||||||
* [秋招进行中的迷茫与焦虑......](./problems/知识星球精选/秋招进行中的迷茫与焦虑.md)
|
|
||||||
* [大厂新人培养体系应该是什么样的?](./problems/知识星球精选/大厂新人培养体系.md)
|
|
||||||
* [你的简历里「专业技能」写的够专业么?](./problems/知识星球精选/专业技能可以这么写.md)
|
|
||||||
* [Carl看了上百份简历,总结了这些!](./problems/知识星球精选/写简历的一些问题.md)
|
|
||||||
* [备战2022届秋招](./problems/知识星球精选/备战2022届秋招.md)
|
|
||||||
* [技术不太好,如果选择方向](./problems/知识星球精选/技术不好如何选择技术方向.md)
|
|
||||||
* [刷题要不要使用库函数](./problems/知识星球精选/刷力扣用不用库函数.md)
|
|
||||||
* [关于实习的几点问题](./problems/知识星球精选/关于实习大家的疑问.md)
|
|
||||||
* [面试中遇到了发散性问题,怎么办?](./problems/知识星球精选/面试中发散性问题.md)
|
|
||||||
* [英语到底重不重要!](./problems/知识星球精选/英语到底重不重要.md)
|
|
||||||
* [计算机专业要不要读研!](./problems/知识星球精选/要不要考研.md)
|
|
||||||
* [关于提前批的一些建议](./problems/知识星球精选/关于提前批的一些建议.md)
|
|
||||||
* [已经在实习的录友要如何准备秋招](./problems/知识星球精选/如何权衡实习与秋招复习.md)
|
|
||||||
* [华为提前批已经开始了](./problems/知识星球精选/提前批已经开始了.md)
|
|
||||||
|
|
||||||
## 杂谈
|
## 杂谈
|
||||||
|
|
||||||
* [「代码随想录」刷题网站上线](https://mp.weixin.qq.com/s/-6rd_g7LrVD1fuKBYk2tXQ)。
|
* [「代码随想录」刷题网站上线](https://mp.weixin.qq.com/s/-6rd_g7LrVD1fuKBYk2tXQ)。
|
||||||
@ -569,7 +531,8 @@
|
|||||||
|
|
||||||
如果是已工作,备注:姓名-城市-岗位-组队刷题。如果学生,备注:姓名-学校-年级-组队刷题。**备注没有自我介绍不通过哦**
|
如果是已工作,备注:姓名-城市-岗位-组队刷题。如果学生,备注:姓名-学校-年级-组队刷题。**备注没有自我介绍不通过哦**
|
||||||
|
|
||||||
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20220102204804.png" data-img="1" width="200" height="200"></img></div>
|
|
||||||
|
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/第二企业刷题活码.png" data-img="1" width="200" height="200"></img></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -581,6 +544,7 @@
|
|||||||
|
|
||||||
**来看看就知道了,你会发现相见恨晚!**
|
**来看看就知道了,你会发现相见恨晚!**
|
||||||
|
|
||||||
|
|
||||||
<a name="公众号"></a>
|
<a name="公众号"></a>
|
||||||
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20211026122841.png" data-img="1" width="650" height="500"></img></div>
|
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20211026122841.png" data-img="1" width="650" height="500"></img></div>
|
||||||
|
|
||||||
|
@ -281,10 +281,8 @@ func removeElement(_ nums: inout [Int], _ val: Int) -> Int {
|
|||||||
|
|
||||||
for fastIndex in 0..<nums.count {
|
for fastIndex in 0..<nums.count {
|
||||||
if val != nums[fastIndex] {
|
if val != nums[fastIndex] {
|
||||||
if slowIndex != fastIndex {
|
|
||||||
nums[slowIndex] = nums[fastIndex]
|
nums[slowIndex] = nums[fastIndex]
|
||||||
}
|
slowIndex += 1
|
||||||
slowIndex += 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return slowIndex
|
return slowIndex
|
||||||
|
@ -250,6 +250,27 @@ var jump = function(nums) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function jump(nums: number[]): number {
|
||||||
|
const length: number = nums.length;
|
||||||
|
let curFarthestIndex: number = 0,
|
||||||
|
nextFarthestIndex: number = 0;
|
||||||
|
let curIndex: number = 0;
|
||||||
|
let stepNum: number = 0;
|
||||||
|
while (curIndex < length - 1) {
|
||||||
|
nextFarthestIndex = Math.max(nextFarthestIndex, curIndex + nums[curIndex]);
|
||||||
|
if (curIndex === curFarthestIndex) {
|
||||||
|
curFarthestIndex = nextFarthestIndex;
|
||||||
|
stepNum++;
|
||||||
|
}
|
||||||
|
curIndex++;
|
||||||
|
}
|
||||||
|
return stepNum;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -129,7 +129,6 @@ for (int col = 0; col < n; col++) {
|
|||||||
|
|
||||||
```CPP
|
```CPP
|
||||||
bool isValid(int row, int col, vector<string>& chessboard, int n) {
|
bool isValid(int row, int col, vector<string>& chessboard, int n) {
|
||||||
int count = 0;
|
|
||||||
// 检查列
|
// 检查列
|
||||||
for (int i = 0; i < row; i++) { // 这是一个剪枝
|
for (int i = 0; i < row; i++) { // 这是一个剪枝
|
||||||
if (chessboard[i][col] == 'Q') {
|
if (chessboard[i][col] == 'Q') {
|
||||||
@ -178,7 +177,6 @@ void backtracking(int n, int row, vector<string>& chessboard) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool isValid(int row, int col, vector<string>& chessboard, int n) {
|
bool isValid(int row, int col, vector<string>& chessboard, int n) {
|
||||||
int count = 0;
|
|
||||||
// 检查列
|
// 检查列
|
||||||
for (int i = 0; i < row; i++) { // 这是一个剪枝
|
for (int i = 0; i < row; i++) { // 这是一个剪枝
|
||||||
if (chessboard[i][col] == 'Q') {
|
if (chessboard[i][col] == 'Q') {
|
||||||
|
@ -211,7 +211,7 @@ func maxSubArray(nums []int) int {
|
|||||||
return maxSum
|
return maxSum
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Javascript:
|
### Javascript:
|
||||||
```Javascript
|
```Javascript
|
||||||
var maxSubArray = function(nums) {
|
var maxSubArray = function(nums) {
|
||||||
@ -230,6 +230,7 @@ var maxSubArray = function(nums) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### C:
|
### C:
|
||||||
贪心:
|
贪心:
|
||||||
```c
|
```c
|
||||||
@ -283,6 +284,43 @@ int maxSubArray(int* nums, int numsSize){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
**贪心**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function maxSubArray(nums: number[]): number {
|
||||||
|
let curSum: number = 0;
|
||||||
|
let resMax: number = -Infinity;
|
||||||
|
for (let i = 0, length = nums.length; i < length; i++) {
|
||||||
|
curSum += nums[i];
|
||||||
|
resMax = Math.max(curSum, resMax);
|
||||||
|
if (curSum < 0) curSum = 0;
|
||||||
|
}
|
||||||
|
return resMax;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
**动态规划**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// 动态规划
|
||||||
|
function maxSubArray(nums: number[]): number {
|
||||||
|
const length = nums.length;
|
||||||
|
if (length === 0) return 0;
|
||||||
|
const dp: number[] = [];
|
||||||
|
dp[0] = nums[0];
|
||||||
|
let resMax: number = nums[0];
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);
|
||||||
|
resMax = Math.max(resMax, dp[i]);
|
||||||
|
}
|
||||||
|
return resMax;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -154,6 +154,7 @@ var canJump = function(nums) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### C
|
### C
|
||||||
```c
|
```c
|
||||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
@ -177,5 +178,23 @@ bool canJump(int* nums, int numsSize){
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function canJump(nums: number[]): boolean {
|
||||||
|
let farthestIndex: number = 0;
|
||||||
|
let cur: number = 0;
|
||||||
|
while (cur <= farthestIndex) {
|
||||||
|
farthestIndex = Math.max(farthestIndex, cur + nums[cur]);
|
||||||
|
if (farthestIndex >= nums.length - 1) return true;
|
||||||
|
cur++;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -246,11 +246,11 @@ var generateMatrix = function(n) {
|
|||||||
res[row][col] = count++;
|
res[row][col] = count++;
|
||||||
}
|
}
|
||||||
// 下行从右到左(左闭右开)
|
// 下行从右到左(左闭右开)
|
||||||
for (; col > startX; col--) {
|
for (; col > startY; col--) {
|
||||||
res[row][col] = count++;
|
res[row][col] = count++;
|
||||||
}
|
}
|
||||||
// 左列做下到上(左闭右开)
|
// 左列做下到上(左闭右开)
|
||||||
for (; row > startY; row--) {
|
for (; row > startX; row--) {
|
||||||
res[row][col] = count++;
|
res[row][col] = count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ int getDepth(TreeNode* cur) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
然后再用栈来模拟前序遍历,遍历每一个节点的时候,再去判断左右孩子的高度是否符合,代码如下:
|
然后再用栈来模拟后序遍历,遍历每一个节点的时候,再去判断左右孩子的高度是否符合,代码如下:
|
||||||
|
|
||||||
```CPP
|
```CPP
|
||||||
bool isBalanced(TreeNode* root) {
|
bool isBalanced(TreeNode* root) {
|
||||||
|
@ -311,7 +311,36 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
> 贪心法:
|
||||||
|
```Go
|
||||||
|
func maxProfit(prices []int) int {
|
||||||
|
low := math.MaxInt32
|
||||||
|
rlt := 0
|
||||||
|
for i := range prices{
|
||||||
|
low = min(low, prices[i])
|
||||||
|
rlt = max(rlt, prices[i]-low)
|
||||||
|
}
|
||||||
|
|
||||||
|
return rlt
|
||||||
|
}
|
||||||
|
func min(a, b int) int {
|
||||||
|
if a < b{
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func max(a, b int) int {
|
||||||
|
if a > b{
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> 动态规划:版本一
|
||||||
```Go
|
```Go
|
||||||
func maxProfit(prices []int) int {
|
func maxProfit(prices []int) int {
|
||||||
length:=len(prices)
|
length:=len(prices)
|
||||||
@ -338,6 +367,29 @@ func max(a,b int)int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> 动态规划:版本二
|
||||||
|
```Go
|
||||||
|
func maxProfit(prices []int) int {
|
||||||
|
dp := [2][2]int{}
|
||||||
|
dp[0][0] = -prices[0]
|
||||||
|
dp[0][1] = 0
|
||||||
|
for i := 1; i < len(prices); i++{
|
||||||
|
dp[i%2][0] = max(dp[(i-1)%2][0], -prices[i])
|
||||||
|
dp[i%2][1] = max(dp[(i-1)%2][1], dp[(i-1)%2][0]+prices[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
return dp[(len(prices)-1)%2][1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func max(a, b int) int {
|
||||||
|
if a > b{
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
|
|
||||||
> 动态规划
|
> 动态规划
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
本题首先要清楚两点:
|
本题首先要清楚两点:
|
||||||
|
|
||||||
* 只有一只股票!
|
* 只有一只股票!
|
||||||
* 当前只有买股票或者买股票的操作
|
* 当前只有买股票或者卖股票的操作
|
||||||
|
|
||||||
想获得利润至少要两天为一个交易单元。
|
想获得利润至少要两天为一个交易单元。
|
||||||
|
|
||||||
@ -264,7 +264,19 @@ const maxProfit = (prices) => {
|
|||||||
dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] + prices[i]);
|
dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] + prices[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dp[prices.length -1][0];
|
return dp[prices.length -1][1];
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
TypeScript:
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function maxProfit(prices: number[]): number {
|
||||||
|
let resProfit: number = 0;
|
||||||
|
for (let i = 1, length = prices.length; i < length; i++) {
|
||||||
|
resProfit += Math.max(prices[i] - prices[i - 1], 0);
|
||||||
|
}
|
||||||
|
return resProfit;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ const maxProfit = (prices) => {
|
|||||||
dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] + prices[i]);
|
dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] + prices[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return dp[prices.length -1][0];
|
return dp[prices.length -1][1];
|
||||||
};
|
};
|
||||||
|
|
||||||
// 方法二:动态规划(滚动数组)
|
// 方法二:动态规划(滚动数组)
|
||||||
|
@ -235,7 +235,7 @@ class Solution {
|
|||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
```python
|
```python
|
||||||
@ -364,7 +364,50 @@ var canCompleteCircuit = function(gas, cost) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
**暴力法:**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function canCompleteCircuit(gas: number[], cost: number[]): number {
|
||||||
|
for (let i = 0, length = gas.length; i < length; i++) {
|
||||||
|
let curSum: number = 0;
|
||||||
|
let index: number = i;
|
||||||
|
while (curSum >= 0 && index < i + length) {
|
||||||
|
let tempIndex: number = index % length;
|
||||||
|
curSum += gas[tempIndex] - cost[tempIndex];
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if (index === i + length && curSum >= 0) return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
**解法二:**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function canCompleteCircuit(gas: number[], cost: number[]): number {
|
||||||
|
let total: number = 0;
|
||||||
|
let curGas: number = 0;
|
||||||
|
let tempDiff: number = 0;
|
||||||
|
let resIndex: number = 0;
|
||||||
|
for (let i = 0, length = gas.length; i < length; i++) {
|
||||||
|
tempDiff = gas[i] - cost[i];
|
||||||
|
total += tempDiff;
|
||||||
|
curGas += tempDiff;
|
||||||
|
if (curGas < 0) {
|
||||||
|
resIndex = i + 1;
|
||||||
|
curGas = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (total < 0) return -1;
|
||||||
|
return resIndex;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
### C
|
### C
|
||||||
|
|
||||||
```c
|
```c
|
||||||
int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){
|
int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){
|
||||||
int curSum = 0;
|
int curSum = 0;
|
||||||
|
@ -238,6 +238,7 @@ var candy = function(ratings) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### C
|
### C
|
||||||
```c
|
```c
|
||||||
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
#define max(a, b) (((a) > (b)) ? (a) : (b))
|
||||||
@ -280,5 +281,31 @@ int candy(int* ratings, int ratingsSize){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function candy(ratings: number[]): number {
|
||||||
|
const candies: number[] = [];
|
||||||
|
candies[0] = 1;
|
||||||
|
// 保证右边高分孩子一定比左边低分孩子发更多的糖果
|
||||||
|
for (let i = 1, length = ratings.length; i < length; i++) {
|
||||||
|
if (ratings[i] > ratings[i - 1]) {
|
||||||
|
candies[i] = candies[i - 1] + 1;
|
||||||
|
} else {
|
||||||
|
candies[i] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 保证左边高分孩子一定比右边低分孩子发更多的糖果
|
||||||
|
for (let i = ratings.length - 2; i >= 0; i--) {
|
||||||
|
if (ratings[i] > ratings[i + 1]) {
|
||||||
|
candies[i] = Math.max(candies[i], candies[i + 1] + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return candies.reduce((pre, cur) => pre + cur);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -336,7 +336,33 @@ class Solution:
|
|||||||
return pre
|
return pre
|
||||||
```
|
```
|
||||||
### Go
|
### Go
|
||||||
|
```go
|
||||||
|
# 方法三 分割链表
|
||||||
|
func reorderList(head *ListNode) {
|
||||||
|
var slow=head
|
||||||
|
var fast=head
|
||||||
|
for fast!=nil&&fast.Next!=nil{
|
||||||
|
slow=slow.Next
|
||||||
|
fast=fast.Next.Next
|
||||||
|
} //双指针将链表分为左右两部分
|
||||||
|
var right =new(ListNode)
|
||||||
|
for slow!=nil{
|
||||||
|
temp:=slow.Next
|
||||||
|
slow.Next=right.Next
|
||||||
|
right.Next=slow
|
||||||
|
slow=temp
|
||||||
|
} //翻转链表右半部分
|
||||||
|
right=right.Next //right为反转后得右半部分
|
||||||
|
h:=head
|
||||||
|
for right.Next!=nil{
|
||||||
|
temp:=right.Next
|
||||||
|
right.Next=h.Next
|
||||||
|
h.Next=right
|
||||||
|
h=h.Next.Next
|
||||||
|
right=temp
|
||||||
|
} //将左右两部分重新组合
|
||||||
|
}
|
||||||
|
```
|
||||||
### JavaScript
|
### JavaScript
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
|
@ -275,15 +275,11 @@ func (this *MyQueue) Pop() int {
|
|||||||
|
|
||||||
/** Get the front element. */
|
/** Get the front element. */
|
||||||
func (this *MyQueue) Peek() int {
|
func (this *MyQueue) Peek() int {
|
||||||
for len(this.stack) != 0 {
|
val := this.Pop()
|
||||||
val := this.stack[len(this.stack)-1]
|
if val == 0 {
|
||||||
this.stack = this.stack[:len(this.stack)-1]
|
|
||||||
this.back = append(this.back, val)
|
|
||||||
}
|
|
||||||
if len(this.back) == 0 {
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
val := this.back[len(this.back)-1]
|
this.back = append(this.back, val)
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,6 +298,7 @@ var wiggleMaxLength = function(nums) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### C
|
### C
|
||||||
**贪心**
|
**贪心**
|
||||||
```c
|
```c
|
||||||
@ -325,5 +326,56 @@ int wiggleMaxLength(int* nums, int numsSize){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
**贪心**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function wiggleMaxLength(nums: number[]): number {
|
||||||
|
let length: number = nums.length;
|
||||||
|
if (length <= 1) return length;
|
||||||
|
let preDiff: number = 0;
|
||||||
|
let curDiff: number = 0;
|
||||||
|
let count: number = 1;
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
curDiff = nums[i] - nums[i - 1];
|
||||||
|
if (
|
||||||
|
(preDiff <= 0 && curDiff > 0) ||
|
||||||
|
(preDiff >= 0 && curDiff < 0)
|
||||||
|
) {
|
||||||
|
preDiff = curDiff;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
**动态规划**
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function wiggleMaxLength(nums: number[]): number {
|
||||||
|
const length: number = nums.length;
|
||||||
|
if (length <= 1) return length;
|
||||||
|
const dp: number[][] = new Array(length).fill(0).map(_ => []);
|
||||||
|
dp[0][0] = 1; // 第一个数作为波峰
|
||||||
|
dp[0][1] = 1; // 第一个数作为波谷
|
||||||
|
for (let i = 1; i < length; i++) {
|
||||||
|
dp[i][0] = 1;
|
||||||
|
dp[i][1] = 1;
|
||||||
|
for (let j = 0; j < i; j++) {
|
||||||
|
if (nums[j] < nums[i]) dp[i][0] = Math.max(dp[i][0], dp[j][1] + 1);
|
||||||
|
}
|
||||||
|
for (let j = 0; j < i; j++) {
|
||||||
|
if (nums[j] > nums[i]) dp[i][1] = Math.max(dp[i][1], dp[j][0] + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Math.max(dp[length - 1][0], dp[length - 1][1]);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -290,6 +290,24 @@ var reconstructQueue = function(people) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function reconstructQueue(people: number[][]): number[][] {
|
||||||
|
people.sort((a, b) => {
|
||||||
|
if (a[0] === b[0]) return a[1] - b[1];
|
||||||
|
return b[0] - a[0];
|
||||||
|
});
|
||||||
|
const resArr: number[][] = [];
|
||||||
|
for (let i = 0, length = people.length; i < length; i++) {
|
||||||
|
resArr.splice(people[i][1], 0, people[i]);
|
||||||
|
}
|
||||||
|
return resArr;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
|
|
||||||
## 01背包问题
|
## 01背包问题
|
||||||
|
|
||||||
背包问题,大家都知道,有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
|
背包问题,大家都知道,有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
|
||||||
|
|
||||||
**背包问题有多种背包方式,常见的有:01背包、完全背包、多重背包、分组背包和混合背包等等。**
|
**背包问题有多种背包方式,常见的有:01背包、完全背包、多重背包、分组背包和混合背包等等。**
|
||||||
|
|
||||||
|
@ -209,7 +209,50 @@ var findContentChildren = function(g, s) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// 大饼干尽量喂胃口大的
|
||||||
|
function findContentChildren(g: number[], s: number[]): number {
|
||||||
|
g.sort((a, b) => a - b);
|
||||||
|
s.sort((a, b) => a - b);
|
||||||
|
const childLength: number = g.length,
|
||||||
|
cookieLength: number = s.length;
|
||||||
|
let curChild: number = childLength - 1,
|
||||||
|
curCookie: number = cookieLength - 1;
|
||||||
|
let resCount: number = 0;
|
||||||
|
while (curChild >= 0 && curCookie >= 0) {
|
||||||
|
if (g[curChild] <= s[curCookie]) {
|
||||||
|
curCookie--;
|
||||||
|
resCount++;
|
||||||
|
}
|
||||||
|
curChild--;
|
||||||
|
}
|
||||||
|
return resCount;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
// 小饼干先喂饱小胃口的
|
||||||
|
function findContentChildren(g: number[], s: number[]): number {
|
||||||
|
g.sort((a, b) => a - b);
|
||||||
|
s.sort((a, b) => a - b);
|
||||||
|
const childLength: number = g.length,
|
||||||
|
cookieLength: number = s.length;
|
||||||
|
let curChild: number = 0,
|
||||||
|
curCookie: number = 0;
|
||||||
|
while (curChild < childLength && curCookie < cookieLength) {
|
||||||
|
if (g[curChild] <= s[curCookie]) {
|
||||||
|
curChild++;
|
||||||
|
}
|
||||||
|
curCookie++;
|
||||||
|
}
|
||||||
|
return curChild;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
### C
|
### C
|
||||||
|
|
||||||
```c
|
```c
|
||||||
int cmp(int* a, int* b) {
|
int cmp(int* a, int* b) {
|
||||||
return *a - *b;
|
return *a - *b;
|
||||||
|
@ -166,20 +166,19 @@ JavaScript:
|
|||||||
* @return {number[]}
|
* @return {number[]}
|
||||||
*/
|
*/
|
||||||
var nextGreaterElements = function (nums) {
|
var nextGreaterElements = function (nums) {
|
||||||
// let map = new Map();
|
const len = nums.length;
|
||||||
let stack = [];
|
let stack = [];
|
||||||
let res = new Array(nums.length).fill(-1);
|
let res = Array(len).fill(-1);
|
||||||
for (let i = 0; i < nums.length * 2; i++) {
|
for (let i = 0; i < len * 2; i++) {
|
||||||
while (
|
while (
|
||||||
stack.length &&
|
stack.length &&
|
||||||
nums[i % nums.length] > nums[stack[stack.length - 1]]
|
nums[i % len] > nums[stack[stack.length - 1]]
|
||||||
) {
|
) {
|
||||||
let index = stack.pop();
|
const index = stack.pop();
|
||||||
res[index] = nums[i % nums.length];
|
res[index] = nums[i % len];
|
||||||
}
|
}
|
||||||
stack.push(i % nums.length);
|
stack.push(i % len);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
@ -973,6 +973,10 @@ class MyLinkedList {
|
|||||||
// 处理头节点
|
// 处理头节点
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
this.head = this.head!.next;
|
this.head = this.head!.next;
|
||||||
|
// 如果链表中只有一个元素,删除头节点后,需要处理尾节点
|
||||||
|
if (index === this.size - 1) {
|
||||||
|
this.tail = null
|
||||||
|
}
|
||||||
this.size--;
|
this.size--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -301,25 +301,22 @@ func dailyTemperatures(num []int) []int {
|
|||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
```javascript
|
```javascript
|
||||||
/**
|
// 版本一
|
||||||
* @param {number[]} temperatures
|
|
||||||
* @return {number[]}
|
|
||||||
*/
|
|
||||||
var dailyTemperatures = function(temperatures) {
|
var dailyTemperatures = function(temperatures) {
|
||||||
let n = temperatures.length;
|
const n = temperatures.length;
|
||||||
let res = new Array(n).fill(0);
|
const res = Array(n).fill(0);
|
||||||
let stack = []; // 递减栈:用于存储元素右面第一个比他大的元素下标
|
const stack = []; // 递增栈:用于存储元素右面第一个比他大的元素下标
|
||||||
stack.push(0);
|
stack.push(0);
|
||||||
for (let i = 1; i < n; i++) {
|
for (let i = 1; i < n; i++) {
|
||||||
// 栈顶元素
|
// 栈顶元素
|
||||||
let top = stack[stack.length - 1];
|
const top = stack[stack.length - 1];
|
||||||
if (temperatures[i] < temperatures[top]) {
|
if (temperatures[i] < temperatures[top]) {
|
||||||
stack.push(i);
|
stack.push(i);
|
||||||
} else if (temperatures[i] === temperatures[top]) {
|
} else if (temperatures[i] === temperatures[top]) {
|
||||||
stack.push(i);
|
stack.push(i);
|
||||||
} else {
|
} else {
|
||||||
while (stack.length && temperatures[i] > temperatures[stack[stack.length - 1]]) {
|
while (stack.length && temperatures[i] > temperatures[stack[stack.length - 1]]) {
|
||||||
let top = stack.pop();
|
const top = stack.pop();
|
||||||
res[top] = i - top;
|
res[top] = i - top;
|
||||||
}
|
}
|
||||||
stack.push(i);
|
stack.push(i);
|
||||||
@ -327,6 +324,23 @@ var dailyTemperatures = function(temperatures) {
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 版本二
|
||||||
|
var dailyTemperatures = function(temperatures) {
|
||||||
|
const n = temperatures.length;
|
||||||
|
const res = Array(n).fill(0);
|
||||||
|
const stack = []; // 递增栈:用于存储元素右面第一个比他大的元素下标
|
||||||
|
stack.push(0);
|
||||||
|
for (let i = 1; i < n; i++) {
|
||||||
|
while (stack.length && temperatures[i] > temperatures[stack[stack.length - 1]]) {
|
||||||
|
const top = stack.pop();
|
||||||
|
res[top] = i - top;
|
||||||
|
}
|
||||||
|
stack.push(i);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,6 +77,61 @@ public:
|
|||||||
|
|
||||||
但这道题目的思路是很巧妙的,所以有必要介绍给大家做一做,感受一下。
|
但这道题目的思路是很巧妙的,所以有必要介绍给大家做一做,感受一下。
|
||||||
|
|
||||||
|
## 补充
|
||||||
|
|
||||||
|
这里提供一种与[452.用最少数量的箭引爆气球](https://programmercarl.com/0452.用最少数量的箭引爆气球.html)、[435.无重叠区间](https://programmercarl.com/0435.无重叠区间.html)相同的思路。
|
||||||
|
|
||||||
|
统计字符串中所有字符的起始和结束位置,记录这些区间(实际上也就是[435.无重叠区间](https://programmercarl.com/0435.无重叠区间.html)题目里的输入),**将区间按左边界从小到大排序,找到边界将区间划分成组,互不重叠。找到的边界就是答案。**
|
||||||
|
|
||||||
|
```CPP
|
||||||
|
class Solution {
|
||||||
|
public:
|
||||||
|
static bool cmp(vector<int> &a, vector<int> &b) {
|
||||||
|
return a[0] < b[0];
|
||||||
|
}
|
||||||
|
// 记录每个字母出现的区间
|
||||||
|
vector<vector<int>> countLabels(string s) {
|
||||||
|
vector<vector<int>> hash(26, vector<int>(2, INT_MIN));
|
||||||
|
vector<vector<int>> hash_filter;
|
||||||
|
for (int i = 0; i < s.size(); ++i) {
|
||||||
|
if (hash[s[i] - 'a'][0] == INT_MIN) {
|
||||||
|
hash[s[i] - 'a'][0] = i;
|
||||||
|
}
|
||||||
|
hash[s[i] - 'a'][1] = i;
|
||||||
|
}
|
||||||
|
// 去除字符串中未出现的字母所占用区间
|
||||||
|
for (int i = 0; i < hash.size(); ++i) {
|
||||||
|
if (hash[i][0] != INT_MIN) {
|
||||||
|
hash_filter.push_back(hash[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hash_filter;
|
||||||
|
}
|
||||||
|
vector<int> partitionLabels(string s) {
|
||||||
|
vector<int> res;
|
||||||
|
// 这一步得到的 hash 即为无重叠区间题意中的输入样例格式:区间列表
|
||||||
|
// 只不过现在我们要求的是区间分割点
|
||||||
|
vector<vector<int>> hash = countLabels(s);
|
||||||
|
// 按照左边界从小到大排序
|
||||||
|
sort(hash.begin(), hash.end(), cmp);
|
||||||
|
// 记录最大右边界
|
||||||
|
int rightBoard = hash[0][1];
|
||||||
|
int leftBoard = 0;
|
||||||
|
for (int i = 1; i < hash.size(); ++i) {
|
||||||
|
// 由于字符串一定能分割,因此,
|
||||||
|
// 一旦下一区间左边界大于当前右边界,即可认为出现分割点
|
||||||
|
if (hash[i][0] > rightBoard) {
|
||||||
|
res.push_back(rightBoard - leftBoard + 1);
|
||||||
|
leftBoard = hash[i][0];
|
||||||
|
}
|
||||||
|
rightBoard = max(rightBoard, hash[i][1]);
|
||||||
|
}
|
||||||
|
// 最右端
|
||||||
|
res.push_back(rightBoard - leftBoard + 1);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
## 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
@ -252,5 +252,39 @@ var lemonadeChange = function(bills) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function lemonadeChange(bills: number[]): boolean {
|
||||||
|
let five: number = 0,
|
||||||
|
ten: number = 0;
|
||||||
|
for (let bill of bills) {
|
||||||
|
switch (bill) {
|
||||||
|
case 5:
|
||||||
|
five++;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
if (five < 1) return false;
|
||||||
|
five--;
|
||||||
|
ten++
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
if (ten > 0 && five > 0) {
|
||||||
|
five--;
|
||||||
|
ten--;
|
||||||
|
} else if (five > 2) {
|
||||||
|
five -= 3;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -211,6 +211,7 @@ var largestSumAfterKNegations = function(nums, k) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### C
|
### C
|
||||||
```c
|
```c
|
||||||
#define abs(a) (((a) > 0) ? (a) : (-(a)))
|
#define abs(a) (((a) > 0) ? (a) : (-(a)))
|
||||||
@ -250,5 +251,30 @@ int largestSumAfterKNegations(int* nums, int numsSize, int k){
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### TypeScript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
function largestSumAfterKNegations(nums: number[], k: number): number {
|
||||||
|
nums.sort((a, b) => Math.abs(b) - Math.abs(a));
|
||||||
|
let curIndex: number = 0;
|
||||||
|
const length = nums.length;
|
||||||
|
while (curIndex < length && k > 0) {
|
||||||
|
if (nums[curIndex] < 0) {
|
||||||
|
nums[curIndex] *= -1;
|
||||||
|
k--;
|
||||||
|
}
|
||||||
|
curIndex++;
|
||||||
|
}
|
||||||
|
while (k > 0) {
|
||||||
|
nums[length - 1] *= -1;
|
||||||
|
k--;
|
||||||
|
}
|
||||||
|
return nums.reduce((pre, cur) => pre + cur, 0);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -250,11 +250,9 @@ func removeDuplicates(s string) string {
|
|||||||
|
|
||||||
javaScript:
|
javaScript:
|
||||||
|
|
||||||
|
法一:使用栈
|
||||||
|
|
||||||
```js
|
```js
|
||||||
/**
|
|
||||||
* @param {string} s
|
|
||||||
* @return {string}
|
|
||||||
*/
|
|
||||||
var removeDuplicates = function(s) {
|
var removeDuplicates = function(s) {
|
||||||
const stack = [];
|
const stack = [];
|
||||||
for(const x of s) {
|
for(const x of s) {
|
||||||
@ -267,6 +265,25 @@ var removeDuplicates = function(s) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
法二:双指针(模拟栈)
|
||||||
|
|
||||||
|
```js
|
||||||
|
// 原地解法(双指针模拟栈)
|
||||||
|
var removeDuplicates = function(s) {
|
||||||
|
s = [...s];
|
||||||
|
let top = -1; // 指向栈顶元素的下标
|
||||||
|
for(let i = 0; i < s.length; i++) {
|
||||||
|
if(top === -1 || s[top] !== s[i]) { // top === -1 即空栈
|
||||||
|
s[++top] = s[i]; // 入栈
|
||||||
|
} else {
|
||||||
|
top--; // 推出栈
|
||||||
|
}
|
||||||
|
}
|
||||||
|
s.length = top + 1; // 栈顶元素下标 + 1 为栈的长度
|
||||||
|
return s.join('');
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
TypeScript:
|
TypeScript:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
|
@ -208,6 +208,59 @@ int main() {
|
|||||||
## Java
|
## Java
|
||||||
|
|
||||||
```Java
|
```Java
|
||||||
|
public class Solution {
|
||||||
|
// 节点类
|
||||||
|
static class TreeNode {
|
||||||
|
// 节点值
|
||||||
|
int val;
|
||||||
|
|
||||||
|
// 左节点
|
||||||
|
TreeNode left;
|
||||||
|
|
||||||
|
// 右节点
|
||||||
|
TreeNode right;
|
||||||
|
|
||||||
|
// 节点的构造函数(默认左右节点都为null)
|
||||||
|
public TreeNode(int x) {
|
||||||
|
this.val = x;
|
||||||
|
this.left = null;
|
||||||
|
this.right = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据数组构建二叉树
|
||||||
|
* @param arr 树的数组表示
|
||||||
|
* @return 构建成功后树的根节点
|
||||||
|
*/
|
||||||
|
public TreeNode constructBinaryTree(final int[] arr) {
|
||||||
|
// 构建和原数组相同的树节点列表
|
||||||
|
List<TreeNode> treeNodeList = arr.length > 0 ? new ArrayList<>(arr.length) : null;
|
||||||
|
TreeNode root = null;
|
||||||
|
// 把输入数值数组,先转化为二叉树节点列表
|
||||||
|
for (int i = 0; i < arr.length; i++) {
|
||||||
|
TreeNode node = null;
|
||||||
|
if (arr[i] != -1) { // 用 -1 表示null
|
||||||
|
node = new TreeNode(arr[i]);
|
||||||
|
}
|
||||||
|
treeNodeList.add(node);
|
||||||
|
if (i == 0) {
|
||||||
|
root = node;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 遍历一遍,根据规则左右孩子赋值就可以了
|
||||||
|
// 注意这里 结束规则是 i * 2 + 2 < arr.length,避免空指针
|
||||||
|
for (int i = 0; i * 2 + 2 < arr.length; i++) {
|
||||||
|
TreeNode node = treeNodeList.get(i);
|
||||||
|
if (node != null) {
|
||||||
|
// 线性存储转连式存储关键逻辑
|
||||||
|
node.left = treeNodeList.get(2 * i + 1);
|
||||||
|
node.right = treeNodeList.get(2 * i + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -220,6 +273,73 @@ int main() {
|
|||||||
## Go
|
## Go
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type TreeNode struct {
|
||||||
|
Val int
|
||||||
|
Left *TreeNode
|
||||||
|
Right *TreeNode
|
||||||
|
}
|
||||||
|
|
||||||
|
func constructBinaryTree(array []int) *TreeNode {
|
||||||
|
var root *TreeNode
|
||||||
|
nodes := make([]*TreeNode, len(array))
|
||||||
|
|
||||||
|
// 初始化二叉树节点
|
||||||
|
for i := 0; i < len(nodes); i++ {
|
||||||
|
var node *TreeNode
|
||||||
|
if array[i] != -1 {
|
||||||
|
node = &TreeNode{Val: array[i]}
|
||||||
|
}
|
||||||
|
nodes[i] = node
|
||||||
|
if i == 0 {
|
||||||
|
root = node
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 串联节点
|
||||||
|
for i := 0; i*2+2 < len(array); i++ {
|
||||||
|
if nodes[i] != nil {
|
||||||
|
nodes[i].Left = nodes[i*2+1]
|
||||||
|
nodes[i].Right = nodes[i*2+2]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return root
|
||||||
|
}
|
||||||
|
|
||||||
|
func printBinaryTree(root *TreeNode, n int) {
|
||||||
|
var queue []*TreeNode
|
||||||
|
if root != nil {
|
||||||
|
queue = append(queue, root)
|
||||||
|
}
|
||||||
|
|
||||||
|
result := []int{}
|
||||||
|
for len(queue) > 0 {
|
||||||
|
for j := 0; j < len(queue); j++ {
|
||||||
|
node := queue[j]
|
||||||
|
if node != nil {
|
||||||
|
result = append(result, node.Val)
|
||||||
|
queue = append(queue, node.Left)
|
||||||
|
queue = append(queue, node.Right)
|
||||||
|
} else {
|
||||||
|
result = append(result, -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 清除队列中的本层节点, 进入下一层遍历
|
||||||
|
queue = queue[len(queue):]
|
||||||
|
}
|
||||||
|
|
||||||
|
// 参数n控制输出值数量, 否则二叉树最后一层叶子节点的孩子节点也会被打印(但是这些孩子节点是不存在的).
|
||||||
|
fmt.Println(result[:n])
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
array := []int{4, 1, 6, 0, 2, 5, 7, -1, -1, -1, 3, -1, -1, -1, 8}
|
||||||
|
root := constructBinaryTree(array)
|
||||||
|
printBinaryTree(root, len(array))
|
||||||
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 究竟什么时候用库函数,什么时候要自己实现
|
# 究竟什么时候用库函数,什么时候要自己实现
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)里有录友问我,刷题究竟要不要用库函数? 刷题的时候总是禁不住库函数的诱惑,如果都不用库函数一些题目做起来还很麻烦。
|
在[知识星球](https://programmercarl.com/other/kstar.html)里有录友问我,刷题究竟要不要用库函数? 刷题的时候总是禁不住库函数的诱惑,如果都不用库函数一些题目做起来还很麻烦。
|
||||||
@ -11,7 +6,7 @@
|
|||||||
|
|
||||||
一些同学可能比较喜欢看力扣上直接调用库函数的评论和题解,**其实我感觉娱乐一下还是可以的,但千万别当真,别沉迷!**
|
一些同学可能比较喜欢看力扣上直接调用库函数的评论和题解,**其实我感觉娱乐一下还是可以的,但千万别当真,别沉迷!**
|
||||||
|
|
||||||
例如:[字符串:151. 翻转字符串里的单词](https://mp.weixin.qq.com/s/X3qpi2v5RSp08mO-W5Vicw)这道题目本身是综合考察同学们对字符串的处理能力,如果 split + reverse的话,那就失去了题目的意义了。
|
例如:[字符串:151. 翻转字符串里的单词](https://programmercarl.com/0151.%E7%BF%BB%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2%E9%87%8C%E7%9A%84%E5%8D%95%E8%AF%8D.html)这道题目本身是综合考察同学们对字符串的处理能力,如果 split + reverse的话,那就失去了题目的意义了。
|
||||||
|
|
||||||
有的同学可能不屑于实现这么简单的功能,直接调库函数完事,把字符串分成一个个单词,一想就是那么一回事,多简单。
|
有的同学可能不屑于实现这么简单的功能,直接调库函数完事,把字符串分成一个个单词,一想就是那么一回事,多简单。
|
||||||
|
|
||||||
@ -31,4 +26,3 @@
|
|||||||
|
|
||||||
在刷题的时候本着我说的标准来使用库函数,详细对大家回有所帮助!
|
在刷题的时候本着我说的标准来使用库函数,详细对大家回有所帮助!
|
||||||
|
|
||||||
|
|
@ -120,14 +120,13 @@
|
|||||||
|
|
||||||
# 总结
|
# 总结
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
这个图是 [代码随想录知识星球](https://programmercarl.com/other/kstar.html) 成员:[海螺人](https://wx.zsxq.com/dweb2/index/footprint/844412858822412),所画,总结的非常好,分享给大家。
|
||||||
|
|
||||||
从二分法到双指针,从滑动窗口到螺旋矩阵,相信如果大家真的认真做了「代码随想录」每日推荐的题目,定会有所收获。
|
从二分法到双指针,从滑动窗口到螺旋矩阵,相信如果大家真的认真做了「代码随想录」每日推荐的题目,定会有所收获。
|
||||||
|
|
||||||
推荐的题目即使大家之前做过了,再读一遍文章,也会帮助你提炼出解题的精髓所在。
|
推荐的题目即使大家之前做过了,再读一遍文章,也会帮助你提炼出解题的精髓所在。
|
||||||
|
|
||||||
如果感觉有所收获,希望大家多多支持,打卡转发,点赞在看 都是对我最大的鼓励!
|
|
||||||
|
|
||||||
最后,大家周末愉快!
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# HR特意刁难非科班!
|
|
||||||
|
|
||||||
不少录友都是非科班转程序员,或者进军互联网的,但有一些HR在HR面的时候特意刁难大家。
|
|
||||||
|
|
||||||
正如[知识星球](https://programmercarl.com/other/kstar.html)里,这位录友所遭受的情景。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
1. 你的研究方向并不是这个方面的,你为什么要转行?
|
|
||||||
2. 你和非科班的同学相比肯定有一些劣势,你打算怎么赶上他们?或者是你如何应对你作为非科班生在工作中的挑战?
|
|
||||||
|
|
||||||
以下是我的回答:
|
|
||||||
|
|
||||||
对于问题一,你这么说没问题,可以再润色一下,说一说自己看过哪些技术大牛的传记,例如《黑客与画家》,对自己影响很大,然后对编程就非常感兴趣,想从事这个行业 等等。 或者说 你感觉 新能源汽车是以后非常明确的方向,而自动驾驶是新能源汽车的标配,所以想投身这个行业。
|
|
||||||
|
|
||||||
问题二: 首先要自信起来,说:在技术方面和对编程的热情方面,我不比科班同学差,因为大学里教的内容和企业要求的基本脱钩的,大家准备面试进大厂都是靠自学,**反而因为我是非科班,我更加的努力,也特别珍惜来之不易的机会**。
|
|
||||||
|
|
||||||
如果要说科班同学有什么优势的话,我感觉他们的学习编程的氛围会好好一些,也就是遇到问题大家能一起交流,因为我车辆工程专业,所以我会经常去蹭计算机的课,也会去认识很多计算机专业的同学和他们一起讨论问题。
|
|
||||||
|
|
||||||
总之在HR面的时候,不要说自己哪里的缺点,也不说自己哪里技术掌握的不好,**HR不懂技术,你说自己哪里不懂,他就真认为你不懂了**。
|
|
||||||
|
|
||||||
缺点就说一些不痛不痒的,甚至化缺点为自己的优势。
|
|
||||||
|
|
||||||
例如问你的缺点是什么?
|
|
||||||
|
|
||||||
**可以说自己有时候 对技术细节过于执着,以至于影响整体的进度**。
|
|
||||||
|
|
||||||
这种缺点 无形之中 就体现出自己 对技术的热爱和专研 (起到装逼于无形的效果),而且 这种缺点 是分分钟就可以改的。
|
|
||||||
|
|
||||||
如果问你 :作为非科班生在工作中的挑战?
|
|
||||||
|
|
||||||
你也这么说:其实大家都是靠自学,如果说非科班在工作中遇到的挑战,我相信 科班同学在工作中也是遇到一样的挑战,工作之后自学能力更加重要,互联网变化是飞快的,只有自学能力强的同学才能跟上步伐。
|
|
||||||
|
|
||||||
然后随便举例一下,说明自己自学能力如何如何的强,就可以了。
|
|
||||||
|
|
||||||
**总之不能示弱,不能说自己哪里不好,哪里不行!**
|
|
||||||
|
|
||||||
HR也不懂技术,主要就是看你的态度。
|
|
||||||
|
|
||||||
就酱,希望对录友们有所启发,加油💪
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
# HR面注意事项
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)里已经有一些录友开始准备HR面。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
甚至星球里已经有录友拿到百度提前批的offer
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
C++后端开发 总包40w,这个薪资和岗位很不错了,至于干的活杂不杂 都不是你能打听出来的,要进去,看具体工作,以及领导的具体安排,只有亲自去感受了,才知道是不是打杂。
|
|
||||||
|
|
||||||
深信服 云计算 大多数是做toB的业务,做私有云,几乎是和硬件设备一起卖,和阿里云,腾讯云,这些公有云厂商不是一个概念的。
|
|
||||||
|
|
||||||
深信服也不错,但不用奔着云计算这个壳子就去冲 深信服,进去干的活未必和云计算有多关系,而且去深信服 你就能保证不打杂了么? 对吧
|
|
||||||
|
|
||||||
所以 具体工作内容是 我们控制不了的,知道个大概方向就可以了。
|
|
||||||
|
|
||||||
去百度吧,挺好的。
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
普渡科技 是是一家C轮创业公司,一般创业公司 双休的可能性不太大。而且 看两家给你的薪资,如果算上公积金的话,到手的钱没有百度开的高。
|
|
||||||
|
|
||||||
应届生去创业公司,有一点吃亏,就是你刚进去,因为你还不能干活,有明显的产出,或者能力有限,并不会给你 期权甚至股份,可能股份兑现不了,但表示的是对候选人的重视程度。
|
|
||||||
|
|
||||||
创业公司研发流程还不够规范,所谓的野蛮成长 就是没有流程。 **关键是能成长起来 万事大吉,就怕长不起来**。
|
|
||||||
|
|
||||||
百度虽然是测开的岗位,但薪资开得挺高了,可以看出对你的重视,飞桨深度学习平台部,也很不错,是百度重点打造的深度学习框架。
|
|
||||||
|
|
||||||
我倾向于选百度,虽然是测开,但进去依然可以学很多东西。 这样稳一些。
|
|
||||||
|
|
||||||
当然如果你想赌一把,可以去普渡科技,谁也说不好,万一后面起飞了呢。
|
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
双非本,还是电子信息类专业,能拿到这些offer,真的很不容易了👍
|
|
||||||
|
|
||||||
如果喜欢搞硬件,嵌入式应用方向其实也挺宽的,需求面也很广,华为 中兴,还有一堆手机厂商 新能源车企,智能家居,涉及到物联网的行业,都需要嵌入式开发。
|
|
||||||
|
|
||||||
中新赛克 也是上市公司,其实和 海康威视 大华股份 都差不多,这几家给薪资都差不多,一样的薪资,你在南京可比在杭州舒服多了啊,而且你家也在南京。
|
|
||||||
|
|
||||||
如果要真的是去大厂学技术,或者工资特别高,背井离乡也是可以的,但 海康威视 大华股份 估计也没有达到这个程度,薪资也没高出来,甚至可能不如 中新赛克 ,你还有 中新赛克给你的签字费呢。
|
|
||||||
|
|
||||||
综上,我倾向于 去 中新赛克,在老家,这个薪资不挺舒服的么,南京也很不错。 好好干吧💪
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
腾讯 这个部门有点边缘,技术栈比较浅。企业IT部就是做 企业内部应用的,最多也就是 几万人使用吧,大概率也没有机会磨练技术。系统很成熟,当然不加班。
|
|
||||||
|
|
||||||
百度推荐架构部,还是挺核心的,技术能力 还是比较强的。 **在上海应届生可以落户了,比深圳户口香太多太多了**。
|
|
||||||
|
|
||||||
至于晋升,百度晋升 一点也不慢,顺利的话,T3 到 T6 可以三年,一般情况是4年, T6跳 腾讯可以对应的是3-1 或者 3-2级别了。
|
|
||||||
|
|
||||||
至于光环,对个人来说,百度工程师在业内是很受认可的,一点不比腾讯差, 很多人说:拼多多啊,京东啊 市值都超过百度了,百度不是第一梯队了,等等。
|
|
||||||
|
|
||||||
说实话,**那公司的市值和我们这些码农有关系么**,对吧,**我们对关心的是 自己技术的成长,自己值多少钱,而不是公司值多少钱**。
|
|
||||||
|
|
||||||
至于薪资,相对于岗位,一年差6w,不算多,倾向于选百度。
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
去字节吧, 云存储方向 这个方向值得深耕, 是一个技术驱动的方向,而且各大厂商 都搞分布式存储,就业机会挺多的,再说 字节给的薪资也不错。
|
|
||||||
|
|
||||||
如果以后想离家近,你可以跳槽 腾讯云 继续做分布式存储,薪资还能涨一波。
|
|
||||||
|
|
||||||
如果对技术有追求的话,整个技术生涯都是可以认准云存储方向。存储是刚需!
|
|
||||||
|
|
||||||
你可别在准备春招了,这大厂offer 都不要,准备啥 春招啊,哈哈哈,别卷了,休息吧。
|
|
||||||
|
|
||||||
----------
|
|
||||||
|
|
||||||
以上就是我在知识星球,针对录友们offer决赛圈的解答,希望对大家也有所帮助。
|
|
||||||
|
|
@ -1,88 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# offer总决赛,何去何从!
|
|
||||||
|
|
||||||
最近在[知识星球](https://programmercarl.com/other/kstar.html)上,给至少300位录友做了offer选择,准对大家的情况,结合我的经验做一做分析。
|
|
||||||
|
|
||||||
希望可以给大家带来不一样的分析视角,帮大家少走弯路。
|
|
||||||
|
|
||||||
以下是我在知识星球里分析的部分案例,公众号上再给大家分享一波。
|
|
||||||
|
|
||||||
-----------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
1. C++ 后端,客户端,测开,指定选 C++后端啊,这是送分题。
|
|
||||||
2. 转型的问题不好回答,各有各的出路,**就算大厂里,95%以上的程序员都不想写代码,就想指点江山**,但为什么大家都在写代码呢,因为出路没有固定的公式,没有固定的方法,很多人完美转型看的是运气,看时机,也看努力,**但最重要的是运气和时机**。 最不缺的就是努力的人,其实大家都挺努力的。
|
|
||||||
3. 不会的,大厂里也没有一家语言独大,这种担心没必要。
|
|
||||||
4. 不同公司处理情况不一样,甚至每年都会变,大部分都不会黑名单,你这几家都不会。
|
|
||||||
5. 你的担心有点过头了,既然你拿到的offer就要对自己有信心,你也不是走后门拿到的offer,对自己能力这么没信心么,进去之后好好干就好了。剩下的交给缘分。 计划的在周密都没有变化快。
|
|
||||||
6. 你问的太全面了[捂脸],我都没想到 拿到大厂offer,能但担心出来 这么多事情。已经很周密了👍
|
|
||||||
|
|
||||||
最后 倾向于你去阿里云吧,这么好的的机会 有啥犹豫的。
|
|
||||||
|
|
||||||
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我感觉你不用不甘心大白菜,其实挺好的,客观来看 非科班转码 拿腾信后端开发的 offer 挺不错的。
|
|
||||||
|
|
||||||
虾皮在公司影响力上 和 腾讯不是一个数量级的。
|
|
||||||
|
|
||||||
跳槽虽然看base,但也看公司的,腾讯光环加持 比 虾皮可有力多了。
|
|
||||||
|
|
||||||
腾讯的总包是有点虚(花样有点多),但第一年到 43w了 挺不错的,腾讯好好干,升到高级工程师,在外年很值钱的。 现在这点钱也不算啥。**而且现在应届生薪资真的挺高的,不用在去追高,容易摔到的**。
|
|
||||||
|
|
||||||
我建议你直接去腾讯就好, 这个选择题 其实挺好选的。
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
广州没有百度吧,可以活水到深圳百度,工位很宽敞,比北京工位舒服多了。
|
|
||||||
|
|
||||||
我倾向于选百度吧,而且百度的岗位也不错,薪资也比 虎牙高(虎牙的股票价值不好说),**虎牙你听说是 965 但未必是 965,可能你已入职项目就忙起来了,瞬间996,这个工作强度都不是永恒的,都是跟着项目走**。
|
|
||||||
|
|
||||||
广州可选择的互联网公司不错的,你去广州虎牙,一旦离职 其实不太好选下一家。
|
|
||||||
|
|
||||||
百度 试用期不过,这个感觉有点谣言,哪家大厂都有试用期不过的,不过这个看项目组,整体来说 基本试用期都能过,问题不大。
|
|
||||||
|
|
||||||
虾皮还在抽盲盒,就不考虑了。
|
|
||||||
|
|
||||||
去百度吧,好好锻炼几年,然后再找机会 回南方。或者transfer 深圳 也不错。
|
|
||||||
|
|
||||||
------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
1. 公积金可以提出来 80%,包括自己交的和公司交的,还是挺方便的,现在支付宝可以一键提取。剩下的等你买房之后 可以全部提取。
|
|
||||||
|
|
||||||
2. 如果先去腾讯的话,你去 字节 做客户端更合适一些,而且你还是做 游戏直播的客户端,和腾讯互娱还是很匹配的。
|
|
||||||
|
|
||||||
至于研究生做客户端亏了 的问题,其实 95% 的研究生 基本都是做研发,后端或者客户端。
|
|
||||||
|
|
||||||
确实很多人感觉 读个研究生不做算法,不搞AI,和本科生没啥区别,**但事实是 搞算法 搞AI 可能都找不到工作了,那么就没有必要有这个执念**。
|
|
||||||
|
|
||||||
你现在能拿到 字节offer,也有你是研究生的加持 ,虽然 学历不等于能力,但 人多而卷,用学历晒人是最高效的方式。
|
|
||||||
|
|
||||||
------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
1. 一般来说管培计划,都是培养企业未来高管的,是很不错的,不同原员工干到高管多难,**但如果参加管培计划,那就不一样的,资源 和 机会 要不正常员工 多很多**, 从 去哪给你的薪资和签字费就能看出来。 不过去哪网的管培其实我不了解,我只是说一说普遍管培的情况。
|
|
||||||
|
|
||||||
2. 小米有很多东西可以学习? 这个其实 你现在是应届生,去哪家公司 都有很多东西可以学习,这个看具体内容了。
|
|
||||||
3. 我感觉不用了吧,这offer也不错啊,当然如果还有激情,再战也可以的。毕竟没啥损失,不过感觉可以休息了,躺平吧。
|
|
||||||
|
|
||||||
建议再去详细了解一下 去哪网管培计划 的具体内容,因为不同公司 管培计划不太一样,你是 技术岗管培 还是其他方向管培。
|
|
||||||
|
|
||||||
|
|
||||||
以上就是我在知识星球,针对录友们offer决赛圈的解答,希望对大家也有所帮助。
|
|
||||||
|
|
@ -1,137 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# offer的选择
|
|
||||||
|
|
||||||
秋招基本要结束了,一些录友也拿到了一些offer,如果是拿到大厂和小厂的offer,那当然就不用纠结了,直接选大厂。
|
|
||||||
|
|
||||||
不过大部分同学应该拿到的是 两个大厂offer,或者说拿到两个小厂offer,还要考虑岗位,业务,公司前景,那么就要纠结如何选择了。
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)里,我已经给很多录友提供了选择offer的建议,这里也分享出来,希望对大家在选择offer上有所启发。
|
|
||||||
|
|
||||||
## 保研与工作
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
1. 建议你直接工作,你都已经拿到了大厂offer,没有必要读研究生了,如果你是保研到 985高校,倒是可以考虑考虑。
|
|
||||||
2. 这是送分题,去百度吧,贴吧不算边缘,而且百度对新人的培养体系是很到位了,及时是边缘,对你技术成长也很有帮助,而且还有大厂光环。
|
|
||||||
|
|
||||||
3. 星球里 前端同学也很多啊,只不过你没注意到而已,我经常看到。而且前端和后端都是一样的,不能说没地位,不过不同的部门不太一样而已。(大家都是打工的,不用搞出鄙视链哈哈)
|
|
||||||
4. 躺平吧,可以歇息了,给还没拿offer的录友一条出路
|
|
||||||
|
|
||||||
|
|
||||||
## 阿里云与微众
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
中间件一点都不吭啊。
|
|
||||||
|
|
||||||
有云的地方,有分布式的地方,就有中间件,应用面很广泛,各大厂哪个能离开云计算,哪个能离开分布式,你就知道中间件有多重要了。当然中间件也是很大的一个领域了,是基础架构范畴。
|
|
||||||
|
|
||||||
关于业务部门和基础架构部门的选择,**我也倾向于 应届生选择基础架构部, 业务部门很忙没有时间沉底技术**。
|
|
||||||
|
|
||||||
其实你还要考虑,以后跳槽出来如何,在微众做基础架构,以后 跳槽可能更容易一些。注意跳槽不一定是你主动的,可能是被动跳槽。
|
|
||||||
|
|
||||||
假如阿里给你来个3.25 你就要找下家了,做 供应链管理 技术上没有太精进的话,找下家不太容易。
|
|
||||||
|
|
||||||
关于两个公司,我感觉差不多,微众也很不错,一般给出的薪资都比较高。
|
|
||||||
|
|
||||||
至于买房,杭州现在的房价涨的很猛,虽然说整体没有深圳高,但也差不多了,码农聚集地,就别想着房价多便宜。
|
|
||||||
|
|
||||||
互联网金融 这块后面发展一定是大势所趋的,不会差。
|
|
||||||
|
|
||||||
两个offer都不错,选哪个都可以!
|
|
||||||
|
|
||||||
对技术有追求,我倾向于微众,如果对BAT有执念,就去阿里吧。 都差不多。
|
|
||||||
|
|
||||||
## 深信服、小米和海康
|
|
||||||

|
|
||||||
|
|
||||||
音视频开发现在很火,是一个很好的方向,音视频里也是一个很大的方向了,里面有 音视频信号分析与处理、音视频编解码格式压缩、音视频文件打包封装、流媒体推流协议处理等等。
|
|
||||||
|
|
||||||
现在 腾讯会议,阿里钉钉,zoom都是靠音视频技术起家。 而且发展势头很不错。
|
|
||||||
|
|
||||||
但如果只是基于现有音视频做 SDK开发,那就没啥意思了。所以也是看具体的工作内容了。
|
|
||||||
|
|
||||||
股票这个 不用报太大期望,大概率 你等不到那个时候。
|
|
||||||
|
|
||||||
其实 深信服的技术栈 也挺封闭的,毕竟是算是比较偏硬的厂商,深信服做云计算,也是私有云,最终也是卖硬件。
|
|
||||||
|
|
||||||
不过小米其实你也说不好最终入职具体是干啥。
|
|
||||||
|
|
||||||
选一个的话,倾向于选深信服吧,毕竟深信服总部就在深圳,同事多,大家有个交流,相对来说发展稳定一些。小米 好像最近 深圳才有部门吧,估计应该没多少人,甚至入职之后 可能你单兵作战,和同事没有交流的话,无论是工作还是成长都比较难。
|
|
||||||
|
|
||||||
海康更硬一些,是做安防的,所以C++服务器开发基本是服务安防设备。 相对来说,选深信服更好一些,毕竟深信服是做网络安全和云计算的。
|
|
||||||
|
|
||||||
## 奇安信、顺网科技和东方财富
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
这两家公司我也不太了解。 我就从业务上 简单分析一下
|
|
||||||
|
|
||||||
现在很多公司做私有云都有用OpenStack,你针对OpenStack 做二次开发,估计不太用深入理解OpenStack,但如何你能沉下心来学下去,以后跳槽的话 出路还是比较多的。 **就要看你对技术有没有钻劲了**。
|
|
||||||
|
|
||||||
东方财富 毕竟不是互联网公司,**主要业务也不是技术驱动,可能技术部门话语权还是挺低的**,大概率 可能是日常后台增删改查处理一些信息,(注意这也是我猜的,真实情况也要亲自体验了才知道)
|
|
||||||
|
|
||||||
综上,我感觉 如果对技术热情一般,可以考虑东方财富(毕竟给的钱多), 如果想以后技术立身,考虑奇安信。
|
|
||||||
|
|
||||||
|
|
||||||
## 字节客户端、度小满后端
|
|
||||||

|
|
||||||
|
|
||||||
你这拿到这么多大厂offer,还说自己菜,凡尔赛石锤了,哈哈哈
|
|
||||||
|
|
||||||
客户端确实在劝退,但 客户端不会消失,现在客户端都在往大前端方向去转,**如果你很喜欢字节,喜欢 抖音的话,可以考虑去抖音做IOS**。但如果你一直做IOS的话,指定是发展不容乐观,入职之后就要考虑自己的下一步方向。
|
|
||||||
|
|
||||||
度小满后端支付业务 这个其实也不错,支付业务是核心部门,以后跳 微信支付,跳蚂蚁 都是可以的,每个互联网巨头都要做自己的支付。
|
|
||||||
|
|
||||||
这两个offer都可以。
|
|
||||||
|
|
||||||
如果非要选一个的话,我倾向于 选度小满后端支付业务吧。 以后 跳槽 选择更多一些。可以 通过社招 再去BAT,这时候自己的方向也比较稳定。缺点:不是大厂
|
|
||||||
|
|
||||||
如果对字节有情节,去也可以的,大厂福利待遇都不错,缺点:要考虑自己以后的方向。
|
|
||||||
|
|
||||||
|
|
||||||
## 百度和华为
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
针对于你的问题,我挨个说一下哈:
|
|
||||||
|
|
||||||
1. 大华是做安防的,和主流互联网偏了一些。
|
|
||||||
2. 成都有没有招人的机会,这个我也确定不了,但可以确定的是,第一份工作确实很重要!对以后的发展还是有很大影响的。 不过和 女朋友异地 如何权衡还是要看你自己。
|
|
||||||
3. 百度大数据 也有做toB,就是给企业提供服务,做toB是比较辛苦,而且赚的不多(这里指的是部门营收),不过相对于你的其他几个offer,我倾向于你选百度,百度对应届生的培养还是很到位的。对你以后的技术发展有帮助。 而且大数据做tob的不止百度一家,阿里云,腾讯云,等等很多都做大数据toB,以后跳槽也容易。
|
|
||||||
4. 这种情况有没有救,我也不清楚了,大概率是不太行了,不用过于纠结,能抓住目前的机会就很好了。
|
|
||||||
|
|
||||||
|
|
||||||
## 大华和小米
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
倾向于选小米吧,大华是做安防的,**在安防公司里做客户端,可以说是偏上加偏了**。
|
|
||||||
|
|
||||||
关于 小米南京工资 我也不了解,不过一般来说 南京工资都会低一些。
|
|
||||||
|
|
||||||
小米手机部门,以后你的选择 也会多一些,毕竟国内这么多手机厂商,而且小米的发展势头还是可以的,最近小米在发力小米汽车,如果能内部转岗到小米汽车,就很不错了,这是未来十年的一个重大机会,可以跟着雷总起飞。
|
|
||||||
|
|
||||||
在看以后定居,南京的房价可比杭州亲民多了,南京也就2w一平左右,以后你在南京定居基本压力不大,如果算上房价,杭州大华多出来的那点工资 简直不值一提了。
|
|
||||||
|
|
||||||
# 总结
|
|
||||||
|
|
||||||
最后我也只是针对大家给我的情况,我来做一个基本的分析,给出我的判断。
|
|
||||||
|
|
||||||
毕竟最了解你的,还是你自己,而且入职之后 工作具体内容,部门发展,其实我们都无法预测,只能结合我们能确定的内容来做分析。
|
|
||||||
|
|
||||||
拿我自己来举例,我当初毕业拿到是腾讯互娱XX工作室的后端开发offer 和 华为2012 数据库部门的offer,当然还有其他offer就不提了,那么当时问身边朋友前辈,一定是选 腾讯了,我也倾向于腾讯,但这么多年过后 反过来看,我感觉当初如果去华为可能更好一些。
|
|
||||||
|
|
||||||
具体原因我也会在知识星球里做分享。
|
|
||||||
|
|
||||||
所以 **在选择offer上,是有很多是未知的,再好的部门也有坑,再差的部门 遇到好领导也会很舒服**。
|
|
||||||
|
|
||||||
**我们只能把握住 目前能把握的,至于后面怎么样,只有经历了才知道**。
|
|
||||||
|
|
||||||
录友们在选择offer上,也多和问一问身边的同学,前辈们,多方面接受建议,在结合自己的情况做出判断,也希望录友们都有一个好的发展,加油💪
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 特殊的七夕
|
|
||||||
|
|
||||||
昨天在[知识星球](https://programmercarl.com/other/kstar.html)发了一个状态:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我还以为 过节嘛,录友们应该不会打卡了,但还依旧阻挡不辽录友打卡学习的步伐,来瞅瞅:
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
当然了,我截图了一小部分,星球里每天的信息量都非常大。
|
|
||||||
|
|
||||||
如果说一个人坚持每天总结记笔记,**其实是很容易放弃的,今天不记,明天不急,后天不整理感觉也无所谓**。
|
|
||||||
|
|
||||||
这样时间就一点一点的被浪费掉了。
|
|
||||||
|
|
||||||
**因为我们学过的东西都会忘,不及时整理,时间就不能沉淀下来**,这就造成了一边学,一边忘,最后感觉自己好像也没学啥的感觉!
|
|
||||||
|
|
||||||
所以每天记笔记,及时整理,是非常重要的。
|
|
||||||
|
|
||||||
这个习惯其实靠自己约束很容易放弃,但一群人一起坚持,就会不一样,大家相互监督,每天不总结记录点什么就会感觉少了点啥。
|
|
||||||
|
|
||||||
而且,大家每天的总结,我都会看,有问题 我都及时指出来,这样也防止自己学着学着学跑偏了。
|
|
||||||
|
|
||||||
昨天我也在[知识星球](https://mp.weixin.qq.com/s/X1XCH-KevURi3LnakJsCkA)回答了几位录友的问题,其中有两个问题 还是比较典型的,估计公众号里的录友也会遇到这样的疑惑。
|
|
||||||
|
|
||||||
所以也给大家说一说:
|
|
||||||
|
|
||||||
## 准备的太晚了,想放弃秋招,直接准备春招
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
很多准备今年秋招的录友感觉自己还没准备好,想先找实习,或者 自己在学习学习,然后直接春招。
|
|
||||||
|
|
||||||
其实不到万不得已,我还是建议要冲刺秋招。
|
|
||||||
|
|
||||||
如果说,因为没准备好,提前批放弃还是可以的,但秋招不能也直接放弃了!
|
|
||||||
|
|
||||||
秋招没找到好工作,一般11月份左右,一些大厂还会有补招,腾讯就经常补招,实在不行再准备春招,春招可能国企单位会多一些。
|
|
||||||
|
|
||||||
**而且面试也很看缘分,永远没有真正准备好的时候,知识一直都学不完**,所以 把秋招当做最后的机会,就算秋招没找到,也可以在冲春招,而不是 直接放弃秋招。
|
|
||||||
|
|
||||||
还有就心态方面来说,直接放弃秋招,等 今年 10月份,身边同学都找到工作了,天天吃喝玩乐,见面打招呼就问:你去哪了,你签哪了。那时候 自己心里压力会非常大,甚至会影响 春招找工作。
|
|
||||||
|
|
||||||
|
|
||||||
## HR/面试官问你手上有没有其他offer,如何回答
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
这个问题,无论是校招还是社招,大家都会遇到。
|
|
||||||
|
|
||||||
如果大家手上有其他更好的offer,或者说同等水平公司的offer,可以说一说,这样凸显出自己的优势,即:你们不要我,有更好的公司要我, 这样给面试官或者HR点压力,可以争取到更高的薪酬。
|
|
||||||
|
|
||||||
如果没有更好的offer,可以说没有,然后解释:只认准贵公司,从技术氛围,职业发展,公司前景,来说贵司多么多么的好,我多么渴望和贵司一起成长之类的。**总之,就是捧起来,显得自己很专一**。
|
|
||||||
|
|
||||||
都是套路,哈哈哈哈。
|
|
||||||
|
|
||||||
**好了,说了这么多,希望对大家有所帮助**。
|
|
||||||
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
|||||||
|
|
||||||
# 看到代码就抵触!怎么办?
|
|
||||||
|
|
||||||
最近在[知识星球](https://programmercarl.com/other/kstar.html)里,看到了不少录友,其实是不喜欢写代码,看到 哪些八股文都是很抵触的。
|
|
||||||
|
|
||||||
其实是一个普遍现象,我在星球里分享了一下,我对这一情况的一些想法。
|
|
||||||
|
|
||||||
发表在星球里,很快就有了60多个赞,也确实说道大家的心里去了。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我在这里再给公众号的录友们也分享一下:
|
|
||||||
|
|
||||||
很多同学不喜欢计算机,也不喜欢写代码,看到各种大堆的面经 八股文,心里是十分抗拒的。
|
|
||||||
|
|
||||||
所以总是拿一些其他的事情来拖延,最后发现秋招或者春招 完全拖过去了,或者说等求职的时候发现自己完全没有达到应聘的水平,再陷入 深深的焦虑之中。
|
|
||||||
|
|
||||||
这里有一个很重要的问题,就是**当你发现你不喜欢计算机的时候,那问问自己喜欢什么呢?**
|
|
||||||
|
|
||||||
如果喜欢看电影,逛街,打游戏,甚至格调再高一点 喜欢画画,喜欢音乐,唱歌之类的,这些爱好如果没有达到专业的程度,那么仅仅是日常消遣而已。(甚至是一种逃避)
|
|
||||||
|
|
||||||
**真实情况是大部分人都说不出来自己真正喜欢什么的**。
|
|
||||||
|
|
||||||
这是中国教育制度的问题,大家从小学、初中、高中、到大学再到工作 就没有时间或者机会去思考自己真正想干什么。
|
|
||||||
|
|
||||||
别说在校学生了,就互联网大厂的程序员,我敢说 百分之九十以上 都不喜欢写代码,都感觉写代码是最苦逼的,天天对着屏幕,写写一堆正常人看不懂的英文单词,有啥意思,对吧。
|
|
||||||
|
|
||||||
但为什么大家都依旧写代码呢。
|
|
||||||
|
|
||||||
**要生活啊,要赚钱啊!**
|
|
||||||
|
|
||||||
那种可以不考虑经济问题,一言不合就寻找人生意义的选手,都是家里有矿的,那种咱们不讨论。
|
|
||||||
|
|
||||||
还一些同学迷茫的时候,就放空自己。 还有已经工作的,可能会去一趟西藏,“寻找一下生命的意义”。
|
|
||||||
|
|
||||||
其实我也是不建议的,**放空自己之后,并不会找到 自己真正的方向,只会更迷茫!**
|
|
||||||
|
|
||||||
所以,**当你不知道自己真正喜欢什么的时候,就先把眼前的事情做好吧!**
|
|
||||||
|
|
||||||
如果你知道自己不喜欢计算机,不喜欢写代码,但也不知道自己究竟喜欢什么的时候,那么就先把自己现在该做的事情做好,制定计划,算法题刷题起来,八股文看起来。
|
|
||||||
|
|
||||||
**这才是是最重要的**。
|
|
||||||
|
|
||||||
希望对录友们有所启发,加油💪
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 不少录友想放弃秋招了.....
|
|
||||||
|
|
||||||
马上就要九月份了,互联网大厂的秋招的序幕早已拉开。
|
|
||||||
|
|
||||||
发现[知识星球](https://programmercarl.com/other/kstar.html)里有一部分录友想放弃秋招,直接准备明年的春招,估计关注公众号的录友也有不少有这种想法的。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
一般有这种想法的录友都是 **之前没有准备好,或者是总感觉时间赶趟赶趟,然后突然间 发现时间不赶趟了。。。**
|
|
||||||
|
|
||||||
也有一些感觉自己没有实习经历,简历上也没什么好写,想下半年去找一找实习,不去秋招,然后直接准备春招。
|
|
||||||
|
|
||||||
**对于这种情况,我的建议依然要冲刺秋招!**
|
|
||||||
|
|
||||||
# 把秋招当做最后的机会
|
|
||||||
|
|
||||||
**等到春招的时候,可以选岗位已经很少了,各个大厂几乎都招满了**。
|
|
||||||
|
|
||||||
而且就算秋招没找到好工作,一般 11月份左右,一些大厂还会有补招,腾讯就经常补招。
|
|
||||||
|
|
||||||
补招的情况是就是腾讯发出了 offer,有的候选人 选择违约,不来了,那么腾讯就需要补招,把人数凑齐。
|
|
||||||
|
|
||||||
可能有录友想,谁居然连腾讯的offer都拒绝呢?
|
|
||||||
|
|
||||||
其实挺多的,例如:有其他大厂的核心部门offer,父母给安排了 国企、央企 的核心岗位,或者有的选择 读博了之类的,导师毕业能给安排留校 或者去其他高校任教。
|
|
||||||
|
|
||||||
所以几乎每年,腾讯都要补招,其他大厂也会有补招,一般是11月份,所以就算秋招没拿到大厂offer,依然有机会!
|
|
||||||
|
|
||||||
话再说回来,面试其实也很看缘分,**永远没有真正准备好的时候,知识一直都学不完**。
|
|
||||||
|
|
||||||
所以 **把秋招当做最后的机会,就算秋招没找到,也可以在冲春招,而不是 直接放弃秋招**。
|
|
||||||
|
|
||||||
|
|
||||||
# 放弃秋招,对心态的影响
|
|
||||||
|
|
||||||
如果直接放弃秋招,等 今年 10月份,身边同学都找到工作了,那时候的场面就是歌舞升平,大家天天吃喝玩乐。
|
|
||||||
|
|
||||||
见面打会招呼就问:你去哪了,你签哪了?
|
|
||||||
|
|
||||||
那时候如果自己还没有面试,还在准备面试,此时自己心里阴影面积有多大,甚至会影响春招找工作。
|
|
||||||
|
|
||||||
# 面试要趁早准备
|
|
||||||
|
|
||||||
每年这时候,都会有同学后悔,我怎么就没早点准备,就感觉时间不够用。
|
|
||||||
|
|
||||||
所以也给明年找工作的录友们(2023届)提一个醒,现在就要系统性的准备起来了,因为明年春季实习招聘 是一个很好的进大厂的机会,剩下的时间也不是很多了。
|
|
||||||
|
|
||||||
来看看[知识星球](https://programmercarl.com/other/kstar.html)里,一位准大三的录友准备的情况
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
再来看看一位准大二的录友准备情况
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**我已经预感到 这两位 等到秋招的时候就是稳稳的offer收割机**。
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)还有很多已经开始提前准备,或者看了 星球发文状态就开始着手准备的录友了。
|
|
||||||
|
|
||||||
|
|
||||||
所以 **所谓的大牛,都是 很早就规划自己要学的东西,很早就开始向过来人请教应该如何找工作,很早就知道自己应该学哪些技术,看哪些书, 这样等到找工作的时候,才是剑锋出鞘的时候**。
|
|
||||||
|
|
||||||
我们远远还没有到拼智商的程度。
|
|
||||||
|
|
||||||
这里 也是给公众号里的录友们提一个醒,估计还有不少录友依然在感觉时间还赶趟,但 未来的卷王已经在路上了 哈哈哈。
|
|
||||||
|
|
||||||
**不过话说回来,现在互联网求职确实卷!**
|
|
||||||
|
|
||||||
但这是社会问题,我们改变不了。
|
|
||||||
|
|
||||||
**卷的核心是,好的东西少,但要想的人多!**
|
|
||||||
|
|
||||||
**如果你也想要,就要提前准备,提前规划,提前努力!**
|
|
||||||
|
|
||||||
也希望录友们都能找到一个自己心仪的工作,加油💪。
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 你简历里的「专业技能」写的够专业么?
|
|
||||||
|
|
||||||
|
|
||||||
其实我几乎每天都要看一些简历,有一些写的不错的,我都会在[知识星球](https://programmercarl.com/other/kstar.html)里分享一下。
|
|
||||||

|
|
||||||
|
|
||||||
这次呢,我再专门说一说简历中的【专业技能】这一栏应该怎么写。
|
|
||||||
|
|
||||||
很多同学【专业技能】这块写的很少,其实不是掌握的少,而是没有表达出来。
|
|
||||||
|
|
||||||
例如有的同学这么写:
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
---------------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
--------------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
-------------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
这些【专业技能】都写的很少,其实是可以在丰富一些的。
|
|
||||||
|
|
||||||
我来给大家拓展一下、
|
|
||||||
|
|
||||||
|
|
||||||
* 熟练C++,(列举C++的若干知识点),了解 Java,python,go (适当补充对这些语言的理解)
|
|
||||||
* 熟悉常见设计模式(例句一些设计模式)
|
|
||||||
* 熟悉linux操作系统vim开发环境,(列举网络编程相关知识,例如epoll,socket等等)
|
|
||||||
* 熟悉网络,(列举网络协议相关考点,tcp/ip,http, https, 三次,四次握手,流量控制等等)
|
|
||||||
* 数量掌握数据结构与算法(列举常用算法,最好搞透一个算法,说对该算法有独到见解)
|
|
||||||
* 数量使用Git,等版本控制
|
|
||||||
* 以上为公共写法,下面可以在补充自己的其他领域的内容
|
|
||||||
|
|
||||||
|
|
||||||
针对以上这个模板, 再来补充相关内容:
|
|
||||||
|
|
||||||
1. 熟悉C/C++,熟练使用C的指针应用及内存管理,C++的封装继承多态,STL常用容器,C++11常用特性(智能指针等) ,了解 Python,Gtest等。
|
|
||||||
2. 熟悉常用设计模式(单例模式,工厂模式等)
|
|
||||||
3. 熟悉Linux下vim开发环境,了解网络编程,IO多路复用,epoll等等。
|
|
||||||
4. 熟悉OSI五层网络模型,熟悉TCP/IP,UDP,HTTP/HTTPS,DNS等网络协议,熟悉TCP三次握手,四次挥手,流量控制,拥塞控制等手段。
|
|
||||||
5. 熟悉常用的数据结构(链表、栈、队列、二叉树等),熟练使用排序,贪心,动态规划等算法。
|
|
||||||
6. 熟悉使用Git,vscode工具使用。
|
|
||||||
|
|
||||||
但需要注意的是,这里写的点,自己一定要熟练掌握,因为简历上写的,面试官一定会问。
|
|
||||||
|
|
||||||
这样有一个好处,就是 **缩小面试官的问题范围**, 只要简历上写的,你都准备好了,那么简历上的知识点面试官一定会问,这样你就掌握了主动权。
|
|
||||||
|
|
||||||
举一个例子,如果简历上直写:熟悉C++。其他都没介绍,那么面试官指定围绕C++漫天遍野的问起来了,你也猜不透面试官想问啥。
|
|
||||||
|
|
||||||
如果简历写熟悉C/C++,熟练使用C的指针应用及内存管理,C++的封装继承多态,STL常用容器,C++11常用特性(智能指针等)。那么面试官基本上只会问,内存管理,多态,STL和C++11的一些特性, **这样你就把面试官的问题都圈在可控范围内**,从而掌握主动权!
|
|
||||||
|
|
||||||
这一点很重要,希望大家要有这个思路,去写自己的简历。
|
|
||||||
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 入职后担心代码能力跟不上
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)上,很多录友已经担心自己去了公司工作以后,代码能力跟不上,会压力很大。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
其实 星球里 也有很多 已经确定offer的录友,想在入职之前提升代码能力,或者说 如何可以更快的融入项目组。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
这里我把应届生刚刚工作需要培养的能力都说一说,其实也适用于毕业一两年的录友。
|
|
||||||
|
|
||||||
## 代码能力
|
|
||||||
|
|
||||||
练习代码能力最直接的方式就是多写,最简单的是用你的语言写一个管理系统,甚至你每天刷刷题,也是可以的。
|
|
||||||
|
|
||||||
再直白一遍,不是有26种设计模式,你全都实现一遍,即锻炼 代码能力,还学习了设计模式,等入职之后多看项目代码,看看大家在设计上使用了那种设计模式,或者说哪里还可以优化。
|
|
||||||
|
|
||||||
设计模式可以说 面试中最实用的知识的,大部分面试内容,工作中其实都用不上,所以大家会发现面试造大炮,工作拧螺丝。
|
|
||||||
|
|
||||||
## 心态
|
|
||||||
|
|
||||||
工作之后 从心态上来说,要不怕困难,不怕bug,不怕未知技术。
|
|
||||||
|
|
||||||
很多同学之所以代码能力弱,**就是太怕 难点**,遇到点 困难 就想:恨不得谁告诉我应该怎么怎么办得了,而不是自己去解决问题。
|
|
||||||
|
|
||||||
要善于使用搜索引擎,如何所谓问题是一个技术活,有的问题你怎么搜都搜不出来答案,但有的同学一搜 就搜出来了。
|
|
||||||
|
|
||||||
为什么呢?
|
|
||||||
|
|
||||||
这是遇到问题,提取关键词的能力,很多同学遇到问题,不知道用什么关键词去搜。
|
|
||||||
|
|
||||||
**还有要有一种 越挫越勇 的精神**,这样你后面 的困难就会越来越少,也会培养出一种自信。
|
|
||||||
|
|
||||||
写代码也需要自信,工作之后 经常 有一些比较难任务,有的 同学就不敢接,怕做不出来,有的同学就敢接,并不说这位同学技术上一定强,而是他有自信。
|
|
||||||
|
|
||||||
**这种自信都在是以往 解决各种问题,排查各种bug,练就出来的**。一旦拥有自信,那能量就是 摧枯拉朽,真正的逢山开路遇水搭桥。领导也喜欢这样的组员
|
|
||||||
|
|
||||||
## 快速成长
|
|
||||||
|
|
||||||
刚入职的时候,不要怕问问题,不要怕出错,不要怕不好意思。
|
|
||||||
|
|
||||||
因为你是新人,就算问简单的问题,大家不会嫌弃你,但 这个新人窗口期是很短的,如果 过了几个月 还问一些非常基础的问题,那么 可能职场上就不太好了。
|
|
||||||
|
|
||||||
所以要在新人窗口期,快速成长,我看过太多的应届生,入职的时候 都是畏头畏尾,然后 过了新人期,能力还没有提高,还问很基础的问题,这样 项目组也不会分给他 有难度的任务,他也就得不到锻炼,越得不到锻炼,就能力越没提升,就越没自信,就越接不到有难度的活,然后陷入死循环!
|
|
||||||
|
|
||||||
|
|
||||||
综上,算是从学校到职场的上的一个转变。 希望对大家有帮助。
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 关于实习,大家可能有点迷茫!
|
|
||||||
|
|
||||||
我在[知识星球](https://programmercarl.com/other/kstar.html)里回答了很多关于实习相关的问题,其实很多录友可能都有这么样的疑问,主要关于实习的问题有如下四点:
|
|
||||||
|
|
||||||
* 秋招什么时候开始准备
|
|
||||||
* 要不要准备实习
|
|
||||||
* 实习是不是重要?
|
|
||||||
* 什么时候找实习最有帮助
|
|
||||||
* 如何选择实习的offer
|
|
||||||
|
|
||||||
下面都分别来说一说:
|
|
||||||
|
|
||||||
## 秋招什么时候开始准备
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**准备工作指定是越早越好的**。
|
|
||||||
|
|
||||||
准备的越早,在8,9月份就越淡定,每年校招很多同学都会对于准备找工作总感觉赶趟赶趟,结果到了8月份开始慌得一笔了。
|
|
||||||
|
|
||||||
正常校招8月份就开始提前批(各大企业提前抢优秀毕业生)了,有的企业甚至7月份就开始。
|
|
||||||
|
|
||||||
基本到了7月份可能就没有整块的时间静下心来准备找工作,那时候已经铺天盖地的各种招聘信息,甚至一些同学已经拿到了offer了。
|
|
||||||
|
|
||||||
所以准备找工作的内容以7月为终结点比较稳妥,七月份之后以复习为主,有个整体框架,定时复习补充补充,多和同学交流面试经验。
|
|
||||||
|
|
||||||
## 要不要准备实习
|
|
||||||
|
|
||||||
有的同学是3,4月份准备面实习,然后7、8月份就去企业实习了,**实习有利有弊**。
|
|
||||||
|
|
||||||
如果可以去一线互联网公司实习,而且岗位也合适,那当然要去,如果去不了也别难过,因为实习生大部分都是打杂,干的活甚至都写不到简历上。
|
|
||||||
|
|
||||||
也有一小部分的实习生能够真正做到项目。
|
|
||||||
|
|
||||||
如果没有去实习,就把基础好好补充一下,**基础打好,毕竟对于应届生基础最为重要**, 编程语言、数据结构算法、计算机网络、操作系统、数据库这些都是基础,规划好时间把这些内容学好。
|
|
||||||
|
|
||||||
**对于应届生来说,项目经历是锦上添花,不是决定性的**。
|
|
||||||
|
|
||||||
有实习经历(前提是实习工作内容是真正的做项目,不是打杂),那么面试的时候面试官可能对项目经历感兴趣,问基础的内容就比较少, 如果没有实习经历,就把基础内容巩固一下,校招是一样的。
|
|
||||||
|
|
||||||
## 实习是不是非常重要?
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**大厂的实习经历对秋招还是很有帮助的**。
|
|
||||||
|
|
||||||
|
|
||||||
但也不绝对,实习的话会耽误三个月左右,如果没有转正,而且一直在打杂的话,再去找秋招工作,**那时候一些基础的内容就都忘光了,反而秋招很被动**。
|
|
||||||
|
|
||||||
现在当然也可以按照准备找实习的状态来要求自己,给自己点压力,毕竟找实习准备的知识和秋招准备的知识差不多。
|
|
||||||
|
|
||||||
也可以提前经历一下面试,培养一下面试感觉,数据库方面知识你比较短缺,可以通过大量看这方面的面经迅速补充一下(秋招之前还可以系统看一看)。
|
|
||||||
|
|
||||||
如果拿到了大厂的实习offer,就去吧,实习的时候心里要有个秤,如果工作是打杂,就要尽快自己抽时间看基础准备秋招。
|
|
||||||
|
|
||||||
**另外需要注意的是,有些公司投递过简历面试没通过是有记录的,所以投递要当心,不要感觉投简历没有成本**,我知道的例如阿里,你每次投简历都有记录,如果实习面试都挂了,秋招的时候面试官也会看当时实习面试的记录(会考虑当时实习面试的结果)。
|
|
||||||
|
|
||||||
## 什么时候找实习最有帮助
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
6月份那时候基本不招实习生了,找的话也是日常实习(没有转正,实习时间是比较长的,要六个月),如果不是暑期实习就直接准备秋招吧。
|
|
||||||
|
|
||||||
**只有应届的暑期实习才有转正的机会,因为企业这样安排也是为了提前发现优秀毕业生!**
|
|
||||||
|
|
||||||
例如:今年暑期实习,只招明年毕业的应届生。
|
|
||||||
|
|
||||||
|
|
||||||
## 如何选择实习的offer
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
如果目标应该是C++后端开发,那客户端实习offer可以选择别去了。 或者 选一个实习时间最短的offer先去着,例如两个月之类的,这样既能体现一下工作流程,也别耽误太多时间(毕竟客户端开发不是你的目标)。
|
|
||||||
|
|
||||||
**实习也不是必要的,一要看实习的岗位,是不是你想要的工作,二是实习的内容是不是打杂**,一些实习岗位其实是在浪费时间,如果转正不了的话,秋招就特别被动了,耽误了复习基础的时间。
|
|
||||||
|
|
||||||
还有就是**秋招的时候,一定要找小公司先练手,然后在面大公司**。
|
|
||||||
|
|
||||||
|
|
||||||
以上基本覆盖了大家对实习的各种疑惑,不过现在已经到了5月份,实习面试基本结束了,如果没有拿到实习offer,大家安心准备秋招吧,依然可以冲刺大厂!
|
|
||||||
|
|
||||||
|
|
@ -1,72 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 秋招和提前批都越来越提前了....
|
|
||||||
|
|
||||||
正在准备秋招的录友,可能都感受到了,现在的秋招越来越提前了....
|
|
||||||
|
|
||||||
以前提前批,都是 8月份,8月份中序左右,而不少大厂现在就已经提前批了。
|
|
||||||
|
|
||||||
不少录友在 公众号留言,和[知识星球](https://programmercarl.com/other/kstar.html)里,表示提前批来的还是有点快。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
还没有把刷题攻略刷完的录友,要尽快刷完,至少先刷一遍,了解相关题型。
|
|
||||||
|
|
||||||
星球里,也有一些录友感受到了提前批的突如其来。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
目前已经开始的提前批有 vivo, tp-link,京东,百度.....
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
有的录友已经明显紧张起来了。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
其实这才刚刚开始,等 7月份 以后,又是铺天盖地的信息,大家更没心情静下心来看书了。
|
|
||||||
|
|
||||||
|
|
||||||
# 关于提前批的一点小建议
|
|
||||||
|
|
||||||
**首先我们要知道为什么有提前批?**
|
|
||||||
|
|
||||||
提前批不是大厂们呆着没事闲着多给我们一次面试机会,**而是提前抢优秀毕业生**,这一点大家一定要明确。
|
|
||||||
|
|
||||||
|
|
||||||
了解了为什么有提前批,这样我们就有正确的心态面对它了。
|
|
||||||
|
|
||||||
如果没有准备好,或者自己定位因为不是 “优秀毕业生”,先不要碰提前提。
|
|
||||||
|
|
||||||
当然可以先面一些自己不想去的公司的提前批,用来练手。
|
|
||||||
|
|
||||||
至于对于自己心仪的公司,如果盲目参加提前批,首先会打乱自己的复习计划,和心态,然后就是提前批挂了后台都是有记录的。
|
|
||||||
|
|
||||||
只要是大厂的内部信息化做的比较完善,提前批挂了,是一定会记录的。
|
|
||||||
|
|
||||||
**那么提前批有没有影响呢?**
|
|
||||||
|
|
||||||
很多招聘宣传的时候说,提前批挂了对秋招没影响,确实在一定程度上没影响,因为提前批挂了,依然可以投递秋招。
|
|
||||||
|
|
||||||
然后秋招面试的时候,面试官在不在意你的提前批成绩,就是另一回事了。
|
|
||||||
|
|
||||||
我之前内推了一些录友面试腾讯微信支付的部门,面试官和我很熟悉,我最近还和他吃了饭,聊一聊我内推的同学,他说看后台记录有些同学都投过好几次了,他看了之前面试结果的评价之后,就直接pass了。
|
|
||||||
|
|
||||||
所以大家可能要想好一个回答,就是面试官可能问:你的提前批为什么挂了?
|
|
||||||
|
|
||||||
而且提前批挂了,都是有当时面试官评语的,如果7月份提前批面试,面试官评价:这位候选人基础不行。
|
|
||||||
|
|
||||||
秋招的时候,面试官也不会相信,一两个月能把基础补上来了。 即使你的基础其实没问题,只不过恰巧面试中的几个问题没答好而已。
|
|
||||||
|
|
||||||
|
|
||||||
对于技术能力确实强的同学,我建议全力以赴准备提前批面试,因为提前批要求就比较高,很容易谈sp offer。而且现在就拿到了大厂offer,比找实习还香。
|
|
||||||
|
|
||||||
如果没准备好的同学,建议不要让提前批打乱阵脚,有计划的巩固基础,准备秋招。或者先拿自己不想去的公司的提前批练手。
|
|
||||||
|
|
||||||
|
|
||||||
好了,说了这么多,希望对录友们有所帮助,加油💪
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 程序员应该这么写简历!
|
|
||||||
|
|
||||||
自运营[知识星球](https://programmercarl.com/other/kstar.html)以来,我已经给星球里的录友们看了 一百多份简历,并准对大家简历上的问题都给出了对应的详细建议。
|
|
||||||
|
|
||||||
社招,校招,实习的都有,其实大家的简历看多了,发现有很多共性的问题,这里就和大家分享一下。
|
|
||||||
|
|
||||||
我的简历模板也分享出来了,大家在「代码随想录」后台回复:简历模板,就可以获取!
|
|
||||||
|
|
||||||
# 简历布局
|
|
||||||
|
|
||||||
不少录友的简历布局就很不合理, 有的把专业技能放在最下面了,有的甚至把教育经历放下面了,建议简历布局的顺序是这样:
|
|
||||||
|
|
||||||
* 教育工作经历
|
|
||||||
* 专业技能
|
|
||||||
* 项目经验
|
|
||||||
* 荣誉奖项
|
|
||||||
* 个人简述
|
|
||||||
|
|
||||||
# 教育工作经历
|
|
||||||
|
|
||||||
一些录友可能本科学历不是很好,然后 简历上直接不写自己的本科学校。
|
|
||||||
|
|
||||||
其实教育经历是最基本的,你不写 面试官也一定会问,问出来 那么感觉更不好,所以关于教育经历,大家是一定要写的。
|
|
||||||
|
|
||||||
写本科以后教育经历的就行了,一些录友可能是 高中就读了一些特别牛逼的高中,然后把高中也写出来了,哈哈哈,高中经历真的就不用写了。
|
|
||||||
|
|
||||||
还有一些社招的录友,研究生和本科之间空了几年,这几年 一定要说清楚做了些什么,甚至是“编一下”,因为这个面试官也会问的。
|
|
||||||
|
|
||||||
# 专业技能
|
|
||||||
|
|
||||||
一些录友简历上没有「专业技能」这一栏,或者写的很短。
|
|
||||||
|
|
||||||
可能是不知道该写啥,甚至就不写了。
|
|
||||||
|
|
||||||
通常「专业技能」是在 「教育工作经历」之后的,我这里给出一个模板,大家按照这个格式来写「专业技能」就可以。
|
|
||||||
|
|
||||||
1. 熟练使用 C++,掌握Go,了解 Java、Python、PHP 等编程语言
|
|
||||||
2. 熟练使用 linux 下 vim、Git 开发环境
|
|
||||||
3. 了解 Linux 下网络编程、TCP/IP 协议
|
|
||||||
4. 掌握基础数据结构和算法的基本原理
|
|
||||||
5. 英语六级:XXX
|
|
||||||
|
|
||||||
|
|
||||||
一些录友会列举自己主修的课程,列了一堆,其实凑篇幅 我是理解的,就是感觉简历太单薄的,列课程来凑。
|
|
||||||
|
|
||||||
但大家凑篇幅 尽力在「专业技能」和「项目经验」上凑篇幅,如果把 自己主修可能都列出来,会让面试官感觉没有什么干货。(有的同学甚至靠留白才凑篇幅,这就更不要了)
|
|
||||||
|
|
||||||
当然应届生如果有一些课程自己成绩确实很好,可以和「教育经历」写在一起,简单并行列举一下就可以了。
|
|
||||||
|
|
||||||
# 项目经验
|
|
||||||
|
|
||||||
很多录友写项目经验就是流水账,这是什么项目,自己完成了功能1,2,3,4。堆了很多字。
|
|
||||||
|
|
||||||
要知道面试官是不了解你的项目的,面试也只有 一个小时左右的时间,如果堆了很多文字 面试官也懒得去读。
|
|
||||||
|
|
||||||
面试官最在意的是什么呢?
|
|
||||||
|
|
||||||
**项目中有哪些技术难点,以及 你是如何克服的**。
|
|
||||||
|
|
||||||
这是面试官最关心的,也是最能体现出候选人技术深度的问题。
|
|
||||||
|
|
||||||
所以大家在描述项目经验的时候,一定要时刻想着,这个项目的难点究竟是什么,要反复问自己这个问题。
|
|
||||||
|
|
||||||
可能有的同学说了,我这项目本来就没有难点啊,就是1,2,3,4功能,然后 遇到不会的,百度搜一下,差不多就这样了。
|
|
||||||
|
|
||||||
**项目没有难点,也要自己“造难点”**。 因为这个问题是面试官必问的!
|
|
||||||
|
|
||||||
所以一定要准备好。
|
|
||||||
|
|
||||||
还有不少录友的项目经历都写了 web server,使用线程池 + 非阻塞 socket + epoll(ET 和 LT) + 事件处理 (Reactor 和模拟 Proactor) 等等。
|
|
||||||
|
|
||||||
这个项目可能是很多准备后台开发的同学 首选的 项目。
|
|
||||||
|
|
||||||
这种自己搞的小项目,**最好把你的代码上传的github上,然后在简历中贴出github地址**,面试官一定会看的。
|
|
||||||
|
|
||||||
如果看你的代码写的确实不错,那指定是加分项。比简历上写的天花乱坠都强!
|
|
||||||
|
|
||||||
还有的同学项目经历特别多,写了5,6个项目,每个项目都是概述了一下自己做了XXX。
|
|
||||||
|
|
||||||
其实面试官,基本就会和你深入聊 2个的项目左右,列举这么多项目没有用的,关键这些项目一看也是技术含量不大。
|
|
||||||
|
|
||||||
**所以不用单纯堆项目个数。项目经历 两个足够,把两个项目搞深搞透**
|
|
||||||
|
|
||||||
|
|
||||||
# 校园经历
|
|
||||||
|
|
||||||
一些录友会把自己学校工作列出一大堆,例如各种学生会啊,创新部门啊之类的。甚至有的会把自己的减肥经历也列举出来。
|
|
||||||
|
|
||||||
如果面技术岗位,这一块其实不是面试官关心的,可以在 最后一栏「个人简述」,简单一两句概括一下自己的学生会经历就好,表明自己沟通能力没问题。
|
|
||||||
|
|
||||||
关于标明自己有毅力,有恒心,不怕吃苦等等,都简单一句概括。
|
|
||||||
|
|
||||||
|
|
||||||
好了,关于简历的问题,我就先分享这些,估计应该击中了不少录友的痛点了。
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 初入大三,考研VS工作
|
|
||||||
|
|
||||||
9月份开学季,已过,一些录友也升入大三了,升入大三摆在自己面前最大的问题就是,考研还是找工作?
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)里就有录友问我这样一个问题, 其实每个人情况不一样,做出的选择也不一样,这里给大家分享一下,相信对你也会有启发。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下是我的回答:
|
|
||||||
|
|
||||||
首先我是考过研的,比较幸运一次就上岸了,这里说一下我的心得。
|
|
||||||
|
|
||||||
你才刚刚大三 就已经做了这么充分的准备了,那我倾向于 选择直接工作。
|
|
||||||
|
|
||||||
因为现在你准备的这些,都是找工作需要的,也都是实用的技术。
|
|
||||||
|
|
||||||
如果你明年初就开始准备考研了,那么你现在学的这些东西,就是半途而废了,考研一年 能让你的 编程技能水平 回到解放前(考过研的同学应该都懂的)。
|
|
||||||
|
|
||||||
不能说考研的内容一点用都没有,如果从技术学习的角度来说,其投入产出性价比极其极其极其的低。
|
|
||||||
|
|
||||||
举一个不太恰当的例子,考研就是大家一起学 “一个不太实用的知识”,看谁学的好。
|
|
||||||
|
|
||||||
所以考研其实更多的是学历上的提升,如果想通过考研,或者读研学习到什么? **还是不要有这个打算,大概率会让你失望的**。
|
|
||||||
|
|
||||||
正如你所说的,你有信心成为年级里比较优秀的(就业方面),也正是 准备的早,所以给了自己信心。
|
|
||||||
|
|
||||||
而且你们学校还有很多学长本科毕业就找到了好的工作,完全可以追随他们的足迹。
|
|
||||||
|
|
||||||
去考研的话,有信心考上更好的学校,当然可以,关键是 考研也是千军万马过独木桥,特别是计算机考研,特别是985名校,非常的卷。
|
|
||||||
|
|
||||||
如果没考上研究生,再去找工作就很被动了。
|
|
||||||
|
|
||||||
这也是为什么,很多一战失利都会选择二战,因为如果失败,损失很大,所以这条路还要继续走下去,一定要上岸。
|
|
||||||
|
|
||||||
再结合自己的情况,假如能考上,但考上了一所一般学校,其实对自己来说都是损失。 毕业之后 未必 有现在直接找工作找的好,年轻就是优势,特别是做研发,读研出来也是做研发,本科也是做研发,其实没太大区别的。
|
|
||||||
|
|
||||||
所以 如果本科毕业的学长学姐 就业也不错,可以追随他们的脚步,毕竟你已经开始准备了。
|
|
||||||
|
|
||||||
**如果有信心要冲 名校计算机研究生,或者说对某一所大学有情节,添补高考遗憾,那么可以冲,考上了是值得的**。
|
|
||||||
|
|
||||||
|
|
||||||
当然也可以多和身边的 师兄 师姐交流,看看他们的说法,综合评估一下。
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 代码随想录上的题目最好刷两遍以上
|
|
||||||
|
|
||||||
今天秋招可能要提前很多,往年9月份开始秋招,今天可能9月份就已经结束了,所以 正在准备秋招的录友,还是要抓紧时间了。。
|
|
||||||
|
|
||||||
星球里已经有录友的给出了关于秋招提前的信息
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
那么在正式秋招之前,大家在准备算法,代码随想录上的题目 应该刷几篇呢?
|
|
||||||
|
|
||||||
**至少刷两遍,只刷一遍是不够的**。
|
|
||||||
|
|
||||||
只刷一遍基本就会忘,而且关键方法论理解的也不到位,对递归三部曲,回溯三部曲,动规五部曲,只掌握了简单招式,而没有理解真正精髓。
|
|
||||||
|
|
||||||
拿到最简单的反转链表来说,只做一遍,下次面试出现基本还是做不出来。
|
|
||||||
|
|
||||||
这也是星球里 录友们的 多么痛的领悟!
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**等大家刷第二遍的时候,才能找到触类旁通的感觉!**
|
|
||||||
|
|
||||||
第三遍基本就得心应手了。
|
|
||||||
|
|
||||||
在[「代码随想录」知识星球](https://programmercarl.com/other/kstar.html)中,我都是强调大家要至少刷两遍,有时间的话刷三遍,
|
|
||||||
|
|
||||||
可以看看星球里录友们的打卡:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
有的录友已经开始三刷:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
我为什么鼓励大家有时间的话,多刷几遍呢,首先这里的题目都是经典题目,而且在面试汇总也是频频出现,
|
|
||||||
|
|
||||||
下面也是星球里的录友总结的面经:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## 那么已有的题目刷完了,可以刷些什么呢?
|
|
||||||
|
|
||||||
我在Github上也做了一些题目的补充,在[上榜之后,都有哪些变化?](https://mp.weixin.qq.com/s/VJBV0qSBthjnbbmW-lctLA)说到了。
|
|
||||||
|
|
||||||
对于面试来说除了「代码随想录」上的题目,再了解一下:排序系列,简单图论(深搜,广搜,最小生成树,最短路径等),高级数据结构:并查集,字典树(了解一下),之后就差不多了。随便在leetcode找一些题目保持手感,题量至少300+,会稳一点。
|
|
||||||
|
|
||||||
关于深搜和广搜,其实深度优先搜索,我在二叉树的专题中讲解递归遍历,和回溯算法中 都讲了。
|
|
||||||
|
|
||||||
广度优先搜索,在二叉树树的层序遍历也讲了。
|
|
||||||
|
|
||||||
而图论中主要是在邻接表上进行的深搜和广搜。
|
|
||||||
|
|
||||||
面试中还是很少会考察图论,因为图论的代码量往往比较大,不适合在面试中考察,**面试中出现题目概率最大的是二叉树,回溯算法和动态规划!**
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 本硕非计算机博士,如果找计算机相关工作
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)里,有一位博士录友,本硕都不是计算机,博士转的计算机,问了这样一个问题
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
|
|
||||||
其实我算是一路见证了这位录友披荆斩棘,**从一开始基础并不好,还是非科班,到 实验室各种不顺利,再到最后面试次次受打击,最后终于拿到自己满意的offer**。
|
|
||||||
|
|
||||||
这一路下来确实不容易!
|
|
||||||
|
|
||||||
这位录友是从几年五月份加入星球。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
然后就开始每天坚持打卡。 可以看看她每天的打卡内容。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
后面因为天天面试,不能坚持打卡了,也是和大部分同学一样,焦虑并努力着。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
星球里完整的记录了 这位录友 从五月份以来每天的学习内容和学习状态,能感觉出来 **虽然苦难重重,但依然元气满满!**
|
|
||||||
|
|
||||||
我在发文的时候 看了一遍她这几个月完整的打卡过程,还是深有感触的。
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)里还有很多很多这样的录友在每日奋斗着,**我相信 等大家拿到offer之后,在回头看一下当初星球里曾经每日打卡的点点滴滴,不仅会感动自己 也会感动每一位见证者**。
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 要开始准备2022届的秋招了
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)里准备秋招的录友还真不少,也会回答过不少关于秋招的问题。
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
大家平时的话,也要养成这种总结的习惯,只有及时总结把自己学过的内容积累下来,才能把时间沉淀下来,要不然就是一边学一边忘的节奏了。
|
|
||||||
|
|
||||||
**其实这种习惯,无论是秋招,还是准备跳槽,还是平时工作积累,都非常总要!**
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 大厂的新人培养体系是什么样的
|
|
||||||
|
|
||||||
之前我一直在[知识星球](https://programmercarl.com/other/kstar.html)和大家讲,能进大厂一定要进大厂,大厂有比较好的培养体系。
|
|
||||||
|
|
||||||
也有录友在星球里问我,究竟培养体系应该是什么样的呢? 大厂都会这么培养新人么?
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
这位录友,拿了阿里云,腾讯,百度,shopee的意向书,可以确是收割机了,但如果还没有进入职场,还容易被网上这些风评误导。
|
|
||||||
|
|
||||||
卡哥来客观的分析一下,如何看到这些网上对公司的评论。
|
|
||||||
|
|
||||||
脉脉,知乎上喷阿里,百度的 都比较多。喷腾讯的确实少一些。
|
|
||||||
|
|
||||||
**只能说腾讯的舆论控制相对比较好**,在加上职能体系的人文关怀比较到位(公仔,各种活动,逢年过节小礼品之类的)。
|
|
||||||
|
|
||||||
但**天下乌鸦一般黑**,腾讯的职场PUA,一点都不比阿里的少,各种套路 ,阿里有的,腾讯都有,还有什么各种花边吃瓜新闻,在腾讯内网特别多。
|
|
||||||
|
|
||||||
但这些都在公司内网传播,很少传出去。 这就是腾讯厉害所在了。
|
|
||||||
|
|
||||||
其实我们在选择公司的时候,**主要是看岗位,看业务,看发展**,至于 有没有PUA之类的,只能说**有人的地方就有江湖**,腾讯人 就比 阿里人 就更正直么?
|
|
||||||
|
|
||||||
相信大家都参加过面试。招聘的时候,几个小时的面试能看出人品么?对吧。
|
|
||||||
|
|
||||||
各种新人背锅,末尾淘汰,PUA,阿里有的,腾讯都有。 所以大家求职的时候不用在乎这些风评。
|
|
||||||
|
|
||||||
至于这种锅和套路 能不能落到自己的头上,就要看碰到了什么样的直属领导了。
|
|
||||||
|
|
||||||
例如两位同学去了同一家公司,同一个事业群,同一个部门,同一个项目组,只是在两个不同的领导下干活,其区别都可以一个天上,一个地上。
|
|
||||||
|
|
||||||
有的录友 可能对职场套路不太了解,或者 初入职场比较顺利,没有感受过什么套路。
|
|
||||||
|
|
||||||
这里卡哥给大家随便说一个,例如,一个项目组,有前端组和后端组,分别是两个老大,有一个需求,要开发一个功能,这个功能本来前端就可以独立完成的,但上线可能会有风险,保护自己手下的前端领导,就会让前端同学和后端的同学一起实现这个功能,也就是前端实现一部分,后端也要做一部分数据处理,前端展示就可以了。
|
|
||||||
|
|
||||||
为什么这么安排呢?
|
|
||||||
|
|
||||||
因为一旦上线出问题了,就是前端和后端一起背锅,这样前端同学压力就小很多了。
|
|
||||||
|
|
||||||
而整个需求安排,前端同学其实并不知道 自己的风险,其实是领导保护了他。
|
|
||||||
|
|
||||||
那么 不保守下手的领导,当然就啥也不说了,让你一个人把这个功能做了,上线没出问题 那还算万事大吉,一旦出问题,那年底考核是不是就要背一个指标了。
|
|
||||||
|
|
||||||
所以不要感觉程序员的工作环境很单纯,其实套路多得很,还是那句话:**有人的地方就有江湖**,不区分公司的。
|
|
||||||
|
|
||||||
只能说 业务发展越好的部门,套路相对来说少一点,毕竟高速发展可以掩盖很多问题。
|
|
||||||
|
|
||||||
**所以遇到什么样的直属领导非常非常的重要**,但这又是我们决定不了的。 所以这都看缘分(运气)了。
|
|
||||||
|
|
||||||
有的同学毕业在大厂顺风顺水,除了自己努力外(而大家谁又不努力呢?),更重要的是遇到了好领导。
|
|
||||||
|
|
||||||
但有的同学同样进大厂,发展就很差,而且没人给他指引一些部门潜在的规则,那就难免会撞坑。
|
|
||||||
|
|
||||||
未必是他不够努力,不够聪明,不会沟通,可能恰巧 部门效益不好,部门考核就差,领导一般不会让老人背锅,毕竟系统的bug都是老人写的,老人都走了,谁来修bug呢(人间真实)。
|
|
||||||
|
|
||||||
那领导就拿他这个新人开刀了呗。
|
|
||||||
|
|
||||||
所以,**同样是进大厂,发展好的同学 不用过于优越感,感觉是自己能力多强,其实大概率是赶上了 好部门好领导,发展不好的同学也不要 自责自己能力不行,甚至开始自卑,大概率是运气不太好而已**。
|
|
||||||
|
|
||||||
那么是 发展好坏全看运气了么,当然不是!
|
|
||||||
|
|
||||||
重要是 遇到挫折(背锅,绩效不好,甚至被开除),不要自卑,不要放弃,相信自己,只要把时间拉长,5-10年的时间,**真正努力的人,发展都不错!**
|
|
||||||
|
|
||||||
卡哥希望录友们都有好的发展,加油💪
|
|
||||||
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 已经在实习的录友如何准备秋招?
|
|
||||||
|
|
||||||
最近在[知识星球](https://programmercarl.com/other/kstar.html)一位录友问了实习生如何权衡工作和准备秋招的问题。
|
|
||||||
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
其实这个问题挺有代表性,我之前一直讲的都是没有去实习的录友应该怎么怎么办,其实已经在大厂实习的录友也有很多烦恼。
|
|
||||||
|
|
||||||
这里我说一说已经有大厂实习经历,准备秋招的重点。
|
|
||||||
|
|
||||||
一般来说有大厂的实习经历,**面试官的兴趣都在大厂实习的项目经验上**。
|
|
||||||
|
|
||||||
所以关于权衡实习和准备基础这两个方面,**可以把主要精力放在项目包装上,其次是看基础**。
|
|
||||||
|
|
||||||
要在包装实习项目上多花点心思,实习生做的项目偏上业务很正常,不可能让实习生搞太复杂的,一旦出了问题还得导师背锅。
|
|
||||||
|
|
||||||
自己干的活,或者项目很简单 不要紧,可以好好包装一下,如果没有难点,**可以结合业务自己“造”难点**,大厂内部研发文档都特别多而且特别全。
|
|
||||||
|
|
||||||
例如整个项目的立项,各个模块的开发,以及研发中遇到的困难,技术选型,上线事故,等等这些都是有完整的文档记录的。(当然大厂也有一些部门研发流程很原始,没有文档,全靠口述)
|
|
||||||
|
|
||||||
从这些文档中也可以找出 难点糅合到自己的项目中。
|
|
||||||
|
|
||||||
假如线上出了事故,虽然自己不用去排查但可以跟着同事们一起看问题,一起分析,甚至帮他捞捞日志,打打下手。
|
|
||||||
|
|
||||||
这次事故的表现,起因,定位等等,排查问题的同事都会记录的清清楚楚,放在项目文档下。
|
|
||||||
|
|
||||||
可以把这些文档都多看看,然后就可以转变成自己排查线上事故的经历了。
|
|
||||||
|
|
||||||
**这种经历在面试官来看就是很大的加分项了**。
|
|
||||||
|
|
||||||
所以在大厂实习,想包装自己的项目方法有很多,只不过一些同学初入职场,对自己有帮助的资料或者内容不太敏感,不善于利用已有的资源。
|
|
||||||
|
|
||||||
**需要过来人点一下,基本就上道了,哈哈哈**。
|
|
||||||
|
|
||||||
当然不是说只要在大厂实习,基础完全就不用看了,抽空也要看,只不过 项目经验(项目的包装)更重要!
|
|
||||||
|
|
||||||
关于提前批,一般来说本厂实习生是不能参加提前批的。
|
|
||||||
|
|
||||||
你可以参加 其他大厂的提前批,只不过参加提前批是有代价的,面试不通过都是有记录的,得看自己项目准备的如何,能不能拿出手,而且一边实习一边面试可能也不太方便,如果想试一试,就找自己不想去的企业的提前批试试水!
|
|
||||||
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 客三消!
|
|
||||||
|
|
||||||
给大家科普一下:什么是客三消。
|
|
||||||
|
|
||||||
翻译过来就是客户端三年消失。
|
|
||||||
|
|
||||||
**听起来是不是有点吓人**!这种说法略夸张,但只要能传开,就说明客户端一定有一些困局,并不是空穴来风。
|
|
||||||
|
|
||||||
昨天卡哥在朋友圈里分享了一个段子的截图
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
然后朋友圈就炸了,上百条的留言,问我这是为啥。
|
|
||||||
|
|
||||||
其实这个问题在[知识星球](https://programmercarl.com/other/kstar.html)里也有录友问过我。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
当时已经详细的回答了一波,估计很多录友都有这方面的困惑,所以在公众号上再来给大家讲一讲。
|
|
||||||
|
|
||||||
**关于星球提问中SRE和后端,在这里就不介绍了,卡哥重点说一说,客户端**。
|
|
||||||
|
|
||||||
客户端目前比较突出的问题,主要是 这四点:
|
|
||||||
|
|
||||||
1. 客户端岗位需求相对较小,而且有越来越小的趋势
|
|
||||||
|
|
||||||
2. 技术做深相对较难
|
|
||||||
|
|
||||||
3. 客户端晋升相对困难
|
|
||||||
|
|
||||||
4. 中年危机 (其实程序员有,不过客户端可能更明显一些)
|
|
||||||
|
|
||||||
|
|
||||||
## 岗位需求相对较小
|
|
||||||
|
|
||||||
客户端需求的减少,主要是体现在中小厂,或者说创业公司,因为大家都养不起原生客户端,基本都会采用跨端的技术方案,也就是大前端(即一套代码可以编译出各个端的版本,包括安卓,IOS等各种终端)。
|
|
||||||
|
|
||||||
这样就节省了很大的人力,不过目前在功能上一定没有 原生客户端体验好。
|
|
||||||
|
|
||||||
**但大前端取代客户端是技术趋势!**
|
|
||||||
|
|
||||||
如果选择客户端,那么就多少要掌握一些跨端技术方案。
|
|
||||||
|
|
||||||
互联网软件的思维,就是轻前端,重后端,为什么PC软件搬到了浏览器上,移动APP搬到小程序上,都是这个道理,一般重头戏在后端。
|
|
||||||
|
|
||||||
所以后端的需求才会比较大。
|
|
||||||
|
|
||||||
## 技术做深相对较难
|
|
||||||
|
|
||||||
这里就不止客户端,其实前端都有这个问题。
|
|
||||||
|
|
||||||
关于前端和客户端的区别,其实没有那么严格的定义,大家可以理解 前端包含了客户端。一切可视化皆为前端。
|
|
||||||
|
|
||||||
前端框架、渲染引擎 变化相对快,可能你刚熟悉一个框架,然后就换了,最关键是可能还拿不准哪一种框架日后会成为主流,一不小心就跑偏了。
|
|
||||||
|
|
||||||
而后端框架变化相对就慢得多,而且 更容易(或者说更有机会)把技术做深,因为 高并发,高可用,低延迟 这些基本都是后端的工作。
|
|
||||||
|
|
||||||
正是前端 技术栈更新太快,所以要持续高强度学习 (这种学习可能不是往深去学习,而是 适应一个又一个框架的学习)。
|
|
||||||
|
|
||||||
而且前端 很容易陷入需求的反复变化之中,因为一个功能或者界面的修改,都是前端同学的工作量。
|
|
||||||
|
|
||||||
后端可能 什么都不用改,接口都是一样的,然后就可以空出时间研究技术。
|
|
||||||
|
|
||||||
## 晋升
|
|
||||||
|
|
||||||
目前在大厂,客户端职业天花板相对较低,一般情况下,可能到组长就到头了。
|
|
||||||
|
|
||||||
搞技术一路升上去,甚至到CTO的,基本都是后端,这也是因为前面讲过的:大部分的互联网产品,重头戏在后端,所有后端更有机会把技术做深,更直白说,后端更有机会在晋升做ppt的时候 “吹牛逼”。
|
|
||||||
|
|
||||||
|
|
||||||
## 中年危机
|
|
||||||
|
|
||||||
这个就更范范一些了,程序员都有这个危机,不过客户端可能更突出一些。
|
|
||||||
|
|
||||||
原生客户端的岗位需求确实会越来越少,如果继续干下去,没有晋升到管理层,然后退居二线公司,发现二线公司都没有原生客户端的岗位,那么就非常被动了。
|
|
||||||
|
|
||||||
所以可以往大前端的方向去转。
|
|
||||||
|
|
||||||
大前端现在也有很多技术方案,ReactNative和weex(阿里,脸书的方案),Flutter(Google的方案),微信小程序(腾讯的方案)
|
|
||||||
|
|
||||||
不过最终哪一个方案一统天下,这还是未知数,所以就需要持续学习咯。
|
|
||||||
|
|
||||||
# 总结
|
|
||||||
|
|
||||||
以上就是我在[知识星球](https://programmercarl.com/other/kstar.html)里的详细回答。
|
|
||||||
|
|
||||||
注意我这里说的一般情况,当然各个岗位都有佼佼者,或者说大牛,客户端也有大牛,也很香,不过这是极少数,就不在讨论范围内了。
|
|
||||||
|
|
||||||
希望对大家理解目前客户端的趋势有所帮助。
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 技术不太好,也不知道对技术有没有兴趣,我该怎么选?
|
|
||||||
|
|
||||||
最近在[知识星球](https://programmercarl.com/other/kstar.html)里解答了不少录友们的疑惑,其实发现一个挺普遍的问题:
|
|
||||||
|
|
||||||
* 我技术很一般
|
|
||||||
* 对技术也没有什么追求
|
|
||||||
* 要是对什么岗位感兴趣我也不知道
|
|
||||||
* 以后自己喜欢干什么也不太清楚
|
|
||||||
|
|
||||||
**相信说到了不少录友心里去了, 其实目前应试教育下 确实很难找到自己感兴趣的事情**。
|
|
||||||
|
|
||||||
但我想说的是,并不是技术不好就什么都做不了,依然有很多选择,只不过录友们没有接触过,所以就不知道自己接下来要往哪个方向走。
|
|
||||||
|
|
||||||
这里我给出一些路线,大家可以参考:
|
|
||||||
|
|
||||||
方向一:走纯研发路线,去大厂,如果真的对技术提不上兴趣可能会走的很辛苦。
|
|
||||||
|
|
||||||
方向二:如果技术还凑合,不做纯研发,退一步也可以考虑去大厂做测试相关的工作,对技术要求没有那么高,但也需要技术能力,而且技术能力越强越吃香。
|
|
||||||
|
|
||||||
方向三:去银行,证券,国企类的企业去做研发岗位,这种国有企业的技术面试相对简单不少,比较轻松,还很稳定,收入虽说不高,但生活足够滋润。
|
|
||||||
|
|
||||||
方向四:做toC(面向普通用户)的产品经理,toC产品经理这个岗位就特别卷,因为这个岗位门槛太低了,任何专业的同学都可以去做产品经理。 这样自己所学的技术就基本没有用了,也凸显不出技术上的优势,但如果自己真的对APP之类的各种应用得心应手,优点缺点,用户爽点、日活、次留等等手到擒来,倒可以试一试。
|
|
||||||
|
|
||||||
方向五:做toB的产品经理,包括云计算,大数据这些产品都是需要产品经理的,例如百度云,腾讯云,阿里云等等,这种产品本身就是技术产品,所以需要懂技术的产品经理来做设计,即需要产品的抓住需求的能力,也需要懂点技术,既可以发挥自己的技术能力,还可以做产品规划,基本也不用写代码。
|
|
||||||
|
|
||||||
对技术要求不高的岗位也挺多的,发展也很好,只要大家多去了解,总会找打符合自己的岗位。
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 不知不觉华为提前提已经开始了
|
|
||||||
|
|
||||||
最近华为提前批已经开始了,不少同学已经陆续参加了提前批的面试。
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html)上就有录友问我这么个问题:
|
|
||||||
|
|
||||||

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

|
|
||||||
|
|
||||||
估计还有公众号上还有很多录友也是这种情况,马上面试,但总感觉哪里都还没准备好,然后还必须要面试,每次面试结果还不理想。
|
|
||||||
|
|
||||||
能感受到此时大家非常迫切要知道还有没有什么切实可行的方案 ,只要执行 ,就能拿到offer。
|
|
||||||
|
|
||||||
恨不得提前知道面试官的问题,然后把问题都背下来得了。。。。
|
|
||||||
|
|
||||||
其实我是非常理解大家的心情的,这个时候怪自己准备的太晚也没有用。
|
|
||||||
|
|
||||||
说实话,已经是秋招下半场(接近末尾了),**已经没有针对面试的复习方案了。什么学习路线,突击计划 在这个时候 都没啥作用了**。
|
|
||||||
|
|
||||||
现在什么最重要呢?
|
|
||||||
|
|
||||||
是**心态**。
|
|
||||||
|
|
||||||
心态要稳住,**放低预期,但别放低努力的程度**。
|
|
||||||
|
|
||||||
估计参加过面试的同学,都会有这种感觉,面试前一天复习,突击的内容,**第二天面试都不会考!是的,一道都不会考!**
|
|
||||||
|
|
||||||
那么为什么还学呢?
|
|
||||||
|
|
||||||
就是这股劲不能泄,只要憋住劲,每天面试,复盘,学习,面试再复盘,再学习,最终大家其实都能拿到offer的,只不过是offer的满意程度罢了。
|
|
||||||
|
|
||||||
**如果泄了劲,那就真没戏了**。
|
|
||||||
|
|
||||||
**可能自暴自弃两天,然后就发现自己啥也学不进去了**。
|
|
||||||
|
|
||||||
所以这个时候了,算法题还要一直刷,八股文也要背起来。
|
|
||||||
|
|
||||||
讲真,现在刷的题,看的八股文,面试可能也不一定会考,但为什么还要看呢,**就是稳定心态**。
|
|
||||||
|
|
||||||
**剩下的就看缘分了!**
|
|
||||||
|
|
||||||
面试挺看缘分的, 可能一个面试官对你的评价就是基础不牢,下一家公司面试官对你的评价就是 基础不错,但项目经验不足。
|
|
||||||
|
|
||||||
所以此时你自己都蒙了,究竟自己是 基础不牢,还是项目经验不足呢?
|
|
||||||
|
|
||||||
其实面试的本质,面试官主观性还是比较强的,可能就是问的几个问题 你都背过,而且背的很深入,那评价就是基础牢了呗。
|
|
||||||
|
|
||||||
|
|
||||||
## 在学点技术,冲春招?
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)里还有一位录友,也是类似的情况,秋招感觉很艰难,要不要在学一学微服务分布式之类的,再冲春招。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
其实这个时候,大家也不要再心思学点什么新技术,增加自己的筹码了。
|
|
||||||
|
|
||||||
还是那句话,**现在学啥,面试也未必会考!**
|
|
||||||
|
|
||||||
就算 现在不参加秋招了,去学 微服务了,分布式。面试的时候 ,面试官未必会考不说,而且 你也未必学的透彻。
|
|
||||||
|
|
||||||
再说,春招的岗位 很少,而且优质岗位更少。
|
|
||||||
|
|
||||||
所以大家这个时候,就不要等了。
|
|
||||||
|
|
||||||
**直接海投,面试,复盘总结,再面试**。
|
|
||||||
|
|
||||||
|
|
||||||
## 给参加明年秋招录友的劝告
|
|
||||||
|
|
||||||
其实我在[知识星球](https://programmercarl.com/other/kstar.html)里,**看到了太多太多 参加今年秋招的录友 埋怨自己 准备的太晚了,没想到要看的东西这么多,没想到竞争这么激烈**。
|
|
||||||
|
|
||||||
所以明年参加秋招的录友,要提前就开始准备,明确自己的岗位,知道岗位的要求,制定自己的计划,然后按计划执行。
|
|
||||||
|
|
||||||
**其实多早开始准备,都不算早!**
|
|
||||||
|
|
||||||
很多在[知识星球](https://programmercarl.com/other/kstar.html)里的准大三,研一的录友,都能在星球里感受到 秋招的竞争与激烈。
|
|
||||||
|
|
||||||
所以他们也就早早的开始准备了。
|
|
||||||
|
|
||||||
来看看星球里 这位录友的提问,**他也才刚刚准大三,就已经为明年的秋招开始精心准备了**。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
估计大多数准大三或者准研一的同学都还没有这种意识。
|
|
||||||
|
|
||||||
**但在[知识星球](https://programmercarl.com/other/kstar.html)里,通过每天录友们的打卡,每天都能感受到这种紧迫感**。
|
|
||||||
|
|
||||||
正如一位星球里的录友这么说:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
很多录友加入星球之后,**刷贴吧刷剧已经不香了,只有刷星球!**
|
|
||||||
|
|
||||||
感觉每天自己被push上去,其实有时候 **大家需要的就是一个氛围,自己一个人很难有提前准备的意识,也很难坚持下来**。
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 开奖
|
|
||||||
|
|
||||||
最近秋招的录友已经陆续开奖了,同时开奖多少,也是offer选择的一个重要因素,毕竟谁能和钱过意不去呢。
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)里这位录友拿到的百度offer薪资确实很高
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下是我的回答:
|
|
||||||
|
|
||||||
--------------
|
|
||||||
|
|
||||||
百度给你的这个薪资很不错了,百度一向是大厂里最扣的那个,能给这个价位,说明 面试官对你很满意。
|
|
||||||
|
|
||||||
语言方面你不用过于纠结,其实学什么语言最终都是为了赚钱是吧,钱给到位了,写啥不都一样么。
|
|
||||||
|
|
||||||
而且如果后面php 要转go的话,你就还很多锻炼的机会,对你晋升十分有好处,php转go,就是把已有的后端代码全部重写,相当于是重构,就是很多工作可以做。
|
|
||||||
|
|
||||||
**程序员最喜欢的就是重构**,重构既能提升技术,又能向上邀功(**可以理解就是容易晋升**)。
|
|
||||||
|
|
||||||
如果是稳定的业务,进去大概率是打杂的,因为没有那么多代码可写,进去就改改bug,写写脚本分析分析日志,之类的,总之不会接触到核心代码,没有机会,也没有必要。
|
|
||||||
|
|
||||||
但如果稳定的业务 代码要重构,就有机会可以读一读核心代码,分析哪里设计的不好,重写一遍,那就可以大展宏图。
|
|
||||||
|
|
||||||
这就是为什么程序员都喜欢重构。
|
|
||||||
|
|
||||||
字节的话 后端-系统架构,这个岗位是可以的,但具体什么部门,具体做什么就不太清楚了,至于你说的边缘部门,如果这个部门就叫做系统架构部的话,不可能是边缘部门。系统架构部门还是挺重要的。
|
|
||||||
|
|
||||||
但如果 字节和百度选的话,我还是倾向于百度。 百度对新人培养还很到位的,比字节强多了。
|
|
||||||
|
|
||||||
滴滴就不考虑了, 华为 2012实验室中央软件院,其实是不错的,适合好好搞技术,但关于 多媒体开发 这块 要看具体工作了。
|
|
||||||
2012 一般薪资开的不高,毕竟不是华为的业务部门。
|
|
||||||
|
|
||||||
如果百度过几天逼签的话,就签了吧,挺香的,总包都40w+了,百度一向是很抠的,**这个价位,百度是下血本了**。
|
|
||||||
|
|
||||||
如果还能拖,就等 字节 和 华为开奖,如果能开到 50w+,那就考虑考虑。
|
|
||||||
|
|
||||||
如果薪资差不多,就百度吧。
|
|
||||||
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||
这位录友最后也决定签百度了。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
大家也注意到,这位录友是把《代码随想录》刷了两篇,这里我也是推荐大家至少要把 《代码随想录》上的题目刷两遍,才能真正的掌握我讲解的内容,第一遍大家可能就是力扣提交通过了,然后这道题目就过了,没有深入去思考,也没有深入去看我的题解。
|
|
||||||
|
|
||||||
但第二遍的时候,就可以深入思考 上一道题目与本题之间的联系,动态规划或者二叉树的题目套路 等等了。
|
|
||||||
|
|
||||||
|
|
||||||
还有这位录友在星球里提到,用了我推荐的项目,其实这就是这个:[基于跳表的轻量级KV存储引擎](https://mp.weixin.qq.com/s/i3vJd0nPqQFyLRH9Px84YA)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
这个项目是我18年的时候,业余时间写的,大家如果按照我的代码来,从代码质量到结构设计,绝对是可以拿得出手的。
|
|
||||||
|
|
||||||
但我没有写这个项目的详细教程,很多基础不太好的录友可能看着有点费劲,后面我会在B站上出一期详细的讲解视频,公众号也会同步文字版本。
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 无竞赛,无实习,如何秋招?
|
|
||||||
|
|
||||||
今年秋招已经结束了,今天给大家介绍一位知识星球里的录友,我也是见证了他一步一步准备,从绝望到看到希望再绝望到最后拿到offer的全部过程。
|
|
||||||
|
|
||||||
我记得给他改简历的时候,就说过他冲客户端的话,可能更稳一些。
|
|
||||||
|
|
||||||
时间总是过得很快,但曾经焦虑的小伙,现在也拿到几个offer了,不一定人人都要冲大厂,卷算法,卷后端,合适自己就好,要不然会把自己搞的很累。
|
|
||||||
|
|
||||||
以下是他的秋招总结,**写的很用心,说了很多面试中使用的方法,发在[知识星球](https://programmercarl.com/other/kstar.html)里,立刻就引来星球小伙伴们的围观**,算是给星球里明年要秋招的录友做了一个参考。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我也征求了他本人的同意,将其分享在公众号上,希望对大家有所启发。
|
|
||||||
|
|
||||||
以下原文:
|
|
||||||
|
|
||||||
|
|
||||||
## 个人背景
|
|
||||||
|
|
||||||
* 学校:末流985
|
|
||||||
* 学历:本科
|
|
||||||
* 所学专业:网络空间安全
|
|
||||||
* 意向岗位:后端开发
|
|
||||||
* 校内学习情况:**无竞赛,无实习经历,自己平时也没有捣鼓过任何项目,只是跟着学校的课程学习**😅。
|
|
||||||
|
|
||||||
## 秋招时间线
|
|
||||||
|
|
||||||
(**加粗内容为时间节点**,中间还穿插着各种笔试,这里就不列举了)
|
|
||||||
|
|
||||||
* 二月初-二月中旬:开始刷leetcode
|
|
||||||
* 三月初-四月初:背八股文,刷题,同时投递实习岗,但由于个人实力不足以及投递时间太晚,一面均未通过
|
|
||||||
* 四月-七月:完成学校内的课程,准备专业课考试,同时背八股文,不断地重复刷算法题
|
|
||||||
* **七月二十六日**:收到字节跳动**客户端软件安全工程师**岗位的面试邀请
|
|
||||||
* 八月初:面试**腾讯**后台开发岗,一面挂
|
|
||||||
* **八月十五日**:通过字节的三轮专业面试和一轮hr面拿到**意向书**
|
|
||||||
* 八月下旬:连续面试美团,蚂蚁;美团一面挂,蚂蚁一面通过
|
|
||||||
* **九月三日**:蚂蚁二面通过
|
|
||||||
* **九月十三日**:成为字节跳动实习生,提前感受工作内容
|
|
||||||
* 九月下旬:**通过五轮面试**:蚂蚁三面和hr面;华为两轮技术面和主管面
|
|
||||||
* **十月二十九日**:收到字节正式offer
|
|
||||||
* **十一月五日**:收到华为意向书
|
|
||||||
|
|
||||||
小结:
|
|
||||||
|
|
||||||
- 面试的企业:华为,字节,蚂蚁,腾讯,美团
|
|
||||||
- 通过的企业:华为,字节(蚂蚁泡池子)
|
|
||||||
- 字节客户端安全-深圳
|
|
||||||
- 华为软开-深圳(东莞):14a
|
|
||||||
- offer选择:大概率华为,中概率字节,小概率春招再战
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 技能准备
|
|
||||||
|
|
||||||
### 算法和数据结构
|
|
||||||
|
|
||||||
掌握程度:
|
|
||||||
|
|
||||||
- 代码随想录 上的题目:programmercarl.com, 除了单调栈以外的所有题目都做过,且大部分题目**3-7**刷。
|
|
||||||
- leetcode总共题数:219题。
|
|
||||||
- (https://www.nowcoder.com/ta/huawei )做了68道。
|
|
||||||
- 二叉树,红黑树,B+树,数组,链表,堆栈等基础知识均掌握。
|
|
||||||
|
|
||||||
取得的效果:
|
|
||||||
- 95%的面试题都能做出来,能讲出时间,空间复杂度和实现思路,但没见过的题目不一定能想出最优解。
|
|
||||||
- 华为笔试:200分 (100分通过) ,蚂蚁笔试通过率:70%,网易笔试通过率:80%。
|
|
||||||
|
|
||||||
### 学习建议
|
|
||||||
|
|
||||||
按照卡哥**出题的顺序**刷,且要**重复刷**,**不能只是背代码**。还记得春招的时候,面试官问我**两数之和**,我能把代码写出来,但当问到实现思路,为什么这么实现,我答不上来;相类似的还有**二叉树迭代法的统一写法**,当面试官问我为什么这么写的时候,我说不知道:sob:
|
|
||||||
|
|
||||||
把卡哥的题刷得差不多的时候,建议再刷两个专题:
|
|
||||||
|
|
||||||
* 二分法 :https://leetcode-cn.com/problems/search-insert-position/solution/te-bie-hao-yong-de-er-fen-cha-fa-fa-mo-ban-python-/)
|
|
||||||
* 滑动窗口:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/hua-dong-chuang-kou-by-powcai 。
|
|
||||||
|
|
||||||
|
|
||||||
笔试题刷题要点:
|
|
||||||
|
|
||||||
- **多刷**,**多刷**,**多刷**,**熟悉ACM格式**
|
|
||||||
- 面试题刷题要点:
|
|
||||||
- **时间,空间复杂度**
|
|
||||||
- **优化方案**
|
|
||||||
- **解题思路**
|
|
||||||
|
|
||||||
以下是本人对各个知识块的掌握情况:
|
|
||||||
|
|
||||||
### 计算机网络
|
|
||||||
|
|
||||||
掌握程度:应用层到数据链路层常考题都背得很熟悉,但细节没记到位,美团曾经问过我**tcp报文的可选字段**,没答上来。
|
|
||||||
|
|
||||||
### 操作系统
|
|
||||||
|
|
||||||
掌握程度:熟悉常见面试题,但当问到特别具体的问题时难以回答,比如:给一个具体的虚拟地址,请求出它映射到的物理地址。
|
|
||||||
|
|
||||||
### 数据库
|
|
||||||
|
|
||||||
掌握程度:这部分掌握得最少,仅限于面经里MySQL的面试题:cold_sweat:。
|
|
||||||
|
|
||||||
### C++
|
|
||||||
|
|
||||||
掌握程度:基础面试题,stl,面向对象等面试题滚瓜烂熟,但面试的时候语言考察得很少,我遇到过的只有:**malloc**底层实现,**stl**相关底层原理。
|
|
||||||
|
|
||||||
### 项目
|
|
||||||
|
|
||||||
提前准备好以下问题的答案:
|
|
||||||
- 为什么要做这个项目?
|
|
||||||
- 是**为了解决什么问题**?
|
|
||||||
- 项目的性质是什么?
|
|
||||||
- 多少个人完成?
|
|
||||||
- 你负责了什么工作?
|
|
||||||
- 有什么亮点?难点?
|
|
||||||
- 运用了哪些技术?
|
|
||||||
- 有什么收获?
|
|
||||||
|
|
||||||
## 经验技巧
|
|
||||||
|
|
||||||
### 模拟问答
|
|
||||||
|
|
||||||
把**一切**在面试中可能被问到问题的**答案背下来**,假设你的对面有一个面试官,把问题的答案说给他听,这样有几个好处:
|
|
||||||
|
|
||||||
1. **锻炼表达能力**。有过面试经验的同学应该可以感受到,明明自己对一些问题很了解,但面试时讲得磕磕巴巴,逻辑不清晰。
|
|
||||||
|
|
||||||
提前模拟面试场景,可以帮助你提前发现**语言表述上的问题**,以达到在面试过程中**清晰表述内容**的效果。
|
|
||||||
|
|
||||||
2. **查漏补缺**。在回答问题时,自己很有可能产生一些**疑问**,而这些疑问也是面试官**特别喜欢**考察的地方。
|
|
||||||
|
|
||||||
举例:
|
|
||||||
|
|
||||||
- 面试官问:进程和线程的区别?
|
|
||||||
- 回答:
|
|
||||||
- 进程切换比线程切换开销小
|
|
||||||
- .......
|
|
||||||
- 面试官追问:进程切换开销**小在哪**?你能详细描述出进程切换的具体过程吗?
|
|
||||||
|
|
||||||
如果你能在面试前自己发现这个问题,查漏补缺,面试的时候也会更游刃有余。
|
|
||||||
|
|
||||||
### 转移话题
|
|
||||||
|
|
||||||
转移话题,即改变话题方向。
|
|
||||||
|
|
||||||
举例:
|
|
||||||
|
|
||||||
面试官问:为什么使用DH对称加密算法而不使用其他其他对称加密算法?
|
|
||||||
|
|
||||||
两种回答:
|
|
||||||
|
|
||||||
* 这个我没想过:sob:
|
|
||||||
* 我在完善项目时**不侧重于**将其与其他算法比较,而是把**精力更多地放在**DH算法的改进和优化上。
|
|
||||||
|
|
||||||
针对第二个回答,面试官会追问,那有哪些优化呢?而这个恰恰是我背得滚瓜烂熟的地方😍。
|
|
||||||
|
|
||||||
### 关于实习
|
|
||||||
|
|
||||||
实习重要吗?很重要,我去提前实习后,更清楚了企业看中实习经历的原因:**节省培养成本**,更快上手业务。
|
|
||||||
|
|
||||||
没有实习经历可以吗?可以,如果时间紧迫,秋招/春招前没有实习机会,那就花时间**把实习期需要学习的事情去做一做**,例如:学习GIT,搭建博客,学习开源项目,学习linux等(当然这些我实习前都没做,是实习的时候才知道的:joy:),这些放在简历上也是加分项。
|
|
||||||
|
|
||||||
|
|
||||||
## 与代码随想录的故事
|
|
||||||
|
|
||||||
### **算法**
|
|
||||||
|
|
||||||
今年二月初,刷题的时,看到carl哥的题解,觉得讲得很不错,关注了微信公众号:代码随想录。于是我就按照刷题攻略的顺序进行刷题,题解讲得很详细。在秋招前我几乎把当时所有题都刷完,而且刷了好几遍。面试时的出题命中率**真的很高(字节,蚂蚁的出的所有算法题都被包含在内)**,即使不是原题,实现的算法也是类似的。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### **公众号文章**
|
|
||||||
|
|
||||||
公众号里的文章我也非常喜欢,比如各城市互联网公司的总结,之前一直没太注意这个事情,觉得头部不就是那几个大厂吗?冲就完了。秋招过后觉得这篇文章还是挺有用的,因为眼光**不能只局限于互联网大厂**,并不是任何时候都应该向大厂冲,适合自己才是最重要的。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### **知识星球**
|
|
||||||
|
|
||||||
后来卡哥开了知识星球,我马上就申请进来了,这段时间一直在打卡,督促自己学习。星球上主要分为两大块内容:打卡系列和问答系列。
|
|
||||||
|
|
||||||
- 打卡系列,记录着各位同学的每日学习情况,其中有不少文章都总结得用心。
|
|
||||||
|
|
||||||
- **问答系列(对我帮助很大)**,主要包括**offer选择**,**学习路线**,**学习建议**;每天都会有同学提出自己的问题(当然我也问了不少),carl哥的回答很真诚,**也很有参考价值。**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 小结
|
|
||||||
|
|
||||||
秋招已告一段落, 这段时间真的经历了很多事情,虽然现在对结果没有很满意,但也积累了一些经验,走一步看一步吧。
|
|
||||||
|
|
||||||
大家可以结合着我的经历思考这么一个问题:**知识掌握到什么程度可以拿到一个什么水平的offer**?最后,祝大家都能拿到自己满意的offer~
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
<p align="center"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 倒霉透顶,触底反弹!
|
|
||||||
|
|
||||||
星球里不少录友秋招已经陆续结束了,很多录友都在[知识星球](https://programmercarl.com/other/kstar.html)里写下了自己的秋招总结,但今天这位录友很特殊,甚至我给她修改简历的时候我都“有点愁”。
|
|
||||||
|
|
||||||
他的秋招过程也是极其坎坷,**逼签、被养鱼最后收到感谢信、校招流程收到实习offer,还有数不清的简历挂……**,可能是太倒霉了,最后触底反弹,接到了百度的offer,虽然是白菜价,但真的很不错了。
|
|
||||||
|
|
||||||
这篇总结并没有说学习路线,而是说一说她自己的感想,算是另一个维度,感觉会对大家很有帮助,所以我也分享出来。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下星球原文:
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||
秋招终于结束了,收到了百度C++开发、小米C++音视频开发、深信服C++开发、知乎go后端、神策java后端的offer,不是啥大佬,全是烂白菜,但是作为一个双非本的孩子,我觉得已经很幸运了,最终无脑选择了百度,春招还会再冲一波。
|
|
||||||
|
|
||||||
**星球里的学习气氛很好,向卡尔哥问过好几个问题,每个都挺长,卡尔哥也给我耐心解答过,还帮我改过简历,感谢和大家相遇!** 关于学习路线大佬们说的很详细了,我觉得参考他们的已经足够有价值。**那我就为星球里还在奋斗的兄弟姐妹、以及学弟学妹们写一下我的一些其他的感想**。
|
|
||||||
|
|
||||||
1、**准备一定要趁早**。我是今年1月份准备的实习,那个时候我连C++智能指针都不知道,就一直陆续学着,6月份上岸滴滴实习,8月下旬跑路,可以说9月份才开始大规模投递。我是很菜的人,还不算勤奋,秋招不至于空手而归就是找实习的时候还有些积淀。 所以最大的感想就是,一定要越早越好,我认为理想的时间节点:3月份去实习,7月份投提前批,所以什么时候去准备可以根据这个时间去准备,当然越早越好。越早企业越缺人,越好进。
|
|
||||||
|
|
||||||
2、**多面试,哪怕实习不了也要多面试;多投简历,投了就有机会**。我没啥自主学习的意识,只有在要面试的前一个礼拜才会多少看点,还记得当时收到第二天就要腾讯面试的消息,前一天晚上我几乎通宵了,虽然最后还是挂了。但是我当时真的是要面试的恐惧支配着我学习 。
|
|
||||||
|
|
||||||
3、**八股文、看书和刷题**。实习面试的话看八股文还是能应付过去的,但是我看了大多数八股文感觉千篇一律,想真正化为自己的东西还是要看书,我一般喜欢看书,然后把书上的东西化为自己的理解记在笔记上。 刷题也是,我一般喜欢根据自己的理解把题归类,自己写题解。
|
|
||||||
|
|
||||||
4、**实习。我觉得实习比较好的时间节点是3月份(或者更早)**,暑假去实习如果不能保证转正,感觉还是有点耽误提前批,提前批是最最最好进大厂的一次。像我的话,白天工作一天到晚上九十点,回家就只想躺着,再遇上比较push的工作环境,做到实习和复习兼顾是有点难的。我觉得核心竞争力应该是基础知识的掌握程度,身边确实没有实习、但是基础和项目足够牛批的人也能进大厂,所以还需要做一个平衡吧。当然也不是劝退,实在平衡不了的话就要要根据自身情况吧。
|
|
||||||
|
|
||||||
但是实习确实让我简历好过了一些,这个就是实习最大的好处之一,但是我感觉像美团腾讯百度的话,如果笔试面试还可以的话,应该不太卡简历的。字节后端确实有点卡实习,还有一些没那么大但是也很强的厂是卡学历或者实习的。
|
|
||||||
|
|
||||||
5、还有秋招不要all in,不要all in ,不要all in!!!
|
|
||||||
|
|
||||||
以上就是我的一些感想,可能仁者见仁智者见智,希望大家多多指正。
|
|
||||||
|
|
||||||
我的秋招真的不是很顺利。逼签、被养鱼最后收到感谢信、校招流程收到实习offer,还有数不清的简历挂……,但是最后也有好的结果了,其实想的比较开,大不了就春招再进大厂呗。本来都要打算春招了,书都买了几本,但是没想到能收到百度意向,已经开始流程推进啦。
|
|
||||||
|
|
||||||
可能这就是倒霉透顶了就触底反弹吧。**一直觉得自己倒霉透了,奇葩的时间都被我遇上了,但是最后还是被好运眷顾了一下**。我的学校还是双非本,很一般的学校,所以任何时候都有机会,拿到offer不光是实力因素,运气成分也很大,大家一定要多投多面,万一哪次就上岸大厂了。
|
|
||||||
|
|
||||||
**还是想参与一下春招,但是现在发现躺着太舒服啦**。还是得卷起来,争取以后能每天在星球里打卡哈哈
|
|
||||||
|
|
||||||
祝愿各位都有理想的offer!所愿皆所得!
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||
以上就是星球里的原文,所以这位录友现在又可以愉快的在星球里,每日打卡了 哈哈哈。
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
|||||||
<p align="center"> <a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 秋招面试,心态很重要!
|
|
||||||
|
|
||||||
其实无论社招,还是校招,心态都很重要,例如,别人那个一堆offer,自己陷入深深的焦虑。 面试分明感觉自己表现的不错,结果就是挂了。面试中遇到了面试官的否定,然后就开始自我怀疑,等等等。
|
|
||||||
|
|
||||||
如果你也遇到这些问题,可以认真读完[知识星球](https://programmercarl.com/other/kstar.html)里一位录友的总结,他是非科班,机械转码,今年5月份加入的星球,坚持打卡几个月,如果也获得自己心仪的offer,他的心路历程对大家会很有启发。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下原文:
|
|
||||||
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
写在最前:作为最一般的秋招选手,希望能对和我有相似经历的录友提供一些帮助。
|
|
||||||
|
|
||||||
1、个人情况:本硕211机械转码,无竞赛,无实习。转码原因:机械的工资真的不高,也不是很喜欢天天画图的生活;导师教本科C/C++语言,研一当助教重新学了一下C++。
|
|
||||||
|
|
||||||
2、加入星球:
|
|
||||||
|
|
||||||
3月份开学决定转码,3月到5月看C++primer和刷题,之前也是按题目顺序刷,效果一般。我是在LeetCode刷题的时候看到Carl哥的题解,然后关注随想录的GitHub,刷完链表在5.27决定加入的星球(那时还没有优惠,哈哈)现在也快半年了,那段时间是我最慌的时候,毕业课题没做完,秋招准备的也不行。刚看完C++ Primer,刷了几十题的状态。就是在星球打卡的这段时间学习比较认真,让我走过了比较难的一段路,感谢Carl哥的指导和各位录友的输出。(用Forest防止玩手机并记录了一下,6~9月平均学习15000分钟)
|
|
||||||
|
|
||||||
3、秋招历程:
|
|
||||||
|
|
||||||
6月到7月,C++基础就每天看一条《effective C++》,操作系统和计算机网络看书来不及就准备找网上大佬的精华过一遍然后直接面经。我找的是小林大佬的图解网络+图解操作系统,阿秀大佬的面经。(每日一问的主要来源)。
|
|
||||||
|
|
||||||
刷题大概每日一题+3道随想录+2剑指offer,7月完成一刷,8月底完成二刷。一刷的时候白天在LeetCode提交之后,晚上会在本子上手写总结一遍,理一理思路。二刷的时候就在Typora上快速记录了一下,节约时间。开始面试的时候题量:二刷完随想录+剑指offer,一共350题左右。在刷完以后可以上CodeTop刷各公司部门岗位的高频题。
|
|
||||||
|
|
||||||
7月份有的公司就陆陆续续开始提前批了,虽然知道提前批不需要笔试多一次机会,但是因为自己简历项目一块还比较单薄,一直没有进行投递。7月底买了《高性能服务器编程》一周多看完,然后做了一个基础的Web服务器,有不懂的就上网搜类似的解析。自己画了一下流程图之类的梳理了一下大概思路。第二个项目就是Carl哥的跳表项目,不是很长,主要是理解跳表这个数据结构,自己画一画就清楚了。
|
|
||||||
|
|
||||||
8月底开始投简历,对自己定位比较明确,主要以中厂为主,大厂随缘。8月底开始基本每天都有笔试,9月开始面试,一直到10月下旬结束秋招。面试的时候主要是录音,结束后进行面试总结,包括面试问题,手撕代码,面试表现(回答问题思路是否严谨,吐词是否清晰)。
|
|
||||||
|
|
||||||
其余关于实习,竞赛,面试的经验可以参考星球里其他大佬,哈哈哈。我感触比较深的是心态问题,这里写一写我自己遇到的心态问题和感想。
|
|
||||||
|
|
||||||
|
|
||||||
4、心态很重要:
|
|
||||||
|
|
||||||
心态问题1:同学或室友提前批就拿到了30大几w甚至更高的的offer,自己才开始笔试,说不羡慕是不可能的,有几天晚上都有一点焦虑没有睡好。这可能是因为自己并没有全力以赴,害怕因为自己的不努力而失去机会,后来每天都在按计划学习,每天都比较充实,抱着努力不后悔的心态。当你一心学习的时候就不太会一直考虑让自己焦虑的问题,总之一句话,冲就完事了。
|
|
||||||
|
|
||||||
心态问题2:总感觉自己没有准备好而不敢投简历。项目没准备或者面经记得不熟。其实投了简历以后还会有一段时间,包括HR筛简历,测评笔试才到面试,所以能投尽早投,在面试之前有压力的时候复习效率比较高的。
|
|
||||||
|
|
||||||
心态问题3:面试时的心态:心里默念一定要思考一下,然后慢慢说。我有一次面试,前面几个问题不是很顺利,然后问了我一个我会的,我就把我想到的一股脑说出来,我想着终于遇到一个我会的了,自我感觉良好,结果面试结束复盘的时候才发现,那个问题说的不是很全面而且说的比较快,面试官感觉可能很一般。
|
|
||||||
|
|
||||||
心态问题4:有时可能会紧张的不行,导致本来自己知道或者有思路而因为紧张语无伦次没有表达出来,从而影响面试表现(可以事先准备好自我介绍,流畅的自我介绍在一定程度上可以建立信心,减缓紧张。参加一些模拟面试,找同学模拟或者在网上模拟,还可以录一下视频,看一下自己的表现怎样,有什么地方需要注意;找一些中小厂练手实战也不错)
|
|
||||||
|
|
||||||
心态问题5:面试后的心态,可能有时候觉得自己表现还不错但是面试挂了而愤愤不平,或者和同学一起面一家公司,同学过了,自己挂了。这个时候需要把心态放平,及时总结自己的面试表现,可能没有你想象的那么好。而且面试主观因素挺多的,结果和面试官有很大关系,所以做好自己,尽人事听天命。
|
|
||||||
|
|
||||||
心态问题6:面试过程中可能会遇到比较不好的面试官,导致面试体验比较差而影响自己的心态,这个时候也是需要及时发泄,不要自我否定或赌气,想着后面还有更多的机会,把更多精力投入到下一次面试或笔试中。我遇到的面试官都比较nice的,希望大家也一样!
|
|
||||||
|
|
||||||
5、写在最后:
|
|
||||||
|
|
||||||
最后对主要面试结果做一个总结:腾讯(笔试挂),百度(二面挂),最后拿到的:华为通用软开,深信服C++开发,科大讯飞C++,中电28所,30所。最后选择离家近的成都华为,总的来说虽然没去成大厂,但是自己已经很满意了。
|
|
||||||
|
|
||||||
最后的最后:说的有点多,比较啰嗦,感谢大家能看完。希望大家一定不要放弃,相信自己,能拿到自己想要的offer!!
|
|
||||||
|
|
||||||
---------------
|
|
||||||
|
|
||||||
可以看一下这篇总结在星球下的评论:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**他在星球里知名度还是很高的,为啥知名度这么高呢?**
|
|
||||||
|
|
||||||
因为他坚持几个月的打卡,而且打卡质量非常高,所以星球里的录友们都认识他。
|
|
||||||
|
|
||||||
来看看他的打卡内容:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我只是随便选了几条,他有将近200条的打卡记录,如果大家也在准备明年秋招,可以进星球里看看他的每日的打卡记录,相信会对规划自己的学习计划,任务安排 都很有帮助。
|
|
||||||
|
|
||||||
而且星球里的学习氛围会让你惊讶,原来有这么多大佬,还这么努力。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 秋招上半场的总结
|
|
||||||
|
|
||||||
八月份已经接近尾声,不少录友已经在[知识星球](https://programmercarl.com/other/kstar.html) 已经总结了秋招的上半场。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
可以看出 这位录友也是身经百战,目前也拿到了几个offer。
|
|
||||||
|
|
||||||
星球里还有不少录友已经拿到了字节,阿里,百度提前批的offer。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
不过绝大部分录友还在经受着考验,处于焦虑的状态,秋招上半场也是几多欢喜几多愁。
|
|
||||||
|
|
||||||
找工作其实是一个很虐心的过程,没有offer、没准备好、面试没发挥好、差一点就能把这题过了 等等,每一个场景都给大家增添一份焦虑。
|
|
||||||
|
|
||||||
星球里有一些录友就找到了一个方向,或者一个准备同一家公司的伙伴,就会好一些。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**有时候,有压力,自己憋着,没人交流,只会压力越来越大**。
|
|
||||||
|
|
||||||
对于还没有offer的录友,我对大家的建议也是,**心态要稳住,要适当放低预期,不是所有人都要大厂,但不能放低自己对学习的要求!**
|
|
||||||
|
|
||||||
有些同学,经过几次面试的打击之后,直接就自暴自弃,狂玩几天想释放压力,这么做的结果,只会压力越来越大。
|
|
||||||
|
|
||||||
所以,**秋招进行时,大家不要过于放松,无论什么情况,只要没有拿到心仪offer,就不能放松,一旦放松之后,换来的就是更看不到希望**。
|
|
||||||
|
|
||||||
有的同学可能学校不好,有的同学是转行计算机,一路下来确实艰难。
|
|
||||||
|
|
||||||
我在星球里,看到的不仅是大家准备秋招过程的每日学习总结、打卡,也看到了一些录友的不容易。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
说实话,看着评论区,还是很感动的,估计这位 打卡的录友,也得到了很大的鼓励。
|
|
||||||
|
|
||||||
这可能是 成千上万 目前正在冲刺秋招应届生 的一个缩影。
|
|
||||||
|
|
||||||
面试不仅仅是只看技术,也挺看缘分的,有的同学可能感觉莫名其妙的就挂了,有的同学可能感觉莫名其妙的就拿到了offer。
|
|
||||||
|
|
||||||
我就简单列举几个原因。
|
|
||||||
|
|
||||||
* 可能部门缺人,或满了
|
|
||||||
* 可能是当天面试的同学都不太行,就矬子里拔大个
|
|
||||||
* 可能之前有几个优秀的毕业生,但按照之前的标准都没过,然后面试官发现这么下去招不到人了,一下子就把标准降低了,然后轮到了你,你感觉你发挥的并不好,但也给你offer了。
|
|
||||||
|
|
||||||
所以面试也有很多很多其他因素,也很看缘分。
|
|
||||||
|
|
||||||
大家放平心态就好。
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 秋招进行时,其实大家都很焦虑
|
|
||||||
|
|
||||||
大家应该都发现了,提前批和秋招都越来越提前的,大部分的录友此时的心态还是挺焦虑的。
|
|
||||||
|
|
||||||
特别是大三的同学吧,同时面临这找工作和考研两个方向的诱惑。
|
|
||||||
|
|
||||||
一位录友就在[知识星球](https://programmercarl.com/other/kstar.html)问了我这个问题:
|
|
||||||
|
|
||||||

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

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

|
|
||||||
|
|
||||||
其实不少同学纠结于计算机专业要不要考研。
|
|
||||||
|
|
||||||
我的观点是 **如果认为自己本科毕业 可以拿到大厂的研发岗offer,那么就不用读研**(除非保研到一个特别好的学校了)。
|
|
||||||
|
|
||||||
那么怎么能发现自己本科毕业能不能拿到大厂offer呢。
|
|
||||||
|
|
||||||
看看自己学生学哥学姐,大部分人的就业去向,如果很多都可以进入大厂,那么就可以追寻他们的足迹。
|
|
||||||
|
|
||||||
如果自己学校本科毕业,就业比较一般,那么就去读研吧。
|
|
||||||
|
|
||||||
当然这里还有一个情况,就是算法岗,算法岗一般要求研究生学历以上。但算法岗现在很卷,985高校研究生,找算法岗的工作都很难,既要顶会,也要coding的能力。
|
|
||||||
|
|
||||||
目前的现况是很多搞AI的985研究生都在转研发岗,**但如果你依然立志从事人工智能(说明是真的热爱),那么就去读研吧**。
|
|
||||||
|
|
||||||
研究生毕业去做研发岗和本科毕业做的研发,其工作其实没区别。那么为什么读研呢。
|
|
||||||
|
|
||||||
现在环境就比较卷,两个候选人,实力差不多,一个本科,一个研究生,价钱也差不多,那么大厂就要个研究生呗,在招生简章里看着也好看,说明公司都是高学历人才。
|
|
||||||
|
|
||||||
当然一般来说 研究生毕竟又多读了 两三年,普遍会比本科强一些。
|
|
||||||
|
|
||||||
**PS:大厂研发岗校招本科和研究生薪资几乎没啥差别**。
|
|
||||||
|
|
||||||
|
|
||||||
那么话在说回来,**如果打算考研,那么就争取更好学校的研究生,提升一下学历,把考研所付出的努力最大化**。
|
|
||||||
|
|
||||||
最后关于本科生要不要读研:
|
|
||||||
|
|
||||||
* 本科如果有实力去大厂做研发,那么就去!
|
|
||||||
|
|
||||||
* 如果本科去不了大厂,可以考虑考研,考研是一次提升学历的机会,一旦选择考研这条路,就给自己点压力!
|
|
||||||
|
|
||||||
* 如果知道AI岗位目前就业情况,依然要立志从事AI,那么就去读研
|
|
||||||
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
|||||||
|
|
||||||
# 遭遇逼签,怎么办?
|
|
||||||
|
|
||||||
最近各大公司陆续开奖了,也有不少公司开始逼签了。
|
|
||||||
|
|
||||||
为什么会有逼签呢,无疑就是 这家公司你不太想去,但还想要一个保底(备胎),同时这家公司也知道自己竞争力可能不是很大,也不想当大家的备胎,所以就要三天内必须签三方。
|
|
||||||
|
|
||||||
如果是心仪的公司要求三天内签三方,我相信大家就没有被逼签的感觉了,哈哈哈
|
|
||||||
|
|
||||||
[知识星球](https://programmercarl.com/other/kstar.html)里很多录友都问我,XX公司又要逼签了,怎么办。 我在公众号也分享一下,希望对大家有所帮助。
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下是我的回答:
|
|
||||||
|
|
||||||
TPLINK 的嵌入式,确实有点偏,但钱给的还真多 (估计是发现不好找人了)。
|
|
||||||
|
|
||||||
从发展来看,当然百度 虾皮 是首选,百度一般薪资不高,但我估计 虾皮薪资应该可以。
|
|
||||||
|
|
||||||
虾皮如果 10月底 才下offer的那,一般有更好的offer的同学 指定早就签了,我估计虾皮是能接受 毁约三方 也就是等你毁约三方,再签虾皮的 (注意,这是我猜的),要不 10月底 在下offer,优秀的毕业生遭抢没了。 所以如果能联系上HR的话,可以问一问,是否一定要三方。
|
|
||||||
|
|
||||||
你去签 TPLINK 三方的时候 也问问,毁约的流程,TPLINK 什么时候会退给你三方,如果是 TPLINK HR很坚决 不接受毁约的话,就等百度 和虾皮吧,到时候谈薪资的时候 拿tplink这个作为依据,高点要薪资。
|
|
||||||
|
|
||||||
如果 TPLINK HR 能接受毁约,给出 毁约 流程的话,那就签了。 (但这里不能排除 HR 口是心非,说是能毁约,最后不给你退三方的情况,所以多问问 有没有师兄毁约 TPLINK成功的)
|
|
||||||
|
|
||||||
我当初校招的时候签的就是华为,也给三方了,毁约去的腾讯。我腾讯都入职了,华为才把三方退回来,我在补上三方,所以腾讯是不要求三方的,只要人去了就行。这个也看公司的。
|
|
||||||
|
|
||||||
-------------
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下是我的回答:
|
|
||||||
|
|
||||||
7月开始自学c++,秋招就能拿到这些offer已经很棒了👍
|
|
||||||
|
|
||||||
先看逼签的这两家,其实我都不太了解,我的朋友们主要都在互联网圈,所以 没有认识的朋友在这两家公司。
|
|
||||||
|
|
||||||
不过 thoughtworks 网评不太好,说是外包公司, 中孚信息 至少是土生土长的企业,做网络安全,也是上市公司,至少会靠谱一些。
|
|
||||||
|
|
||||||
华为成都 光产品线的测开,如果你想真的有增进技术的心,测开就稍差了一些。
|
|
||||||
|
|
||||||
相对来说 小米南京的offer 还不错,但还在池子里。
|
|
||||||
|
|
||||||
如果逼签的话,优先考虑中孚吧。
|
|
||||||
|
|
||||||
关于 好好沉淀准备春招 当然是可以的,但不是每个同学都是劲再去冲春招了,找工作都是一鼓作气,如果你还能高强度的准备面试冲刺春招,当然是好的。
|
|
||||||
|
|
||||||
关键是 还有外部因素,毕业的事,以及大家该保研的保研了,找到工作了都吃喝玩乐了,天天聚餐,这个氛围下,你还能不能继续高强度冲刺了, 这才是你要考虑的。
|
|
||||||
|
|
||||||
加油💪
|
|
||||||
|
|
@ -1,117 +0,0 @@
|
|||||||
|
|
||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 非科班,收获满满!
|
|
||||||
|
|
||||||
九月份悄然已过,秋招已经快接近尾声了,星球里已经纷纷有录友开始写这次的秋招总结。
|
|
||||||
|
|
||||||
其中一位录友写的很好,所以想分享出来 给公众号上的录友也看一看,相信对大家有所启发,特别是明年要找工作的录友,值得好好看一看。
|
|
||||||
|
|
||||||
这篇总结首发在代码随想录[知识星球](https://programmercarl.com/other/kstar.html)上,立刻就获得了60个赞,很多评论,我这里放出一个截图:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
以下是星球上该录友的总结:
|
|
||||||
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
211本硕非科班菜鸡转码不到一年,从最开始的迷茫到后面认识到差距的焦虑再到后面逐渐恢复坦然的心态,一路起起伏伏,但也算连滚带爬的趟了过来,**感激一路上耐心为我答疑解惑的各路大佬,尤其是咱们卡哥哈哈**。
|
|
||||||
|
|
||||||
秋招收获如下(按收到意向顺序):
|
|
||||||
|
|
||||||
* 诺瓦星云 西安 软件开发工程师 提前批意向书
|
|
||||||
* 字节跳动 抖音客户端开发工程师 提前批意向书
|
|
||||||
* 滴滴 网约车部门后端开发工程师C++/Go 提前批意向书
|
|
||||||
* 腾讯 IEG光子工作室技术中心测试开发 正式批意向书
|
|
||||||
* 美团 基础研发平台后端开发工程师JAVA 正式批意向书
|
|
||||||
* 阿里 阿里云计算平台后端开发工程师C++ 正式批意向书
|
|
||||||
|
|
||||||
被终结的岗位:
|
|
||||||
* 蔚来 提前批后端三面挂
|
|
||||||
* 百度/京东 后端提前批无音讯,正式批笔试我就都拒了
|
|
||||||
* 网易 正式批一面过,但感觉不喜欢,二面就放弃了
|
|
||||||
* 虾皮 提前批二面挂(北京hc太少,卷不动,秋招甚至直接不放岗)
|
|
||||||
* 蓝湖 提前批二面挂(面完字节三面之后半个小时紧接着蓝湖二面,字节面了两个小时,人都麻了,强烈建议大家面试不要排太挤!!)
|
|
||||||
* 招银网络 正式批一面过,二面放弃
|
|
||||||
* 商汤、oppo、知乎 提前批简历挂,后面懒得投了
|
|
||||||
|
|
||||||
# 秋招历程
|
|
||||||
|
|
||||||
## 开始准备
|
|
||||||
|
|
||||||
最开始的准备是从**去年十月份左右开始**,那个时候刚开始意识到自己将来找工作的问题,就选择了一门自己相对来说有一些基础的C++开始入手学习,看到网上的很多经验都说语言不是最大的问题,能学好一门后面转型都很快,所以并没有在这个问题上有什么纠结,大家看我拿到的岗位也可以发现事实确实如此。
|
|
||||||
|
|
||||||
**从十月份开始看C++ Primer这本书**,断断续续花了三个多月,确实拉胯。
|
|
||||||
|
|
||||||
当时主要是事情太多,而且我在熟悉完主要的语法和特性之后,大概一个月的时间吧,就开始上手刷leetcode了,入门真的很痛苦,递归啥的看一遍忘一遍,一天吭哧吭哧弄下来也就两三道题,还基本都不是自己写出来的,因为我光理解别人的方法就需要很长时间。
|
|
||||||
|
|
||||||
**后面刷题解刷到了卡哥,着实幸运,跟着卡哥的题解我也逐渐有了自己的方法模式和比较规范的代码风格**,所以到后面尽管有时候会发现也会有比卡哥更好的方法,我还是愿意先上手走一遍卡哥的思路,之后再补充别的。
|
|
||||||
|
|
||||||
**不得不说,题解能跟住一个人确实很有必要**,有的题卡哥没有出题解,我也是先找到之前卡哥类似的题目找思路,再自己写出来。整个刷题的流程持续到过年,我就开始刷剑指offer了,基本简单题都可以撕,中等困难的还是只能看题解。
|
|
||||||
|
|
||||||
我个人的经验是不愿意在思考题解上浪费太多时间,**如果打眼一看就知道自己不太可能做出来,我会选择直接看题解**,省下的时间哪怕自己多敲两遍也比对着屏幕发呆效率高,毕竟面试考察的不是你创造算法的能力,会用就行了,当然这只是个人见解,大佬息怒。
|
|
||||||
|
|
||||||
刷完剑指offer大概花了半个月的时间,**时间也来到了三月份**,周围的不少人已经开始找春招实习,但更多的人还是和我一样,由于各种原因没法去找实习。
|
|
||||||
|
|
||||||
这个时候各种情绪都会有,焦虑,迷茫,没办法,改变不了现实情况只能尽可能的提升自己。
|
|
||||||
|
|
||||||
这个时候我的算法已经比较熟练了,基本一天不用太多时间也能过四道题,尽管其中仍有不少是对着题解敲的,但是对别人思路的理解确实已经练得轻车熟路了,我觉得这也是一种进步吧。
|
|
||||||
|
|
||||||
**四月份开始准备项目**,没错,就是烂大街的webserver,大家都知道这个项目烂大街,但是经过后面的各种面试我也发现,不管你是什么项目,对于面试官来说都很基础。
|
|
||||||
|
|
||||||
哪怕是大厂实习的人又有几个能接触到核心,当然这也是对大部分人说的,实习大佬勿喷。**所以面试考察的就是你对基础的掌握**,就算你讲了项目各种高大上的方法,虽然可能有加分,但也是在给自己埋坑。
|
|
||||||
|
|
||||||
比如面试官可能问你有没有看过这个技术具体实现源码等等。
|
|
||||||
|
|
||||||
**把自己捧的越高,一旦被发现基础有漏洞,摔得也越惨**,面试官对每个人都会有一个心理预期,比如我可能就因为非科班占了一些心理预期比较低的便宜,也就是不容易让对方失望,客户端我0基础,测开0基础,但是都过了,当然像我这样的坏处就是offer大概率只是白菜,所以综合来看有利有弊,大家自己权衡。
|
|
||||||
|
|
||||||
|
|
||||||
**搞这个webserver连带各种计网,操作系统的学习花了两个月的时间**。之后便开始了面向面经自习的流程。
|
|
||||||
|
|
||||||
这个时候算法题基本不再做新的了,力扣累计刷题已经接近400,我知道里面不少题就算再拿给我,我也不一定会做,所以做新题有什么意义呢,能把之前的高频题,热题刷好就已经超过很多人了。
|
|
||||||
|
|
||||||
因为之前做题都是自己按标签做,后面看到卡哥出了系列题解,基本都是我之前做过的,所以**花了一周左右就把卡哥的pdf全过了一遍,帮助很大**。
|
|
||||||
|
|
||||||
## 提前批
|
|
||||||
|
|
||||||
**后面六七月份的提前批我参与的不是特别积极**,和大多数人一样,我也总想着自己还没准备好,但是总得跨出第一步,所以就先找了一些小厂练手。
|
|
||||||
|
|
||||||
不过牛客上投的小厂基本都没有音讯,真正想投递还是官网最靠谱。
|
|
||||||
|
|
||||||
诺瓦是我的第一份offer,所以尽管我大概率去不了,我依然心怀感激,**因为经历过的人都知道第一份offer对于一个迷茫的秋招生来说是多么的宝贵**。
|
|
||||||
|
|
||||||
后面拿到字节和滴滴我着实没有想到,因为感觉自己的表现还有待提升,但能过肯定是开心的。
|
|
||||||
|
|
||||||
**提前批没有笔试,所以七月份的提前批窗口确实非常宝贵**。
|
|
||||||
|
|
||||||
## 正式秋招
|
|
||||||
|
|
||||||
八月份之后就比较正常了,基本就是笔试,面试等等,**可以分享的一点是腾讯、阿里这种大厂不是特别看重笔试**,因为很多人在笔试之前就走完面试流程了,但是对于有一些劣势的同学还是希望能认真对待笔试,争取让自己多一个闪光点。
|
|
||||||
|
|
||||||
后期的算法题主要都集中在高频题、热题上面,所以还是应该把剑指刷好,配合别人分享的面经来巩固,**卡哥的算法pdf可以多看多复习**,就算没有考到也会让自己安心一些。
|
|
||||||
|
|
||||||
同时对于基础知识的整理更多的应该从面经中获取,我个人秋招下来总共看了得有至少500份面经,其实别人的面经和自己面试没啥区别。
|
|
||||||
|
|
||||||
同时也因为看了太多的面经,我自己的面经就不需要太多的整理了,除了一些没答上来的关键问题,因为基本都被之前的涵盖了,所以与其海投参加一些不靠谱的面试,倒不如整理十份面经来得实在。
|
|
||||||
|
|
||||||
参加面试主要是锻炼临场的心态,但是大厂和小厂的面试确实是有区别的,所以大厂的面经一定要多看多整理。
|
|
||||||
|
|
||||||
|
|
||||||
## 感想
|
|
||||||
|
|
||||||
一口气写下来就已经2000字了,最后还是多说两句,分享一点感想吧。
|
|
||||||
|
|
||||||
**除了超级大佬,基本每一个秋招生都会有过迷茫,焦虑的心路历程**。
|
|
||||||
|
|
||||||
一方面我们需要认识到自己的局限性,认清现实。
|
|
||||||
|
|
||||||
另一方面也应该看到自己能改变的现实,许多人的时间真的只是在盲目的焦虑中虚耗,这是一个死循环,浪费的时间越多后面只会越焦虑,唯一的方法就是打起精神行动起来。当然也不用把自己逼的太紧,找到合适的排解方式,比如打会儿球打会儿游戏,让自己运行在一个正确的,符合自己节奏的轨道上不断前进。
|
|
||||||
|
|
||||||
**面试是玄学,有些人的就是难,有些人的就是简单**,没有人能保证你每次都简单,但也不会每次都难,我们努力提升实力只是为了能创造更多机会,并在机会出现的时候把握住。
|
|
||||||
|
|
||||||
我觉得一个人最大的幸运就是付出的努力能有收获,所以我希望大家都能幸运地结束秋招,也希望我能继续不忘初心,保持谦逊。秋招只是人生的一段小插曲,未来的路还有很长很长,写下这篇流水账结束我的秋招,也希望能与诸君共勉,加油!
|
|
||||||
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 非科班的困扰!
|
|
||||||
|
|
||||||
在[知识星球](https://programmercarl.com/other/kstar.html) 里很多录友都是非科班转码的,也是要准备求职,或者准备明年秋招,非科班的录友其实对 准备找工作所需要的知识不太清楚,对其难度也不太清楚,所有总感觉准备起来心里没有底。
|
|
||||||
|
|
||||||
例如星球里有这位录友的提问:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
我在知识星球里,给出了详细的C++后端学习路线,包括计算机基础的学习路线,
|
|
||||||
|
|
||||||

|
|
||||||

|
|
||||||
|
|
||||||
当然路线很长,这里我就截图了一部分。
|
|
||||||
|
|
||||||
但即使这样,其实非科班的录友也不容易量化具体的工作量究竟多大。
|
|
||||||
|
|
||||||
以下是我对这位录友的回答:
|
|
||||||
|
|
||||||
----------------
|
|
||||||
|
|
||||||
具体学习时间 一般是不好量化的。
|
|
||||||
|
|
||||||
一本书,有的同学 一周就看完了,有的同学 两个月看不明白,**基础程度,学习速度,每天的投入时间,以及效率**都是不一样的。
|
|
||||||
|
|
||||||
**所以要靠自己 规划时间,自己是最了解自己的**。
|
|
||||||
|
|
||||||
C++primer 不要耗太久,差不多就去看 effective C++。
|
|
||||||
|
|
||||||
还有计算机求职需要准备的知识不是线性排列的。
|
|
||||||
|
|
||||||
例如很多非科班的录友可能会这样安排: 几个月搞定编程语言,几个月搞定算法,几个月搞定操作系统!
|
|
||||||
|
|
||||||
**如果这么学的话,那就凉凉了**。
|
|
||||||
|
|
||||||
求职准备主要围绕这么几块:编程语言 + 算法 + 计算机基础(操作系统,数据库,网络,设计模式)+ 项目 。
|
|
||||||
|
|
||||||
**这几块都可以一起搞的,一天都要分配点时间,知识错开点来学,效率更高**。
|
|
||||||
|
|
||||||
每一块知识,每天都要投入一点,例如,例如一天算法几个小时,编程语言几个小时,计算机基础几个小时,项目几个小时,这样分配,当你发现 操作系统比你想象中的难,你就 下周及时调整计划,操作系统每天多分配时间。
|
|
||||||
|
|
||||||
**正常的学习节奏是这样根据自己的掌握程度动态调整的**。
|
|
||||||
|
|
||||||
在整体进度上,可以先保证都过一遍,第一遍看的时候,不要死扣细节,会非常耽误时间,先过一遍有整体性的把控 更重要。
|
|
||||||
|
|
||||||
之后在针对面经或者八股文,去一个难点一个难点的攻克。
|
|
||||||
|
|
||||||
希望对非科班的录友们有所启发,加油💪
|
|
||||||
|
|
@ -1,45 +0,0 @@
|
|||||||
<p align="center">
|
|
||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
|
||||||
<img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
# 面试中遇到发散性问题,应该怎么办?
|
|
||||||
|
|
||||||
这周在[知识星球](https://programmercarl.com/other/kstar.html)有一位录友问了我这么一个问题,我感觉挺有代表性的,应该不少录友在面试中不论是社招还是校招都会遇到这一类的问题。
|
|
||||||
|
|
||||||
问题如下:
|
|
||||||
|
|
||||||

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

|
||||||
|
|
||||||
|
这个图是 [代码随想录知识星球](https://programmercarl.com/other/kstar.html) 成员:[海螺人](https://wx.zsxq.com/dweb2/index/footprint/844412858822412),所画,总结的非常好,分享给大家。
|
||||||
|
|
||||||
考察链表的操作其实就是考察指针的操作,是面试中的常见类型。
|
考察链表的操作其实就是考察指针的操作,是面试中的常见类型。
|
||||||
|
|
||||||
链表篇中开头介绍[链表理论知识](https://programmercarl.com/0203.移除链表元素.html),然后分别通过经典题目介绍了如下知识点:
|
链表篇中开头介绍[链表理论知识](https://programmercarl.com/0203.移除链表元素.html),然后分别通过经典题目介绍了如下知识点:
|
||||||
|
Reference in New Issue
Block a user