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

我的十年编程路 2021年篇

慢慢地,时光走过了8个年头,来到2021年。

站在2021年,回望8年的过往,没有大的起伏和波澜。或许是上天的眷顾,我的事业发展一直都很顺利。当然,弯路也走过一些,而且工作其实挺辗转的,如果看过我前几年的文章就会知道。但这都没关系,我的Plan B,也就是写作,提供了能力和经济上的支撑。甚至,现在,我已经分不清工作和写作,到底哪个是Plan B了。

2020年底,我又再一次处于失业状态,但这一次我并没有急着找工作,甚至还拒绝了一些面试邀请。因为那个时候我在写《深入浅出Android Jetpack》,一本关于Android开发的书。

进入2021年之后,一个偶然的机会,我去面试。整个面试过程非常轻松,结果就轻松地入职了。想来因为是创业公司,刚开始比较缺人,才这么轻松。当然,更大的原因,应该是我的能力还不错。

入职的日期是1月8日,也就是一开年,我就又上班了。这是荣科旗下的创业公司,荣科本身是家历史悠久的上市公司,作为创业公司的我们,处于起步阶段,做的是互联网医疗业务,主要涉及App、网页前端、微信公众号和小程序。刚开始写代码的只有技术总监和我两个人,他是个酷爱编程的工作狂,前端后端都能做。不过从我的角度看,他应该是更擅长后端,于是我一直搞所有的前端。也正是有这段经历,让我有了前端开发的经验,快速地上手了Vue前端框架,什么Element UI、有赞UI等框架都玩了一圈,还集成了老相识——即时消息IM,只不过这一次的提供商不再是容联了。

从客户端上手前端的我,感受就是前端页面写起来比客户端效率高多了。再加上蓝湖这种可以自动生成样式代码的工具,效率实在是不知道翻了多少翻。

工作效率的提升带来的就是工作时间的缩短。我记得当时我有一段时间就是只花半天时间编码,半天时间创作自己的书,基本上每天都是准点下班。到了天暖的时候,还会选择骑共享单车回家。后来经同事介绍,我尝试了共享电单车,发现确实省劲很多,于是后来就一直骑共享电单车。

从冬末春初,到夏末秋初,我一直任职在这家公司。在这期间,我收获了前端开发技能。同时,我辛勤耕耘的写作也开始产生那种有温度的收益。

某一天,有位读者添加我的微信,他应该是大学的老师,是《Flutter从0基础到App上线》那本书的读者。据他说,他完全靠我的书,完成了两周的高校技术实训。我在知乎上的文章也受到了首次赞赏,金额是2块钱。其实,那本Flutter的书,签的不是版税合同,销量多少和我其实没有关系,2块钱的赞赏其实也不多。但这都是对我非常大的鼓舞,我知道有人在阅读我写的内容,甚至还把这些内容当作教材教授给年轻的一代。这就让我更有动力、有使命感,也更加感动。从另一个方面讲,一个人孤单地做内容产出,其实真的很孤单,很累。我记得在没有入职之前,我从早上起床后就开始写,一直写到晚上,除了中午吃饭的时间,差不多10多个小时。结束之后,真的是连话都说不出一句完整的来,似乎在那个时刻,语言能力都丧失了几成。写书,有收入是必然的,但读者的互动,则是更加有温度的,也就更能激励我创作更多有价值的内容。再辛苦一点,也不觉得有什么。

技术方面,受前端开发体验的影响和华为鸿蒙操作系统的火热,我跑到iLearning平台,取到了HCIA鸿蒙应用开发工程师在线课程的认证。后来得知这个认证似乎没有什么含金量,不过聊胜于无吧,也算是对鸿蒙App开发有个初步的了解。

后来,忘了基于什么理由,收到了CSDN CTO俱乐部的《程序员增刊》。还先后收到两次,就记得收快递的时候感觉沉甸甸的,我都不知道是什么东西,拆开之后还蛮惊喜的。

