当前位置: 首页 > news >正文

我的十年编程路 序

算起来,从决定并从事编程开始,已十年有余了。

这十年是怎么算的呢?

我的本科是从2009年至2013年,现在回想起来,应该是从2012年下半年,也就是大四还未正式开始的时候决定从事Android开发。参加了培训班,就是很流行的那种可以先贷款参加培训。先是培训上课,然后工作“包分配”,其实就是辅助修改+投简历,工作后再慢慢还款的过程。

但实际上呢,我参加培训确实也走了贷款过程,但最终的工作仍然留在那家培训公司,做助教。所以也算是找到了一份工作,再后面就是还款的正常流程了。

我记得那是在12年的夏天,开始参加实训。到差不多年底的时候,就做起了助教。所以到今天为止,总的工作年限可以算是有十年了。

这也是“我的十年编程路”系列文章的缘起。回想自己过去的十年,虽小有所成,但也走过一些弯路。相信做为“过来人”,都不希望看到年轻人走自己的弯路,反正我是这样想的。所以写下一些文字,这些文字就是我这十年来的经历以及复盘。回看自己哪里做得不足,想想现在的自己有没有从过去的经历里走出来,学到点什么。再就是给所有读到这些文字的人一个启发,如果有可能,避开我失误的部分。也就是取我的精华,去我的糟粕。

如果哪里的文字有触动到你,那将是我十分荣幸的事。

接下来,我将以年份为单位总结每一年的工作。第一年,也就是2013年,就是下一篇文章要详细纪录的年份。但是,毕竟2012年我也做了一些事,助教的工作也做了一小段时间。恰好,这篇序言到此为止还略显单薄,索性现在就和各位看官说说那些发生在2012年的往事。

2012年,我在上大三。那一年的上半年尾声,总有一些培训机构来学校做宣讲。说白了就是忽悠学生去参加培训班,赚钱。一开始是打着Oracle旗号培训Java的,再后来有哪家我就记不清了,反正是直到来了一家培训Android开发的,我最终选定了这家。

如果不参加培训班,我会去做什么呢?我依稀记得那个时候我一心想做视频/图像设计,毕竟我拿过两次相关奖项;要么就是去做网络工程师,毕竟我买了全套的Cisco培训教材。但最终选择了Android开发,究其原因,一方面是宣讲的内容蛮吸引我的,另一方面就是22岁的我认为Android开发很有前景。现在看来,当初的选择还是挺正确的。

那个时候交通不如现在方便,地铁只有1号线,虽然家门口就有地铁站,但它却并不通往我的目的地,所以只能选择公交车。

早上8:30(好像是)开始上课,我最迟6:30从家里出发,步行大概10-15分钟的路,坐上公交车。大概过1个钟头,下车,再转另一辆公交车。由于另一条公交线路是城郊线路,不仅车次少,而且人多。所以单程2小时,时间还蛮紧张的。当然,下午课程结束,我还要花2个小时回家。算起来,每天有4个小时左右都要浪费在路上。那个时候,心里别提多羡慕那些工作地点离家近的人们了。

培训内容是半天 - 半天进行的,半天讲课,半天练习。内容上就先是Java基础,学到能做出个推箱子小游戏就算可以了。接下来就是Android开发,就是Android API的使用。最后呢,就是项目阶段,会选定一个App作为实战,体会团队协作编程,顺便学习SVN(对,不是Git)。

说到底还是年轻,虽然起得早,睡得晚,但每天精力都很充沛,深受那些培训老师的喜爱。再加上我自己的个性,编程能力真的突飞猛进,成为了培训班的“小大哥”。为什么是“小大哥”,因为真正的大哥是培训老师。除了常规上课和练习之外,中午的订饭工作有时也是我来做。管纪律的老师知道我离家远,考勤也不怎么追究,甚至教我说:“迟到了别说起晚了/看错表/表没电了之类的,可以说是堵车了,这样就不算迟到了。”

所以总的来说,在培训机构的小世界里,承蒙老师们的照顾,我过得很舒服,也学到了更多。

再到后来,我就成为了……助教。每天半天的学生答疑时间都是我来负责,那段时间过得比参加培训还要充实。培训老师跟我讲,培训出来基本都是赶鸭子上架,Java基础是很薄弱的,也就是停留在会调用API的阶段,再往深就不行了。而且也并不是所有常用API都会讲到,还得自己学习。

