ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

编程题练习30天与计算机英语翻译23天:双线打卡的成长复盘

编程题练习30天与计算机英语翻译23天:双线打卡的成长复盘 有没有过这种经历收藏夹里躺着几十篇“刷题攻略”却连第一页题都没看完背单词App打卡三百天真拿到一份英文技术文档还是读得磕磕绊绊。我之前也这样直到把“编程题练习”和“计算机英语翻译”拆成两条独立的每日打卡线才真正找到能把积累落地的节奏。今天这份记录就是我这段时间实践下来最想分享的东西——写代码的手感没凉啃英文资料的能力也在稳步提升。先交代背景。我这个“Day30 Day23”不是同一天起步的编程题先开跑跑了七天之后觉得光写题不够又把计算机英语翻译练习加上了。所以两个进度差了正好一周。我能明显感觉到前两周纯粹刷题的时候代码逻辑想得越来越清楚但一看官方文档就头痛后来把翻译练习补上再回头看那些API说明、报错信息整个人的阅读状态都不一样了。这篇文章会把这套双线打卡的思路、每天具体怎么练、踩过的坑和怎么调整的完完整整复盘一遍。适合正在刷题但感觉瓶颈明显的人也适合英语底子一般、但被海量英文资料折磨的开发者。不需要多高的基础核心是方法要对。1. 编程题练习Day30从“为了刷而刷”到“带着问题刷”编程题练习这条线我前后持续了三十天。头几天热血上头一天干六七道简单题觉得状态神勇。到第十天左右突然发现简单题做了一堆稍微绕一点的中等题还是没思路这才意识到光靠量堆不出来“题感”。后来把策略改成“精选题目 刻意复盘”这才算真正进入状态。1.1 刷题目标拆解别把“刷题”当成毅力测试很多人觉得刷题就是拼坚持、拼数量其实那是最容易放弃的玩法。到了第30天再回头看我最大的改变是不再把“做对一道题”当成目标而是把“我能从这道题里带走什么”当成目标。具体拆下来编程题练习大概分三层目标第一层熟练基础语法和常用数据结构数组、链表、栈、队列、哈希表这些目标是写代码不卡壳。第二层掌握常见解题范式比如双指针、滑动窗口、动态规划、DFS/BFS目标是见到同类题有下手方向。第三层训练读题、拆解约束条件、设计测试用例的能力目标是上了考场或者接到算法需求时能稳。我前十五天基本在啃第一层和第二层的简单中等题后十五天开始每天固定一道中等题加一道简单题热身。这么做的好处是既有新知识输入又有旧知识保温不容易因为难度突然飙升而心态崩掉。1.2 每日任务量与时间分配不要迷信“每天五道题”网上很多人晒“每日刷题五道 周赛”看着确实燃但实操起来对普通上班族或者学生党来说不太现实。我给自己定的标准是每天至少一道最多不超过三道但每道题都得能讲出个所以然。具体时间分配大概是这样的按每天六十分钟算前十分钟回顾昨天的错题或没想通的解法不看代码、凭记忆重写一遍关键逻辑。中间三十分钟做今天的新题。拿到题先自己思考十分钟没思路就看题解但看完题解必须自己默写一遍不能照着抄。后二十分钟整理笔记。这一步很多人会跳过但我强烈建议别省。把今天题目的解决思路、复杂度分析、最关键的一行代码或一个优化点用两到三句话写下来。周末再把这一周笔记扫一遍比周赛打十场都管用。理由也很简单编程题练习的核心不是“见过多少题”而是“能独立做对多少题”。做题时间压缩、复盘时间拉长看起来进度变慢了实际是在给底层能力打地基。1.3 选什么难度的题最合适舒适区边缘才是最佳练习区如果一直做简单题成长会很慢一上来就啃困难题挫败感会直接打消积极性。我的体会是尽量保持“七成会做、三成需要想”的难度区间。用LeetCode或者类似的题库选的话我一般按照这个思路挑选简单题热身选一道基础数据结构题主要用来保持手感。比如链表的反转、二叉树的前序遍历这类五分钟内搞定算达标。中等题烧脑选一道当前薄弱知识点的题目。比如这周想练动态规划就连续三四天都选动态规划的中等题直到形成条件反射。困难题尝鲜一周两到三次选那些通过率不是特别低的困难题。不要指望一次AC重点是看题解的时候能不能理解状态转移方程为什么这么设计。这个选法配合了“刻意练习”的原则练习的内容必须略高于当前水平但不能高到完全够不着。题做不出来不可怕可怕的是每次都只能靠题解才能做出来那就变成背诵大全了。2. 计算机英语翻译练习Day23程序员学英语的正确姿势编程练习做了一周之后我开始认真考虑把计算机英语翻译加进来。起因是有天读Spring官方文档一个简单的“bean scope”概念愣是读了三遍没捋明白当时就意识到查词典逐句翻都翻不对这英语水平已经严重影响技术学习了。2.1 为什么要练“计算机英语翻译”而不是单纯背单词很多人对程序员学英语的理解是“背单词”但从我自己的经验看背单词对阅读能力提升非常有限。什么“abort”“retry”“fail”这些背起来毫无难度但真正卡住人的往往是一句完整的句子比如The application context is responsible for instantiating, configuring and assembling the beans.这句话里每个单词都认识但如果平时没读过类似的句式很容易翻译成“应用上下文负责实例化、配置和组装这些豆子”——这能看懂才有鬼。计算机英语翻译练习练的其实是两件事一是技术词汇的准确理解二是英文技术文档中常见句式的翻译习惯。我给自己设定的训练方式是每天选一段英文技术文档、源码注释或者知识库内容长度控制在200到400词之间完成三遍式翻译“先通读预翻——再精翻逐句——最后对照参考译文。”坚持下来效果比单纯背单词好太多。2.2 翻译材料怎么选从“看得懂”到“有收获”选材料是这个练习里最重要的一步。选太简单的练不出东西选太难的坚持不了三天。我按照经验排了个难度阶梯大家可以直接用第一周选自己熟悉框架的官方文档片段比如Spring的Bean文档、React的快速入门因为内容领域熟就算英语句子复杂也能靠上下文猜个大概。第二周选GitHub上一些知名项目的README和CONTRIBUTING文档词汇偏实际开发句式也更口语化。第三周以后可以挑战一些偏底层或特定领域的英文文章比如数据库隔离级别、操作系统的进程调度、网络协议的原理说明。这时候词汇量不够的话第一天会非常痛苦但坚持一周之后进步特别明显。我个人的建议是每天的内容不要贪多宁愿一段话翻得透透的也别图快翻三页什么都记不住。翻译练习的核心不是“翻完”而是“翻的过程中搞懂每一个模棱两可的句子”。2.3 翻译过程拆解从“逐词翻译”到“意译准确”很多初学者翻英文技术文档容易翻成那种“逐词对应”的机器翻译腔。比如The server responds with a redirect if the resource has been moved.整句逐词翻出来是“服务器响应一个重定向如果这个资源已经被移动了。”这种翻译在中文里根本不像人话。我在练习中慢慢总结出一个更顺的流程先整段通读一遍搞清楚这段文字在讲什么技术动作。按意群而不是按单词切分句子比如上面的例句可以切分为“服务器发出一个重定向响应 / 当资源已经被移动时”。把切出来的意群按照中文的表达习惯重新排列“如果资源已被移动服务器会返回一个重定向响应。”最后回头核对一遍保证技术名词没有错译逻辑关系没颠倒。这个方法前几次用会感觉特别别扭因为大脑习惯了逐词翻译的安全感。但用上三四次之后翻译速度和准确度都会上一个台阶。这也是我把计算机英语翻译练习单独拎出来做打卡的原因——它是需要专门训练的独立技能不是英语课上学的那套。3. 双线打卡怎么配合编程题和英语翻译的交叉训练法单独练编程题和单独练英语翻译都能各自做出成果。但把这俩放在一起做其实能产生一些单线训练给不了的化学反应。3.1 用英文原题替代部分中文刷题一举两得我在第20天左右开始尝试一个新的玩法每周挑两天直接用英文原题刷编程题。这就是编程题和计算机英语最自然的结合点。具体操作是拿到一道英文题目先不看中文翻译自己读题、提取约束条件、推断输入输出格式。等把题做完了再回头对照中文翻译看看自己有没有理解偏差。这么做的好处是英文阅读能力在真实场景里得到了检验编程题的读题能力也在同步提升。毕竟不少竞赛和面试的题目都是英文的提前适应没坏处。另一个好处是很多中文翻译版本偶尔会有信息损耗读原题反而能更准确地把边界条件搞明白。当然这个方法不适合零基础直接上。建议至少有十天以上的刷题基础对常见的英文题目格式有了一定的熟悉度再尝试这套混合玩法。3.2 时间上的穿插安排避免“先紧后松”的节奏崩坏我的每日安排大致是这样早上精力最充沛时编程题练习做新题加复盘耗时约50到60分钟。下午或晚上精神稍疲时计算机英语翻译练习耗时约30到40分钟。刻意把英语翻译放在精力稍微下降的时段是因为翻译工作相对直觉化不需要像解题那样高度集中逻辑思维。当然也有人反过来早上脑子清醒适合学语言晚上精神好适合写代码。这个可以根据自己的生物钟调整关键是“顺序固定、时段固定”这个原则别丢。我踩过的坑是有一阵子为了赶进度把两件事都挪到晚上做结果编程题写不完就十点半了英语翻译着急忙慌翻完质量很差。后来重新固定为早上编程、晚上英语整个节奏顺了很多。打卡练习最忌讳的就是“看心情安排时间”规律感本身就是对抗懒惰的手段。3.3 建立互相反哺的笔记体系代码和翻译一起沉淀双线打卡练到后期我养成了一个习惯专门建了一个笔记库里面既有编程题的解题思路也有当天翻译时遇到的好句子和术语。笔记的维度大致分成四个板块类别记录内容举例算法笔记题号、难度、核心思路、复杂度滑动窗口维护一个可变区间右指针扩张左指针收缩易错点刷题过程中反复踩的坑二分查找边界条件为什么容易写错术语表翻译时高频出现的技术词条idempotent幂等、deadlock死锁、throughput吞吐量金句库英文原句和精翻对照Fail fast is a principle that allows errors to surface early.这套笔记体系的好处是复习的时候能够把昨天新学的专业术语直接对应到真实技术语境里。比如今天我翻译遇到“idempotent”这个单词过了两天刷题正好遇到一个“幂等性设计”的题两边一对照这个单词就再也忘不掉了。这就是双线打卡的隐性收益互相反哺形成记忆钩子。4. 30天能明显看到哪些变化进度之外的收获说了这么多方法有人可能会问练了三十天到底有没有效果我先说结论——有的而且比预想的更明显但要区分“短期可见的收益”和“需要更长时间累积的收益”。4.1 代码能力的实际变化编程题练习到第30天最直观的感受是看到题目不再害怕了。以前看到中等题会习惯性退缩先翻题解再说现在能静下心来自己分析几分钟即使最后没做出来也能知道自己卡在哪个环节了。具体的变化体现在三方面读题速度快了从过去读题五分钟还抓不住重点到现在基本能在第一遍读题时锁定输入输出和约束条件。代码调试效率高了以前报错要看半天才定位到问题现在对常见错误类型数组越界、空指针、边界条件少判断形成了条件反射debug时间缩短了不少。对复杂度的敏感度提高了写代码之前会主动想一下数据规模是O(n)还是O(n^2)不再像以前那样能跑过测试就行。当然必须说句实话三十天能带来的变化主要体现在“熟练度”上要想在算法思想上发生质的飞跃至少需要两到三个月的持续输入。但这个三十天的阶段作为启动期效果已经完全超出了我的预期。4.2 计算机英语水平的真实感受英语翻译练习到了第23天最明显的变化体现在两方面。一是阅读速度。最开始翻一段三百词的官方文档加上查词、反复斟酌可能要四十分钟以上到了第二十天之后基本上十五到二十分钟就能完成一次三遍式翻译。这个速度变化能够比较直观地验证练习的积累效果。二是对“翻译腔”的敏感度。现在看到机器翻译的某些垃圾结果几乎能瞬间说出问题在哪语序生硬、术语不统一、动词和名词的转译出了偏差。这种能力在以前是没有的说明大脑已经建立起一套针对“英文技术文档 → 中文表达”的转换模型。虽然还远没到专业译者的水平但至少够自己日常查文档用了。4.3 双线进行带来的心态变化说实话单线打卡很容易在某一天因为题目太难或者状态不好而断掉但双线打卡给了一个缓冲今天编程题做不出来至少英语翻译还能完成一点今天翻译状态差至少编程题还能稳一稳心态。这种“两条腿走路”的容错设计在我看来是能坚持三十天的最大功臣。我也有过想放弃的瞬间——大概是第17天左右连续两天遇到了同类型的动态规划题都没做出来那种挫败感确实很上头。但因为有英语翻译这条线撑着第二天恢复状态的过程中心里想着“至少英语那边还在涨能力”就能更快地从情绪低谷里走出来。5. 实操中踩过的坑与避坑思路给后来者的真心话这种打卡练习听起来简单真做起来会遇到一堆意料之外的麻烦。我把踩过的坑和排查思路整理出来算是给后来者的一点小小的“避坑指南”。5.1 坑一开头用力过猛导致后面在家摆烂前五天我给自己定的是每天五道编程题加一篇长文翻译结果第三天就吃不消了。每天光完成这些就要三四个小时完全挤占了正常的工作和休息时间。到第六天直接一整天都没碰电脑。后来我把任务量降到“每日一道编程题 一段300词翻译”严格执行了两周才慢慢把习惯重新养起来。我的建议是宁可开始时任务量小到“不好意思说不练”也不要大到一个周末就让人崩溃。习惯养成的核心是“每天都做”而不是“每天做很多”。5.2 坑二翻译练习只翻不复习翻完等于没翻有段时间我翻完了就算完事结果过三天再看那篇文章里面的生词和句子结构基本忘干净了。后来我加了一个“三天后重译”的步骤每隔三天把之前翻过的那段英文再拿出来不复看中文翻译凭记忆重新翻一遍然后和第一次的译文对照。这个方法极其有用因为重译能暴露出“当时以为懂了、其实没懂”的地方。凡是第二遍翻不出来的句子就是真正需要花功夫攻克的知识点。计算机英语翻译练习如果只是单向输入效率会打折扣加上间隔复习才算形成了一个闭环。5.3 坑三遇到不熟悉的主题就跳练习面越跳越窄我刚开始练习翻译时喜欢挑自己熟悉的技术领域比如前端框架相关的文档因为读起来不费力。但练了两周后发现这样做的成长非常有限——全是在舒适区里打转。后来我给自己定了个规则每周至少选一篇“完全陌生领域”的内容来翻。翻译《操作系统导论》的某一段、数据库索引原理的英文说明、甚至安全领域的入门文章虽然痛苦但坚持下来之后能明显感觉到可阅读范围在向外扩展。5.4 常见问题速查实操中的典型情况与处理办法问题表现处理办法某天中断了打卡一天没练第二天不想碰了不要追求完美连续打卡断了就当“重启”从最小的量重新开始编程题完全没思路拿到中等题思考十五分钟还是一筹莫展直接看题解但要“看完默写”并记录“为什么我能想到的思路是错的”英文句子读不懂每个词都认识拼起来不知道什么意思先找主干主谓宾再把修饰成分逐层挂上去不要试图一遍读懂整句时间不够用工作一忙白天的计划全泡汤前一天晚上把次日的题和翻译材料准备好第二天只要执行就行减少决策成本学了就忘上周练的题、翻的词这周全忘了用“三天后重译”和“周度错题复盘”两种方式对抗遗忘5.5 工具选择与效率提升尽量少折腾把时间花在实处打卡练习的核心是“练”本身所以工具越简单越好。我这里分享一套自己折腾后最终固定下来的组合刷题平台选一个主平台就够不用办很多会员免费题量已经足够。翻译工具先用DeepL或Google翻译做辅助参考但不能直接照搬必须自己先翻一遍再对照参考译法。词典优先用专门的技术词典或英英词典查出来的解释更贴合计算机语境。笔记工具任何支持本地存储的Markdown笔记软件都行。重点是笔记要留着方便周末翻阅和三天后重译复习。工具这个东西最怕的就是过度配置。有人花一晚上研究各种花哨的刷题模板、单词卡插件和自动化脚本结果真正坐下来学习的时间不到二十分钟。真没必要一个代码编辑器加一个笔记软件足够支撑一整年的打卡学习。6. 接下来的拓展方向从打卡到内化二十多天三十天的打卡对我而言相当于热身运动。练习期间积累的最有价值的东西不是某道题、某个单词而是一套“每天进步一点点”的节奏感。现在节奏已经有了下一步就是把这个节奏用到更深的地方去。我目前计划拓展的方向有三个第一个方向是把编程题的覆盖面拓宽。目前练得比较多的还是经典的数据结构和算法题后续想往系统设计、并发编程和高性能计算方向靠一靠通过题目驱动自己主动去补充底层原理知识。第二个方向是直接给开源项目提PR。以前看英文issue和PR描述总觉得“没准备好”但经过二十多天的翻译训练现在基本能流畅地读懂讨论上下文了下一步就是尝试参与进去。这一步相当于把英语翻译能力从输入方向迁到输出方向。第三个方向是把“三遍式翻译”的思路推广到中文技术写作当中。学翻译的过程中积累了不少“如何把逻辑讲清楚”的心得后续写技术博客时把这些思路用起来让文字更简洁清晰。我始终觉得编程题练习和计算机英语翻译练习这两件事之所以值得放在一起做是因为它们本质上都在训练同一种能力把模糊的问题拆解成清晰的结构再找到对应的表达。无论是把一道算法题拆成几个子问题还是把一个长难句拆成若干个意群底层逻辑是相通的。如果你也打算开始类似的打卡练习我的最后一条建议是不要等到“准备好了”再开始直接选一道简单的编程题、选一段两百词的英文文档今天就开始。过程中遇到问题不奇怪边做边调整就好。三十天后回过头来你会感谢那个今天迈出第一步的自己。
返回列表