编程:从入门到放弃
    前言
    语言和环境
    +=
    C和C++
    Hex
    Map
    Scope(1):"这"是啥
    Scope(2)
    Singleton
    什么顺序
    从A到Z
    函数
    切分字符串
    初始化(1)
    初始化(2)
    单引号,还是双引号
    参数传递
    左,还是右
    引用
    时间(1)
    时间(2)
    时间(3)
    时间(4)
    时间(5)
    比大小
    流氓甘地
    相等,还是不等(1)
    相等,还是不等(2)
    相等,还是不等(3)
    相等,还是不等(4)
    第一个说了算,还是最后一个
    语言和环境
    除以0
    随机数

编程:从入门到放弃

Updated: 2022-04-25

“从入门到放弃”,起初只是互联网上的一个玩笑。

应该算是码农的一种自嘲。学习编程就是这样往复的过程,接到一个新的任务,或习得一个新的技术,正待施展拳脚,却发现处处皆坑,debug 到高潮难免找到谈恋爱的感觉——抱着显示器声泪俱下:“我 TM 又哪错了”;而编程的奇妙之处在于,写代码归根到底是一种逻辑的表达,一切皆有据可循,只要还没放弃,问题终会解决,只是有时候需要几天,有时候蹲个马桶就灵光乍现,而有时候就是重启了一下电脑...于是爬出坑,擦擦屁股,奔向下一个循环。就这样从一个知识点到另一个知识点,从一个项目到另一个项目,从一个公司到另一个公司。那些认为程序员只能吃青春饭的人,是还没意识到这种经验积累的巨大价值。

经常会感到一个 bug 似曾相识,却无论如何不记得怎么解决。科技公司常有个有趣的环节,叫“验尸”(Post Mortem),对曾经发生的问题做一份详细的记录和检讨。不妨我们也把学习编程中遇到的问题总结为一些三段论:

  1. 入门。:书上读到的一点点基础知识。
  2. 放弃?:实际操作中出乎意料的结果。
  3. 进阶!:如果你还没放弃,那就给你个解释。

我们不局限于某一个特定的语言。事实上横向比较不同语言的各种特性是非常有助于我们学习和理解程序设计的。语言和环境页面列举了一些我们用到的语言以及如何简单的安装和配置。我们会将重点放在 C/C++, Java, Python 和 JavaScript,至少在可预见的未来这几个语言不会消失。

文中的例子来自互联网上的分享,或实际工作中的经历,还有面试中犯的二。很多可能初看起来都是些无关紧要的小细节。但在坐到 Director 或 Architect 的位子讨论大方向之前,技术细节决定成败。