前言:前端
本文主要与你们分享我业余时间如何学习多门技术以及开发业余项目的一些心得,分为 初衷、硬技能、软技能、第一辈子产力、环境、时间几个部分,程序员
业余开发项目的初衷面试
整体来讲,在个人感受里,国内的环境对于业余开发者来讲实际上是很是不友好的,不过做为一个开发者,一味抱怨并不会有大的改观,能作的就是不忘初心,多作尝试多作积累。数据库
包括我以前也和一些朋友深刻聊过相似的话题,例如“在行”上约我聊相关话题的同窗,我实际上是鼓励你们勇敢的去作自由职业者或者业余开发者,虽然环境的确不是很友好,可是年轻时多尝试老是没错的,毕竟咱们还有资本去寻找更多可能性,并且我相信每一个开发者其实心里都是向往利用本身的力量改变人们的生活方式的,编程
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!但愿帮助开发者少走弯路。如下资料须要的能够加群领取。网络
而咱们一般作的事情却老是一个大工程中的螺丝钉,时间长了失却了创新的初衷意味,这时候离一个创造者愈来愈远,自会以为心里恐慌,我最初的热爱去哪了?虽然这些大工程的确在不断改变咱们的生活,可是个人初衷倒是可以主导一场改变,即便它可能改变的只是一小群人的某个小小的生活方式。app
我一直以为程序员是一个很神奇的职业,不是说这个职业自己神奇,而是代码赋予咱们的能力神奇,咱们能够凭空建立起一个虚拟的世界,能够制定这个虚拟世界的规则,可让这个世界按照咱们的想法运做,可是这个世界也会反过来要求你改变你,由于一个正常运做的虚拟世界须要严谨的规则,这就须要你有设计产品,设计合理规则,设计运做闭环的能力。框架
这也是咱们重点要强调的业余开发者的能力模型,你不能只是拥有 coding 的能力,不能只是 create,而是要合理的创造,探索人群的新的需求,创造真正有用的产品。ide
硬技能工具
1,这件事绝非看起来这样简单,首先在技术上,你要掌握足够的技术来完成这个产品的各个方面,如今假设以个人上一个app睡前故事为例,完成这个产品须要有哪些方面的技术积累呢?
2,客户端开发,iOS,Android,固然若是你选择只支持某个平台,能够只掌握其中一种,固然也可使用一些跨平台的技术,可是除了语言和编程模式,编程框架以外,还远远不够,平台差别,平台特性,版本兼容,自适应,还有最麻烦的一环,你的 app 开发成功以后如何发布到对应的平台?如何设置内购等?
3,特别是 iOS,发布一个 app 的成本远比想象的高。另外与端相关的,还有基础的数据统计,消息推送,分享集成等,在第一版的时候最好就能将这些工做作好,而这就须要你了解这些功能的集成开发。
4,前端开发,故事上传有一个后台,固然这个很简单,而后故事从 app 里分享出去以后有一个 H5页面,这个页面里能够直接播放音频,而后有一些下载 app 的引导。因此前端开发的技能也是必备的。还有就是一些日常要用的宣传页之类的。服务端,全部故事都是在后台存储的,须要数据库,还有服务端应用提供数据分发,以及一些数据统计之类。
5,数据记录与分析,我须要在用户的使用过程当中,记录用户的动做和其余有用信息到服务端,而后以这些数据分析用户行为,以便决定后续哪些故事是最受欢迎的,以及受谁的欢迎,我能够作定向的推送或者收费服务。
6,设计能力,提及来这也是很是核心的须要,若是没有基础的设计能力,很难作出一个让你们眼前一亮至少看着舒服的 app,特别是如今市面上的主流 app 都拥有比较高的体验门槛,粗制滥造的 app 很难吸引用户,在这点上,也须要作一些刻意的培养,虽然咱们可能没有受过专业的训练,可是能够多看多想,从别人的设计风格中借鉴,慢慢培养审美,固然还有最重要的就是 设计工具固然须要熟练掌握。
7,除了技术以外,还须要其余一些技术以外的能力,这些能力多是区分你与其余程序员的重要分水岭,它决定了你能够创造产品,而不是掌握了哪些具体的技术。
咱们简单谈谈:
1,需求分析,产品规划。要作一个什么产品,不是由于我掌握了什么技术,可以写出什么样的代码来,技术只是一个工具,要发挥其价值,必然是须要有原始的需求和基础产品形态。因此要开始独立开发一个应用,首先要作的可能并非去掌握不少种技术,而是想清楚,你要作一个什么产品。
2,例如,我要作睡前故事的 app 的时候,个人确已经掌握了上述的技术,但这些都不是决定性的,若是我没掌握,我能够去学习,可是为何要作这个 app?是由于我有资源(我老婆,讲故事讲得好,她是老师,身边有一群潜在的种子用户),有受众(强需求,高粘性),因而我开始思考如何利用这些资源,我想一个听故事的 app 成本应该是不高,并且容易推广,粘性足够高的。虽然市面上已经有不少相似的 app,可是我能够作个人特点,
例如:我只有一个讲故事的老师,并且讲的质量很高(市面上大多数故事app都讲的很敷衍),有很强的品牌和标签属性,另外个人设计能力和开发能力突出,我能够将个人 app 作的比任何一个 app 都精致好用。
3,推广和运营。大多数业余开发者应该都为此很是发愁,我好不容易作出的应用,如何曝光给受众?如何让更多的人安装个人应用?如何维持应用的活跃度留存率?这方面的能力,我推荐你们首先多去尝试挖掘,另外就是在日常公司的工做中多多留意你们的惯用手段,多向相应职位的同事学习,另外在职场中遇到相似问题的时候也多从自身思考,若是让你来推广一个 app,你有什么办法?具体如何推广 app,这里也能够分享一下。首先,你要保证你的 app 是优秀的,不然你把 app 推给用户,他不肯意下载,那不管如何推广都是无效的。
4,而后推广渠道,能够找一些免费渠道,一些app推荐的网站、app、公众号,想办法联系到他们的编辑,而后请他们推荐你的应用,若是你的应用足够优秀,他们会很乐意帮忙,这种渠道仍是挺多的,例如最美应用、少数派、appso之类。另一个渠道就是一些垂直的论坛和社交网站,甚至是知乎之类。而后所谓的运营,最基础的,在 app 内要有一些与用户的互动,可以维持用户的使用激情,甚至帮你扩散 app 到朋友圈,具体能够是一些活动的形式(运营管用手段)。
最后再说一点,适当的时候,要舍得花钱,可是要花在点子上,能够搞一些送礼物的活动,也能够作一些付费的推广配合冲一下榜。
1,当咱们知道构建一个产品须要些什么基础技能以后,那咱们以下真正的下手作一个产品出来呢?我应该作什么类型的产品?我能想到的产品别人都作过了怎么办?我人手不足没法开展大型工程如何与别人竞争?个人推广和运营能力有限没人用怎么办?
2,有时候我也会困惑,特别是我作了一个 app 出来,而后千辛万苦推广的时候,要么发现对我的来讲推广一个 app 是极其困难的,要么就是发现当我把 app 推到用户面前的时候,用户并不会很兴奋的接受你的产品,这时候我就会开始思考,如何突破?是寻求更多曝光渠道?仍是作一些很花哨很吸引人的运营活动?感受这些事情对我来讲都没有那么简单,成本也都很高,越想越头疼,越想越会以为本身作个事情出来真的不容易。
3,不过,可能我想着突破的点的方向就是错的。业余开发者的核心竞争力是什么?不是你的资源,不是你花里胡哨哗众取宠的玩法,而是你我的意志主导的创新能力!用户对于创新功能(固然首先要是合理的)的敏感度是很高的,若是你的 app 提供了一种前所未见可是又可以解决问题的使用方式,这才是你的产品的核心竞争力,在极致状况下,可能不须要任何主动地推广、运营,用户会自发帮你传播,而且保持很高的活跃度。固然,这种创新,不是特指一项具体的技术实现,也不是指一个花里胡哨的设计,须要本身去作理解和平衡。
环境
1,知道了如何独立开发一个产品以后,咱们再谈些别的,例如:为何我说国内的环境对业余开发者是很不友好的?为何不多有专职的业余开发者?
2,从经济上来讲,其实一个业余开发者要养活本身仍是没有问题的,可是如今国内的环境是,能养活本身远远不够,首先你要能养活一个家庭,而后你要养房子车子,你要还贷款养银行,你要交税养国家,种种因素要求你,要么有稳定的收入,要么就有足够硬的经济条件。若是你没有很好地经济基础,而又没有稳定的收入,对于家庭来讲是一件很难接受的事情。
3,固然,这是大环境,你彻底能够跳脱这些束缚,可是大环境对人的影响仍是很是大的,你很难摆脱正常人的生活方式与状态,这些都在暗示你,从事不稳定收入的自由职业独立开发不是一个好的选择。还有其余一些问题,例如社保,五险一金,户口,签证等问题,若是你没有正式的工做,这些事情都会变得很麻烦。
4,其实我很是向往自由职业,因此曾经有一年我没有工做,在家里尝试了一年时间,除了本身的自制力问题以外,我也深知,我无法维持“自由”这个状态过久(除非我一晚上成功,可是那时候的我,也并不是“自由”了),由于做为一个正常人,我须要承担不少这个社会须要我承担可是我本身可能并不特别乐意的责任。
5,固然还有一点,我须要回到职场观察学习,如何成为一个“正常人”,如何创造“大型产品”,虽然可能这并不是个人初衷,可是咱们并不是天才,作任何事情都须要这个世界的辅助,因此咱们须要很好地和这个世界沟通。在这种大环境下,除了鼓励更多的人参与到自由职业和独立开发的队伍中来以外,最好的选择就是作部分妥协,可是勿忘初心,利用工做之余,拾起你对技术和产品的热爱,慢慢打磨一个业余的产品,经过这个打磨的过程,积累经验(硬技能、软技能),同时保持创造的活跃度。
时间
1,接下来探讨的这个话题能够涵盖好几个问题,例如如何一我的在短期内掌握多项相关的技能?如何维持本身业余开发的热情?以为技术一直没有长进怎么办?
除了 0.1% 的悟性、1%的方法以外,你能作到别人作不到的事情的最大秘诀就是:时间。
2,若是你真的对一个事情感兴趣,那就投入 100% 的热情和精力,例如天天下班后 7 点到晚上 2 点(固然不鼓励熬夜)的时间,就是 7 个小时,你一天投入到工做学习的时间比别人多了 7 个小时,一个月就是 200 个小时,加上周末的时间,远比你正式工做的时间还要长,这些时间才是人和人之间拉开差距的重点。
3,例如学习 iOS 开发,一天学一个知识点(加上实践),我以为最多一个月就能够覆盖大部分知识点,固然这须要极大地热情,毕竟不是全部人都舍得将大把的业余时间投入到学习或者作项目中去。
4,我在作以前的我的论坛和 app 的过程当中,其实状态都是比较累的,天天大概须要付出大部分业余时间加熬夜的时间,由于用户反馈愈来愈多,我须要不断地优化本身的产品,完善本身的想法,而且将他们实现出来。虽然很累,可是成就感仍是很强的,这些成就感会激励我持续的投入更多的时间,造成一个自身成长的正循环。
不过作事情总有遇到瓶颈的时候,在遇到瓶颈的时候,我会刻意将节奏放缓,看看别的类型的书,研究下别的类型的技术,或者纯粹的放松。
5,讲了这么多,不知道对你们会不会有帮助,不论如何,最重要的仍是开始执行,脑海里总会冒出一些想法吧,不知道是否是合理?那就先尝试作,慢慢的就会发现什么是合理的,什么是不合理的,每一个人都有这样的一个过程。而后多去观察生活中出现的大大小小的问题,总有我力所能及能够用技术去解决的问题,而这可能就是一个很好的 idea。另外但愿真正热爱技术和创造的朋友能够一直保有本身的那份初心。
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!但愿帮助开发者少走弯路。
文章来源于网络,若有侵权,请联系小编删除。