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

2023-11-07


前言

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

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

今年5月份,在网上再次看到了ARTS打卡计划的挑战,觉得自己有能力去挑战一波,于是就决定参与一次,也当作今年的100天挑战。

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周,对,就是一年。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARTS挑战打卡的100天,我学到了这些 的相关文章

  • 在 Spring Boot 中重新加载/刷新缓存

    我正在使用 Spring Boot 对于缓存 我使用 Ehcache 到目前为止一切正常 但现在我必须重新加载 刷新 那么我该如何执行此操作 以便我的应用程序不会出现任何停机时间 我在Spring Ehcache中尝试了很多方法 但它不起作
  • Eclipse 中的 Java 简单电子邮件程序

    我想制作一个简单的程序 您可以从其中发送电子邮件命令行 我找到了这个教程 http www tutorialspoint com java java sending email htm http www tutorialspoint com
  • 如何根据 JComboBox 选择动态地将控件添加到表单?

    我正在尝试使用 Swing 创建一个简单的 java 表单 这个想法的基本思想是用户将在 JComboBox 中选择 0 到 5 然后 通过 ItemStateChanged 侦听器 将动态添加几个面板 每个面板包含 4 个控件 因此 如果
  • 逐行读取 JTextPane

    有没有办法读取a的内容JTextPane逐行 很像 BufferedReader 吗 Element root textPane getDocument getDefaultRootElement 获得根元素后 您可以检查存在多少个子元素
  • Spring boot 404错误自定义错误响应ReST

    我正在使用 Spring boot 来托管 REST API 即使浏览器正在访问 URL 以及自定义数据结构 我也希望始终发送 JSON 响应 而不是使用标准错误响应 我可以使用 ControllerAdvice 和 ExceptionHa
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • Eclipse 内容协助无法在枚举常量参数列表中工作

    使用 eclipse 当我输入以下内容时 public enum Foo A Integer private final Integer integer private Foo Integer integer this integer in
  • Java Timer 类:如果其中一个任务抛出异常,则计时器任务停止执行

    new Timer scheduleAtFixedRate new TimerTask Override public void run System out println run throw new SomeRandomExceptio
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • 为什么 Cassandra 客户端在生产中没有 epoll 时会失败? [复制]

    这个问题在这里已经有答案了 当我在本地运行服务时 我收到一条警告 指出 epoll 不可用 因此它使用 NIO 很公平 当我将其部署到 Kubernetes 中时 我得到了以下信息 这导致服务无法运行 2017 03 29T19 09 22
  • 使用 Lint 和 SonarQube 分析 Android 项目

    我真的 溢出 了试图让这些东西一起工作 我按照这里的指示进行操作 http docs sonarqube org display PLUG Android Lint Plugin http docs sonarqube org displa
  • Android 以编程方式停止 toast 通知?

    有没有办法以编程方式停止 Toast 消息 假设我有一个按钮 单击它可以滚动 toast 消息 并且在 onclick 事件中我想停止队列中的所有消息并只显示新消息 我该怎么做 我的代码的简化版本如下 代码 public class Hel
  • System.out.println("嗨"+6+10);打印Hi610?

    为什么要这样做 太令人困惑了 运算符优先级和结合性 两点 操作员 如果一个或两个参数都是字符串 则进行字符串连接 操作员 从左到右工作 所以在你的例子中 Hi 6 is Hi6 and Hi6 10 is Hi610 编辑 正如您在对另一个
  • 解析 SWIG 接口文件的结构属性

    这是我不久前问过的问题的延续 为通过参数返回的函数创建类型映射 https stackoverflow com questions 12793973 create a typemap for a function that returns
  • SecurityContextHolder.getContext().getAuthentication() 返回 null

    我想使用以下代码手动绕过 spring Security 的用户 User localeUser new User UsernamePasswordAuthenticationToken auth new UsernamePasswordA
  • 需要同步仅增量计数器吗?

    我使用整数作为计数器 该整数只会增加 并且肯定有多个线程会同时增加它 当没有其他线程尝试访问其值时 在程序执行结束时读取该计数器的值 我假设我不必为这种仅增量计数器使用锁或任何类型的同步 这是正确的吗 如果这有什么区别的话 我用 Java
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • 使用 Spring Batch 将文件中的日期解析为 LocalDateTime

    我正在尝试使用 Spring Batch 读取包含日期的 CSV 文件 但在将日期解析为LocalDateTime Object 字段 日期 上的对象 目标 中的字段错误 拒绝值 2017 07 20 04 15 25 0 代码 typeM
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System

