转行做程序员,多晚都不晚
大家好啊,我是董董灿。
最近有不少小伙伴加我微信咨询一些问题,有同学想了解AI行业的现状,想着转行的,也有在校生想了解毕业后工作方向的,当然也有想学习编程知识的。
诚惶诚恐,没想到之前写的文章,能有这么多小伙伴关注。今天打算挑几个话题结合我的个人经历,写一写我对这些问题的思考。
文章较长,偏意识流,欢迎一起交流~
1、我的就业
这是一个研究方向与计算机视觉有关,但又不是计算机视觉专业的同学发来的。
最近两年CV领域越来越卷,尤其是算法岗,确实导致很多研究CV的同学害怕毕业后找不到好工作。
更何况还有很多其他专业的同学,比如机械、自动化、环境等专业,他们研究的内容也有不少与计算机视觉有交叉。
所以毕业时的竞争压力,除了来自本专业,还有其他专业,更别提还有潜在的来自学校层面985/211的压力了。
但这件事是无解的么? 当然不是。
记得我毕业那会儿,对于未来的职业规划也不清晰。
读研期间,我除了专业知识的学习外,还经常混迹图书馆,看了一些闲书(可惜图书馆在毕业那年拆了),到毕业时,虽然已经拿到了offer准备入职,但仍然对未来有一丝恐惧。
当时就一直在想,未来那么长,我到底要做什么呢?
现在回想,选择工作,看的无外乎就是:发展潜力、自己是否感兴趣、公司平台、工资这些条件。
毕业后的第一份工作,这几样中总得占一样吧。
于是我从机械专业,转行做了程序开发,也算遵循了内心的选择,慢慢的变成了现在的一名攻城狮:敲敲代码,看看论文,学学算法,写写文章。
如果现在有人问我,你找到喜欢的职业了?我会摇摇头,不知道。
前段时间在看一本书,名字叫做《远见》,里面把人的职业生涯划分成3个阶段,每个阶段以15年为限。
第一阶段指的是刚毕业的第一个15年。
这15年是寻找职场兴趣点的15年,这期间,我们有大量的时间来试错,换工作甚至换城市,从而能找准自己未来的职业方向,并且准备在第二个黄金15年里持续为之发力。
这么算下来,我也才刚刚开始。
所以对于职业规划,我的认识是,现阶段随遇而安,喜欢做什么,就去做什么。后两个15年我还远未达到,不清楚该怎么做,遵循内心,去做自己真正喜欢的事情。
所以,上面同学的疑问,读书期间对未来十分迷茫,再加上现在就业越来越卷,这事怎么解?
有解,读书期间就做读书期间该做的事:该写论文写论文,该学知识学知识,该看书看书。就业卷是事实,我们改变不了,能改变的只有自己。
研究生就是步入社会之前的演武场,可以不断尝试,不断犯错,不断纠正。谁也无法确定未来真的会做什么。
喜欢读书就多看书,很有可能,未来的中国,会少一个机械工程师,但是会多一个畅销书作家。
2、我的学习
这位同学用过不少计算机视觉相关的代码库,如OpenCV,但是也仅仅局限于使用,对于视觉算法的了解不太够,更没有亲自实现过某些算法。
这就导致我想到了一个学习的对立面,是应该一知半解还是应该学透原理?
说个我的故事。
记得大学时有一堂课是《理论力学》,老师突然点名让我到黑板上推导一个较为复杂的公式,当时推的什么公式现在已经忘了,但很清楚的记得,在我成功推导出来之后,我潇洒的从讲台上走向自己座位时,走路的姿势都是不一样的。
很幸运,那次上课前,我心血来潮预习的比较充分。可以说,当时的我,对那个公式是“学透”了的。
但大学里众多课程知识点,当时学起来仍然是一知半解,直到毕业,直到现在慢慢的已经记不起来了。
后来在工作中接触了AI算法,才发现,很多知识不参透是不行的,毕竟是工作中吃饭的家伙,容不得半点马虎,稍不注意,程序分分钟报bug给你看。
王国维在《人间词话》中说过人生三境界,而学透一个算法:从了解到手推最后到代码实现,每一步都像是在三境界中升级打怪一般。
了解了某个算法,那就是“独上高楼,望尽天涯路”。
挑灯夜战,十几页纸手推算法成功,那就是“衣带渐宽终不悔,为伊消得人憔悴”。
待到熬夜将代码敲出来,成功跑通算法之后,再回过头来看,那不就是“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”么?
学习,需要经过这些过程,才能真正做到融会贯通。
很感谢研究生期间刘老师的教导,刘老师不仅教会了读研期间需要的专业知识,还花了大量的时间和精力教我们学习和做事方法。“授人以鱼不如授人以渔”,这些方法和态度,都将陪伴终身,一生受益。
3、我的自学
这是一个想系统地自学一些编程知识和计算机体系结构的同学发的。我给他推荐了一些我之前学习看过的书和视频。
自学真的很难,难不在知识,难在坚持。
我第一份工作做程序开发,那时的工作大部分集中在某arm芯片配置寄存器上,并非真正的算法开发,事实上,与算法没有任何关系。
而机械专业出身的我,自然对计算机的知识了解的少之又少。工欲善其事,必先利其器,既然工作用到了,那就缺啥补啥。
感谢互联网的便捷,网上有大量的慕课课程,有编程语言,有计算机考研课程,很成体系,也很细节。
记得当时学一门C++的课程,百度某资深工程师授课,整个课程全是干货,没有半点口水话,几十节课程共20多个小时,我来回听了6遍。虽然课程中的很多知识在工作中并未真正用到,也并未真正全部实践过,但直到现在,里面的很多知识还能顺口说出来。
学习真的是一件很快乐的事。所以自学可行么?当然可行。
自学需要投入大量的业余精力,想学到入门级水平,书籍和课程看一两遍就够了,想学到工作信手拈来的水平,多看几遍,多实战几遍,肯定能上手,如果不行,那就再来几遍。
最后,回归到上面的几个问题,无论是就业,还是上学,还是自学,与其想该如何如何去做,不如找准目标,轻装上阵,干就是了。
有句很有名的鸡汤说的很好:“种一颗树,最好的时间是10年前,其次,就是现在。”
小伙伴们,撸起袖子加油干吧。
祝所有看到本篇文章的小伙伴在未来都能收获自己的大树。
点击下方卡片与我联系,一起交流职业成长。
相关文章:

转行做程序员,多晚都不晚
大家好啊,我是董董灿。 最近有不少小伙伴加我微信咨询一些问题,有同学想了解AI行业的现状,想着转行的,也有在校生想了解毕业后工作方向的,当然也有想学习编程知识的。 诚惶诚恐,没想到之前写的文章&#…...
自动化运维ansible
一、Ansible概述: 是一个配置管理系统(configuration management system),当下最流行的批量自动化运维工具之一。 Ansible是一个开源的自动化工具,用于配置管理、应用程序部署和编排等 IT 任务的执行。它专注于简单性和可扩展性,并…...

记录:Unity脚本的编写4.0
目录 前言导入音乐编写脚本 前言 之前使用脚本对uniry中的模型进行了控制,诸如使用键盘控制对象模型的移动或者使用鼠标对对象模型进行角度的切换(或者是类似的东西),而我们在游戏的过程中,总是伴随着一些好听的bgm&a…...

vue中引入jquery解决跨域问题
1、vue 工程文件 package.json 中 引入 “dependencies”: { “jquery”:“^2.2.4” }, 2、控制台执行命令,当前工程文件夹下 cnpm install 3、修改的vue文件中 加入 import $ from ‘jquery’ 4、调用 ajax请求 $.ajax({url:http://192.168.0.10:9099/strutsJspA…...

车规MCU开发工具之Vector DaVinci Configurator执行arxml合并操作
环境 Step1 导入要合并的arxml 、 Step 2 比较、合并过程 <完>...
数字滚动动效(纯HTML5版和Vue版本)
数字从0到指定数字的滚动动效,直接上代码; H5 <!DOCTYPE html> <html> <head><style>/* 设置数字显示的样式 */.counter {font-weight:700;font-size: 36px;color: #333;}</style> </head> <body><div cl…...

Leetcode—2530.执行K次操作后的最大分数【中等】(C语言向上取整数学公式)
2023每日刷题(五) Leetcode—2530.执行K次操作后的最大分数 向上取整思想 参考了这篇文章 有人肯定会问,这个向上取整为什么是这样来的。接下来我简单讲解一下。 数学式: x y 数学式:\frac{x}{y} 数学式:…...
CMakeList 编写示例
cmake_minimum_required(VERSION 3.8) #指定cmake的最小版本 set(PROJECT_NAME Untitled_1) #初始化变量 project(${PROJECT_NAME} VERSION 1.0) #创建一个project set(CMAKE_AUTOMOC ON) #初始化内置变量, 该变量为Qt工程专属变量 set(CMAKE_AUTORCC ON) set(CMAKE_A…...

OSI笔记
由7层组成,由下自上分别为: 物理层(硬件方面,例如物理网络设备、布线电缆、光纤等), 传输数据主要是比特流0 1 、电信号数据链路层(确定了0 1 的分组方式,通过广播的方式࿰…...
C++之前置声明
在C中,前置声明是一种声明类或函数的方式,但并不定义它们。 前置声明的主要目的是为了解决编译时的依赖性问题,提高编译效率,并允许更灵活的代码组织。 原理 C前置声明可以减少头文件依赖的原理在于,通过前置声明&am…...

用3D扫描生成合成数据
合成数据集(Synthetic Datasets)正在成为计算机视觉模型训练的标准部分。 虽然新工具使合成数据集变得更容易访问,但除了标准机器学习过程之外,许多工具还需要对 3D 建模有基本的了解。 最简单的捷径是从现实世界中获取现有对象并…...
pip安装依赖报错
执行命令时 pip install --upgrade pip 报错: pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。pip install --upgrade pip~~~ Category…...
规范的项目流程图怎么写
编写规范的项目流程图可以遵循以下步骤: 1.明确项目目标:首先,明确项目的目标以及需要实现的结果。这有助于确定项目的范围和要求。 2.识别项目任务:识别和列出所有的任务,这可以包括获得资源、实施动作、收集信息等…...
模型部署笔记--Pytorch-FX量化
目录 1--Pytorch-FX量化 2--校准模型 3--代码实例 3-1--主函数 3-2--prepare_dataloader函数 3-3--训练和测试函数 1--Pytorch-FX量化 Pytorch在torch.quantization.quantize_fx中提供了两个API,即prepare_fx和convert_fx。 prepare_fx的作用是准备量化&#…...

解决XXLJOB重复执行问题--Redis加锁+注解+AOP
基于Redis加锁注解AOP解决JOB重复执行问题 现象解决方案自定义注解定义AOP策略redis 加锁实践 现象 线上xxljob有时候会遇到同一个任务在调度的时候重复执行,如下图: 线上JOB服务运行了2个实例,有时候会重复调度到同一个实例,有…...

云安全(1)--初识容器逃逸之特权容器逃逸
文章目录 前言privileged,特权容器逃逸环境配置实际利用实际环境利用计划任务/var/spool/cron/crontabs/ 适用于ubuntu debain/var/spool/cron 适用于centos ld.so.preloadssh 前言 在10.15号的上海中华武数杯的渗透赛里做到了一个k8s的题目,这应该是我第一次在比赛…...

二阶系统时域响应
二阶系统微分方程 二阶系统传递函数 二阶系统单位阶跃响应 过阻尼系统 临界阻尼系统 欠阻尼系统 无阻尼系统 二阶系统阶跃响应仿真 在Matlab中进行仿真,设置不同阻尼比2、1、0.5和0,可以得到结论: 阻尼比越小,系统响应速度越快&…...

mstsc改端口为33389
windows 远程默认端口3389不太安全,改成33389防下小人 把下面的2个文本存在后缀.reg的文件,双击导入注册表,"PortNumber"dword:0000826d 这个就是33389对应的端口号的16进制值,要想自己改成其它的换下值即可 Windows …...

经典算法试题(二)
文章目录 一、岁数1、题目2、思路讲解3、代码实现4、结果 二、打碎的鸡蛋1、题目2、思路讲解3、代码实现4、结果 三、分糖1、题目2、思路讲解3、代码实现4、结果 四、兔子产子1、题目2、思路讲解3、代码实现4、结果 五、矩阵问题1、题目2、思路讲解3、代码实现4、结果 六、谁是…...

Linux——生产者消费者模型
目录 一.为何要使用生产者消费者模型 二.生产者消费者模型优点 三.基于BlockingQueue的生产者消费者模型 1.BlockingQueue——阻塞队列 2.实现代码 四.POSIX信号量 五.基于环形队列的生产消费模型 一.为何要使用生产者消费者模型 生产者消费者模式就是通过一个容器来解决生…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...