所以我利用当助教的时光啃下了《Java语言程序设计》基础篇和进阶篇两个大部头,也是我第一次感受到:当注意力投入足够的时候,是真的会错过身边的事物。有一天我在研究书中的知识,有个培训老师喊我,我是真的没听到,直到他走到我面前叫我,我才意识到他的存在。他当时很惊讶地跟我讲:“你是真的吗?”我也很无语,说“是”怕他不信,“不是”又显得我故意,不过最后还是坦率地讲了事实。

这种“投入”的状态,无论是当时的学习,还是后来的编码。直到前几年我才明白:这就是所谓的“心流”状态。在这种状态下,会感觉时间、空间仿佛都不存在了。专注于投入的事情,会感觉时间如飞一般。刚刚看时间,还是早上9点,怎么一下子就到了午饭时间?对,就是这种感觉。

内容上则既不是低水平的重复,也不是难到完全无法处理。而是游离在舒适圈稍稍远一点的位置,像登山一样,虽有难度,但可挑战。正是这种状态,是最能提升我的编程水平的状态。

另一方面,地铁线路修通了,我可以坐地铁上下班了。地铁和公交相比,时效和舒适度都上了一个台阶。我从原来的往返4小时通勤,缩短到了仅需要2小时。恰好赶上冬天,能晚起一个小时,早回家一个小时,真的挺舒服。而且面对那些初学者的问题,我终于也能够处理地游刃有余,对答如流。

但是,那种“心流”的状态渐渐的离我远去了,我觉得工作越来越没有什么挑战性,没有难度,尽是些重复性地劳动。不过,毕竟年轻,不懂得“天花板”的概念,在舒适圈里确实很舒适。

就这样,2012年便结束了。我记得冬天的时候,下了雪,公司门口和地铁站出站口的瓷砖很滑。我们戏称它为“夺命黑瓷砖”,一个不小心,就要摔一个跟头。到公司后,大家打招呼都是:“你摔了吗?”大家谈论工作的内容越来越少,闲聊神侃的时间越来越多。虽然招生仍在继续,但似乎资金出现了些问题,但具体我不知道。教学内容居然由不懂技术,也没实际教过的人来定。现在看来,公司显然需要进ICU急救一下。

面对个人舒适圈和公司的状况,我走完了2012年。如果说这一年有何得失,那就是“心流”的状态,以及对“舒适圈”的认知。

“心流”是高效工作/学习的最佳状态,突破舒适圈,在其周围“登山”,是突破自己的最佳方式。

现在的我,如何确定一件事值不值得做呢?就要看这件事本身是否处于舒适圈外,不然就是低水平的重复,做来无味。想要让自己投入做一件事,如果周围环境比较嘈杂,就戴个降噪耳机,却不放任何内容,或放白噪音。目的就是不受打扰,让自己处于“心流”状态。

如果你也像快速成长,高效应对工作和学习,不妨试试我的方法,希望这些技巧能真的帮到你。

相关文章:

我的十年编程路 序

算起来,从决定并从事编程开始,已十年有余了。 这十年是怎么算的呢? 我的本科是从2009年至2013年,现在回想起来,应该是从2012年下半年,也就是大四还未正式开始的时候决定从事Android开发。参加了培训班&am…...

xs 180

选择题(共180题,合计180.0分) 1. 你被任命为某项目的敏捷教练,为了更好的交付产品,你与团队召开会议,讨论项目过程中团队应该如何做到有效沟通。最有可能确定项目过程中主要以下列哪种方式沟通? A 团队成员在各自的办公室自行办公&#…...

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序) 目录 时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)预测结果评价指标基本介绍完整程序参考资料预测结果 评价指标 训练集数据的R2为:0.99302 测试集数据的R2为&…...

0101基础-认证授权-springsecurity

文章目录1 基础概念1.1 认证1.2 会话1.3 jwt1.4 授权2 授权的数据模型3 RBAC3.1 基于角色的访问控制3.2 基于资源的访问控制4 名词解析4.1 SSO4.2 CAS4.3 联合登陆4.4 多端登录:同一账号不同终端登录4.5 OAuth1 基础概念 1.1 认证 认证是为了保护系统的隐私数据和…...

一文简单了解THD布局要求

一、什么是THD? THD指总谐波失真。谐波失真是指输出信号比输入信号多出的谐波成分。谐波失真是系统不完全线性造成的。所有附加谐波电平之和称为总谐波失真。总谐波失真与频率有关。一般说来,1000Hz频率处的总谐波失真最小,因此不少产品均以…...

