我的2023:恋爱、结婚、生娃,不写代码

2023-12-23 23:40:48 浏览数 (1)

2022年,几乎没去过公司上班。上半年每周三去公司做一次核酸集采就行,因为各种原因,公司也没什么项目,下半年就一直在家里睡觉。在不强制居家的日子,就一直骑着摩托车游山玩水。

在一次骑行中,一个女孩无意间拍了我一张还挺好看的照片,从此命运的齿轮开始转动...

生活篇

所以2023年就完成了订婚、结婚、生娃全系列,短短一年,我就终结了我浪荡的青春。婚后比较明显的变化就是:父母再也不拐着弯儿地催婚了...

上班交通工具也由GSX250换成了Ninja400,上100也不会那么吃力了。虽然如此,但20km的通勤路的确是有点无聊,甚至一天的工作量还没在路上骑车通勤的时间长。虽然路上经常遇到几个认识的摩友,但是我明白,遇到他们意味着我就要迟到了...

2023年,也迎来了我的28岁,从发量到存款,感觉和27、26、25、24岁没啥区别,只不过今年的生日,由一群人变成了我媳妇陪我过,在生日那天,也是趁着下班的功夫去追了个焦留念,纪念我那独一无二的28岁。

工作篇

希望公司耗子尾汁,继续努力。

学习篇

虽然平时是做大数据开发和架构的工作,但是好像一年也没学什么东西。主要完成两个项目,一个是flink cdc采集oracle,还有一个用Netty上传1W 亿条/天数据的项目。今年的项目内容主要也就这两个,虽然平时关于Spark、Flink、架构的需求多,但是今年的确是没写几个程序。

在大数据开发工作不饱和的日子,开始学习前端vue全家桶。18年学习vue的时候,还是选项式开发,学完前面忘后面。现在的vue3是组合式开发,学起来很带劲。

例如我想在vue2中引入其他组件和声明周期函数:

代码语言:javascript复制
<script>
    import MenuBar from "./MenuBar";
    export default {
        name: 'Home',
        components: {MenuBar},
        mounted: function () {
        // 页面挂载之后要执行的声明周期函数
        }
    }
</script>

在vue3中一手setup 组合式编程,让开发方便了很多、

代码语言:javascript复制
<script lang="ts" setup>
    import MenuTree from '@/layouts/backend/components/menus/menuTree.vue'
    import {onMounted} from "vue"
    onMounted(() => { })

在vue3中,无需export defalut导出,引用组件也无需在components中声明,加上vue3中的一些defineEmits、defineProps,以及与TypeScrit中声明vue组件的defineComponent,更符合后端开发习惯。

vue-router

之前学的是vue-router 3.x,现在4.x,同时也为vue3提供了useRouteuseRouter的API来操作路由。

代码语言:javascript复制
<script setup lang="ts">
    // vue2
    const router = this.$router
    // vue3
    import {useRouter} from 'vue-router'
    const router = useRouter()
    router.push('/admin')
<script>

TypeScript

以前都是用JS,TS与之相比更像后端语言。在项目中中用的比较多的有三点。

  1. 可以定义interface和方法:
代码语言:javascript复制
export interface ContextMenuItem {
    name: string
    label: string
    icon?: string
    disabled?: boolean
}
  1. ${} 字符串和变量结合的小功能。
代码语言:javascript复制
const routeInfo: RouteRecordRaw = {
    path: path,
    name: routes[idx].name,
    component: () => import(`@/${routes[idx].component}.vue`),
}

在webpack下使用import全量加载时,参数不能使用完全是变量,所以这个功能就很有用。

  1. 是能定义vue组件。
