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天,我学到了这些 的相关文章

  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如

随机推荐

  • 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打卡计划 一直不敢尝试 一个