V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hwdq0012
V2EX  ›  职场话题

摸鱼回忆一下自己这 10 年通过业余自习跳槽的经历

  •  
  •   hwdq0012 · 20 小时 40 分钟前 · 1148 次点击

    14 年大专机电一体化毕业,至 18 年,一直做本专业相关的电气工程师 当时工作需要,会使用三菱,西门子,abb 的大型伺服系统,不过这个就业面很窄,收入也很不可观 当时除了学校学了半学期 c ,还有一些电子电工,数电,没什么编码基础

    很偶然的做了一些事情 1 ,学习 ardiuno ,这个后来没太多收益 2, 学习托马期微积分,导致学会 mathemetics ,看起来和转行软件开发没关系,但实际上是必要的前置条件 3, 学习 3d 打印,这个后来没太多收益 4 ,学习了 c++,这个没有太多直接收益 在这个基础上

    有一次在做伺服电机控制时, 用 mathemetic 设计 5 次方曲线,(求导求导求导后曲线还是平滑的,意味着加加加速度是平滑的) 然后在 excel 里用尝试把函数离散化成数据,画成图表,把离散化后的值导入动态控制 plc ,用于控制电机转速 虽然实验后发现只有转速很低时才能维持曲线形状,但是水了一个专利, 领导和我都交了作业,双赢 而且学会了 vba

    直接导致我转到软件开发行业的事情是 有一个西门子 wincc 的 scada 项目需要落地,因为我们每年买很多西门子的伺服, 他们顺势向我司倾销了 wincc 组态软件,它可以在 windows 平台使用 vbs 脚本二次开发 和 plc 通讯,采集数据 数据归档,显示,控制的(比较少)的作用 vba vbs 都是 vb6 由于我是唯一熟悉它的人,所以这项目就落我头上了 后面又发现 wincc 可以嵌入.net 的 wpf 或 winform 的自定义控件,为了做出漂亮的图表控件,我开始学.net wpf 和 winform 当时了在网上了解了一下,wpf 可以做得比较漂亮,比较少人用,学校通常是教 winform 我选择 wpf 时,可能有一部分原因是觉得以后可以找工作时没那么多竞争对手吧 这段时间又学了 c#, 和一些设计模式

    18 年的时候 在线投简历面试到一个初创公司 就辞职去了广州,面试用的就是用 wpf 写的控件库 都是驻场开发,海南琼海,海口,博熬,陕西, 出差了很久,没什么进步,只做了 9 个月,一回广州就辞职了, 差不多只在广州 1/3 的时间,其他时间

    19 元旦-21 年我在某安防上市公司做客户端 当时客户端里即有视频解码,相机控制等功能页面, 也有大量的业务页面,当时都用 wpf 做

    后来客户端嵌入了 chromium, 前端组一边做需求 业务相关的页面一部门让 web 前端做, 客户端和嵌入的网页用 auth2 token 后面前端抽一队人做做低代码工具,低代码工具做出来后 开了很多前端,保留了 6 ,7 个人的团队做低代码工具 原来的测试和实施抽了一些来成立新的部门,专门做配置 客户端一些页面用 wpf 实现,一些业务相关的用低代码直接配置(数据库,流程引擎,到 ui 都是配置的) 客户端开了很多人,当时我小组长手下只 4 个人走得只有我,我也跳槽了,就他一个人了要,然后他也跳槽了 于是我们组也消失了,其他客户端组来把我们项目接手了

    我在这段时间业余本来想学 vue3+ts , 但 ts 太新,当时还没有什么学习的资源 而且防着低代码平台平替掉我,于是就没有再想过往前端学,实现也是如此,前端躲过低代码,现在又面临被 ai 的替换 于是这段时间业余学了一下kubernetes 但是没后端机会,1 是 c#本来就少被用于国内后端,2 是 kubernetes 那时也是新兴,.net 更用不上它了 但是通过学习 kerbernetes ,还是学会了很多有用的技术,shell, 边界网关协议,vim 等,不算白学 后面又学了点qt,没学多少,就跳槽了

    21 年,在拿了两个年度优化后和年终后,跳槽到北京做医药零售垂直领域的桌面客户端 多了一些合规,医保之类的东西,技术上倒没太多变化,saas ,to B 这段时间没加班, c++ 和 qt 两边都开始比较认真的学, 但学了一段时间又放弃了,因为 qt6 不支持 win7 当时感觉 天蹋了 于是又学习了一段时间的 DX 11 ,把 opengl 和 dx11 的视频都看了一下,最后选择了 dx11 , 学到一半,感觉跨度太大,学了也不好找工作,还是放弃了,于是又回过头学 qt ,学 qt5 ,不能放弃 win7,xp

    重新下决定,就学 qt 了, 不再犹豫不决 由于我习惯了 xaml+c#的 mvvm , 所以我在写 qt 项目时更偏向于 qml + c++写 mvvm 的代码 历史总是惊人的相似,在 winform 和 wpf 中的选择,在这时变成了 qt widget 和 qt qml 之中的选择 我还是选择了后者,但这次是因为喜欢 mvvm

    qml 的 mvvm 依赖 qt 的运行时反射, 绑定到 qobject 对象, 我希望用更好的性能绑定到 c++普通类里,所以我花了很多时间写了一个c++静态反射框架, 仅依赖 std ,header only

    这下可以像写 wpf 那样写 qt 了,虽然不能用 vs 热重载 c#(c++)了 但 qml 自己实现 ui 热重载还是很简单的(官方没支持),结合 rsync ,notify 等工作,在嵌入式上也能热重载 ui

    结合我的反射,包装了类似 c# observablecollection ,inotifypropertychange 等对标的泛型类(模板类) 我的 qml + c++的开发效率比较 wpf ,不差多少了 于是我尝试做了一个高仿的网易云音乐,后面找工作用到它了 吐槽一下,当时的网易云窗口 4 边的阴影是 4 个分别显示一个阴影透明窗口 this isn't a realy borderlesswindow!

    22 年,美团 京东 纷纷开始线上售药了, 我当时所在的公司也开始做这方面的业务, 桌面软件所在的这个事业部,全端了,一个都没留下,第一次拿了 n+1 ,给了 25 天左右没有工作量的时间,带薪找工作, 当时谈到最后两 offer 一个 c#,一个 c++ c#那个开始谈了 package 46w ,后来要发 offer 了他们 ceo 砍了一刀,变成 24x16 , 于是就降了一点总包,来 c++这边了,面试时拿之前学习的《高仿网易云 demo 》 项目面的 这份工作主要是 cv 方向,第一年差不多都是在别人的屎山上加加功能,改改 bug ,第二年初争取到 0-1 都我自己设计架构的项目,我把微软 wpf 的 prism 那套设计模式用 c++ qt 重实现为一套qt mvvm 脚手架:cpp-prism ,在我主导的项目中使用它进行开发,期间对 cpp-prism 所做的重构,也都推到了这个 repo 里 算是一边工作一边磨合 c++/qt ,提高熟练度吧 这个架构中,已经合并了大大小小的项目 6 7 个,大部分是研发一半死掉的,上量产机的项目只有 2 个,但因为架构合理,除非是改了萃取后的公共分部,否则不轻易在合并项目时产生太多冲突,,不管是 ui 还是业务,都能很容易的取出来,在需要的时候组合成一个新的跨平台,跨 cpu arch 的 app ,相信以后仍然会有很多项目在这个基础上扩展

    而今已经没有像刚入职那么忙碌 又学习了 Pytorch , 可以写一些简单的 cv 模型, 比如春节期间自己写卷积识别了扫雷游戏截图的所有格子状态, 本想结合 ddqn 让模型自己学会扫雷,但 ddqn 强化学习研究了几周扫雷还是越玩越乱,就放弃了,只好暂时搁置

    接下来想要学习的主要有两个方向 1 跨平台 chromium 开发,

    2 ros 机械手相关,例如立体相机点云识别,moveit 路径规划 姿态分析,抓取 ,结合 ros 仿真,强化学习

    1 可能会比较不吃学历,但前端越来越容易被 ai 取代 2 比较吃学历,难度应该也比较高,可能会学了找不到工作

    所以我目前还是更倾向 1 ,主要是比较不吃学历,应用面也比较广,互联网嵌入式都可以用 chromium 统一写 Ui

    总结起来,能转到软件开发,运气成分占了很多,一开始学的 wpf 也是比较冷门的,没有和应届正面抢工作,后面能一路跳槽成功,是因为学习没有太脱离实际,每次脱离实际了都通过刷求职软件校正回来,总之,有时候最重要的事情不是去看远方模糊的,而是做好手边清楚的

    18 条回复    2025-03-19 15:04:01 +08:00
    ice980
        1
    ice980  
       20 小时 30 分钟前
    很佩服老哥的自学能力,我是前端,最近想学习后端,找个全栈工作,不知道怎么才能让面试的公司接受我,我需要通过什么样的自学成果说服对方呢。老哥有这方面的经验吗
    hwdq0012
        2
    hwdq0012  
    OP
       20 小时 26 分钟前   ❤️ 1
    @ice980 试试 jode.js 呢, 我学 kubernetes 时,node.js 已经可以直接调试 pod 里的服务了, 它和前端又都用同一语言,应该不会给别人一跳太跳脱的感觉 ,我也没有做过后端, 只是写过一些内网的 web api 服务而已
    ericguo
        3
    ericguo  
       20 小时 13 分钟前
    佩服 OP 能接触学习那么多
    ice980
        4
    ice980  
       20 小时 10 分钟前
    @hwdq0012 感谢回复,我应该是表达有误,其实我想问的经验是“自学,然后跳槽成功转岗的经验”,现在虽然在自学,但是有点担心找不到合适的公司来转岗,花时间做了无用功。
    hwdq0012
        5
    hwdq0012  
    OP
       20 小时 10 分钟前
    @ericguo 社会边角料,人中隐形人,自娱自乐
    hwdq0012
        6
    hwdq0012  
    OP
       20 小时 2 分钟前
    @ice980 我觉得我主要是赛道比较小,选择的方向人少,虽然没好的敲门砖,但每逢面试,必拿自己做的项目出来,恨不得当场 coder reviewer ,也是运气好有人看吧,运气不好,初筛就把你简历扬了
    ice980
        7
    ice980  
       20 小时 0 分钟前   ❤️ 1
    @hwdq0012 谢谢老哥的分享,我还是继续学下去吧,这样至少有改变的可能。
    YsHaNg
        8
    YsHaNg  
       19 小时 55 分钟前 via iPhone
    坚决拒绝 gui 客户端工作
    hwdq0012
        9
    hwdq0012  
    OP
       19 小时 53 分钟前
    @YsHaNg 嵌入式的还好,没什么业务,赛道也小,收入也还好
    YsHaNg
        10
    YsHaNg  
       19 小时 47 分钟前 via iPhone
    你第一道经历之后就可以慢慢转 ic 设计了 甚至底层编译器 eda mcu fpga 等等 不太需要搅客户端这趟浑水
    hwdq0012
        11
    hwdq0012  
    OP
       19 小时 41 分钟前
    @YsHaNg 当时差点去宁德时代做单片机了,那时宁德时代还是小厂,我也不知道福建有这么牛逼的厂,电话沟通了一下,但是我当时这方面技术确实没学习到达到别人要求的水平,只记得当时沟通的是 6k+ , 但广东那个给我提的是 10k
    joyhub2140
        12
    joyhub2140  
       19 小时 40 分钟前
    不是老哥学习这么多东西,怎么兼顾好家庭的。。。特别是有了孩子之后。
    deetincelle
        13
    deetincelle  
       19 小时 19 分钟前
    受教了
    hwdq0012
        14
    hwdq0012  
    OP
       19 小时 10 分钟前 via iPhone   ❤️ 3
    @joyhub2140 感情这东西 空窗 33 年了
    niub
        15
    niub  
       6 小时 14 分钟前   ❤️ 1
    厉害👍
    defunct9
        16
    defunct9  
       2 小时 31 分钟前
    欲练神功,必先挥刀自宫么
    hwdq0012
        17
    hwdq0012  
    OP
       2 小时 24 分钟前
    @defunct9 曾经有几份真挚的感情放在我面前。。。而我只是一只码喽
    defunct9
        18
    defunct9  
       1 小时 29 分钟前
    挺好挺好,别找了,都是麻烦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5130 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:33 · PVG 16:33 · LAX 01:33 · JFK 04:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.