获得徽章 25
《海因莱因的五条写作规则》
著名的美国科幻小说作家罗伯特·海因莱因(Robert A. Heinlein),给有志于写作的年轻人,传授过五条写作规则,帮助他们入门。
我觉得这些规则,不仅适用于作家,也同样适用于程序员。
规则一:你必须动手写
听起来很明显,是吗?但是,很多人只是想想而已,并没有真的动手写任何东西。成为作家的唯一途径是将自己放在键盘前,开始工作。
规则二:完成草稿
你开始写的前几页,可能很糟糕,你可能会想将它们扔掉。不要这样做,继续下去把草稿写完。一旦有了初稿,包括开头、中间和结尾,你会惊讶地发现,哪些是有用的部分,哪些是没用的部分。
规则三:不要无休止地修改
你应该不断修改你的草稿,但是一旦发现,修改后的效果没有比原来有太大的提升,就应该结束修改了。有句老话说,故事永远不会结束,只会被放弃。你要学习到了某个点,不再对这个作品投入时间。
规则四:你必须将作品推向市场
写完之后,放在书桌上是没有用的。即使你对自己没有信心,也应该把作品发布出去,看看外界的反应。不要胆怯,没有发表过的作品,等于没有写。
规则五:你必须努力推广作品,直到售出为止
一个事实是,你的作品几乎肯定会被拒绝,最大的可能是根本没有反响。不要为这种事情烦恼,很多伟大的作家都收过很多拒稿信。如果那些拒绝当中包含你认为不错的建议,请修改你的作品,然后再次发布。如果得不到什么建议,那就转向其他市场发布。你要坚持让更多的人看到你的作品。
最后,不管上一部作品得到什么样的成绩,你开始准备下一部作品。
《数组、链表、跳表的基本实现和特性》
数组
优点:查询时间复杂度O(1)
缺点:添加、删除时需要对数组进行移动操作,时间O(n)
PS:java数组拷贝函数 System.arrayCopy
链表
优点:添加、删除节点,时间复杂度O(1)
缺点:随机查询时间复杂度O(n)
PS:一个指针为单链表,既能往前走又可以往后走双向链表,首尾相连环向链表
节点node,头指针head,尾指针tail
跳表
特点:跳表里的元素必须是有序的,对标是平衡树(AVL Tree)和二分查找
思路:通过增加维度,来提升链表查询速度,空间换时间
优点:原理简单、实现简单,方便扩展,效率更高
缺点:维护成本高,插入、删除时间复杂度O(logn),插入和删除会导致索引不工整
使用案例:Redis.zset、LevelDB
随机查询时间复杂度O(logn)
空间复杂度O(n)
重要思想: 添加维度可以对查询进行增速,多了一个维度就多了一级的信息,空间换时间
掘金的鼠标垫到了,很喜欢~
《Yarn 与 Npm 命令对比》
初始化
npm init
yarn init
安装依赖包
npm i | install
yarn (install)
安装生产依赖并保存包名
npm i 「依赖名称」 --S | --save
yarn add「依赖名称」
安装开发依赖并保存包名
npm i 「依赖名称」--D | --save-dev
yarn add 「依赖名称」-D
删除依赖包
npm un | uninstall 「依赖名称」
yarn remove「依赖名称」
全局安装
npm i -g | npm -g i「依赖名称」
yarn global add「依赖名称」
全局移除
npm un -g 「依赖名称」
yarn global remove「依赖名称」
运行命令
npm run dev
yarn dev | run dev
学习任何东西都需要一个清晰的目标
带着问题,一边学习一边找答案
而不是漫无目的的学到哪里是哪里
下一页