【2019-2020年第一期DIY班】毕业与总结

简介: 走了一年坚持参加的学习活动---DIY。其一,Deeply Inspire Yourself深度激发自己 其二,Do It Yourself实践出真知。方式:特种兵的培训+遴选机制。这个伴随Java程序爱好者们参与DIY讨论的规则,维持了一年,身为菜鸟的我很荣幸留到了最后,相信这是一个带给读者的很有正能量的活动,对身为开发者的我来说也有非常深刻的意义,第二期DIY班马上就要来了,也给第二期预热一下,啦啦啦,最后说句五一劳动节快乐

唯一的DIY徽章(刻有每个人的名字),纪念一下
DIY徽章.jpg

从去年2019年春节开始,孤尽开始举办DIY班活动,
形式简单,与英语角相似,每两周会集中讨论一个话题,大家都可以在群里面各抒己见,互相讨论技术看法。
一开始总共是500多人的大群,一年下来,只剩下12位参赛者,最终都顺利毕业了。

讨论话题节选:
泛型、Lambda表达式、锁、浮点数、集合转数组、ThreadLocal的问题根源 、微服务、哈希码的计算、JDK版本等等

项目: One ErrorCode Platform

感谢所有参与进来的人员辛苦付出,回望过去的讨论,每个人的回答都让我受益良多,但同时也不想在此深究一个知识点的讨论,因为每次回看都会有不一样的认识。以下是我的一些总结:

各种讨论话题
关于探讨的话题涉及的技术,以及一些专业名词都是第一次接触,如xy问题、向前兼容、灰度测试等等。留下多少人就会有多少答案,每个答案都是有稍微不一样的角度,待在DIY班群时间长了,自己时不时会先看到别人回答的答案,逐渐开始记录了起来学习,讨论微服务的时候,自己已经习惯把它抽样归纳到一个文档去了,开始时自己写的作业会结合自己的见解的同时搜索不同的资料,然后逐渐地去看与其他人的答案有什么不同,自己的答案有哪些需要补充了解的地方,到后来是,寻找自己的答案有哪些角度不一样继续去探索,再之后就是先写了自己的答案,提交了再看看别人的答案,直到现在回看也是学习到很多。

DIY班心路历程
2018年到2019上半年自己处于一个很迷茫的阶段,自己很菜,明白了自己不适合去大厂的原因,学习过程中,不知不觉又会觉得,已经比别人慢了一步,没有抓住任何机会,甚至考虑过要不要转行。我一直在问自己到底为什么坚持下去,认为自己是没有人认同,只是靠努力掌握了些基础,对编程的工作有一些用途的实习生而已,拿到工资的时候,是非常地开心,但又会觉得并不满足,自己根本不止这些,转正了之后,负责维护公司的线上项目并参与迭代,认为有很多地方需要更改,像规范那样提到,不能有魔法值,join不能超过3张表...即使是技术债比较多需要重构的项目自己同时也有认真对待,合理地规划新功能开发和重构的安排,但还是时间不够,和刚接触此项目的开发人员配合较困难,变化太快,自己的不自信以至于和产品经理那边不能很好地协调,导致多个工作需要同时进行,并不是很顺利,直到DIY班第一期关于架构设计的讨论话题,借此机会我认认真真地了解架构设计和再次分析自己这个公司项目的架构问题等,写得并不算好,但却是第一次有人认同我,投了认为写得最好的答案,这或许是最感动我的事情了,籍此机会成为了留下来的最后12人,除了愧疚自己的讨论还不够离开的人写得好之外,更多地是激动和感谢,起码DIY班超长的一整年聊天记录还在,要找时间备份一下才行。

oecp项目
留下来却要迎接更大的挑战---One ErrorCode Platform项目。为此我第一次鼓起勇气问身边的人关于错误码的看法和需求,第一次每隔两天和大佬们开远程会议,第一次规划自己的时间并努力挤出来....再怎么努力也深知自己作为团队的一员还是欠缺很多知识和经验,再一次深知自己陷入更大的迷茫,后来发现不应该这么妄自菲薄,要是自己当时自信点可以鼓起勇气把"设计错误码规则(7天)"这个比较疑惑的时间分布与小伙伴再进行一番讨论,可能会对错误码的划分、规则划定有更多的研究和深入了解。后来项目中我的负责的部分是一个需要快速学习的知识并且运用到开发中,刚开始并不顺利,从头学起的时候时间用了很多,但没什么成效,为此也鼓起勇气问问同事,在github找实现,一步步一天天地研究,最后就把功能弄出来了,然后逐步进行优化。过程中我发现每个人协作的重要性,生活上如果没有同事一起把公司的项目弄好,努力完成上线任务,自己也挤不出时间弄oecp项目,而且每一处技术都值得研究,即便是一个微不足道的点,恰好在项目中写后台代码时为了方便用到了stream.Collectors的toMap方法,看来要去看看泰山版《Java开发手册》研究研究这个坑位才行。

