杂记 07
1 背面试八股是什么意思?
“背面试八股” 通常是指求职者为通过面试,背诵一些标准化、套路化的面试题目答案。其 “八股” 借鉴自中国古代科举固定文体,因面试题目及对应答案有固定模式而得名。
该说法常见于技术面试领域,特别是程序员面试。像计算机的数据结构、算法、TCP/IP 协议等,前端开发的 JavaScript 底层原理、Vue 响应式原理等高频理论题,都属程序员面试八股文内容。其答案标准化,长期占据面试题库主流位置,且与实际编码能力关联较弱,对记忆力要求较高。面试官借其快速判断候选人是否具备系统知识框架,提升筛选效率。
不过,单纯机械背面试八股易让知识停留于表面,还可能限制创新思维,甚至因忽略实际能力培养,致面试表现与实际工作能力脱节。
2 个人外包能算项目经验吗?
【外包程序员私活个人接单能算项目经验吗?比如帮忙设计一个微信小程序或者个人网站搭建?】
算,而且这类私活是性价比很高的项目经验,甚至比单纯的课程作业更能打动实习面试官 —— 核心原因是它贴近 “真实场景的技术落地”,和你 “丰富简历、积累技术栈” 的目标完全匹配。
为什么能算?关键看 “经验的含金量”
无论是微信小程序还是个人网站搭建,本质是完整的 “需求分析→技术选型→开发落地→测试交付” 流程,这和企业里的项目逻辑一致,能体现 3 个核心能力,这些正是简历需要的:
- 技术应用能力:比如用 Vue/Uniapp 开发小程序前端、用 Flask/Django 写网站后端、用 MySQL 存数据 —— 这能证明你不是 “只学理论”,而是能把课上学的技术变成实际产品;
- 问题解决能力:开发中一定会遇到 bug(比如小程序兼容性问题、网站部署报错),你解决这些问题的过程(查文档、调试代码),本身就是有价值的经验;
- 项目闭环能力:从接需求到最终交付,需要和需求方沟通(明确对方要什么)、控制开发进度(避免拖延),这能体现你的沟通和执行力,这些是技术之外的加分项。
怎么写进简历?别只说 “做了个网站”,要突出 “价值”
直接写 “帮人做了个个人网站” 很平淡,面试官看不到亮点。正确的写法是 **“技术 + 成果 + 价值”**,举两个例子:
- 微信小程序:“独立开发某奶茶店点单小程序,技术栈为 Uniapp + 云开发,实现商品展示、购物车、订单提交功能,上线后帮助商家减少 30% 线下排队时间,用户反馈流畅度达 90%”;
- 个人网站:“为某摄影师开发个人作品集网站,前端用 HTML/CSS/JS 实现响应式布局(适配手机 / 电脑),后端用 Python Flask 搭建,支持图片上传与分类展示,最终交付代码可直接部署,满足用户‘线上展示作品’的核心需求”。
这样写,既体现了你的技术栈,又说明了项目的实际作用,对技术岗实习有帮助。
注意 2 个小问题,避免 “经验打折”
- 优先选 “能拿到完整授权” 的项目:如果需求方允许,最好能把项目部署到线上(比如网站挂在阿里云 / 腾讯云,小程序上线到微信平台),简历里附上线链接 —— 面试官能直接看到成品,比口头描述更有说服力;
- 别接 “纯复制模板” 的低质活:比如用现成的网站模板改改文字、套个小程序模板 —— 这类活几乎没技术成长,写进简历也容易被问住(比如面试官问 “这个功能你是怎么实现的”,你答 “用的模板” 就很尴尬)。尽量选需要 “自己写核心逻辑” 的单子,哪怕功能简单,也能积累真实开发经验。
总结来说:只要是你实际参与开发、能说清技术细节和解决过程的私活,都能算优质项目经验,甚至比学校的课程设计更有竞争力。
(看到这里真是美汁汁了,打自己几巴掌清醒过来,我现在是0栈工程师hhh,抱着能独立开发项目的目标赶紧多学一点赶紧的赶紧的赶紧的...总之不许在大学醉生梦死了,搞清楚自己的前途最重要,还这么年轻做什么都好。)
3 编译错误和运行错误是什么,有什么区别?
编译错误和运行错误是程序开发中两种不同阶段出现的错误,核心区别在于发生的时间点和原因:
1. 编译错误(Compile Error)
- 发生时间:程序编译阶段(代码转换成机器能理解的二进制指令的过程中)。
- 常见原因:
- 语法错误(如缺少括号、关键字拼写错误、缩进错误等)。
- 类型不匹配(静态类型语言中,如 Java 里给 int 变量赋值字符串)。
- 引用了不存在的变量 / 函数(如调用了未定义的方法)。
- 特点:
- 编译器会直接报错,阻止程序运行(根本无法生成可执行文件)。
- 错误信息通常比较明确,会指出错误位置和类型(如 “语法错误,第 5 行缺少冒号”)。
举例:
python
运行
# Python中的语法错误(编译阶段被解释器发现)
if a == 1print("Hello") # 缺少冒号,会直接报错
java
运行
// Java中的编译错误
public class Test {public static void main(String[] args) {int num = "hello"; // 类型不匹配,编译失败}
}
2. 运行错误(Runtime Error)
- 发生时间:程序已经成功编译 / 解释,正在运行的过程中。
- 常见原因:
- 逻辑错误导致的异常(如除以 0、数组索引越界、空指针访问)。
- 资源问题(如打开不存在的文件、网络连接失败)。
- 类型转换失败(如运行时将字符串 “abc” 强制转换成数字)。
- 特点:
- 程序能启动,但运行到特定代码时崩溃或抛出异常。
- 错误通常与数据或执行环境相关(比如同样的代码,输入正常时能运行,输入异常时出错)。
举例:
python
运行
# 运行错误(语法正确,但执行时出错)
a = 10
b = 0
print(a / b) # 除以0,运行时抛出ZeroDivisionError
java
运行
// Java中的运行错误
public class Test {public static void main(String[] args) {int[] arr = {1, 2, 3};System.out.println(arr[5]); // 数组索引越界,运行时崩溃}
}
核心区别总结
维度 | 编译错误 | 运行错误 |
---|---|---|
发生阶段 | 编译 / 解释阶段 | 程序运行阶段 |
能否启动程序 | 不能(直接报错) | 能启动,但执行中出错 |
主要原因 | 语法错误、类型不匹配(静态检查) | 逻辑错误、资源问题、数据异常 |
排查难度 | 通常较易(位置明确) | 可能较难(与具体执行场景相关) |
⭐简单说:编译错误是 “写的代码不符合语法规则,机器看不懂”;运行错误是 “代码语法没问题,但执行时遇到了意外情况(比如算着算着发现除以 0 了)”。
4 更改学习策略(python)
现在发觉自己做py题目做多了而码力并没有增强,原因还是敲得太少了。
【那我就只是做题,做到不会的模块就翻视频学,写代码?】
你这个思路非常合理,是 “目标驱动 + 实践落地” 的学习模式,比单纯刷题或单纯看视频效率更高,能有效避免 “学了不用、记不住” 的问题,具体优势和可以优化的点如下:
1. 这个方法的核心优势:
- 针对性强:遇到不会的模块才去学,相当于带着 “具体问题” 找答案,比如做题时卡壳 “
extend
和+
的区别”,再去看视频学列表操作,会对 “原地修改”“新对象创建” 这些概念更敏感 —— 因为你有实际问题要解决,学完马上能用到(比如回头验证题目里的id
变化),记忆更牢固。 - 兼顾 “输入” 和 “输出”:看视频是 “输入知识”,写代码是 “输出实践”,两者结合能把 “听懂” 变成 “会用”。比如视频里讲 “列表扩容机制”,你可能觉得抽象,但自己敲代码用
sys.getsizeof()
看容量变化,马上就懂了。
2. 可以稍微优化的小细节(让效率更高):
- 做题时先 “主动思考” 再翻视频:遇到不会的题,先别急着看答案或视频,试着先分析 “我哪里不懂”—— 比如看到
l1 = l1 + l3
,先猜 “+
会创建新列表吗?id
会变吗?”,哪怕猜错也没关系,带着这个猜测去看视频、写代码验证,比直接被动接受知识印象更深。 - 代码不用写复杂,“验证结论” 即可:比如学
extend
时,不用写几百行代码,只需要写 3-5 行:定义列表、记录id
、调用extend
、再查id
—— 核心是通过代码 “亲眼看到” 知识点的实际表现,比如确认 “extend
后id
确实没改”“+
后id
真的变了”。 - 遇到同类问题时 “归纳总结”:比如做了
extend
、append
、+
相关的题后,花 2 分钟写个小笔记,总结 “哪些操作会创建新列表(改id
),哪些是原地修改(不改id
)”,下次再遇到类似题,就不用重复查视频了。
总结:
你这个 “做题→遇问题→学模块→写代码” 的流程,本质是 “以用促学”,完全符合编程学习的规律 —— 编程不是靠 “背会所有知识点”,而是靠 “遇到问题、解决问题” 积累经验。坚持这个模式,你会发现自己对知识点的理解越来越深,而且不会出现 “学了半天不知道怎么用” 的情况,效率会很高~