当前位置: 首页 > 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 概述 逆功率继电器是基于感应式原理(具有旋转磁场)而工作。 继电器导磁体由两个磁路系统组成:上磁路系统和下磁路系统。电流线圈安装在上磁路系统中,它由接在发电机某相的…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下&#xf…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...