转行做编程开发是怎样的体验?

Posted UniDesignLab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转行做编程开发是怎样的体验?相关的知识,希望对你有一定的参考价值。





本文转自 AlbertLiDesign,作者 Albert Li



Hallo,大家好,我是Albert,近期有一些好朋友在询问我关于学习编程、计算机等相关知识以及转行的事情,我自己也经常思考这些问题,于是想做一期采访,正好身边有不少从设计专业转行过来做开发的朋友,就想大家一起来探讨一下,也正好作为我们对自己过去这几年转行经历的总结。

采访的模式是这样的:

(1)在采访前,我找到了一些我上大学时的学弟学妹来收集他们想问的问题,经过筛选、精简、提炼出了7个问题。

(2)提炼好7个问题后分别发给除我以外的另外三名采访对象,让他们自己根据情况来选择解答。

(3)收集每个人的答案。

那么下面我们就开始吧。

受访者简介

转行做编程开发是怎样的体验?

1、为什么转行到现在的领域了?是否基于自己的兴趣?最先考虑的因素是什么?

Panda:转行到现在的领域也算阴差阳错吧!主要是之前的事务所熬夜太严重,做很做无意义的重复的工作,加上身体有些吃不消,就想着换了。转到做建筑机器人和三维打印,大部分原因是基于自己的兴趣,我对于机械和和编程有着很浓厚的兴趣,其次收入要比之前好点儿,所以最先考虑应当是自己的兴趣。

Noy:转行早期是非常痛苦的,但是计算机专业有一点比较好,它能及时反馈你的学习成果。当然,转行到计算机,完全是基于个人兴趣。我从小喜欢捣鼓机械,更喜欢理性的事物,而计算机又特别符合我的喜好,所以转行就是完全基于我的兴趣出发的。当然工作后也体现出,相对于设计,我更擅长于编程一些,我也喜欢编程的过程。

咪工:对于选择工作,我个人想法是:首先不讨厌这个工作,其次看职业天花板,也就是行业里混的比较好的前10%在哪个收入水平,普遍是什么年龄,如果都可以接受,就是好的工作。用这个方法评估,去设计院画图不是一个可以接受的选择,所以我转行了。没有最优先的因素,兴趣和报酬对我来说同等重要。

Albert:我最开始只是对一些异形曲面的建筑比较好奇,因为上大学的时候就读完了很多建筑史相关的书籍,一直没想通建筑在近代究竟是如何发展成那种有机曲面形态的,为了探索这个答案,就开始接触参数化相关的内容。另一方面,我中学时代一直都极其擅长数学,甚至梦想当数学家的那种,因此也想以后能从事将设计与数学相结合的领域,于是就按照“三维打印->参数化设计->计算机编程->计算机图形学”的顺序开始慢慢向这方面靠,一个由应用到底层的学习路线吧,感觉这条路上收获了很多,很多问题也渐渐清晰了,过程中考虑太多别的,就是想知道为什么,一步步就走过来了。

2、转行专业与过去的建筑相关专业之间的不同之处在哪里?过去在学校学习的知识有运用上吗?

Panda:现在从事的行业相比于建筑学专业,现在的专业更偏重于建筑技术研究,把一些先进的设计技术引入到建筑行业中,在提高建筑生产效率同时,去寻求一种新的建筑设计方法和理念。所以说,过去在学校学的知识大都还是必须要用的,现在我们不光去解决技术问题,同时还要做前期的建筑设计。

Noy:计算机行业常看到的现象是改bug,改好bug之后技术有一个提高。这个过程像在寻找正确答案,找到答案,这个事儿就算过了。写代码要求模块化,可复用度高。建筑行业,没有所谓的正确答案,甲方基于在现有建筑规范下,更多用主观臆想去主导工作进程。有可能让你一天的劳动付诸东流,工作反复且低效。但不论是计算机,还是建筑,背后都有庞大的知识体系,都是多学科混杂着的,这点是一样的。但是计算机是解决问题的学科-偏理性,而建筑是偏设计的学科-偏感性。学习计算机如同建筑一样需要有更多的耐心和好奇心去扩大自己的思维和知识储备。这一点我在校园时期,学习建筑的时候就已经养成了,相对于大学学习到的知识,大学让我养成独立思考的习惯更重要。

