首页
ARTS 15 - 如何正确使用 docker run -i、 -t、-d 参数

ARTS左耳朵耗子 提出来的一个打卡任务。每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!我希望这个事可以给大家得到相应的算法、代码、技术和影响力的训练。

这是我的第十五周打卡。

🤖 Algorithm

二叉树的层序遍历

📖 Review

Teach Yourself Programming in Ten Years

这篇文章讲的是在十年内学习编程。市面上大部分的书和教程都是让我们如何在一个月内学会一门编程语言,但这是十分浅薄的,我们学会的只是语言的语法和一些 api 的使用而已。

任何创造性的领域,想要做到精通,基本上都是符合一万小时定律的,也就是说至少要花上10几年的时间去进行训练。这里说的是训练,而不是工作。工作在一定程度上也许会提升我们的能力,但这与我们工作的内容是相关的。如果只是一直做一些重复性地业务代码,我们是没有任何提升的,所以工作的年限并不代表工作的经验。

作者列出了一些编程成功的秘诀:

  • 对编程感兴趣: 这是我们能够坚持十年的基础
  • 编程: 最好的学习方式是边做边学,所以我们的工作一定要跟我们的学习是正相关的
  • 与其他程序员交流: 可以通过阅读文章,阅读源码等各种方式学习优秀的项目
  • 在大学学习CS专业: 科班出生的程序员拥有先天的优势
  • 与其他程序员一起在项目中编程: 这个不是说只是参与到一个项目,很多公司的工作方式是把人给分开,每个人负责一小部分,像流水线上的工人一样,这个对于大家的职业发展是非常不好的。如果一个项目,我们不能站在项目负责人的角度去看待,我们收获到的东西是非常少的。
  • 在其他程序员之后参与项目: 这个讲得是接手别人的项目,像一些遗留系统,我们在原始的程序员不在的时候怎么理解程序,甚至是说重构一个"屎山"。
  • 学习至少六种编程语言: 一种强调类抽象的语言:Java 或 C++;一种强调函数抽象的语言:Lisp 或 Elixir;一种支持语法抽象的语言:Lisp;一种支持声明式规范:Prolog 或 C++ 模板;一种强调并行的语言:Go
  • 学习计算机基础: 操作系统相关知识,网络等等
  • 参与语言标准化工作:
  • 有意识地尽快完成语言标准化工作。

💡 Tip

Elixir \__MODULE__ 的使用

_MODULE_ 属于 Elixir 的Kernel.SpecialForms模块,不能被开发人员覆盖。
它的作用是:以原子或 nil 方式返回当前模块名称。 在开发中,通常可以用它来替代当前模块名称,达到简写的目的,例如下面的例子:

defmodule Conduit.Accounts.Supervisor do
  use Supervisor

  def start_link(init_arg \\ []) do
    Supervisor.start_link(__MODULE__, init_arg, name: __MODULE__)
  end

  def init(_arg) do
    children = [
      Conduit.Accounts.Projectors.User
    ]

    Supervisor.init(children, strategy: :one_for_one)
  end
end

如果模块名称更改,也可以这样做:

alias __MODULE__, as: SomeOtherName

💎 Share

分享文章:如何正确使用 docker run -i、 -t、-d 参数