262 Matching Annotations
  1. Dec 2022
  2. Jul 2022
    1. 我看很多网上的文章都把表达式和语句的区别,说成是表达式有值,而语句不总有,我个人不同意这个观点。我认为,纠结于这两个概念的区别和联系没有意义,思维方式的重点应该是在于观察视角和维度的区别。表达式是从数学、计算的视角来看待问题。它关注的是算法的效率(空间和时间复杂度)。而语句是从计算机执行的视角来看问题,这个视角关注的是代码的逻辑和架构。(从这个视角来看,表达式也是语句)我们写代码的时候,需要在这两个视角之间不断的切换,而不是拘泥于去区分这两个概念。

      表达式和语句的区别是什么?

      纠结于表达式和语句两个概念的区别和联系,有什么意义?

      思维方式的重点应该是在于【观察视角】和【维度】的区别。(观察视角、维度)

      1)表达式是从数学、计算的视角来看待问题。 它关注的是算法的效率?(空间和时间复杂度)

      2)语句是从计算机执行的视角来看问题,这个视角关注的是代码的逻辑和架构。

    1. 语句和表达式的区别在于,语句不返回结果,执行语句只是为了产生副作用,而表达式总是返回结果,而通常没有副作用。
  3. Jun 2022
    1. 让事情变得简单(编程):不要让你的程序过时;不要添加任何您现在不需要的代码;去除添加但未使用的复杂性;YAGNI(你不需要它)胜过 DRY(不要重复自己)

    1. 大公司特别容易不知不觉地使用自下而上的方法;对于个人程序员来说,现代工具也鼓励自下而上的编程;尽量避免自下而上,采用自上而下,可能有机会成功编写一个大型、有效、长期存在的程序

    1. 如果一种计算机语言不会影响你对编程的看法,它就不值得学习。

      Alan J. Perlis,第一届图灵奖得主

      在学习 haskell 比学 golang 更有乐趣,

  4. Apr 2022
    1. 各种关系的强弱顺序: 泛化(类与继承关系) = 实现(类与接口关系) > 组合(整体与部分的关系) > 聚合(整体与部分的关系) > 关联(拥有的关系) > 依赖(使用的关系) 下面这张UML图,比较形象地展示了各种类图关系:     

      uml图例

    1. 右键菜单-建立类向导-在classname选择它可能出现的类下方message中选command,你会看到如果有消息响应,那下边会出现函数高亮,双击它就是了。也可以到每个类中看消息映射ON_COMMAND(菜单ID,函数)找到后按F12跳转到其定义。

      在mfc中查看菜单项的命令消息响应函数

  5. Mar 2022
    1. 我很喜欢 Hackathon 本质是希望那种给你一个有限的时间和资源做事。因为这样你才会明白,什么是最重要的,以及,你知道你必须在某个时间前结束,失败也不会影响你的任何事情。(大家如果知道有 Hackathon ,可以 cue 我去参加~)

      hackathon 黑客马拉松

      在有限的时间和资源做事,倒逼你什么才是最重要的。

      这也是敏捷开发的精髓,用Timebox限制每个sprint的时间,倒逼着选择最重要的任务,强制每个Sprint都有交付,用deadline激发生产力

    1. 学习函数式编程对我产生的影响是,让我更加关注哪些概念自然地被视为"对象",哪些概念是不可变的"值"。 我还会更加注意,我的代码是否包含副作用,从而更谨慎地隔离这些地方,使代码更多是"纯的",这大大提高了我的面向对象代码的可测试性。

      《函数式编程对面向对象的程序员有什么用?》

      思考变化能更好的理解什么是对象

  6. Dec 2021
    1. 类似于演戏时用到的脚本,script 其实就是一系列指令——演员看了指令就知道自己该表演什么,说什么台词;计算机看了指令就知道自己该做什么事情。

      脚本语言就是:已经有了一系列已编译的程序作为演员,你在特定舞台上设计脚本让演员按你预预想的方式来完成一项工作。类似于使用dos命令,创建文件夹、修改文件夹名、创建文件这些功能就是演员,用批处理的脚本让这些演员完成文件的归类整理就是脚本语言的工作模式。而这样来看IFTTT就是互联网的脚本语言,并且层级还很高。

  7. Apr 2021
    1. 2017年,新加坡Infocomm媒体发展局(IMDA)开始实施“数字创客”计划。该计划提供micro:bit,教师编码和活动培训,并提出将micro:bit用于课堂的想法。

      在微软的帮助下,这个项目已经配备了1000多名教师,他们具备使用micro:bit进行数字化创造的基本技能。这些教师也都认识到了将数字化创造引入课程教学的极大可能性。

    1. 2018年,丹麦国家广播电台(DR)提出了Ultra:bit计划。作为9-12岁的孩子都很熟悉的媒体平台,DR从micro:bit中整合出了关于流行小说和以技术为中心的内容。DR skole教育团队还开发了一套课程材料,其中包含丹麦语、数学、手工和科学。

      该计划的目的是,让当地学校广泛使用micro:bit,从而引导老师们更轻松地将技术运用和课堂教学联系在一起。Grit Dørup Lund,就是这样一位使用micro:bit的老师。据她说,自己的一个4年级学生(8-9岁)就正在以一种开放的心态学习技术。这些孩子没有任何思想障碍,他们就像成年人一样学习如何编程。

    1. 面向对象编程的问题是,默认带有环境。你只想要一个香蕉,但是得到了一只拿着香蕉的大猩猩,甚至还有整个丛林。 -- 计算机语言大师 Joe Armstrong,2019年4月20日去世。他非常不喜欢面向对象编程,发明了函数式语言 Erlang。
    1. 面向对象编程的哲学思想是,通过对语言建模来适应问题,而不是对问题建模来适应语言。 -- 《C prime plus》教材
  8. Feb 2021
  9. aiyprojects.withgoogle.com aiyprojects.withgoogle.com
    1. AIY全称是Artificial Intelligence Yourself,即动手创作你的人工智能。它是一个由Google在2017年启动的项目,目的就是让每个创客(Maker)都可以DIY自己的人工智能产品。

      在该项目的网站上,主要为孩子们提供了视觉套件和语音套件,协助他们去完成简单的智能产品。

  10. Dec 2020