说一下我吧,我原来读天文,25岁从中科院退学出来。当时觉得cs太差符合研究生再出来工作。但是考研清华ai多次落榜,被迫工作。天不遂人愿,当时除了能写一些简单的python脚本,几乎没有任何计算机软件基础。
25岁的时候,我身无分文一个人来到北京。
我最开始因为真的写不出来工业届要求水平的代码,所以最开始在工作中连代码都写不上。在一家机器人公司做技术支持和测试。
因为做测试的缘故,我发现机器人有问题就会给研发报告,他们就会过来调试代码。我就站在后面,我在的那个机器人公司有很多清华毕业的,带我的基本也都是清华出来的。他们很聪明,所以我就站在他们身后看他们调试,学习他们的调试技巧。等他们发现问题上传代码修复,我就看git记录。然后下班回家,从头学习C++。
持续了大约两个月,就一些简单的功能,其实我已经有能力在主管把大框架定下来的条件下自己写一些功能了。但是问题就在于必须得有大佬把环境啊,大方向啊都指导完才能做。不具备独立性。后来出差有点多,个人能力提升有点慢,我就辞职了。
裸辞之后一个人在北京一个出租房里面,那个小房子连窗户都没有,白天永远都是黑的。
那时候我就想在自己电脑里面弄一个ros。ros是一个建立在操作系统之上的分布式应用于机器人的操作系统。但是我失败了,因为网络不同老断,编译老出问题。我除了去照抄csdn完全没有能力自己判断怎么解决问题。装个操作系统整了两天,整个虚拟机都各种问题被卡,写一个二分查找都费劲。那一年是2019年年初。
当时碰到了中科院自动化所某cv方向院士的博士生师兄,看我很落魄,让我去他的公司,他要调教我做算法。期间我们谈了一下我的职业规划。我说我当时26岁,但是我在计算机方面几乎是0,我想用三年的时间,在职业上成长为在国内能有点水平的工程师。当时我想主做cv,所以在师兄的公司,我做一些视觉算法调研,二次开发,opencv的代码嵌入式移植。
我当时就下定决心,我要做算法,但是我不能只停留在算法层面,我的整个软件工程能力要全面提升。我不能老依赖别人帮我做系统底层的事情。
所以除了在工作中,下班回家我就看书写代码。从c++基础开始,然后c++的什么effective那些进阶书开始码起来。但是用c++开发到后面我就有了一些困惑,发现这是一个可以做很底层的语言,但是底层系统那些东西我完全不懂,说白了就相当于自动化出来的人,能做开发但是写代码干不过计算机软件的,
所以我在那年开始,开始补数据结构,操作系统,组成原理这些基础的知识,unix系统编程啊。
到了2019年下半年,我逐步开始提升了,我就发现周围的同事水平比我差不少,我就裸辞了
在家里继续学习,开始补一些机器学习的基础,统计机器学习啊,自己从头写一些分类器啊,学习高性能计算啊mpi,openmp,数值算法啊。我当时是想,很多的大牛都是自己做机器学习框架,我也自己写一些。
到了2020年,我开始更系统的学习软件工程,看了一些程序员从小工到专家啊,boost一些库的使用啊,点云处理啊pcl,还有一些机器人算法,什么状态估计啊,卡尔曼滤波啊,粒子滤波之类的。然后我找了一份3d视觉算法工程师的岗位,做点云算法,做了一些落地包括c++客户端的开发工作。
然后这个公司因为疫情发不出来工资了,融资还没到,所以我就裸辞了。在家开始补一些计算机网络,包括更深入的linux系统编程嵌入式软硬件的东西。
到了2021年,我就去了一家机器人公司做软件工程师,做医疗软件开发。然后因为涉及一些可视化,所以也开始补图形学。代码也写了两年了,我开始意识到软件架构的重要性,来事学习软件架构,在写代码的时候要做很多的深度思考,把自己的理解和新学习的架构方法用到项目里面。
然后就是待了几个月发现周围的同事水平又比我差很多了,我就裸辞了。
这时候年中,我就在家弄算法导论啊,自己写小型操作系统。呆了一个月,百度自动驾驶那边面试过了,就去上班,做感知障碍物的测试。
待了一个多月,我的感受就是测试本身并不水,但是很多从业者的coding,软工水平太一般。当然我也很有收获的。我以前完全不知道devops流水线,拓展了我的视野,也正式用了一些自动化测试框架,而且学习了一些敏捷开发模式。顺便开始比较深入的理解apollo的内部模块设计,然后我又裸辞了。
然后在家自己写网络库,也没有投简历。有一天突然有人找我,说要不过去试试外包,我一想我还没做过外包,正好体验一下也行啊。就去了。
然后正好用刚学的给他们写数据驱动的一些可视化软件。主要就是udp通信加上图形oo编程。
在里面真的一点压力没有,天天摸鱼,所以我就待了一个月就裸辞了。
然后去了一个安全公司,学了一些模糊测试的框架代码,从头学了golang,docker,web,java,给他们写了一个分布式任务管理的客户端。
然后我发现跟我配合的java程序员水平也太差了,小爷我学了那么多东西,竟然要跟这路货色平级。然后新来的研究员竟然连开发环境都配不出来,网络也不会配置,我果断裸辞。
然后在家失业,学习了rust,年初开始学编译原理,自己做一个小编译器,也在研究devops和底层图形学。因为我是想行成自己做引擎的架构能力和算法实现能力。
薪水你说的是总包30万,我从21年百度开始就超过这个数字了,而且越往后越高,但是我自己眼光也越来越高。
所以只要我老实待着,算转码成功了。但是我更明白,我老老实实打工只会让我距离梦想更遥远,所以我裸辞失业了。
开始完全不能接受自己只所以做一个初中级码农的角色。我想要做一些真正有价值开创性的工作,这也意味着我要承受非常高强度的学习成长压力。
但是冥冥之中我有一种自信,我相信我至少能成为Chris Lattner相当的人。但是我也清楚,我从0开始到现在时间太短,还没有足够成长起来。正式因为如此,如果不是工作需要我现在都没有办法看论文,我至少在今年把编译器分布式数据库一些基础自己搞下来之前,尽量避免陷入太细节的点。等到通用软件工程能力完全建立起来,再去专攻一个方向,做核心产品创新。原因很简单,我如果专攻一个方向,只要财务危机出去找到不到高端研究岗,我就很危险。但是保持完善工程能力之后,之少可以保证总包50W以上的一个岗位。而且雇主只要敢用我就会立刻创造价值。最近我开始沉迷代码,尤其是一些超级大的开源项目
我相信在低段位的人情世故绝对不是什么有价值的东西,该抛弃就抛弃。我要做的就是找到一些我能碰到的比我强的,然后从他身上学过来,然后接着找。现实找不到就去网上找。就去书籍里面找古人。
所以我把联系方式留下来想结交优秀的人。想看看别人绽放的光彩。
到此时此刻为止,我心里早就没有转码这个问题了,我在想的是我如何去做成一个世界影响力的项目,为了实现这个目标,我要完善哪些能力。如何寻找这样的问题和解决方案。
至于转码容易吗?我觉得还行。
完全没必要像我一样图大而全。我这么搞完全是冲着做cto或研发经理去的,不是为了一个开发岗。一个研发岗不论是开发算法测试都只在一个小方向就好了。身边很多都不是计算机过来的。但是不是计算机出身,在软件算法上能让我觉得很牛逼,我身边几乎没有,清华贵系出来的能让我多少隐约有这种感觉或者那种在一个方向做了很多年的博士积累创新很多的那种。大部分不论是转码还是科班,工具人搬砖罢了。
现在的我也没多强,你们也看到了,我还在不断提升自己。只不过不会像最开始整ros那么崩溃,遇到什么问题解决什么问题,最快的方式的确是用引擎搜索,但是也有自己的判断,网上找不到解决方案,自己也可以自己搞,然后共享到网上。就算碰到很细的技术问题,论文也不好使,自己改进改进只要给我点时间,我也能搞出来点东西。大概就这样,也是工具人。哎……
但是我有一个觉悟,就是只要我做,不论我以前是不是科班,我都要把科班压着打,至少要比科班前5%-1%强。要不过去就是凑分母
下面都是我的以前一些回答
关于退学的想法