另外,我又忘了是基于什么理由,收到了掘金平台的首个纪念品:一个杯子。说是杯子,其实就是大茶缸子,我这么说,大概就能有画面感了。至少我国北方的朋友应该都能想象得到,就是那种金属的圆柱形,然后镀上一层漆。比如那种影视剧里特别常见的,军绿色漆,也有白色漆的,然后上面印个主席头像,下面写“为人民服务”的那种杯子。只不过我收到的是白色的油漆,上面写的好像是“码上掘金”还是啥的。这种杯子特别实在,特点就是能盛的水多。

大概在下半年开始,我突然决定要考个PMP。想到自己年过30,考个PMP以备转型管理使用。奈何当时疫情很严重,本来年底就能去考的,硬是拖到了2022年的夏天。算下来,将近一年的战线。

同样是在2021下半年,我所在的公司撑不住了,这次的原因是现金流断了。不过这家公司的做法还是挺仗义的,给了赔偿金。虽然没有在三星那样丰厚,但能按规定给付赔偿金的公司,特别是对于已经快发不出工资的公司来说,已经很不容易了。算下来,到目前为止,我已经拿过三次赔偿金了。一次是三星天津给了一笔赔偿金+安家费,另一次是三星广州给了一笔赔偿金,再就是这一次公司倒闭给了一笔赔偿金。以至于后来我12月入职的时候,公司问我为什么离职,如果我如实说,我都会担心公司会不相信我的经历。

离职之后,我开始通过人脉关系,和两位前辈一起,创作《Go语言从入门到项目实战》一书。我负责基础部分、PPT和视频讲义,还有一些杂活,比如创建读者QQ群之类的。也正是在这次创作中,我学到一句话:“一为约束,万事不入”。我认为这是一种真正的取舍,决定做一件事,就意味着放弃另一件或一些事,都想要做是贪。这个世界就是这样,想得到很容易,难的是放弃。确实有时候会陷入两难,觉得两件事情,都舍不得放弃,又找不到一种两全的方法。但现实就是这样,总是会放弃一件事,然后去努力成就另一件事。当然,最坏的结果就是该放弃的放弃了,不该放弃的也没做成。不过,放在当时做选择的那个时刻,又如何得知最终的结果呢?所以,不如就过好当下。正所谓不念过去,不畏将来。

紧接着又是一段有趣的经历,年底面试的时候,给我面试的人是拿着我的书来的,所以结果也没问什么技术问题。这样的经历让我更加明确了写作对我来说是必须要做的事情,甚至是现在,在我写这些回忆录文章的时候,我的面试邀请明显增多了。所以,写作,特别是在这个时代,是非常重要的一项能力。当然,类似的还有短视频等等。总之,就是那些表达自己、体现能力的非常好的方式,都值得耕耘。

于是,毫无悬念,我入职了我现在这家公司,时间是12月6日,做测试开发,现在又做管理,管理算我在内5个人的小团队。

2021年,也是我成家后的第三年。11月15日,是我们当年在天津领结婚证的日子,一转眼就过去三年。那一天,我发了一条朋友圈,写道:“你是年少的喜欢 也是余生的甜蜜”。配的图是来自里尔克的《给青年诗人的信》的摘录:“我一向认为两个人相处,这是他们的最高职责:保护对方的孤独”。确实是这样,回首婚后的三年,正是有老婆照顾我的饮食起居,我才能心无旁骛地做我喜欢的事,她用实际行动保护了属于我的那份“孤独”,我真的很感谢她。也正是这个原因,我包揽了家里的几乎一切家务,还有每天遛狗。因为我也同样不希望这些琐事耗费她太多的时间,我也很想保护属于她的那份“孤独”。另外就是,因为我们本身是南北两地的结合,再加上婚礼在不同的国家、城市办了规模不同的三次,所以纪念日就显得特别多。我觉得自己还算是那种“会来事儿”的人,几乎是每到这些日子,我都会给她一些惊喜。

好了,毕竟是说事业的故事,家庭的事就回头再细聊吧。

也许是时间久了,感情深了。我家的小车服役了6年,在一次做保养的路上,电瓶做了它一生最后一件事:把车和我送到保养目的地。等我把钥匙交给修车师傅之后,车子就再也无法启动了。所以,2021年的劳模奖,毫无疑问地要颁给电瓶,它称职、可靠地完成了它的使命。

