写点什么

ARTS 挑战打卡的 100 天,我学到了这些

发布于: 2020 年 08 月 26 日
ARTS挑战打卡的100天,我学到了这些

前言

知道ARTS打卡计划是来源于陈皓的极客时间教程。



在大学期间就知道了陈皓,左耳朵耗子,骨灰级程序员,差不多就是看着他的博客成长。后来在极客时间上发现了他的课程,就买下来了。现在学习了75%,过程中发现了ARTS打卡计划,一直不敢尝试,一个原因是觉得算法太难了,另一个原因是觉得自己无法坚持下来。



2020年5月11日开始,到今天(2020年8月22日)为止,已经是第15周,过完这周就是105天了,终于完成了这个100天的打卡活动,坚持不易。



ARTS是什么

ARTS是什么,艺术吗?不是,ARTS由以下几个部分组成:





每周完成打卡,坚持100天。这就是ARTS打卡计划。



经历过这一次坚持下来之后,发现是真的不简单,特别是工作较忙的时候,有时候忙起来下班根本不想动,不想思考。但是不管怎样,我已经坚持下来了。

遇到的困难

完成这个目标遇到了不少困难,比如算法不会做,英文文章找不到,学习技巧不知道写什么,要发现优秀的且与自己价值观符合的技术文章,等等。

算法基础薄弱

算法这一块,一直以来基础比较薄弱。基本上都是平时有面试的时候才会去刷leetcode复习,平时没有专门去复习,因为平常的工作真的没有用到。



刚开始的时候觉得最难的就是算法了,曾经试过一道算法题憋了一个晚上都写不出来,瞬间就像放弃了。后来发现了github上有一个不错的算法总结仓库,主要总结了常见的算法,另外,总结了各种算法的套路,比如“树、动态规划、滑动窗块技巧等等。每一类算法题都是有一定的解题模版的,只要摸清里面的根本,就能更快地解题。



依据作者的建议,先去刷树相关的算法题,因为树的解题模板最简单,关于树的算法题的基本套路无非就是三种(先序、中序、后序)顺序的递归遍历,剩下的一点就是找到退出递归的点。就是下面的套路:



/* 基本的二叉树节点 */
class TreeNode {
int val;
TreeNode left, right;
}

void traverse(TreeNode root) {
traverse(root.left)
traverse(root.right)
}



根据作者的指导,我已经顺利地完成了10+道题目,目前还算顺利,还有很多类型的题目需要学习,接下来希望能学习到更多的套路,解答更多题目。



英文文章哪里找

第二个苦恼的是,要点评相关的英文技术文章,但是找不到比较好的英文文章来阅读,有些写得太长篇大论,还有一些就是一个简单的技术技巧,所以比较头疼。



后来解决这个问题的方案就是去找大佬们的文章,之前看耗子叔的文章推荐了几个英文文章比较集中的地方:

hacker news:https://news.ycombinator.com

hackernoon:https://hackernoon.com

medium:https://medium.com



通过翻阅这些网站的文章,找到了不少优秀的英文文章。另外,还有一些技术较强的公司也有分享出来的技术博客,比如Nexflix、Nginx官网。并且,通过这些文章里面的引用链接,再从引用里面找到更多的引用链接,递归地往下找,也找到了更多优秀的英文文章,解决了“文章荒”的问题。



Netflix官网:https://medium.com/@NetflixTechBlog

Nginx官网:https://www.nginx.com/blog



学习技巧的总结

一开始也不知道怎么记录学习技巧这一块,后来发现,其实,我们每个人每天(或者每周)的工作中都会遇到各种各样的问题。



只要把遇到的问题的解决过程,或者解决问题过程中掌握到的技巧,又或者学到的新东西记录下来,长期下来,就会发现自己已经掌握了不少知识。一段时间过后,如果想回顾某个知识点,还能方便找到当时的思考。



成长

经历了这么段时间的练习之后,发现其实自己是可以做到的,只是过程难了一点,另外,自己也成长了一丢丢。



输出倒逼输入

因为每周需要完成ARTS计划,有了一个心理压力,每周都在鞭策着我学习,没有完成的时候甚至会非常焦虑,最终使我克服了惰性,更主动的去学习了。



我会在每周末的时候就开始准备下一周的学习计划,算法题、英文文章。在每一周的工作中,只要遇到问题或者看到自己不懂的知识,我都会记录下来,并做一个简单的点评,通过自己的语言表达出来记忆更加深刻。



周更15次

以前一直觉得周更很难,因为没有很好的东西可以输出。有了这次打卡计划之后,输入了很多知识,自然有了东西可以输出,至少可以输出每周学习到的东西,周更技能get。下一个目标当然是每周二更/更多更新。



技能提升

通过这100天的学习,你问我进步了吗?这是当然的,个人觉得进步明显的几点是:

  • 算法解题技巧(树)

  • 更善于对知识进行总结、归纳

  • 分布式系统理论理解更加深入

  • 克服惰性,主动学习



未来

这100天的练习,有给我一种刻意练习的感觉,为了提高编程的技能,列出了这四点计划,有目的地去练习,提高自己的技能,这也是一个对刻意练习很好的实践经验。



100天挑战结束了,是否就要停下了?一开始我不知道,正当我觉得应该停止的时候,看到这样一段话:



好习惯一旦开始了就要尽量避免中场休息,手风顺的时候不要手软。别低估惯性,别小看了你的惰性;运气、好习惯和技能一旦扔了,再捡起来就难了。



之前我坚持过运动、写作,中途都断了,后来重新坚持的时候,比之前难了很多。



ARTS打卡计划是一个很好的习惯,能够每周记录自己的成长过程和分享成长经验,我想继续这件事情,直到我放弃的一天,同时,我会想尽避免一切办法半途而废。



小目标完成了,那就定个大目标,坚持52周,对,就是一年。



原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

如果本文对你有帮助,麻烦顺手点个赞吧,谢谢





发布于: 2020 年 08 月 26 日阅读数: 67
用户头像

公众号【老胡爱分享】 2018.03.13 加入

一个热爱分享,热爱分享的普通人。 追求终身成长,希望用文字的力量服务大众。

评论

发布
暂无评论
ARTS挑战打卡的100天,我学到了这些