awesome-falsehood Documentation

Falsehoods Programmers Believe in

RAW Doc

File: README.md


A curated list of falsehoods programmers believe in. A falsehood is an idea that you initially believed was true, but in reality, it is proven to be false.

E.g. of an idea: valid email address exactly has one @ character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The reality is: emails can have multiple @ chars. Therefore your implementation should allow this. The initial idea is a falsehood you believed in.

The falsehood articles listed below will have a comprehensive list of those false-beliefs that you should be aware of, to help you become a better programmer.

Contents

Meta

Arts

Business

Cryptocurrency

Dates and Time

Education

  • Falsehoods CS Students (Still) Believe Upon Graduating - A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.
  • Postdoc myths - “Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”

Emails

Geography

Human Identity

Internationalization

On character encoding, string formatting, unicode and internationalization.

Management

Multimedia

Networks

Phone Numbers

Postal Addresses

Science

Society

Software Engineering

Transportation

Typography

Video Games

  • The Door Problem - All the things you have not considered implementing for your doors in games.

Web

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.

Footnotes

This list gathered some popularity in social medias over the past few years. See it being discussed and mentioned elsewhere.

The header image is based on a modified photo taken in February 2010 by Iza Bella, distributed under a Creative Commons BY-SA 2.0 UK license.

[1]: Notebooks, 1914-1916 (Liveright, 2022) - source: page 14e. [↑]


File: Readme.md


A curated list of falsehoods programmers believe in. A falsehood is an idea that you initially believed was true, but in reality, it is proven to be false.

E.g. of an idea: valid email address exactly has one @ character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The reality is: emails can have multiple @ chars. Therefore your implementation should allow this. The initial idea is a falsehood you believed in.

The falsehood articles listed below will have a comprehensive list of those false-beliefs that you should be aware of, to help you become a better programmer.

Contents

Meta

Arts

Business

Cryptocurrency

Dates and Time

Education

  • Falsehoods CS Students (Still) Believe Upon Graduating - A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.
  • Postdoc myths - “Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”

Emails

Geography

Human Identity

Internationalization

On character encoding, string formatting, unicode and internationalization.

Management

Multimedia

Networks

Phone Numbers

Postal Addresses

Science

Society

Software Engineering

Transportation

Typography

Video Games

  • The Door Problem - All the things you have not considered implementing for your doors in games.

Web

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.

Footnotes

This list gathered some popularity in social medias over the past few years. See it being discussed and mentioned elsewhere.

The header image is based on a modified photo taken in February 2010 by Iza Bella, distributed under a Creative Commons BY-SA 2.0 UK license.

[1]: Notebooks, 1914-1916 (Liveright, 2022) - source: page 14e. [↑]


File: readme.md


A curated list of falsehoods programmers believe in. A falsehood is an idea that you initially believed was true, but in reality, it is proven to be false.

E.g. of an idea: valid email address exactly has one @ character. So, you will use this rule to implement your email-field validation logic. Right? Wrong! The reality is: emails can have multiple @ chars. Therefore your implementation should allow this. The initial idea is a falsehood you believed in.

The falsehood articles listed below will have a comprehensive list of those false-beliefs that you should be aware of, to help you become a better programmer.

Contents

Meta

Arts

Business

Cryptocurrency

Dates and Time

Education

  • Falsehoods CS Students (Still) Believe Upon Graduating - A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.
  • Postdoc myths - “Lots of things are said, written and believed about postdoctoral researchers that are simply not true.”

Emails

Geography

Human Identity

Internationalization

On character encoding, string formatting, unicode and internationalization.

Management

Multimedia

Networks

Phone Numbers

Postal Addresses

Science

Society

Software Engineering

Transportation

Typography

Video Games

  • The Door Problem - All the things you have not considered implementing for your doors in games.

Web

Contributing

Your contributions are always welcome! Please take a look at the contribution guidelines first.

Footnotes

This list gathered some popularity in social medias over the past few years. See it being discussed and mentioned elsewhere.