咪工:不同之处在于,技术美术工作对一个结果的好坏往往有着比较明确的评价标准,建筑专业上似乎并不是这样,同一份设计,不同的老师会打出完全不同的分数。技术美术工作更客观一点吧,设计更主观一些。

Albert:在做设计的时候我的老师们总是说做设计要有逻辑,这一点我也一直在体会,学习了一些计算机知识会发现,这个领域对逻辑的要求极高,有的时候做设计,你可以用一些花言巧语把故事讲得听上去很有逻辑,但是在计算机程序里,必须完全逻辑正确,只要有一点逻辑漏洞就会造成效率的降低甚至完全错误,近期我在学习gpu并行编程中更有深刻体会。关于过去所学的知识,无时无刻不在应用吧。我觉得从设计专业里转行出来的人还是会保留从设计的角度出发去思考、解决问题的,包括善于接受新鲜知识、善于提出新想法、对作品精益求精的追求、对工作量和完成度的把控,这些养成的习惯一直在帮助我去处理很多事,它们不是实际所学到的知识,而是潜移默化地对设计师的影响,所以无论过去学了什么,都要感激那段经历,我觉得没有什么学习是没用的,就像我中学数学好,后来学了艺术设计,现在又来到一个艺术和理工的交叉学科,没有一段经历是没用的。


咪工的Houdini程序化建模作品(早期作品)

3、您认为对于想转行的建筑学学弟学妹们需要做出哪些努力和尝试来提高自己的核心竞争力?

Panda:要转行,目标的知识或多或少都要懂一些,因为转行的优势之一就是比其他人多懂一个专业的知识,建筑转其他行业就更不用说了,建筑学本身就学的广。我觉得如果下定决心转行之前,还是要花时间去学一学目标行业的相关知识,不必要一定学得很精,但一定多少要懂一些,这样转过去之后也会学得很快。当然目标行业的知识学得很过硬,自己的核心竞争力自然就起来了!

Noy:如果单纯从钱的角度来说,不建议转行,这俩学科差的不是一点半点,计算机时薪高是不假,问题在于本身对它本身了解多少,能否接受转行所承担的代价(学习成本和已经付出的成本),最重要的是,自己是否适合,或者热爱与否,以及学习期是否有家庭的支持。如果转过去的薪水不满意,还能否坚持下来?如果上述问题都没有明确答案,我建议慎重考虑,毕竟这俩专业交集很小,而计算机学科需要大量且不断更新你的储备知识。就计算机专业的基础知识来说,计算机导论,数据结构与算法都是需要了解的。这对你以后的发展很重要,框架性的基础知识决定了你的发展力,一定不能仅仅只会使用代码,要学会理解代码。如果你有决心搞定以上问题,支持你转行。但转行也不一定就非要离开建筑行业。我举例几个以建筑结合计算机为目的的方向,可供了解:

  1. 直接工作:找偏理性、偏编程的岗位,比如参数化设计师。
  2. 申请建筑类硕士:这种大多出来还是做建筑师,可以专攻参数化。
  3. 申请人机交互类硕士:这也是建筑系同学很常见的申请方向。理想的去处是各个科技公司的UXUI设计师,也有强行转行码农的。

