二本程序员就进不去字节跳动?真的不是学历歧视啊!(程序员经常出现的误区)

本文分析了字节跳动的程序员招聘要求,指出学历并非唯一标准,大厂重视候选人的实际技能和经验。强调了简历细节、算法准备、项目亮点和基本功的重要性。建议应聘者加强算法题训练,注重理论基础,深挖项目经验,并分享了学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字节跳动

【岗位职责】
1、负责公司设备、推送、分享、红包、账号、IM、地理位置等客户端技术中台的建设和优化,完成高质量编码和测试工作;
2、负责公司核心产品(今日头条/西瓜/小说等)的技术中台模块功能研发和优化,深入参与产品需求讨论,功能定义等;
3、设计良好的代码结构,不断迭代重构;
4、用户增长、用户体系、垂直业务中台等技术研究,承担重点、难点的技术攻坚。

【岗位要求】
1、本科及以上学历,计算机、通信等相关专业;
2、熟练掌握Java/Kotlin/C++,熟悉Android SDK/NDK;
3、一年以上Android开发经验,能独立开发Android App;
4、具有扎实的编程功底,良好的设计能力和编程习惯;
5、优秀的沟通及表达能力,有一定的产品和业务sense;
6、能够快速的学习新的知识并应用到产品者优先,有良好的抗压能力。

薪酬:30K-50K  |  学历要求:本科及以上  |  工作年限:1年以上

程序员经常出现的误区

1.所有的大厂都很看重候选人的教育背景和工作背景,所以有大厂工作背景或者高学历背景的话,还是有一定优势的。当然了,如果学历上有欠缺,也不要太担心,还是有机会的,不是我替字节说好话,而是它家的心态相对还是很开放的。

2.一定要注重简历的细节,不要觉得没必要, 要知道,同一个岗位,向字节、阿里这样大厂投递的简历非常多,如果自己的能亮眼一点,当然翻牌的机会就无形当中增加了。

3.字节的加班怎么说呢,据有些朋友的反馈,还是挺狠的,毕竟给的钱多。但做研发,首选的还是去大厂吧,毕竟大厂更尊重技术,尤其是薪资上,会有优势,另外,大厂的用户量大,有更好的技术应用场景,高并发、高性能,哈哈。

4.大厂对算法都比较痴迷,这个没办法,字节也不例外,所以多刷面试题,多背八股文还是有帮助的。

学习技能

算法题
事先已经看过别人的社招面经知道头条每轮技术面都有算法题,而这一块平时练习的比较少,校招时刷的题也忘记了很多。因此系统复习的时候算法题还是花了比较多时间的。先是快速刷完了剑指 offer,这个校招时已经刷过两遍了,因此现在刷起来会相对快一些。然后就是啃 LeetCode 的题了,LeetCode 的题比较多,想在短短几周内刷完基本是不可能的,因此我主要按照类型去刷,每个类型刷几道就会比较有感觉了。
我给大家整理了一些比较经典的,如果你有需要可以免费获取一下:

自行领取直达链接:【点击获取

需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。
数据结构与算法 字节跳动
理论基础
基础这一块主要以快速复习为主,校招这一块会问的比较多,社招这一块问的比较少,但是如果这一块打不上来就比较尴尬了。
大学1-4年 架构师筑基必备

深挖项目

没有参与开源项目的经验,工作中做的项目也很一般,项目这块我实在没什么太多拿的出手的,不过还是要挖掘一下,毕竟这一块是逃不掉。我说几个我思考的点吧:

1.找项目中相对而言具有亮点的地方。可以将其考虑全面可以展示出自己具有一定的架构能力。
2.找项目中复杂的地方。如果你做的项目中有复杂的地方,即使不是你做的,也可以拿来说,前提是你要搞得非常清楚了。
3.量化指标。一个接口原来有性能问题,比如你做了一个小的优化,将其 TP99 的耗时从原来的 500ms 优化至 200ms。
4.赋能整个团队。在开发业务的过程中肯定会遇到一些重复的工作,或者可以复用的服务。你可以开发了某个工具或者服务化了某个功能推广到了全组使用,给公司创造了价值。

须知

  1. 怎么考算法呢?一般会分两步,第一步是直接让你说思路,第二步是让你直接上手写代码。字节跳动的算法题一般对应的是 LeetCode 中级模式,要通过面试,你肯定得花时间好好准备。

  2. 写算法代码的时候,你可以用白板,也可以用电脑,都行。常见的模式是给你 20 分钟时间,让你写出来某道题的解法。当然,肯定是越快做出来越好,这能说明你的熟练程度。

  3. 如果题目没做出来,千万别觉得自己是紧张。紧张是借口,核心还是不熟练,没有精通。知道分子,一无是处,专业和熟练才是关键。

  4. 写代码的时候,千万别以为只是看你算法能力。面试官还会通过这个环节考察你的编程习惯,比如变量名是不是爱用中文拼音,代码结构是不是很烂。等等。

  5. 学历这块的话,和大多数互联网公司一样,本科起步。学校好是加分项。