成长
最让我自己感到成长的地方,应该是最后答辩的时候勇于站出来补上队友调麦时候的空缺,变成组长之后第一个答辩,并且最后和队友们把项目演示顺利地演示完。一开始因为菜自我介绍什么都说不出话的自己,曾几何时我很担心"丢脸"这件事,经历了这一个月的洗礼,我却逐渐认为自己要先"丢脸"才行,要勇敢地去学去探索,我相信现在更知道要做什么事,要往哪方面学习才更适合自己。

感想
短短一年还是有很多缺陷与不足,即使DIY第一期已结束,但Deeply Inspire Yourself还在继续,坚持还在继续。最幸运地是遇到了队友,交流技术的同时也了解了不同的生活,毕业之后是更加辽阔和自由,我希望自己可以认真地考虑写高质量的博客、读书笔记,或许还会有更多更多的收获。

附上偶然搜到而截下来的图片:
坚持的计数.png

目录
相关文章
|
存储 C++
基于Qt的简易文件压缩与解压缩工具设计与实现
基于Qt的简易文件压缩与解压缩工具设计与实现
627 1
|
算法
初探PID—速度闭环控制
本文简单介绍了什么是PID,PID的作用,给出了PID实现程序。
562 0
|
9月前
|
JavaScript 前端开发 Java
深入理解拓展运算符与剩余运算符:功能、用法与区别
拓展运算符和剩余运算符为JavaScript提供了更灵活的数组和对象操作方法。在实际开发中,合理运用这两个运算符可以大大简化代码,提高代码的可读性和维护性。拓展运算符展开元素,而剩余运算符收集剩余元素——二者在功能上互补,是编写现代JavaScript代码的强大工具。 其他编程语言中也有类似的功能,例如 Python 的星号(*)和双星号(**)运算符,Ruby 的 splat()运算符,Swift 的 variadic parameters,以及 Kotlin 的 vararg 关键字。这些语言的运算符在概念上与 JavaScript 的扩展运算符和剩余参数相似,但具体的语法
|
Web App开发 SQL 流计算
常见的浏览器内核
常见的浏览器内核
|
缓存 监控 网络协议
Linux操作系统的内核优化与实践####
本文旨在探讨Linux操作系统内核的优化策略与实际应用案例,深入分析内核参数调优、编译选项配置及实时性能监控的方法。通过具体实例讲解如何根据不同应用场景调整内核设置,以提升系统性能和稳定性,为系统管理员和技术爱好者提供实用的优化指南。 ####
|
存储 物联网 数据处理
如何使用 Apache IoTDB UDF
【10月更文挑战第21天】使用 Apache IoTDB 的 UDF 可以为用户提供更大的灵活性和扩展性,帮助用户更好地处理和分析物联网数据。通过合理编写和使用 UDF,用户可以充分发挥 IoTDB 的潜力,实现更复杂、更高效的数据处理和分析任务。
290 2
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
359 3
|
Web App开发 JavaScript 前端开发
ChatGPT与基于GUI的自动化测试
ChatGPT与基于GUI的自动化测试,chrome浏览器+ cypress +HTML代码需要主机名脚本语言和测试目标的URL。
207 10
|
JavaScript
一文搞懂Vue3中slot插槽的使用!
前言 使用 Vue 的小伙伴相信你一定使用过插槽,如果你没有用过,那说明你的项目可能不是特别复杂。插槽(slot)可以说在一个 Vue 项目里面处处都有它的身影,比如我们使用一些 UI 组件库的时候,我们通常可以使用插槽来自定义我们的内容。 Vue3 已经推出很久了,也有越来越多的项目开始转向 Vue3 了,那么如果你对 Vue3 中的插槽还不熟悉,那么很有必要跟着本篇文章学习一下了!
2155 0
一文搞懂Vue3中slot插槽的使用!
|
安全 算法 区块链
区块链游戏在社交方面的创新应用
**区块链游戏创新:** 利用去中心化与透明性,实现社区决策民主化,通过智能合约保障公正。玩家通过投票影响游戏发展,参与社区获代币奖励,促进内容生产和社交。虚拟物品所有权确保,交易安全,增强游戏互动。跨游戏资产互通打造虚拟世界,去中心化社交平台保护用户数据。这些变革提升游戏体验,推动行业进步。