所谓的“编程思想”
很多事情,当你把它想得很严肃、很庄重,并且当你做这些事情的时候,注定很多遗憾将永远无法得到填补,编程也不例外。
很多时候,当一个人总是很严肃、很庄重,并且当他做一些事情的时候,注定很多细节将永远留下遗憾,当他编程的时候也不例外。
所以,凡是事情,怀着轻松的态度把它做好就够了。凡是为人,保持愉悦的心情做好当下的事情就够了。可能看了很多学究的书籍,看到编程思想,我自然而然就想到了面向对象的编程思想,想到了继承、封装以及多态三大特征,想到SOLID五大特性,想到了“找到共性,隔离变化”。但是,这些理论,用起来就绝对变了味道。当你实际使用时,你绝不会想到,一个共性的东西抽象完了,变得更加复杂,更加难以引用,花了很多的时间,却做了"亏本的买卖"。
今天,和一个心目中的高手聊天,向他请教一些编程中的问题,其实我的问题不外乎XML、Json应该用在什么地方,网络编程应该在游戏开发中如何使用,诸如此类。但是大神一句话,醍醐灌顶、四大皆空。大神如是说:(1)关心写算法 语言的知识之类的 面试官不会太关注于你掌握了多少知识 比较关心你能够掌握多少知识 。(2)至于一个游戏开发中需要使用什么技术 需要怎么去做 你都不应该去关心这个问题 只会给你增加一些无谓的烦恼。 【然后抛出了“编程思想”这个高大上的概念。】 (3) 不要太去关注技术细节的实现方式和做法,哪些知识你掌握点就行 知道大概的流程,然后具体的会在工作中做更深入的接触。 你要先慢慢的培养编程思想,只是会写代码的话 就是码农了,又有思想,又能写代码就是工程师了~~
仔细想想,其实是我太急燥,太急于求成,太急功近利。一个框架的构建,没有架构者数十年深厚的积淀,如何能够稳固。对于一个学Unity3、4个月软件项目数趋近于0.5的信号处理专业的学生而言,还是先通过量变来改变自己的眼界,初期目标不应该是“架构”,而是能够通过一个项目举一反三,通过一种语言举一反三,通过一种技术举一反三,通过一种算法举一反三,等等等等。
接下来,我又了解到:(4)就是你能不再纠结于技术的细节和实现,给你一个项目你能用非常清晰的思维和思想以及毅力去做到最好
(5)现在大部分公司都是这样子的,如果你总是要求自己做到最好的话,你就已经比别人厉害了,而不在于你技术有多牛
(6)就像你说的unity,在公司里面做,从配环境到上手写应该都不用超过一个星期
我感觉,清晰的思维应该就是每个项目完成后进行的反思,思想应该也差不多。但是毅力,我着实应该加强一下。其实,就我真实的感受,当我静下心来慢慢做一件事情的时候,每完成一步,就会获得一丝的愉悦,慢慢地就会走完全部路程。关键还是心中有一个微微的思路,哪怕很模糊,但只要我确定,这么走下去没错就够了。并且,不要老是想用一种优雅的方式来完成,只要能够满足需求即可。优雅,一种可遇不可求的姿势,岂是可以经常靠经验得来。
好了,就写这么多吧。总结一下,我获得的最重要的收获就是,用一种自己能够驾驭的方式来完成客户或者自己提出的需求,不要一开始就逼着自己用一种只可仰视的方法完成,因为这种方法目前还不属于自己。怀着轻松的态度、保持愉悦的心情做好当下的事情(编身边的程序,不要觊觎太多,因为那些,迟早都会有的)。