面对复杂的代码结构,遭遇难以索解的诡异bug,程序员难免出现胸闷、无力、抓狂、崩溃等各种症状。
但是最最致命的一击却是:
你读了一个礼拜的代码,“别人”两天就能顺利移植,使其工作。
你困顿了几天的bug,“别人”过来一眼看穿。
……
心塞…… 你到底行不行?你是不是入错了行?你是不是废材一个?你能干好啥?极度沮丧之后,伴随的是强烈的自我怀疑,甚至自我否定。
着急,想变得聪明,想提高效率,想立即解决问题,可是越着急越看不懂,越着急越解决不了问题……然后是加倍的沮丧和加倍的自我怀疑。
……
当尘埃落定,痛定思痛,你会发现,问题,从来不会被“突变”般的解决;问题,只能在扎实的理解和审慎地思考中解决。
人的天赋有异,有些人就是聪明、脑子快,但是你成不了别人,你只能用你的大脑,用你的理解去面对问题。真正的敌人却是自己,是不理智的自我否定,是喷涌的消极情绪。负面情绪极大地消耗心智能量,不理智的判断会加剧错误的决策。
我不是聪明人,我是个笨人,但我可以成为一个认真地、负责任的笨人。
下面就是一个笨人的在编程困顿中的思考:
一、敬畏自然。客观世界是极度复杂的,尽管技术已经对噪声世界做了高度屏蔽,已经得到极大简化,完美的隔离毕竟只是理想,技术自身仍保持相当大的复杂性。骄慢、轻敌的工程师终将在难以预测、千变万化的现实世界中栽跟头。
二、敬畏技术。技术是复杂的,技术的后面还是技术。看什么都简单的程序员可能是浅薄的程序员,骄慢、轻敌的工程师会被自己的脚绊倒。
三、尊重学习规律。学习之道,循序渐进。不要幻想飞跃,不要幻想什么都行。踏踏实实地打好基础,认真思考。快往往来自于慢,轻松熟练来自于长期的踏实沉淀。
四、尊重自己。正确的认识自己,包括认识自己的能力,认识自己的长处和短处,认识自己的学习方式。扬长补短,这样才能取得切实的进步。不要靠和别人比较,靠社会的潮流来为自己做决定,自己才是最大的现实情况,一切决策都应该以正确地认识自己为前提。
五、磨练心性。人人都会沮丧、消沉、愤怒……这些是人本性中的弱点,但是优秀的人是在人生的修行中不断自我克服才变得强大的,战胜人性中的弱点,不骄不躁,虚心进取,做自己的修行,走自己的朝圣之路。
克服自己,战胜虚妄,做一个真实的程序员。