不知不觉,忙碌、充实的2021又要过去了。在这篇文章的最后,我再一次引用我在朋友圈中引用过的一段话,这段话我已经找不到出处了,但它确实激励着我不停下前进的脚步。我愿意分享这段话,与正在看这篇文章的你共勉:

“我和各位分享的第一个自我突破,是朝着自我真正热爱的那个方向,建立你的约束,自我管理不容易,那就和那些眼前的人、心上的人立约,这个丰盈的果实是属于自己的。我现在的心情就像农夫收完了一片庄稼,至于是不是“草盛豆苗稀”,我还不知道,但我觉得明年会比今年好些。我的时间宝贵,各位的时间也宝贵,从理智出发,没有道理不去努力做得更好些。”

相关文章:

我的十年编程路 2021年篇

慢慢地,时光走过了8个年头,来到2021年。 站在2021年,回望8年的过往,没有大的起伏和波澜。或许是上天的眷顾,我的事业发展一直都很顺利。当然,弯路也走过一些,而且工作其实挺辗转的,…...

ElasticSearch 8 学习笔记总结(七)

感觉这些东西没必要认真学,了解一下,工作用到再学。 文章目录一、ES8 EQL 介绍二、ES8 EQL基本操作 与 安全检测三、ES SQL操作四、ES SQL与DSL的关系五、ES 常用的SQL操作六、ES datagrip配置ES七、ES8 自然语言处理 NLP八、ES8 性能优化 之 缓存九、ES…...

【云原生】Docker 网络模式详解、容器间网络通信

当项目大规模使用 Docker 时,容器通信的问题也就产生了。要解决容器通信问题,必须先了解很多关于网络的知识。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,也有着很多不完善的地方,网络方面就是 Docker…...

Java开发 - 布隆过滤器初体验

目录 前言 布隆过滤器 什么是布隆过滤器 布隆过滤器的作用 布隆过滤器原理 怎么设计布隆过滤器 布隆过滤器使用案例 安装布隆过滤器 添加依赖 添加配置 添加工具类 添加测试代码 简单测试 特别提醒​​​​​​​ 结语 前言 前面三篇,已经把消息队列…...

【计算机组成原理 - 第一章】计算机系统概论(完结)

本章参考王道考研相关课程: 【2021版】1.2.1_计算机硬件的基本组成_哔哩哔哩_bilibili 【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili 【2021版】1.2.3_计算机系统的层次结构_哔哩哔哩_bilibili 【2021版】1.3_计算机的性能指标_哔哩哔哩_bilibili 目录 一、…...

C++类与对象(下)【详析】

类与对象(下) 目录类与对象(下)一、再谈构造函数1.构造函数体赋值2.初始化列表定义:注意点:总结:3.explicit关键字引入:explicit:二、 static成员回顾:static…...

exe反编译为.py文件

介绍公司以前的一个exe包,我们需要查看里面python源码,但是以前的py源码文件找不到,所以只能反编译,介绍一下反编译的过程。首先准备:pyinstxtractor.py这个文件,网上很多,自己下载准备查看二进…...

38 openEuler搭建FTP服务器-FTP总体介绍

文章目录38 openEuler搭建FTP服务器-FTP总体介绍38.1 FTP简介38.2 FTP使用到的端口38.3 vsftpd简介38 openEuler搭建FTP服务器-FTP总体介绍 38.1 FTP简介 FTP(File Transfer Protocol)即文件传输协议,是互联网最早的传输协议之一&#xff0…...

三天吃透操作系统面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...

vue后台管理系统——添加i18n国际化功能——技能提升

昨天在写后台管理系统时,遇到一个需求就是需要实现国际化功能。 antd和element-ui这两个框架其实都是有国际化的。 具体展示形式就是如下: 点击右上角头部的语言,切换语言,然后整个系统的文字都改变成对应的语言展示。 切换成…...

理清gcc、g++、libc、glibc、libstdc++的关系

0 理清gcc、g++、libc、glibc、libstdc++的关系 0.1 $ dpkg -L libc6 $ dpkg -L libc6 /lib/x86_64-linux-gnu /lib/x86_64-linux-gnu/ld-2.31.so /lib/x86_64-linux-gnu/libBrokenLocale-2.31.so /lib/x86_64-linux-gnu/libSegFault.so /lib/x86_64-linux-gnu/libanl-2.31.s…...