咪工:核心竞争力我觉得有三点,分别是信息收集能力,学习能力,沟通能力。这三者缺一不可。沟通能力往往是被忽略的一点,现今社会已经没有所谓的一个人就是一只军队了,个人能力再强在巨大的工作量面前也不值一提。作为团队合作中的一员,高效的协同上下游,是每个人都需要有的能力。提升方法也很简单,学一点PM技能即可。另外附赠一篇知乎回答,适用于学习任何公开的技术:没专业背景的人自学houdini,可否请大佬们给我指条明路?(https://www.zhihu.com/question/303215859/answer/1064258893) 包括了沟通能力和信息收集能力,可以细品。

Albert:首先如果没有非常浓厚的兴趣的话,单纯为了钱转行我认为是不太现实的。因为计算机行业的知识太过庞杂,从学习的角度上讲,为了学习这些已达到一个正常的本科计算机系毕业生的水平可能都需要像高三那样学习个两三年,这期间光苦学没人指导是非常痛苦的一件事,除非有浓厚的兴趣支撑,能建立起一个“付出就有回报”的快速反馈机制的话才有可能吧,真的需要付出极大的努力,即便我自己也觉得依然差的很远。我觉得对于刚开始有转行想法的人,第一件事是消除疑虑,确定自己就干这个了,不把这个问题想通的话,带着犹豫是做不好的。发自内心地想做这些事的话,就不要想太多,马上开始行动(有的时候说做就做了,有什么大不了的),建立个自己的博客,每天更新自己学到的技术,买书看教程开始啃,把自己能不能转行成功这件事忘掉,只做事不带情绪,应该是没问题的。在这里推荐的学习方法就是更新博客,一方面积累自己所学的知识,另一方面给自己建立一个“付出就有回报”的快速反馈机制,有助于督促自己学习,也让自己保持兴趣吧。



Noy和Albert参与开发的Ameba拓扑优化软件宣传动画

4、能否对那些正在纠结转行却感到迷茫的后辈说几句话?

Noy:没有基础,没有能力,想转行并不容易。转行之前,首先给自己定一个方向:你想在互联网的哪个领域发展?产品、运营、营销或者其他。找到方向,然后沉下心去学习和积累。除此之外,现实环境因素也需要考虑,转行穷三年是很有可能的,所谓有得也有失,平衡利弊后,再做考虑。当然如果你只是感到迷茫,想要转行,而无法做到长时间沉下心不断学习,那么我不建议你转行。在现有的知识体系下,继续坚持和努力是一个更安全的选择。

咪工:成年人做事讲究性价比,不要做性价比低的事。比如纠结这件事本身就非常没有性价比。转行前问问自己:有没有兴趣,报酬和职业天花板能不能满足自己的物质欲望,如果两个答案都是肯定的,那就转吧,转了有可能会后悔,不转一定会后悔。

Albert:先分享一下我听过的一些关于转行的疑虑:我也不知道我适不适合干这个;我比不上那些专业的人怎么办;我数学不好;我觉得我太笨了,没那个脑子;万一进了这个行业还是会被取代怎么办;万一这个行业不是我想的那么好怎么办。现在简化一下,问自己两个问题,第一,喜欢这个吗?第二,愿意为此努力吗?都是yes的话,干就完了,至少在做自己喜欢的事,至少是自己选择的,不后悔就行。很多人听了别人的建议走上了一条道路会后悔,我觉得与其这样不如从一开始所有选择都自己来做,管他前方道路如何艰险,自己喜欢自己选了,走就是了。问题的答案不是yes的就去找是yes的领域,答案在自己的心中不是别人的言语。每个领域都有大师,每个大师都热爱着自己的专业,想学好一个专业最起码的是热爱吧,20多岁的人,还有无限的可能。

5、如何突破计算机知识不足的壁垒,哪种语言最适合初学者?

Panda:说实话,现在任何一个专业都少不了计算机知识。学计算机,最困难的点在入门,所以想要突破这个壁垒还是需要下很大功夫的,现在网络上关于计算机的各种网课和资料数不胜数,随便找几个,入门是不成问题的。对于初学者,选择什么样计算机语言,还是要看以后主要从事什么类型工作,做开发的话少不了C/C++,当然,这也是众多计算机语言中最难的语言之一,C#也是开发必备,入门也很简单。运用类可选择Python、C#等入门简单,易上手,通用性比较广的语言。

咪工:如何突破计算机知识的不足:做一个结果导向的人,时常思考学这个是要解决什么问题。专注于某一个具体的问题时,往往突破是最快的。python是对初学者非常友好的语言,建议入门先学python。但不要为了学python而学python。对于我来说python可以快速的验证想法,且我的工作不看重运行效率,python应该就是最优解了。

Albert:这个主要取决于想做的领域,比如python适合做数据科学、AI、爬虫以及快速开发一些小工具,C/C++适合作为大型工程的底层以及一些计算机领域的科研开发(比如计算机图形学),C#适合做一些软件的二次开发、Unity游戏开发等。当然这些也不是绝对的,刚下定决心开始学的话建议先从简单的高级语言开始学起,Python、C#、Java等,Matlab也是不错的选择,在工科领域做科研经常使用。


Panda基于Grasshopper开发的插件Panda

6、您觉得转行需要具备哪些素质?数理化已经忘记了,还能转行吗?

Panda:我觉得转行最重要的素质就是要有求学上进的精神,学过的知识忘了不可怕,只要敢于探索和研究,再加上自己浓厚的兴趣,啥时候转行都是可以的。

Noy:转行到计算机行业,更需要你是一个好学的、能持续学习的人,不要过多担心过去所学习的知识,因为它们并不一定适用于工作。有兴趣自然是最好的。如果真的觉得对这行业有兴趣,工作起来也不会那么累。但说实话,敲代码这样枯燥的活,估计没多少人真正感兴趣。

咪工:转行只需要动手能力。转行能不能过得更好需要学习能力,信息收集能力和沟通能力,任何行业都需要。数理化忘了很正常,捡起来就可以,而且在工程领域,并不一定需要你数学超级好,反而是交叉学科人才需求很大,所以有建筑系的背景并不是减分项,可以大胆的尝试。

Albert:敢于接触新事物,喜欢迎接挑战吧。我中学的时候就经常因为自己解决了一个数学难题而激动地睡不着觉,现在也是这样,看到一些复杂的问题就特别想去战胜它,有时候甚至忘记吃饭的那种,最后问题解决了我会非常兴奋,能原地跳起来,虽然很傻但是觉得这是人生的乐趣。关于数理化知识,我想说本科专业高数都没学过,忘记了不影响,学就完事了。

7、转行后,重新审视建筑学这个领域有什么启发?

Panda:转行之后再重新审视建筑学才发现,实践是检验真理的唯一标准!

Albert:在某些角度上,学科之间是存在底层和表层关系的,建筑学的一些概念在计算机里就是很简单的一些算法和思想,比如BIM某种程度上就是编程里的面向对象思想。这也启发我们,一些应用学科的学科发展和突破可能需要一些底层学科的推动,转行之后,很多建筑学现象就更能看到一些问题的本质了。之前有一个数学系的朋友在苦恼于他所学的知识有什么应用,我喜欢与不同学科的人交流就跟他聊起来,介绍了几个数学知识在建筑设计和工程中如何帮助节省造价如何解决设计难题的例子,他也分享了他对这些问题的看法,其实很多建筑上很复杂的问题到数学里都是很平常的数学题,并且介绍了很多更好解决这些问题的数学方法,整个聊天过程很愉快,两个人都很兴奋。多学了很多东西就有了更多的启发,能从更广的角度来认识学科,看到学科发展的路线,这样的体验是非常难得可贵的。

总结

我们四个人有共同点也有不同点,相信看了我们的回答每个人心中都已经有了答案,希望我们的分享能为你对转行这件事的认识有所帮助。


Albert Li

“Mesh is Art”




















以上是关于转行做编程开发是怎样的体验?的主要内容,如果未能解决你的问题,请参考以下文章

半路转行做编程开发真的靠谱么?怎么学?

男27,想转行互联网,是学习软件测试好,还是前端编程?

转行互联网,软件测试VS前端编程,到底那个是更好的选择?

想转行程序员的朋友不知道学啥语言,怎么办?程序员大叔告诉你

想转行到大数据开发需要学习哪些技术?

深入科技腹地,了解编程开发——计算机科学体验营