正文
包括我当初学习 node 开发,也是直接从实践切入,因为语法其实已经没有什么问题了,当时我就想,我需要做一个网站出来,通过网站的不同功能模块,实践 node 开发中的一些基础或者是数据库设计,部署,服务器运维等知识。
当时第一个想法就是把自己搭建的 wordpress 博客自己用 node 实现一个,于是就说干就干,后来发现博客还是过于简单,于是就想把自己的博客搞成一个社区。
大家可以来这里发表博客,或者是问答,还有论坛发帖等功能,整个网站的结构变得复杂了,对程序的结构设计,数据库设计的要求也就凸显了,通过这个网站的不断迭代,我对 nodejs 的了解也越来越深入。
我的主要技能仍然是前端开发,这个是我的工作。然后其他开发技能基本都是在业余时间学习与实践的,包括其他一些软技能,例如设计,产品,运营之类。
方法无非就是我上面讲的,所以接下来讲的业余开发项目的感受,这些项目,其实最终的初衷除了创造之外,还有很重要的一个点,就是我用来学习技术的实践,不管你的产品做成功还是失败了,至少我的技术长进了。
所以,不要在业余时间做一些没有技术含量的事情,例如接一些切图的外包或者你已经很熟悉的事情,多给自己一些挑战自己的事情。
业余开发项目的初衷
总体来说,在我的感觉里,国内的环境对于业余开发者来说其实是非常不友好的,不过作为一个开发者,一味抱怨并不会有大的改观,能做的就是不忘初心,多做尝试多做积累。
包括我之前也和一些朋友深入聊过类似的话题,例如“在行”上约我聊相关话题的同学,我其实是鼓励大家勇敢的去做自由职业者或者业余开发者,虽然环境的确不是很友好。
但是年轻时多尝试总是没错的,毕竟我们还有资本去寻找更多可能性,而且我相信每个开发者其实内心都是向往利用自己的力量改变人们的生活方式的。
而我们通常做的事情却总是一个大工程中的螺丝钉,时间长了失却了创新的初衷意味,这时候离一个创造者越来越远,自会觉得内心恐慌,我最初的热爱去哪了?
虽然这些大工程的确在不断改变我们的生活,但是我的初衷却是能够主导一场改变,即使它可能改变的只是一小群人的某个小小的生活方式。
我一直觉得程序员是一个很神奇的职业,不是说这个职业本身神奇,而是代码赋予我们的能力神奇,我们可以凭空创建起一个虚拟的世界,可以制定这个虚拟世界的规则,可以让这个世界按照我们的想法运作。
但是这个世界也会反过来要求你改变你,因为一个正常运作的虚拟世界需要严谨的规则,这就需要你有设计产品,设计合理规则,设计运作闭环的能力。
这也是我们重点要强调的业余开发者的能力模型,你不能只是拥有 coding 的能力,不能只是 create,而是要合理的创造,探索人群的新的需求,创造真正有用的产品。
其实这是今天要探讨的重要话题之一:业余开发者如何做出一个真正的产品?
硬技能
这件事绝非看起来这样简单,首先在技术上,你要掌握足够的技术来完成这个产品的各个方面,现在假设以我的上一个app睡前故事为例,完成这个产品需要有哪些方面的技术积累呢?
-
客户端开发,iOS,Android,当然如果你选择只支持某个平台,可以只掌握其中一种,当然也可以使用一些跨平台的技术,但是除了语言和编程模式,编程框架之外,还远远不够,平台差异,平台特性,版本兼容,自适应,还有最麻烦的一环,你的 app 开发成功之后如何发布到对应的平台?