2023年终总结
今年有幸能入门 Revit 的二次开发,虽然不知道自己最终能不能胜任这份工作,但我会拼尽自己的全力去努力争取。
年初感想
入行之前,我完全是二开的小白,也从没学过 C#,也看不懂 RevitAPI,虽然自学过 C++,但工作要使用的是 C#,一切都要重头学习。
然而学习 C++的经历也不能完全否定,这是我经历的一次学完一门编程语言的完整过程,这也给我快速入门 C#奠定了一定的基础,很多概念都类似,只需要学习语法怎么写,对比和 C++不一样的地方在哪里,然后反复折腾,很多概念都很好理解,所以入门上手也很快。所以我经常都认为,学什么东西不一定就要做什么,完全凭自己的兴趣,学的时候认真的学,学完要是没有后续,那就就没有后续吧,这个过程中锻炼的是“自学”这项能力,自学能力提高了,学什么最终都能学会。
自学这项技能,像是一门手艺,手艺的特点就是无需天分,手艺的特点就是熟练程度决定一切。自学能力不是知识,不是有什么高效的学习方法,不是把自己记忆力锻炼到能记住圆周率后 100 位,只是熟能生巧而已。所以你要问我有什么学习方法没有,我的答案是重复,反反复复不厌其烦一字不差地阅读学习,反反复复听课、实践,古人说读书百遍其义自见,其实也用不到 100 遍,10 遍 8 遍也就懂了。
关于学习态度
关于态度这事,其实需要有一定的经历或者压力才能深刻理解,旁人只能指点,却不能代劳,只能自己领悟,无论学习什么,都要认认真真的学,不能囫囵吞枣式的学习,要反复、要有耐心……这种劝导的话,说来说去就是那些,听都麻木了,只能自己慢慢领悟了。
我以前看书就是一目十行的看书,很浮躁,合上书本的那一刻,我脑子也合上了。但现在学习 C#我是通过阅读书籍入门的,虽然 C#的委托、Lambda 表达式、LINQ 这些知识,我看书都理解不了,是看视频学会的,但那些基本的语法和概念,那些和 C++的各种细微差异,都是看书学会的,我切实深刻地感受到自己的成长和进步,感受到自己的耐性有所提升。
我们自学的终极目标是:“只靠阅读就能习得一门技能”,我不记得究竟什么时候我竟然能够只靠阅读习得了一点技能,我只知道我还需要继续学,我也正在学 ing。
很多时候我们觉得学习好像看完书/视频就必须学会,我们下意识地认为这个过程好像只能持续一次,学不会就开始否定自己,因为我们多年来的教育考试都是这样的,因为考试只有一次机会,失败意味着失去一切,这种思维习惯深深影响着我们一生。然而自学这个过程,我们有很多试错的机会,不能说无限次,但至少不会只有一次那么少。
我们可以重复不少次,重复这个过程,就是学习的过程,从开始学习到最终学会,这期间要花多少时间和精力,每个人都是不一样的,但我们知道,只要坚持学,总能学会。
上半年的总结
很久没有写总结笔记了,回顾这几个月来做二开的感受,到现在还有一种不真实的感觉,一开始我是自学的 C++,后面阴差阳错的进入了二开的领域,现在感觉也还不错。
尽管也有加班,也有怎么都做不完的活,但想来工作也都差不多,都是永远会有加班,永远会有做不完的活。
以前做 BIM 的时候,活一多,自己就不太想做了,也是因为自己经历太少,心中总存在一种念想,想拥有一份轻松的、稳定的工作,拥有足够多的自由时间,工作是业余,不被工作占满所有的时间.
但这些年的经历让我感觉这些想法都太天真了,那种生活在目前来说基本不存在,尤其是欠缺工作经验的,真实的情况永远是工作会占用绝大多数的时间,所以对加班,对于永远做不完的工作,也释怀了,只要自己对工作要做的事不反感,那工作就是修行,提升自己的最好方式。
关于转行
我转行到 BIM 二开这事,很多粉丝同学都不知道,因为也是今年刚转行成功的,有些让我分享一下转行的经验,或者是说经历,但其实我觉得没有什么可以分享的,因为我自己也不知道怎么就转行成功了,虽然不算完全转行到纯 IT 行业,不就是从工地转到 BIM 二开而已嘛,其实想来也挺简单的,但对我来说,我感觉还是有点蜿蜒曲折的。
我是自学转行的,在我看来,自学的最大阻碍不是你的学习能力,而是对自己选择的道路是否拥有足够坚定的信念,因为学习新知识这种事,其实也挺简单的,尤其是学习技术知识,读书百遍其义自见,重复重复再重复,孰能生巧等等,只要不断重复,就能掌握,但在重复的过程,自己很容易自我怀疑,这个东西真的有用吗?我选择的是对的吗?学完真的能找到工作吗?会不会学完,这个行业又凉了?我对这个东西真的感兴趣吗?...等等之类的怀疑,自学之路上,没有人可以坚定的对你说:“你只管学就好,学完一定能有大作为”,选择是有成本的,选择是要付出代价的。很多时候转行成功,完全凭一口气,一股冲劲,还有运气。
我刚毕业那会,在工地,自学了 Linux 运维,折腾各种 Linux 发行版的使用,学习运维部署的知识,学习了 git 的使用,在当时看来,我以为已经学得很多了,准备转行运维,因为自己根本没学过任何编程语言,听说运维入门门槛低,所以就选择了运维方向,但没转成功,因为运维要求的也不少,自己学的那点东西,当时就自我感觉良好而已,完全上不了台面。
但接触 BIM 之后,也不想在工地继续混了,所以就先暂时转去做 BIM 建模,我觉得能转 BIM 建模,也是运气很好,感觉遇到的都是很好的老板,在招聘软件上聊了很久,我说我折腾了各种 Linux 发行版,折腾了 git、docker 之类的,可能是觉得我的折腾能力还可以,也许就是看中了这份折腾能力,所以我就很幸运的去做了 BIM 工程师。做了将近一年之久,后面因为加班太多, 连续加班了半年,每天工作到 11-12 点,有时候还通宵,虽然老板也没有强制说要加班,其实自己可以完全就摆烂,反正时间就这么紧,根本就做不完,老板后面也是直接说实在不行就直接让我们摆烂了,因为我们都是接着项目直接对接客户的,老板自己也在做项目,毕竟小公司,每个人都负责自己的项目。
但当时也没想太多,都是想着要怎么尽快做完,但折腾了大半年,发现自己做得东西好像也没有什么技术含量, 都是在拧螺丝,我觉得整个生活都完全被工作占满了,完全没有任何时间学习总结新知识,自己工作效率完全得不到提升,因为没有时间学习新知识,工作效率得不到提升,工作越堆积越多,导致更没有时间去学习新知识来提升效率,进入了恶性循环中。
那段时间,加班到生病,得的是肠胃炎,因为经常熬夜加班,压力大,生物钟紊乱,吃东西吃出个肠胃炎,生病那段时间,半夜被惊醒的那一幕,我记忆犹新,凌晨 2-3 点,毫无预兆的惊醒,那时第一想法是,是身体防御机制开始工作了,突然惊醒是防御机制触发,是检测你是否还活着,如果没醒来,那很可能就永远醒不过来了,那段时间之后,就好像突然觉悟了,觉得生命充满了意外,很多事如果不做,可能就再也没有机会了,于是我毅然决然的辞职,老板对我也很好,几次辞职都极力挽留,看得出来并不是客套,也是因为我工作态度负责,都是想把事情做好的那一类人,虽然经验差了一点,但工作态度、折腾能力是很难培养的,我也很惋惜,但每个人都有自己的宿命,我觉得进入编程是我最终的目标,感觉像是有什么东西在召唤,吸引我进入编程领域,我觉得不能再得过且过的工作了,无论如何自己也要去尝试一下,所以我就直接裸辞,直接报名培训班加自学。
我花了 2 万多块钱,报名学的 C++,最开始我反对报名培训班的,觉得自己自学能力还可以,根本不用报班,但我还是选择报班,因为上一段自学 Linux 运维的经历,我很容易找不到方向,学着学着,觉得永远有很多东西学不完,报名培训班,会有一定的课程路线,只要跟着路线学就好,有一定的重点方向,就算中途自己心学来潮去学习其他的,迷失方向的时候,也能继续走培训班规划好的学习方向继续上路。
一开始学习的时候,顶着一股冲劲,一直脱产学习了大半年,但越学到后面,越觉得培训班的课程不行,本来是奔着找工作去的,但培训的内容就只是一些基础,完全不涉及工作的东西,找嵌入式工作完全找不到,后面也看开了,就当是买了一个教训。
然后就快速调整方向,找和自己 BIM 工作相关的二次开发,比较没有开发经验,也有业务经验,转行起来会容易一点,而且之前做 BIM 的时候,自己也折腾过 Dynamo 这种可视化编程,学习了大半年的 C++,面向对象的基础还是有的,所以我就直接看一本书快速入门了 C#,就赶紧找 Revit 二次开发的工作。我感觉也是运气好,本来面试的时候,我是属于完全小白,又没有开发经验,所以很多公司基本都不看,都是要有经验的,然后不知道怎么的,就遇到了现在的公司,本来也是不太想要我的,因为完全没有经验,后面不知怎么的,可能是刚好也要招新人,就给了自己这么一个机会,也就误打误撞的进入到这个行业。
所以回顾起来,怎么转行成功的,很多我也不清楚,我觉得还是运气占了很大的部分,也庆幸自己能保留着折腾能力,虽然运气部分自己无法掌控,但我能一直保持良好的折腾能力,学习能力,有新东西能自己主动去折腾,这一点也很重要,如果不是喜欢折腾学习,自己也不可能坚定的学完 C++,也不可能快速入门 C#。
刚开始工作的前 3 个月,自己每天都在疯狂学习,上下班,出差路上,坐地铁上都在用手机看电子书,疯狂的恶补各种知识,我进步也很快,也乐在其中,所以我试用期很快就通过了,虽然还有很多内容没有那么的熟悉,但总算囫囵吞枣的上手了二开的工作。
很多人问我的时候,总是在问 C#好学吗?二开好找工作吗?这些问题我真的没有想过,我就是误打误撞,我学习 C++的时候,并不知道我会来做 Revit 二开,C#好学吗?我一周就入门了,因为我学过 C++,认认真真看完一本 C#教程书就入门了,每个人的情况都不一样,我也很难解释。即便快速入门了 C#,还有一些基础的东西,比如版本控制 git 这些基本的东西,有些同学因为是完全小白,也是不懂,但我是刚毕业就直接开始折腾了,我折腾学习的时候,也不知道这玩意有什么用,但我就是能基本使用了,而且一直在用,一直在积累,这些提前积累的基本功,让我在入行二开的时候,学习压力轻松了不少,我只要熟悉一下 C#语法,熟悉 WPF 语法,就基本可以上手了,因为我业务知识,也就是 Revit 软件的使用,也有一年的使用经验,所以相对来说压力小一点。
这些都不是一蹴而就的,不是说我裸辞了半年就学会了二开,就成功进入了二开,我觉得我就是一个普通得再不能普通的人了,有些人学了半年,学了两三个月就真的可以完全进入到 IT 行业中,而且得到一份不错的薪资,我就从来没有这种仅凭学习一段时间就能有所成就,并且找到工作的经验,都是蜿蜒曲折的,我觉得我懂的并不比他们少,但别人就是找到工作了,我就怎么都进不了。
但也不用过于焦虑,我觉得最好的积累就是从现在开始积累学习,不用羡慕为什么别人早就有那么多经验,自己为什么没有,不要再感慨“要是我也有 xxx 就好了”,就是因为没有,所以从当下开始积累,过一两年之后,两三年之后,再回头看,也不过如此。
IT 梦实现了,好像更迷茫了
我毕业的时候,就一直想转去 IT,但因种种原因都没有转行成功,转行的过程有各种感慨,如今转行成功了,梦想实现了,有一种丢失了目标的感觉,以前喜欢发朋友圈,抒发各种追梦的信念,现在反倒没有那么多感慨了,然后也有些怀疑自己以后要怎么继续走,也许进入编程只是目标的第一步,梦才刚刚开始吧。
今年的工作态度有哪些变化?
之前我工作的时候,太想把事情做好了,觉得工作是对自己的修炼,虽然工资不高,但自己什么都不懂,再怎么被“压榨”,自己也是赚的,因为自己能力得到成倍的提升。
但现在有一种不太一样的想法,自己工作虽然能力也得到了提升,但相对薪资来说,如果工作太多,自己也不会一直在做工作的事,与其整日被工作占满,还不如自己多看点书,提升一下基础的理论知识,提升一些其他的技能,毕竟要在这个领域深耕很久,所以心态开始放慢下来了,基本不会再出现通宵去做工作的情况了。每个人的时间是有限的,再怎么加班都会有源源不断的工作,整日沉浸在工作中,只会成为工作的机器。
这也是对工作上的一些新的想法,没有以前那么“傻”,觉得做不完就对不起谁,什么愧疚感之类的,现在完全没有,也可以说,现在的责任心没有那么强了,以前做不完还觉得有些恐慌,会有愧疚感,所以有时候经常还通宵加班,现在不可能通宵的了,如果为了完成当前的事而用身体健康去换取工作结果,基本不可能出现的。
学习态度的转变
不知道是因为刚入行的时候,因为不懂的太多,加上想要拿下这份编程工作的强烈信念,所以试用期的时候,自己学习强度极高,基本每天都会记录总结,都会持续学习,但好像最近开始,学习的欲望没那么强了,下班回去只想躺着修行,节假日的时候也是都在打游戏娱乐,以前节假日就是自己学习最好的时间,现在节假日只想打游戏。
感觉持续学习的态度还是要重新捡起来,自己能入行,大部分原因还是因为自己愿意学习,学习能力还算可以,如果自己以为入行之后就不用学习的话,那我感觉倒霉就要开始了,所以今年下半年,自己也要重新规划一下,看看怎么提升自己的二开技巧,学习编程的基础四大件,提升自己的编程技能。
哈哈,每次我有这种提升编程技能的想法的时候,我都会想到骆驼祥子,祥子以为一直努力拉车,就会拥有属于自己的一辆黄包车,我以为努力提升编程技能,就会拥有自己的一片天地,可到头来,也许,终究是一场梦罢了。
但佛家告诉我们,我们未必是第一次来到这世上,也不是最后一次来,我们前世、再前世,都来到过这个世界,我们在前世或者再前世所做的种种事情,并不是做完以后就什么也没有了,它造了业,形成一种力量,叫业力,我们人生在世做事情,做这样的事而不是做那样的事,能做那样的事而做不了这样的事,都是因各自有自己的业要消。
做事情就是消业。所以,按自己的想法去做就好了,梦里真真假假,又何必过于上心。
下半年的总结
今年成功转行做开发,到目前为止道心稳定,不像以前那么浮躁了,也可能就是以前做的事是自己不喜欢的,做到半年就想离职,靠意志力强行坚持到年尾,然后辞职。今年代码敲得还行,当然过程中依然会遇到挫折,依然时不时会被各种难题挫败想放弃,但想解决问题的想法更强烈了,逃避的想法更淡了,如果在自认为擅长的领域,遇到点困难解决不了就放弃了,与那些对这个领域不感兴趣的人有什么区别?他们不但不感兴趣,甚至还做得比你好,这样就太扎心了。兴趣是再难再累都不会放弃的事。如果遇到困难就会放弃不叫兴趣,那叫叶公好龙。不怕困难,痴迷其中,日渐精进。
阅读的书籍
今年阅读的书籍大部分都是技术书籍,《C#高级编程》教会了我工作技能、《C#本质论》提高了我的编码能力、《EffectiveC#:改善 C#代码的 50 个有效方法》教会了我编程的习惯,这三本书是今年重量级的三本书,这三本书让我从 0 到 1,拥有胜任工作的能力,当然除此之外,之前脱产学习 C++的那半年也功不可没,这三本书在微信读书上都能搜得到,其它的关于 C#的书籍也翻了很多,但其实还有一本“书”就是工作上的项目源码,这些技术书都改变了我的人生轨迹,对我来说它们其实很重要,这三本书今年每本至少翻了两次,还在不断查询。
虚构的书籍我已经很少读了,也许是我变得太功利了,技术书学完就能看到效果,进而使用学到的技术改变生活。
自学能力
对于自学能力,我自己有一个标准:只要是有需要学的东西,能够主动去学习专研,并最终弄懂,这就是拥有自学能力的体现,重点在于主动,而不是等别人教,等别人在后面推着你才能学
但是这些认知,都是以前的了。年底的时候,看了李笑来的年终总结,有些新的感悟,我一直把重点停留在学的阶段,忘记了要学了要践行,虽然我一直在践行,但我一直以为重点是在学,没有刻意去注意践行这事,而我践行只不过是工作需要,刚好完成了践行的步骤。今年很多时候明明感觉学了很多,焦虑就是不减,就是因为都在瞎学习,学了不用等于白学。
得更新一下自己的自学观念了。
工作
协作
今年有不少工作是需要去和其它人沟通协作的,沟通一些自己比较熟悉的业务或者技术还好,至少交流起来能大概知道什么好做,什么难做,哪些比较费时间之类的,心里面有点底,对于那些不太擅长的领域,欠缺经验的事,沟通起来实在令人人心力憔悴,我是一个特别不愿意去麻烦别人的,能自己解决就自己解决,在这个过程中,也渐渐明白了很多事一个人是没法完成的,尽管你有着丰富的知识经验,但人只有一个,在同一时间内你只能做一件事,很多事虽然你有能力去做,但就是没时间,又或者你有大把的时间,但你解决的是你完全不擅长的领域,就得需要去向别人请教,去和其它人进行协作。
我一般遇到不擅长的问题,都是在自己埋头苦干,很多人也都说要多去问,但我的原则已经定型了,在问一个问题之前,我一定会先自己去寻找解决方案,穷尽自己毕生所学去搜索,查阅,最后实在解决不了才会去问别人,在搜索探寻解决方案的过程中,基本都是能找到一些思路,至于那个方案是否足够高效,其实我无从判断,我只是觉得,这样又少麻烦别人一件事了。
不过今年工作下来,觉得有些事,就得团队来完成,个人的能力实在太有限了,所以有时候请教问题也不见得是麻烦别人,只要不是张口就问,别把别人当做百度来问,先自己思考了再提问,问问题也算一种提高效率的方式。
职责、心态
工作中,难免会遇到一些自己无法解决的问题,最后导致客户不满的情况,我今年就遇到了不少次,这其中的主要原因当然是自己经验不足,无法及时解决问题,但也有些原因是因为项目多、时间紧造成的,如果只是自己的原因我当然会尽量去弥补,加再多的班也无所谓,因为解决客户的问题,就是我的职责所在。但如果是每个项目都要求在同一时间,或者在很短时间同时完成,让我有些应接不暇。
有一段时间我都已经做好了被辞退或者离职的打算了,因为我多个项目不停的催,我的注意力被乱刀分“尸”,而做的工作对成长也没有太大的帮助,我选择了屏蔽一些项目,只专注做一个项目,这就导致被屏蔽的那些项目的客户产生了不满,我当时心中觉得,那也是没有办法的,不满就我也没有办法,也许只能另请高明了。但后面也是由其它同事和领导把那些问题给解决了,我很感谢他们,也庆幸遇到的是这些同事和领导。
职业发展
对自己来说,转行成功应该感到欣喜,但在自己进入这个领域之前,已经有无数的人在这个领域中摸爬滚打许久,我未进之前,已经有无数人想要从中脱离,而我才步履蹒跚地进入,想到此处,一股莫名的无力感油然而生,但转念一想,也许每个行业也大抵有相似的情况,总有人进来,总有人离开,重要的是找到自己的归宿、
做开发不到一年,加了各种技术交流群,很多道友都在里面交流自己的程序人生,都在为 35 岁做准备,似乎每个程序员都会有这样的共识:35 岁之后失业的概率极高,它发生的概率几乎逼近必然事件。我也不知道 35 岁的时候会怎么样,我是希望能一直做开发,但未来怎么样还不清楚,我对于计算机软、硬件都特别感兴趣,常常在玩一些不务正业的事,学习很多方向的知识,什么运维、测试、前端、逆向这些都在折腾,有时候别人在群里讨论一些专业性较强或者比较冷门,不做那个领域就不太可能知道的,自己也能插上几句,但其实也就只是知道有那个东西而已,我想学的东西太多了,什么都学一点,刚学的时候有新鲜感,但再深入就没有后文了,因为需要时间和精力,而工作本来就很辛苦了,很多知识也只能停留在入门的级别了,什么都不精,很杂乱。
感觉对程序的热情很快被这些东西给消磨殆尽,学海无涯,这词听起来极为恐怖,让人绝望。
想到这里,突然想到之前在酷壳上看到的一篇关于程序员该如何把控自己的人的一篇博文:程序员如何把控自己的职业,里面谈到了对自己的认识,世界需要什么样的人才,大概对自己做了一下定位,目前自己其实就是一个技术工种,只是电脑程序的操作员,翻译员,简称“码农",自己对各种技术的原理并不清楚,很容易被替代,如果再这样下去,35 岁失业这事,是必然事件无疑了。而我自己已经确定是要在技术这方面走下去,就得继续学习更加底层的原理,把基础打牢固。
生活
对于生活,似乎没有太多要说的,也许并没有太丰富的生活可说,每天不是工作就是学习新技术,没有想过生活要活成什么样子,也许是转行中需要学习太多知识,已经无法顾及其它事情了。
在网上看过 C++之父对年轻人的一些建议的视频,他说我们要去体验一下编程之外的生活,去了解一下现实世界,不要以为编程就是整个世界,这其实只是世界的一小部分而已,我想,也是时候该思考思考如何生活了。
bilibili 传送:C++ 之父「Bjarne Stroustrup」的人生建议
Too many young people think they can optimize sth ,and then they find they've spent a couple of years or more specializing in something that may not have been the right thing,and in the process they burn out,beacuse they haven't spent enought time building up friendships and having a life outside computer...
"....太多的年轻人认为他们可以优化某些东西,然后他们发现自己花了几年甚至更长时间专攻在一些没有意义的东西上。在这个过程中,把自己弄得精疲力尽,因为没有花足够的时间建立友谊和享受计算机之外的生活....."
愿诸位都有能拥有属于自己的美好生活。