一、快速入门 MongoDB 数据库

文章目录一、NoSQL 是什么1.1 NoSQL 简史1.2 NoSQL 的种类及其特性1.3 NoSQL 特点1.4 NoSQL 的优缺点1.5 NoSQL 与 SQL 数据库的比较二、MongoDB 基础知识2.1 MongoDB 是什么2.2 MongoDB 的体系结构2.3 MongoDB 的特点2.4 MongoDB 键特性2.5 MongoDB 的核心服务和工具2.6 Mongo…...

PMP第一章到第三章重要知识点

第1章引论 1.1指南概述和目的 PMBOK指南收录项目管理知识体系中被普遍认可为“良好实践”的那一部分: “普遍认可”:大多数时候适用于大多数项目,获得一致认可。 “良好实践”:能提高很多项目成功的可能性。 全球项目管理业界…...

【事务与锁】当Transactional遇上synchronized

事务与锁 - Transactional与Synchronize🥰前言问题回放问题一1、代码与结果复现2、原因分析3、解决方法问题二1、问题复现2、原因分析事务Transactional与锁synchronized1、synchronized与Transactional区别2、可能带来的问题3、针对问题二的解决前言 最近工作中遇…...

Pytorch模型转TensorRT步骤

Pytorch模型转TensorRT步骤 yolov5转TRT 流程 当前项目基于yolov5-6.0版本,如果使用其他版本代码请参考 https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5 获取转换项目: git clone https://github.com/wang-xinyu/tensorrtx.git git …...

产品经理入门——必备技能之【产品运营】

文章目录一、基础介绍1.1 用户生命周期 & 产品生命周期1.2 运营的目的1.3 运营的阶段1.4 运营的主要工作(海盗模型)二、AARRR模型2.1 Acquisition 拉新2.2 Activision 促活2.3 Retention 留存2.4 Revenue 转化2.5 Referral 传播总结产品运营技能是产…...

【Java实现文件上传】java后端+vue前端实现文件上传全过程详解(附源码)

【写在前面】其实这篇文章我早就想写了,只是一直被需求开发耽搁,这不晚上刚好下班后有点时间,记录一下。需求是excel表格的上传,这个是很多业务系统不可或缺的功能点,再此也希望您能够读完我这篇文章对文件上传不再困惑…...

什么是SSD?SSD简述

什么是SSD?SSD简述前言一. SSD组成二. SSD存储介质存储介质按材料不同可分为三大类:光学存储介质、半导体存储介质和磁性存储介质三. SSD接口形态固态硬盘有SATA 3.0接口、MSATA接口、M.2接口、PCI-E接口、U.2接口五种类型。三. SSD闪存颗粒分类闪存颗粒…...

MySQL基础------sql指令1.0(查询操作->select)

目录 前言: 单表查询 1.查询当前所在数据库 2.查询整个表数据 3.查询某字段 4.条件查询 5.单行处理函数(聚合函数) 6.查询时给字段取别名 7.模糊查询 8.查询结果去除重复项 9.排序(升序和降序) 10. 分组查询 1…...

Python数据分析处理报告--实训小案例

目录 1、实验一 1.1、题目总览 1.2、代码解析 2、实现二 2.1、题目总览 2.2、代码解析 3、实验三 3.1、题目总览 3.2、代码解析 4、实验四 3.1、题目总览 3.2、代码解析 哈喽~今天学习记录的是数据分析实训小案例。 就用这个案例来好好巩固一下 python 数据分析三…...

大话软工笔记—需求分析概述

需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

API网关Kong的鉴权与限流:高并发场景下的核心实践

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...

AI书签管理工具开发全记录(十八):书签导入导出

文章目录 AI书签管理工具开发全记录(十八):书签导入导出1.前言 📝2.书签结构分析 📖3.书签示例 📑4.书签文件结构定义描述 🔣4.1. ​整体文档结构​​4.2. ​核心元素类型​​4.3. ​层级关系4.…...