《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。
本期我们邀请的程序员是陈世元,学习成绩优秀,被保送中科院,从力学转行程序员,从业时间近10年。
1、请自我介绍一下。
我叫陈世元,一名90后,15年毕业,工作到现在,将近十年了,一直在做后端开发,java为主。
我一开始学的是力学专业,因为当时不太好找工作,15年的时候互联网正如火如荼,就转行学了计算机。开始我是自学的,后来找了个培训班,去北大青鸟学的java,学完之后,就找了一家小公司工作,一家做网贷的公司,待了半年多吧,公司就直接就倒闭了。我也被裁员了,所以说第一份工作也比较悲剧吧。
被裁了之后,去了一家小公司,做APP后端开发,后来感觉前景比较渺茫,待了一年,跳槽去了搜狗,我觉得小厂待的风险比较高,在搜狗待了两年半,又跳槽去了字节跳动,遇到了职业瓶颈,换去了soul,但互联网行业开始迎来寒冬,加上疫情的影响,又被裁员了,我是经历过两次被裁的。失业在家3个月后,去了集度科技,一家新能源车企,做cdp平台,一直到现在,大概是这样一个情况。
2、你的读书成绩很好,分享一下自己的学习方法?学习的驱动力来自哪里?
刚进大学的时候,基本上很少有娱乐时间,基本都是花在学习上面,确实比较刻苦,全身心投入到学习里面去了。到大三大四的时候就开始松懈了,开始迷上了Dota这类游戏。
学习方法上还是要多看书,大学的课程我感觉难度不大,有难度的课程就那么几个,还是要靠自己去探索课外的东西。另外一点就是自驱性,我还是比较喜欢主动学习的,不管是上学,还是后来工作中,转行也是因为自学了java。
学习的驱动力,一方面是兴趣爱好,一方面是对未来生活的期望。学习一直是我的兴趣,也是希望未来有一个好的发展,毕竟人需要有进取心,不能总是当闲鱼。
其实大学的时候还是有一些理想主义的,越到后面,工作之后,就更加现实一点了。比如说我得考虑在这个行业深耕,能达到一个什么地步,能不能多挣点钱养家糊口。
3、你是如何走上程序员的职业道路的?
我在中科院的时候,是在力学所,力学所需要搞很多的实验,我的实践动手能力比较差,写那个论文感觉就很头疼。我们也有软件开发课程,开发程序去做一些计算,我对这个很感兴趣,我大学的时候C语言学的特别好,基本都是100分。
找工作的时候,也跟一些同事,同学、朋友交流,很多也都转行了,当时互联网行业也很火,所以说当时也就选择尝试转行程序员,也有几个同学跟我一样转程序员的。当时有这个风气。
当时投简历,力学专业也投,java也投,力学的工作一般都是国企,工资给的低,当时有几家让我去,但他们不给户口。甚至我都已经去一家国企实习了一段时间了,他们也已经准备要我了,但后来最终放弃了,因为他没有户口,工资给的也不高,后来就去了一家互联网私企。
如果说它给我户口,我可能就会走一条完全不同的路了。走上程序员这条路也有一些偶然吧。
4、在北大青鸟,它是一个什么样的水准?
他们是一种速成的,适合那些完全没有接触过的小白。我觉得它有一定的优势,虽然门槛比较低,确实给我一些实际的项目经验,这个是比较重要的,通过一个具体的项你就知道编程这个东西它能干啥,是前端,还是后端,还是MVC架构,通过具体项目,才能对整个工程的架构有一定了解。自学只能熟悉那个代码的逻辑,知道怎么写代码了,但是让你去做个项目,你是无从着手的。通过这种培训班,给你提供一种工程。虽然说不是完全的工程经验,但是相当于有了一定的工程经验基础。它不会给你讲底层的原理是什么样的,它至少告诉你怎么操作。
第二点是学习氛围。你自己自学的话也能做到,但是对自驱能力要求非常高,虽然我也自学,但是你在培训班里面,跟大家一起学习,有老师指导的话,他的氛围会比较好,而且有问题可以相互交流,老师也可以给你解决,个人成长的速度更快,如果你自己去做的话,也能做到,但需要花更多的时间。经历或遇到很多坑,你根本不知道怎么解决,效率会低很多,对个人自驱性要求太高了,所以这也是它的优势。
缺点也有,它就是速成班,目标很明确,就是让你学会做这个事情,底层的原因他不会跟你细讲。
5、在中科院学习是怎样一种体验?
我刚保研过去的时候,确实挺兴奋的,我是在中科院力学所,首任所长是钱学森。它的氛围是非常open的,很自由,你自己选课,只要考上学分就ok了,主要的核心点在于导师。你做科研,科学方向规划,都是导师来给你规划的,你要及时跟老师沟通好,未来要怎么走,发论文,立项等等。
去立项是比较麻烦的,个人感觉从这开始就有难度了,研一、研二跟大学差不多,研三你就得有一些探索了,自己就得去研究了,这就不一样。这块是我做的不太好的地方,没有及时跟导师沟通项目,本来是三年的,我延了一年。因为第一年论文没实验做的效果,结果不好。
总体来说,中科院给我感觉挺不错的,就是非常自由,氛围也很自由,爱怎么搞就怎么搞,只要你不挂科就行,科研项目你跟导师安排好就行。
6、写了近10年代码,你如何评价程序员这个职业?
程序员是比较适合那种沟通能力相对弱的,能沉浸在自己的世界里面做东西的人,它更注重逻辑思维,核心能力是抽象能力,我甚至觉得抽象能力比逻辑思维更重要。这样的人适合做程序员。薪资相对一般的行业,也更高一点,前景更加广阔。
互联网企业的氛围也更加开放自由,不像国企,你要处理各种的复杂的人际关系,你得去跟领导拍马屁什么的。甚至运气好的话,也能达到财务自由,对于我们这种社会底层的人,家庭条件一般,又想靠自己的能力去实现阶级跨越,程序员还是一种是非常不错的方式,至少有一定的优势吧。
缺点的话确实比较累。对身体方面消耗比较大,我在加班特别严重那个时候。身体就每况愈下,就感觉每天干到11点钟就受不了。
第二个缺点是,因为你太过于专注内在的世界,在一些社交方面就很缺乏,你的社交圈就比较少,像我的话,平时就带带娃、陪陪家人,很少跟外面人交流,就感觉与世隔绝一样。
第三点,就是不稳定,像我的话就面临两次被裁员了,随着这个行业越往下走,它可能就越来越不稳定。包括35岁危机怎么去避免?包括我现在也在面临这个问题,我还不知道怎么解决。
7、全球79%的开发者都在使用Java,使用这么久,你如何评价它?
一开始学编程的时候,调研过各种语言,最开始接触的是C语言,虽然我学的比较好,但是我不太喜欢它,什么数组、指针这些东西,特别绕,当时调研的时候java是最火的,所以当时就选择了java,因为你换行,你不能换太冷门了。
相对来说,java的学习曲线比较平缓,门槛不是那么高,对很多人来说比较容易上手,但是C语言的话,门槛就高一点,第二,它的生态特别好,各种框架、各种扩展非常丰富,很方便,开发效率比较高。性能也是不错的,相比python都会好一点。
当然我觉得最大的优势就在于用的人比较多,职业岗位多。这也可能带来一个缺点,他为什么岗位多?意味着它的可替代性高。
8、是否用过AI辅助编码的工具?感受如何?未来编程语言会被替代吗?
相比传统的搜索引擎,确实它的代码质量会高很多,但我用了一段时间就没用了。因为我感觉平时还用不到它,只有在一些很极端的情况才会用。这是我个人的使用习惯,我还是通过浏览器去查询问题,哪怕我们公司都已经把它封装成一个东西,体验特别好,不用机场也可以随便用,我还是不怎么用。
另一方面,因为用了几次后,针对一些具体的问题,他其实回答并没有那么好,你还是得看一些文章,其他人的文章可能会更加系统一点,他可以告诉你怎么写代码,一些思路什么他不会跟你讲。不会给你讲一些原理性的东西,你去看别的文章的时候,从思路背景,知识点到具体的代码。很清晰,写代码你如果不知道原理,遇到具体的业务,你还是不会做。
对于新手来说,确实比较方便,提高了很多效率。可能对于我这种工作这么久的人,帮助并不是很大。对于我们来说,编码效率不是那么重要,重要的是你对业务的理解,去编排这个业务,更多的在于你思考的过程,而不是在于那个写代码,把思路给理清了,把逻辑给理清,这才是关键点。
这块的话,AI帮不上什么忙。核心点是它没法去帮你完成这个抽象的过程。而且做到后面之后,最关键的一点,你得去跟PM去把这个需求给聊清楚了。把这个项目给安排清楚了,这才是最关键的。沟通才是关键的,写代码往往是花时间最少的一个环节。
9、你经历了两次被裁员?也呆过好几家公司,感受如何?
当时天天在家里,一开始挺爽的。因为疫情只能待在家里,第一个月没啥事,第二个月就开始着急了,养两个娃压力确实大,真的比较着急了,我媳妇就劝我去银行,我也理解,工资降了一半,低一点就低一点吧,就稳定一点吧,当时整个人的想法就变了,后来银行业没要我,可能觉得年龄太大了。
后面感觉越来越焦虑,两三个月之后,就感觉整个人的心理状态就不大好。比较容易暴躁,因为一直找不工作,家人也会觉得很担心,生活质量也开始下降,不敢消费。每天自己在家就看面试题。你学习久了,整个人也很压抑。
我建议,刚开始工作的时候,最好去大厂呆一下,我之前最开始去小厂,然后再去大厂。工作氛围,个人能力,代码规范、团队协作,大厂会更专业,对个人的成长确实帮助非常大。在小厂的话,就基本上没有人带你,全靠你自己去钻研,进步很慢。
第二是方向的选择,还是要挑赚钱的业务。因为我们程序员是为业务服务的。要尽量选择挣钱的业务。因为你公司是哪来的,还是挣的钱,公司挣的钱给你发的,所以说你这个业务挣不挣钱是核心点,我当时做广告,方向选的没问题,是挣钱的业务,就不应该走。所以说当时还是太天真了,去soul的时候。它就不挣钱,虽然说它是核心业务,而且是去带个团队。饼画的挺好,后来还是被裁员了。
现在的公司是一家新能源车企,因为我觉得新能源是未来。其实也不理性,从稳妥的角度来说,还是去快手,因为他的业务是挣钱的。但我还是选了新能源,第一我不想那么累。第二赌一把。
反正我都已经30多岁了,继续做广告还是重复以前的工作,我觉得人生不能老是那种按部就班的走下去,有时候需要冒险,尝试一下新的东西,这是我真正的想法,反正就这样了,还能再差哪去?大不了失业再找。心态变化真的挺神奇的,这是一个自然的状态,所以说一直待到现在。
10、会一直做程序员吗?对未来的工作与生活,有何畅想或期待?
我最近确实一直在思考这个问题,也在做一些探索。
从失业的时候就非常有危机感,你会意识到不会在一家公司永远待下去,不能完全把希望寄托于这个公司不倒,那个行业一直发展好,一直往上走,那是不可能的事情,必须有自己的第二职业。
所以现在也在尝试一些副业,也决定做一些自己真正喜欢的事情。比如说我现在开始学习做游戏。自己有可能成为一名独立游戏开发者。我现在已经开始学习游戏引擎了。另外一方面我也在学习一些其他的语言,比如rust,提高我的竞争力,我觉得核心还是学习吧,通过学习去提高自己的能力,扩展自己的边界。
有的时候,选择真的远远大于努力。这是我比较感慨的一点吧,我感觉自己的职业生涯不算很成功,虽然也没有很差,举个例子,我的大学同学,他比我还晚入行。选的方向是机器学习,他去了京东,马上就要升P9了,就跟我已经不是一个level了。
公司环境、业务、leader,可以选择的时候一定要把握好。一个好的环境,一个好的方向,遇到一个好的团队,对你个人的影响是天翻地覆的。