• 欢迎访问:祀与戎,国之大事,在祀与戎。 手机号码:
  • 欢迎访问:祀与戎,国之大事,在祀与戎。
  • 欢迎访问:祀与戎,国之大事,在祀与戎。祀与戎
  • 祀与戎,国之大事,在祀与戎www.siyurong.com
  • 祀与戎,国之大事,在祀与戎。如果您觉得本站非常有看点,那么赶紧使用 Ctrl+D

不知行者:网上到处转码编程成功的,现实中真的容易吗?

思想观点 siyurong 4年前 (2022-09-18) 3次浏览 已收录 0个评论

说一下我吧,我原来读天文,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%强。要不过去就是凑分母

下面都是我的以前一些回答

关于退学的想法

我研究生申请退学之后我对科研的一点看法

19年写的回答

2019 年你读了哪些觉得比较好的计算机书籍?1704 赞同 · 392 评论回答

csapp该如何读

如何阅读《深入理解计算机系统》这本书?926 赞同 · 213 评论回答

对slam算法理解

本科数学基础差的感觉 SLAM 很难,如何去提高?350 赞同 · 48 评论回答

关于学习opencv

学习OpenCV的建议?39 赞同 · 8 评论回答

2020年的回答

2020 年你读了哪些觉得比较好的计算机书籍?48 赞同 · 7 评论回答

一边学习一边校审改正

如何评价《Effective Modern C++》?58 赞同 · 20 评论回答

21年的回答

2021年你读了哪些觉得比较好的计算机书籍?113 赞同 · 35 评论回答

机器人学中的状态估计第六章课后习题答案​zhuanlan.zhihu.com/p/141187207

去年linux系统编程的代码

https://github.com/mingtiancai/LinuxProgramming​github.com/mingtiancai/LinuxProgramming

去年年末golang自己练习的,那时候没裸辞,突击一下基本功能就在公司写功能了,然后自己有空在学习补充一下完善知识面

https://github.com/mingtiancai/learn_go​github.com/mingtiancai/learn_go

今年rust练习的代码

https://github.com/mingtiancai/learn_rust​github.com/mingtiancai/learn_rust

年初又自己弄了一下golang web,毕竟我原来只写客户端,写一点简单的练练手

https://github.com/mingtiancai/go_web​github.com/mingtiancai/go_web

之前机器人的一些练习,后面不想敲公式,就不写了,竟然还有20多个星,里面一些问题并不比leetcode hard简单

https://github.com/mingtiancai/estimation_for_robotics_answer​github.com/mingtiancai/estimation_for_robotics_answer

关于为什么频繁辞职

月薪 2 万~ 3 万元是一种怎样的人生体验?325 赞同 · 282 评论回答

当我碰到一些我可能当前做不到,但是觉得难以置信的事情时,我一般更喜欢思考如何能做到,只要收益足够吸引我,我不在乎风险。我愿意接受极为苛刻的要求,只要能帮助我达到目标,至于真实性,只要在人类极限范围内,别太离谱,我就直接干了。

我本来就不是磨磨唧唧的人,作为东北人,我认为能动手就不要吵,不服就干ᥬ ᭄

————————————————–

当我没学过计算机专业课,只会使用matlab搞算法的时候,我觉得底层就是看matlab文档。但是有人跟我说搞算法得python

当我只会用python调库搞算法的时候,我觉得底层充其量就是python标准库。然后有人跟我说只会写python脚本不算会编程,工业强度都是用c++

让我终于可以用c++实现各种算法的时候,我觉得底层就是c++标准库,然后有人和我说那是应用层,下面还有系统层,系统层用c

于是我又开始学习c,觉得底层就是c标准库了吧,然后有人说操作系统内核都不用c标准库,标准库只是封装一系列系统调用

于是我又去搞内核,了解内核的一些实现,觉得这就是最底层了,毕竟是用c实现的。然后有人说底层是汇编,高性能部分操作系统都是用汇编写的。

于是我又去搞汇编。指令集总不能变了吧,够底层了吧。然后又有人跟我说指令集只是硬件给软件的接口,指令集的底层硬件实现还有很多更低层次指令集。

当我实在搞不懂了,我才想起来我是搞cv的,再底层就去搞芯片了。


祀与戎 , 版权所有蜀ICP备14023000号-6丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:不知行者:网上到处转码编程成功的,现实中真的容易吗?
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址