随机推荐

  • SpringBoot+Kafka+ELK 完成海量日志收集

    整体流程大概如下 服务器准备 在这先列出各服务器节点 方便同学们在下文中对照节点查看相应内容 SpringBoot项目准备 引入log4j2替换SpringBoot默认log demo项目结构如下 pom
  • 字典序最小回文串

    字典序最小回文串 题目解读 给你一个由 小写英文字母 组成的字符串 s 你可以对其执行一些操作 在一步操作中 你可以用其他小写英文字母 替换 s 中的一个字符 请你执行 尽可能少的操作 使 s 变成一个 回文串 如果执行 最少 操作次数的方
  • odoo13搭建-odoo13源码在windows系统的搭建详细过程

    最近因为要用odoo 所以记录一下在windows系统下搭建odoo的过程 odoo使用的是github下载odoo13版本 资源信息 提前需要的准备的安装包和源码如下 odoo13源码 odoo13源码下载 https github co
  • 带通滤波器介数如何确定

    你在MATLAB界面左下角的Start里面选择filter design然后填入你的参数 MATLAB会自动帮你算出你设计的滤波器的阶数
  • 福禄克测试中的电阻参数:LOOP、PAIR UBL、P2P UBL代表什么?

    福禄克测试中的电阻参数 LOOP PAIR UBL P2P UBL分别代表什么 LOOP 直流环路电阻 PAIR UBL 线对电阻差 P2P UBL 线对电阻差的差 IEEE 标准 802 3 2012 规定导线之间的直流电阻 LOOP 不
  • template_event

    if f ES TEMPLATE DIR then echo generate event template curl XPUT http localhost 9200 template template event d cat ES TE
  • 单链表翻转--Java实现

    问题描述 将单链表的顺序翻转过来 代码实现 定义链表节点 static class ListNode int val ListNode next public ListNode int val ListNode next this val
  • 网络安全(黑客)自学路线笔记

    一 什么是黑客 黑客泛指IT技术主攻渗透窃取攻击技术的电脑高手 现阶段黑客所需要掌握的远远不止这些 二 为什么要学习黑客技术 其实 网络信息空间安全已经成为海陆空之外的第四大战场 除了国与国之间的博弈 国内企业与企业间也有显著的明争暗斗现象
  • 分库分表后的查询解决方案

    在分库分表之后 每个表的数据是分散存储在不同的数据库中的 因此 在查询数据时需要考虑如何查询跨多个数据库和表的数据 常见的解决方案有以下几种 1 应用层分页 将查询条件分发到各个数据库 然后在应用层合并结果集并进行分页 这种方案可以实现比较
  • Redux 是什么?怎么用?

    第1 章 Redux 介绍 本章涵盖 定义Redux 了解Flux 与Redux 之间的差异 使用Redux 和React 介绍action reducer 和store 学习何时使用Redux 在2018 年 如果你进入任何一个React
  • psql命令

    psql备份数据库 su postgres pg dump d map gt map sql 导出sql psql d map f map sql 导入sql psql导出数据到文件 COPY SELECT gid name FROM l
  • java强引用、软引用、弱引用、虚引用

    前言概述 在JDK1 2以前的版本中 当一个对象不被任何变量引用 那么程序就无法再使用这个对象 这就像在日常生活中 从商店购买了某样物品后 如果有用 就一直保留它 否则就把它扔到垃圾箱 由清洁工人收走 一般说来 如果物品已经被扔到垃圾箱 想
  • 【群智能算法】一种改进的蜣螂优化算法IDBO[2]【Matlab代码#18】

    文章目录 获取资源 请见文章第5节 资源获取 1 原始DBO算法 2 改进后的IDBO算法 2 1 Bernoulli混沌映射种群初始化 2 2 自适应因子 2 3 Levy飞行策略 2 4 动态权重系数 3 部分代码展示 4 效果图展示
  • Spring 事件发布机制

    目录 事件驱动 使用事件机制 Java 事件使用 Spring 事件使用 使用 Aware 不使用 Aware Spring 事件发布流程及源码解析 ApplicationEvent ApplicationListener 监听者注册 Ap
  • node常见面试题库

    node常见面试题库 1 检测系统中node版本号的指令是 node v 2 如何退出node执行环境 REPL环境 ctrl c c 3 node如何创建服务器 写出代码 var http require http var server
  • 合理设置的MTU值,解决“部分网站打不开”“上网速度慢”等问题,并且可以适当提升上网速度

    一般来讲 设计好本机的MTU值 可以解决 部分网站打不开 上网速度慢 的情况 但是如果你的共享主机或路由器的MTU设置有问题 有时问题仍然存或 或者出现网速过慢的情况 合理的设置路由器与本机的MTU值 就可以完全解决上述问题 使上网速度达到
  • AndroidJavaClass 和AndroidJavaClass

    很明显 AndroidJavaClass 就代表一个Java类 例如 com henry util 有一个静态方法 love 可以这样new AndroidJavaClass com henry util callstatic love 就
  • swagger mock文档服务器,通过 Swagger 定义自动生成 Mock 数据

    我最近的在做的项目是一个前后端分离的项目 前后端由不同的团队分别开发 并且前端的进度经常领先后端 这就意味着 当前端在开发一个新功能时 API 可能还没有准备好 不过 我们会先和后端先商议好 API Schema 然后使用 Mock 数据进
  • 使用PowerDNS实现内网DNS解析

    部署环境 公司内部安装powerdns实现局域网服务dns解析 避免通过ip访问 系统 CentOS 7 9 mysql版本 5 7 33 pdns版本 4 4 1 pdns recursor版本 4 4 2 PowerDNS admin版
  • ARTS挑战打卡的100天,我学到了这些

    前言 知道ARTS打卡计划是来源于陈皓的极客时间教程 在大学期间就知道了陈皓 左耳朵耗子 骨灰级程序员 差不多就是看着他的博客成长 后来在极客时间上发现了他的课程 就买下来了 现在学习了75 过程中发现了ARTS打卡计划 一直不敢尝试 一个