The header image is based on a modified photo taken in February 2010 by Iza Bella, distributed under a Creative Commons BY-SA 2.0 UK license.

[1]: Notebooks, 1914-1916 (Liveright, 2022) - source: page 14e. [↑]


File: readme.zh.md


一个精心策划的 程序员谬误清单. 谬误 指的是你最初相信的 观点,但是它被证明是错的.

举个例子, 一个观点: 有效的电子邮件地址恰好有一个 @ 字符. 因此,你会使用这个规则来实现你的电子邮件字段验证逻辑。对吗?错了! 实际 是: 电子邮件可以有多个 @ 字符.
因此,你的实现应该允许这种情况。最初的观点是你曾经相信的一个谬误.

下面列出的谬误文章将提供一个全面的列表,帮助你了解这些错误信念,以便让你成为一个更优秀的程序员.

目录

元

艺术

业务

加密货币

日期和时间

教育

邮件

地理

人类身份

国际化

关于字符编码,字符串格式,Unicode 和国际化.

  • 语言谬误 - 把软件从英文翻译成其他语言并不像看起来那么简单.
  • 语言谬误 - 补充上一篇文章的其他情况。
  • 纯文本谬误 - 纯文本难以满足需求,而 Unicode 的强大在于其能够良好运作,显得尤为出色.
  • 文本谬误 - 通过实际示例说明 Unicode 规范化、连字、代理对、字符宽度,以及子串操作中的字素簇陷阱.
  • 代码国际化 - 关于在代码国际化时需要注意的事项的视频.
  • 关于Unicode 和字符集你至少应该知道的 - 对unicode很棒的介绍, 包括其历史背景和起源,随后概述其内部工作原理.
  • Awesome Unicode - 精心总结的 Unicode 小知识、软件包和资源清单.
  • Unicode的黑暗角落 - Unicode 非常庞大,小心其中的陷阱.
  • 别给码位加戏了 - 深入探讨 Unicode,并揭穿关于码位的流言.
  • Unicode谬误 - 一系列关于大小写、编码、字符串长度等的谬误.
  • 打破我们对 Latin-1 的假设 - 大多数程序员在'Latin-1'上花了太多时间,以至于忘记了其他脚本的特点.
  • 致货运标签 - 字符编码很复杂,尤其是当每一层损坏的数据输入都增添了自己的复杂性时.
  • 本地化失败:困难的温度 - 你无法直接对温差进行本地化处理.
  • 国际化测试数据 - 🆓 用于单元测试和质量保证的真实词汇的国际和多样化姓名数据集汇编.
  • 违规字符串大集合 - 🆓 一个庞大的字符串语料库,当作为用户输入数据时,很有可能导致问题. 必须有一组有效的边缘案例来测试您的软件.

管理

  • 求职者谬误 - 关于求职者及其工作经历的假设未必准确。.

多媒体

  • 视频谬误 - 涵盖全部内容:视频解码与播放、文件、图像缩放、色彩空间与转换、显示设备和字幕.
  • 处理音乐时需要考虑的棘手边缘案例 - 音乐目录数据中充满了各种奇葩内容.
  • MusicBrainz数据库表 - 一个开源的数据库项目,似乎解决了音乐目录管理的复杂性.
  • DDEX - 音乐元数据的行业标准,包括档案管理、声音录制、销售和使用报告、版权和许可协议.
  • Apple Music 风格指南 - 提高可发现性的音乐、艺术和元数据格式的质量保证指南

网络

电话号码

邮政编码

科学

社会

软件工程

交通

排版

视频游戏

  • 门问题 - 在游戏中,所有你没有考虑的关于门的东西.

Web

贡献

随时欢迎你的贡献! 首先请看一下 贡献指南 .

注脚

这份列表在过去几年里在社交媒体上获得了一些人气. 可以看看这个 其他讨论.

这个标题图片 以 photo taken in February 2010 by Iza Bella为基础修改的 , 根据 Creative Commons BY-SA 2.0 UK 许可协议 分发.

[1]: Notebooks, 1914-1916 (Liveright, 2022) - 出处: 14页. [↑]