我目前是某公司游戏后端工程师,从业时间较短,些许见识,大牛勿喷。
12年,自己作为萌新初次接触软件工程这门在当时看起来高大上的学科,怀着些许忐忑,用c写下hello world;18年,写下这片文章时,参与的某款游戏DAU维持在百万量级并维护超过半年。
结合自己的经历,我想谈谈对于程序员的看法。
一:什么人适合做程序?
抽象思维能力。我在做高中物理 - 带电微粒在磁场中的运动问题时,仿佛自己就是那个微粒,在哪个点收到怎样的力,做怎样的运动。当我学习补码运算、累加器时感触更深,
善于发现事物的关联。我和我的朋友有这样的共同点:此时明明在讲这件事情,突然就跳到了另一件事。还记得与大学同学小A的对话,我说:“谁规定上课不能穿拖鞋呢?穿拖鞋与尊重老师之间没有必然联系”,小A说:“那也没人规定出门要穿衣服呀,你咋还穿着衣服?”。有人会说我们思维在跳跃,其实我们只是比别人多想了一个所以。
沉默寡言。我认为沉默是程序员的基本修养,沉默帮助我构思工程架构,帮助我找到bug,帮助我学习和消化新的知识。话唠无法变得优秀,因为你大部分时间都在说话,什么时候用来思考呢?
二:程序员的基本修养
基础为王。数据结构和算法组成了语言本身,我们用语言写出各种各样的程序,程序运行在计算机系统中,同时接受操作系统的调度,计算机网络使得我可以与千里之外的张三通信。你看,这些不就是大学学过的基础知识吗?目前的编程语言层出不穷,从老牌但c,到较为新兴的golang,面临的问题都是相同的,只不过实现的方式可能不同,因而有性能优劣,有各种个样的特点。
比较思维。golang的defer总是在函数执行的末尾执行,es6的await拯救es5的我们于回调陷阱之中,js的闭包,将数据封闭,并会常驻内存;java的接口是某标准的抽象。一个语言的某个特性,解决了什么问题?有什么优劣?其他语言相似的功能是怎样的?俗话说,人比人得死,货比货得扔,当你发现a语言啰里八嗦10几行代码,b语言只需1行就解决,你会对他们有更加深刻的认识。
心存底线。有些命名是会被接手的人骂娘的,坚决不能写;有些结构过于臃肿,看到就生气,见一个改一个,绝不妥协;我的代码要清晰,10年后依然能让人看懂;我的代码要具有美感,不懂编程的人也能感受到它的整洁;代码是程序员的脸面,你不能接受怎样的代码,决定了你的底线。
有疑问加站长微信联系(非本文作者)