随着移动互联网的蓬勃发展,技术编程和知识变现越发的成为许多人关注的话题。感觉自己没赶上一个,就是落后了。
2016 年是知识变现的元年,这已经是大家的共识。时下利用写作赚钱的话题很火热,很多写作者也确实靠这项技能在短时间内赚到了许多钱,甚至可能是靠之前的工资一辈子也挣不到的。
而编程话题的火热则要更早得多,这主要得益于苹果开启的智能手机时代的到来。程序员的薪资待遇一时间开始水涨船高,到现在仍然持续在高位。
最近就有位朋友问我:“你觉得我可以学编程或者写作吗?” ,因为我始终认为一个人如果多一项技能,并没什么坏处,所以就不加思索地回答:“当然可以”。
细细想来,发现这两件看似不相关的事情,其实是可以相辅相成的。所以在自己的时间和精力允许的情况下,你甚至不需要做取舍,而是可以同时进行。不论是编程还是写作,本质上都是把自己的想法用语言的形式表达出来。更进一步讲,编程本身就是一种写作方式。
写作的好处很多,比如:
- 可以锻炼自己的表达能力;
- 可以让自己的思维更清晰;
- 有助于帮助自己回顾和反省;
- 积累和沉淀更容易可见。
从一定程度上来讲,善于写作的人,在学编程的时候其实是占了便宜的;而善于编程的人,即使文章写得没那么圆润,但逻辑也会是比较清晰的。这里提到的 “善于” 指的是一个比较客观的评价,不是自我评价。
一个好的写作者除了需要具备基本的逻辑思维能力,还需要具有较丰富地表达能力,要让写出的文章让读者阅读起来轻松、愉悦、有效地传递知识和观点。
而对于编程,更多的是写给机器看(执行)的,机器只负责给出结果,而无法有效地给我们反馈表达的过程是否足够清晰。这对于没有写作基础的人,比较容易掉进一个坑:即降低了对自己代码实现的要求,导致最终写出来的代码虽然能够执行,也有结果,但是无意中埋下一些不必要的坑,甚至给后来后带来不必要的麻烦和障碍。
提炼是一个对已有内容的反复琢磨推敲的过程。
在很大程度上,提炼质量比追求数量更重要。很多人可能会误以为要成为一个优秀的程序员,主要靠的是大量地写代码,写得越多的越厉害,更甚者以写出长代码为荣,而忽略了 “高效” 才是本质:用有效的方法写出简洁高效的代码并让机器高效地执行,这才是成为一个优秀程序员应该具备的能力。
在编程上有一个很经典的比喻:代码如诗。我觉得特别形象,深刻地阐述了编程应力求达到的境界,而要这个正是通过对代码不断提炼的结果。
这点同样适用于写作。写作虽然是一个造句的过程,但并不是句子越长,内容越多越好。而是需要通过不断地句子提炼,找出一种简洁高效地表达方式。
由此可见,在编程这件事情上,和写作是非常相似的,甚至是息息相关的。而编程除了需要具备写作应具备的基本特质外,还需要掌握许多其他的关联性知识,要真正做好,某种程度上难度是要远大于写作的。
经常会有人问,如何才能写出好的代码,其实这和如何写作是很相似的。既需要一个全局构造,更需要能对局部有足够清晰的定义及表达。具体来讲:
- 要保证有高质量的输入,即要多看优秀的作品。
- 要练习让自己的表达足够的简洁清晰。
糟糕的代码是如何产生的呢:
逻辑不清晰 -> 低效地表达能力 -> 代码冗长 -> 逻辑更不清晰 -> 代码更冗长
基本来讲,这是一个负循环,这会使得写得越多,出错的机率也越大,而问题随时可能会被引爆。这是我们所不希望看到的。
高效地表达能力是提高沟通质量的一种有效方式。表达能力强的人,相应地理解能力、容错能力也会更强一些,也就更容易理解到别人要表达的内容。在生活中,我们经常会遇到一些无法有效地描述事情(问题)的情形,包括听别人描述,或自己描述。虽然通过写作来加强自己的表达能力仍然不能让我们完全避免这类问题,但可以肯定的是,它可以让我们渐渐变得更好。
写一个程序就如同写一本书,每一个功能就如同每一章节的内容。其实在写作的过程中,是享受着写程序的同等乐趣的。不同的是,写一本书往往是一个人在进行,而构建一个大的程序,往往是多人协助的结果,而这个过程对个人的要求则更高。书有好有差,程序也是一样的。
回到 “选择” 的事情上。本质上来看,你追着热点走,但热点往往不会等你,而如果热点主动靠近你,你想不抓住机会也难。换句话说就是,当你能持续地在做某件事情的时候,这件事情本身刚好契合了某个正在发生的热点,那可能就是你的一个机会了。
在选择做任何一件事情上,没有人能够保证一定可以得到自己想要的结果。如果非得从编程和写作中挑选一个来学习,我更推荐于锻炼写作,因为这个能力带来的好处更受用于各个领域,而且受用终身。即使你最终没有因此而直接赚到钱,但它一定在通过其他的方式给予你应有的回报,而且是源源不断的,包括成长。如果有条件,我建议两种都应该学习。