[C++]多态

🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录一、多态…...

中国版ChatGPT高潮即将到来,解密ChatGPT底层网络架构

2022年11月30日人工智能研究实验室OpenAI发布全新聊天机器人ChatGPT,在中国用户无法访问的前提下,上线仅两个月月活用户就突破了1亿。ChatGPT如同重磅炸弹,一时间火遍全球。面对这一万亿级市场机遇,在国内,无论是资本方…...

PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞

导读 近日,TiDB Cloud 发布了 Chat2Query 功能,在 TiDB Cloud 上通过自然语言提问,即可生成相应的 SQL,通过 TiDB Cloud 对上传的任意数据集进行分析。Gartner 也在一份有关 ChatGPT 对数据分析影响研究的报告中提及了 PingCAP 的…...

力扣-销售分析III

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1084. 销售分析III二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结…...

U-Boot 之七 详解 Driver Model 架构、配置、命令、初始化流程

U-Boot 在 2014 年 4 月参考 Linux Kernel 的驱动模型设计并引入了自己的 Driver Model(官方简称 DM) 驱动架构。这个驱动模型(DM)为驱动的定义和访问接口提供了统一的方法,提高了驱动之间的兼容性以及访问的标准性。 …...

大数据算法重点

1 大数据亚线性空间算法 场景:用二进制存储一个数字N,需要log(N)的空间 问题:如果N特别大而且这样的N又特别的多,该怎么办呢? 思路:减少一些准确性,从而节省更多的空间。 解决办法:使…...

【Eclipse】The import xxxx cannot be resolved 问题解决

在Eclipse使用过程中,某一个类明明存在,但是使用import导入时,却总是提示The import xxxx cannot be resolved的错误,解决办法如下: 点击Project->Clean......

LinkWeChat系统Docker版部署注意事项

具体部署手册:https://www.yuque.com/linkwechat/help/ffi7bu注意事项:启动类配置文件路径需要修改,各个模块启动类原配置如下:.properties("spring.config.name:bootstrap", "config/run/bootstrap.yml")各个…...

【高数】不定积分之有理函数的积分

文章目录前言有理函数积分的通用解法有理函数的特殊解法前言 这个专栏开始更新高等数学的解题方法,本专栏没有特别强调概念,主要是让大家熟悉考研中的一些题型以及如何求解 关键步骤用蓝色高亮提示 总结方法用红色高亮提示 注意事项用绿色高亮提示 希望…...

Java——数组

目录 前言 一、数组的定义 二、数组声明和创建 三、三种初始化及内存分析 Java内存分析 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 四、下标越界及小结 五、数组的使用 For-Each循环 数组作方法入参 数组作返回值 六、二维数组 七…...

产品分析|虎扑APP

不同于传统的体育新闻门户网站,虎扑以篮球社区起家,在经历了从体育论坛到体育新闻网站的发展后,又逐渐回归社区发展。 目前,虎扑汇聚了大量的男性用户,俨然成为了“互联网直男的自留地”。特立独行的发展方向使得虎扑不断发展壮大,同时也使得虎扑逐渐触碰到了行业天花板。…...

有限差分法-二维泊松方程及其Matlab程序实现

2.2 偏微分方程的差分解法 2.2.1 二维泊松方程 考虑区域 Ω \Omega Ω 上的二维泊松问题: { − ( ∂ 2...

【设计模式】6.代理模式

概述 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理访问目标对象 这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是:远程对象、创建开销大的对象或需要安全…...

SRC挖掘之Access验证校验的漏洞挖掘

漏洞已修复,感谢某大佬的知识分享。 任意用户密码重置->可获取全校师生个人mingan信息 开局就是信息收集。 对于挖掘edu的信息收集 1.可尝试谷歌搜索语法,获取学号信息 2. 旁站的渗透获取 3. 学校的贴吧获取(大部分都是本校学生) 当然我就是闲&a…...

GG-21 100V 5A逆功率继电器

1 用途 GG-21逆功率继电器在出现逆功率时,从电网中断开交流发电机。 2 概述 逆功率继电器是基于感应式原理(具有旋转磁场)而工作。 继电器导磁体由两个磁路系统组成:上磁路系统和下磁路系统。电流线圈安装在上磁路系统中,它由接在发电机某相的…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中&#xff0…...