从这些沟通结果上看,字节更多是考察技术人员的基本功,基本功扎实,人足够聪明,又具备一定的软技能,那就可以做技术相关的任何事,他们对这一块的要求是专业和熟练。做知道分子是不行的。

自行领取直达链接:【点击获取

B站资源

B站系列学习视频
BATJAndroid视频合集第-面试集锦】 算法+Java基础+架构+(1-15持续更新…)

<think>好的,我现在要解决用户在IAR编译器中遇到的错误:“incomplete type is not allowed”。首先,我需要理解这个错误的含义和常见原因。根据我的知识库,这个错误常发生在代码中使用了未完全定义的类型,比如结构体或联合体声明了但未定义,或者前向声明了某个类型但没有提供完整的定义。 首先,我应该检查用户代码中是否有结构体或联合体的声明但没有定义的情况。比如,如果有一个结构体声明为`struct MyStruct;`,但没有后续的完整定义,那么在需要该结构体大小或成员的地方,编译器就会报这个错误。这时候,需要用户补全结构体的定义,包括成员变量。 其次,检查是否在头文件中只声明了类型而没有包含定义。例如,如果在头文件中使用前向声明,但在使用该类型的源文件中没有包含实际的定义头文件,这也会导致错误。此时,需要确保在使用类型的地方包含了正确的头文件,或者将前向声明替换为完整的定义。 另外,还要考虑typedef的问题。如果用户使用了typedef创建别名,但原始类型未完全定义,同样会引发错误。例如,`typedef struct MyStruct MyType;`之后,如果尝试使用MyType但MyStruct尚未定义,就会出错。需要确保在使用typedef之前,原始类型已经被完整定义。 此外,数组声明中的类型不完整也是一个常见原因。比如声明数组时,如果元素类型未完全定义,编译器无法确定数组的大小,导致错误。需要检查数组声明中的类型是否已经完整定义。 可能还有其他情况,比如在C和C++混合编程时,如果没有正确使用extern "C",或者在头文件中遗漏了必要的包含,也可能导致类型不完整。需要用户检查这些方面。 接下来,我需要将这些可能的原因整理成清晰的解决步骤,并给出具体的代码示例,帮助用户理解如何修改。同时,根据用户提供的引用内容,虽然引用[1]和引用[2]是关于其他错误的,但用户可能希望看到类似的结构,即分点说明解决方案,并引用相关资源。 最后,生成相关问题,帮助用户进一步了解可能相关的编译错误,比如类型未定义、前向声明问题等。这样用户可以有更全面的认识,预防其他类似错误的发生。</think>### IAR编译器错误'incomplete type is not allowed'解决方案 该错误表示代码中使用了**未完全定义的类型**,编译器无法确定其内存布局或成员信息。以下是具体原因及解决方法: #### 1. 结构体/联合体未定义完整 若声明了结构体但未定义成员,在实例化时会报错: ```c struct MyStruct; // 前向声明不完整 struct MyStruct var; // 错误:使用未完成类型 ``` **解决方案**:补全类型定义 ```c struct MyStruct { int id; char name[20]; }; ``` #### 2. 头文件包含缺失 当跨文件使用类型时,需确保定义可见: ```c // file.h struct Data; // 前向声明 // file.c struct Data { // 实际定义 int value; }; ``` **解决方案**:在使用该类型的文件中包含定义头文件 ```c #include "file.c" // 包含实际定义 ``` #### 3. typedef别名问题 使用typedef时原始类型必须完整: ```c typedef struct Node NodeT; // 前向声明 NodeT* ptr; // 允许指针声明 NodeT instance; // 错误:不完整类型 ``` **解决方案**:先完成类型定义再typedef ```c struct Node { int data; struct Node* next; }; typedef struct Node NodeT; ``` #### 4. 数组声明不完整 数组元素类型必须完全定义: ```c struct Element; struct Element arr[10]; // 错误:元素类型未定义 ``` **解决方案**: ```c struct Element { int type; float value; }; struct Element arr[10]; // 合法 ``` #### 调试建议 1. 在IAR工程中搜索错误行号定位问题代码 2. 使用Go to Definition功能追踪类型定义 3. 检查所有头文件包含链 4. 确认没有循环依赖的头文件 编译器需要知道类型的完整信息才能: - 计算sizeof大小 - 分配内存空间 - 访问成员变量 - 进行类型对齐 [^1]: 类似类型转换错误可参考浮点转整型的类型适配问题。
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值