当前位置: 首页 > news >正文

埋头代码,开口成长

在小组讨论时被问到 “你能解释这个代码逻辑吗” ——突然意识到,程序员最难的Bug是“说不清楚”。

以前一直认为,程序员不是会技术就行了吗?后来了解到程序员还需要良好的理解能力、沟通能力和语言组织、表达能力,他们在工作中经常需要和同事交流协作,理解产品经理和项目经理的需求描述,向领导汇报工作情况等。对于一个嘴笨社恐人士来说,这真的是一场考验。并且我听一位老师说 “互联网是‘e人’的主战场” ,这句话说对了一半,‘e人’ 可能在沟通和表达上有天然的优势,‘i人’ 的表达能力也可以很优秀,甚至优于天生的 ‘e人’

我属于是埋头苦学的类型,语言表达能力比较弱,但幸运的是我才大一,现在意识到问题还不晚,剩下的交给行动。好,说干就干!从今天开始我会和我的好朋友,发语音用自己的话讲一个知识点,这样做既能锻炼表达能力,也是对知识点的巩固。

第一天

我:

进程和线程的概念及区别(44s+35s)

CPU是计算机的大脑,它负责执行使用者给出的各种指令和任务,这些任务就叫做进程。一个进程可以包含一个或者多个线程。这里可以看出,进程是一个比线程更大的单位,所以创建和销毁进程的开销要比创建和销毁线程的开销要大得多。CPU执行这些进程的时候,是需要消耗内存和文件这些资源的,这些资源由操作系统来分配。进程是操作系统分配资源的一个基本单位,每个进程都会被分配到一定的资源,然后一个进程里面的若干个线程就共享这套资源。

friend:

普通for循环和foreach循环的区别(36s)

普通for循环和foreach循环,它们都能完整地遍历集合或者数组,但它们的本质底层不同。普通for循环是依靠索引下标访问,然后可以自由地控制便利的范围以及修改元素。而for each是基于迭代器的,他只能从头到尾遍历,然后遍历的过程中它不能增删元素。

找不足

(以下总结为自己、friend、豆包、deepseek的评价整合)

有些地方卡顿(分两段也是因为卡太久了),语句衔接不连贯,还有点啰嗦

讲了进程包含线程,但把最重要的线程的核心定义 “线程是CPU调度的基本单位” 给漏了

进程和线程的核心区别未提及——进程之间资源独立,互不影响(一个崩溃不影响另一个),线程共享资源,一个线程崩溃可能导致整个进程崩溃

语句通俗但缺乏严谨性,比如 “进程就是任务” 的表述不严谨,正确表达是 “进程是承载任务的载体” ,它是运行中的程序实例

错误表述:CPU不直接消耗资源,是进程在消耗

还有最致命的一点,带有 “吧” 字,显得不够自信,对知识点掌握不扎实,这要是面试,会给面试官留下不好的印象。

friend说不会读Iterator,准确来说是读音不标准(俺也一样),所以没有指明是哪个迭代器

语言简炼但有一处漏洞:数组没有迭代器,foreach编译直接转为下标普通for,而集合实现Iterable接口,foreach底层依赖迭代器Iterator

改良版

(重新组织语言)

CPU是计算机的大脑,它负责执行各种指令。进程是运行中的程序实例,也是操作系统分配资源的基本单位,线程是CPU调度的基本单位。一个进程可以包含多个线程,进程间资源独立,互不影响,但是一个进程中的线程之间,他们共享该进程中的资源,一个线程崩溃可能导致整个进程都崩溃,由于进程是比线程更大的单元,所以创建和销毁进程的开销比较大,创建和销毁线程的开销小。

普通for循环和foreach循环都能完整地遍历数组和集合,但它们的底层实现与使用限制存在本质区别。普通For循环依靠下标索引访问元素,灵活性很强,可以自定义便利范围,实现倒序或间隔便利,也能通过下标直接修改元素,foreach属于Java的语法糖,它的底层逻辑分两种情况,遍历集合时会基于iterator迭代器进行遍历,只能从头到尾顺序读取全部元素,遍历图中执行增删操作会抛出并发修改异常。

当数组本身没有原生迭代器,使用foreach去遍历数组时,编译器会自动将代码转化为下标循环。此外,foreach是无法获取元素下标的,它只适合仅需读取数据的场景代码,书写起来会更加简洁,而普通for循环是适配所有需要灵活控制遍历逻辑,或者修改容器元素的场景。

第一次试着把知识点讲出来,感觉跟写博客分享知识有很大的区别,博客我可以想好一句话再写,写完还可以修改,但在60s语音里需要的是 “即时表达” 的能力,这对我平时与人沟通交流也有好处

并且通过复盘整理,我对知识点的掌握也深了不少,降低了复习的成本

http://www.cnnetsun.cn/news/3671457.html

相关文章:

  • UE5对话系统开发指南:从数据驱动到高级集成的完整实现方案
  • 【Python毕业设计】基于 Python 的智能化车辆故障记录与排查辅助系统 车队车辆故障运维管理信息系统实现(源码+文档+远程调试,全bao定制等)
  • Preference Orchestrator: Prompt-Aware Multi-Objective Alignment for Large Language Models
  • 基于DirectX Raytracing的实时光线追踪实践:从DXR API到渲染管线搭建
  • AlphaFold如何革新蛋白质结构预测与生物研究
  • AI论文降重与AIGC检测规避双降方案
  • Gemini生成的表格怎么复制下来?AI导出鸭横评四方案破局
  • 冰球数据分析:机器学习模型架构与实战应用
  • 数据集划分与交叉验证方法|留出法+K折+分层K折+时序划分对比
  • AI Agent 面试题 578:如何设计多Agent系统的协作模式自适应切换?
  • 基于YOLOv8的输电线路智能检测系统实践
  • Kivy应用打包APK完全指南:Windows环境下的踩坑与解决方案
  • UE5场景搭建革命:基于UMG拖拽与数据驱动的可视化编辑系统设计
  • AI电话机器人:NLP与词云技术的智能客服实践
  • 从 0 到 1 搭建 Agent 团队:技术选型、架构决策和人员配置
  • AI投资新范式:技术验证如何重塑风险投资决策机制
  • AI视频端到端闭环实战手册:12个真实客户案例,87%降本增效达成率,含可即插即用的FFmpeg+Diffusion协同配置模板
  • Kimi K3技术解析:长文本处理与算力优化实战指南
  • 仅限内部技术委员会解密:GitHub Copilot Enterprise vs Amazon CodeWhisperer Pro —— 在CI/CD流水线中触发编译失败的真实概率对比(附原始日志包)
  • 紧急预警:新版《网络视听节目AI生成内容标识规范》实施倒计时!有声书作者必须立即执行的4项改造
  • AI生成娱乐视频效率提升300%:2024年头部MCN都在用的5步工作流
  • Python深度学习实战:YOLOv5智能宠物识别系统
  • 【AI周末闲话】当AI点了“确认执行“之后,谁为结果负责?
  • 考试精华:系统架构设计师核心概念汇总(七)
  • glyph-brush实战指南:优化游戏与应用中的文本渲染
  • 雷达硬件加速器状态机与触发机制:从原理到实战配置
  • MultiStatePage实战技巧:如何优雅处理网络请求状态管理
  • 告别手动编辑!zotero-format-metadata的富文本标题编辑与快捷键使用技巧
  • 实时动作分析系统:融合时空卷积与姿态估计的智能健身方案
  • 3分钟掌握BilibiliDown:最实用的B站视频下载器使用指南