编程 | 原创,AI翻译
-
只要它能激励你,参与编程竞赛并无不可。
-
编程如同写作,是一种创造性活动。
-
动手做自己的项目。撰写技术博客。编写一个你会维护多年的程序,就像经营一个持续十年的博客那样。
-
通常无需追逐当下技术热点,许多潮流几年后便会消退。
-
追随你的好奇心,为自己而编程。
-
尝试为自己创造程序,它们不是工作任务。
-
若编程时常感不快,那你的方式可能错了。
-
iOS、Android、后端、前端、AI都不错。至少可以尝试用它们做个小项目或学习几个月。
-
调试就是保持怀疑。别轻信每一行代码;总有更好的实现方式。
-
编程中,每个字符、每行日志都重要,它们都在传递信息。
-
用编程为他人创造产品。拥有用户是件有趣的事。
-
不必苛求。几百个真心喜爱你产品的用户,胜过数万礼貌点赞的用户。
-
牢记你开始编程的初心,永不遗忘。
-
将编程思维应用于生活各处。批量处理与逐个解决。任务拆解单元化。每个应用背后的底层技术。网络请求的微妙细节。
-
抽象与逻辑思维。细节导向思维。穷尽解决方案的思考。
-
真理即真理。通常计算机不会错,电路不会错,编译器不会错。出现bug时不必沮丧。
-
追求优雅简洁的方案。简约是终极的复杂。需深思熟虑保留精髓,剔除冗余。
-
编程语言选择能解决问题的即可。我个人推荐Java和Python。
-
关注王垠的博客https://www.yinwang.org。他是编程界少有的天才,尽管他说天才本不存在。
-
编程知识与原理可轻松迁移至语言学习、硬件维修、生活优化及科学研究。
-
多数编程任务只需高中数学足矣。
-
时隔多年回顾旧代码,或长期维护一个项目,会让你受益匪浅。
-
若对编程失去热情,不妨暂时做些别的事。
-
测试时机很重要。顺其自然即可。通常无需为项目写测试。尝试不写测试、写单元测试、写集成测试、写API测试。明智比较之。
-
尝试AI代码编辑器。多使用ChatGPT等聊天机器人。如今AI工具易用,你可聚焦更具创造性或重要的部分。
-
调试时检查是否使用库的最新版本。若库已无人维护,寻找活跃维护的克隆或分支。
-
优化网络速度或程序运行时间时,必须有量化指标。否则无法确知是微小改进还是退步。
-
个人项目不写测试代码无妨,但修改大量代码后最好本地测试。考虑受影响代码、云端流水线运行时长及可能引发错误的频率,据此编写测试代码。采用不影响用户体验的易测试方法。
-
编写简洁优雅的代码。减少重复,尽管有时重复反而更简单。减少特殊情况。易于测试。重构为通用函数或流程,使用递归或循环,寻找模式。
-
正确处理错误。思考根本原因、责任归属、能否修改或是否外部错误。考虑挽救方法、影响范围、处理位置、是否分类错误、发生概率及最坏情况。
-
使用replace与startWith后接slice的区别在于前者忽略字符串位置。将类似思考应用于编程每个细节。
-
最小化单项可能值;每种情况只用单一值。已有false时不使用null。若有翻译后的真假标志,必须确保每次对待未翻译标志时不将其视为false。
-
常用GitHub或Sourcetree审查代码变更。它们更便于阅读代码。
-
编程中常无小事。每个字符、列表顺序、字符串、数字、变量名都重要。每个执行顺序、每条日志都关键。
-
做最让你兴奋的事。无需担忧是否随大流。
-
多使用命令,它们可帮助自动化任务或协助LLM。UI界面操作更难自动化。
-
将程序日志(包括本地、UAT、微服务及流水线日志)保存至目录。这些日志蕴含大量关联信息,通过搜索梳理关系,收集相关数据或上下文。
-
有了日志积累,遇到问题时更易判断是否曾见过。从过往日志中或知解决方法。日志比代码更能展现运行状态与计算机执行逻辑,且时间关联性强,调试时更轻量。
-
调试显示大量信息,包括周边变量值、线程名及函数栈。
-
自动化一切,如代理更新与最优代理服务器选择。多用Python编写脚本。