我的十年编程路 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)即文件传输协议,是互联网最早的传输协议之一࿰…...
三天吃透操作系统面试八股文
本文已经收录到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 数据分析三…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