代码语言:javascript复制
<script lang="ts">
    import {h, computed, defineComponent, resolveComponent} from 'vue'
    import {isExternal} from "@/utils/common";
    import svg from '@/components/icon/svg/index.vue'

    export default defineComponent(
        {
            name: 'Icon',
            props: {
                name: {
                    type: String,
                    required: true,
                },
                size: {
                    type: String,
                    default: '18px',
                },
                color: {
                    type: String,
                    default: '#000000',
                },
            },
            setup(props) {
                const iconStyle = computed(() => {
                    const {size, color} = props
                    let s = `${size.replace('px', '')}px`
                    return {
                        fontSize: s,
                        color: color,
                    }
                })
                if (props.name.startsWith('el-icon-')) {
                    return () => h('el-icon', {
                        class: 'icon el-icon',
                        style: iconStyle.value
                    }, [h(resolveComponent(props.name))])
                } 

        }
    )
</script>

与vue相比,使用ts不用定义<template>,使用 h() 直接渲染即可。

后来又跟着BuildAdmin项目学习Element Plus、Pinia,算是对前端完成了入门的学习。在拆解BuildAdmin项目过程中,写了一些技巧和感悟,前端部分整理了百分之七十了,争取2014年弄完。。。

面试篇

今年充当了一波免费技术型HR去面试大数据开发。前前后后面试了有十几个人,最后竟无一人入职,我这100%的失败率让我一度怀疑是我的问题。

通过这十几次面试,感悟挺多,小城市的技术氛围可能真的有点差强人意。因为本来就是小城市,加上同行不为难同行的原则,你简历上写什么我就问什么,简历上不写的我基本上啥也不问,毕竟我也是个临时工。总结一下面试遇到的几个问题:

1. 简历不真实

在自我介绍的时候,大部分都说是大数据开发。技能栏上也写着会Java、scala语言等。我问其中一个工作两年的哥们:你Java学到哪个阶段了?等了一会没有说话,我怕他不理解,我说Java基础、web、ssm框架、多线程、jvm你学到哪里了呀?

这时,他才说学到了Java基础,我说IO学到了吗,他说大学学过。我说那你就是学到了集合对吗,他说是,我说平时做大数据开发的时候够用吗,他说够用。我....

还有大部分的简历都写了Spark、Flink、Kafka、Redis以及Linux的一些东西。但是在介绍项目的时候,大多都是大数据分析、数仓建模以及ETL的内容。简历上写精通Spark,实际上就是写过WordCount。写的了解Flink时间语义,不知道有哪些时间语义,自己写的watermark也不知道触发机制是什么。

然后简历上写熟练使用redis。有的最基本的redis常用数据类型、运行模式以及hmset命令都回答不出来。

因为大数据集群大多和Linux主机打交道,看他们写的会shell开发。我就问了几个常用的命令:机器负载(top)、查看内存(free)、查看文件大小(du)、查看磁盘大小(df)、查看进程(ps),问几个沉默几个。。。

2. 简历重复性太高

虽然说大数据的东西就是那么多,但是很多简历上个人技能和项目介绍的重复度过高。项目内容、技术架构、项目内容好多都是一样的。

3. 公司问题

这个是吐槽公司的。招人之前和我说:招个能干活的。面完一问三不知的,Leader还和人家谈薪资,背后还吐槽我一下面试太严格,希望Leader反思一下:人家不来,是不是工资没给够?吃力不讨好的工作难干...

所以说,小城市的程序员良莠不齐,没有很好的生长土壤,在没有产出的996、007环境中过完一年、三年、五年的工作经验。同时,小城市的公司也暴漏出很多问题,没有好的技术环境氛围,技术全靠自学、项目全靠忽悠。很多时候只是为了996而996,资本家的控制欲过于强烈。

同时也希望自己:见贤思齐焉,见不贤而内自省也

结语

2023有好有坏,上半年为生活忙忙碌碌,下半年最后的两个月再开始学习的旅途。展望2024,技术上希望能学完前端,玩明白Stable Diffusion的AI绘画。生活上希望能捡起落灰的吉他、玩玩摄影啥的。工作上没啥想说的,希望不只有眼前的苟且....

0 人点赞