不懂编程的门外汉教你自学成才开发线上应用!
创见干货:
在上一章节中,我们看到一个对编程什么都不懂的门外汉是如何凭借强大的自我学习能力,将一款头脑中酝酿多年的想法变成现实的。如今,他回首过去的种种经历,有很多感触与道理与我们分享:
通过之前我所阐述的几个阶段,如果你完全按照步骤去一点点的执行,很快你就能够获得你想要的结果的。如今的我,通过这个阶段的学习和开发,有了以下非常深刻的感悟和认识:
网上搜索技能是你必不可少的重要工具!
在刚开始开发应用的日子里,我其实毫无头绪,只知道完成一些基本的任务。实际上,我花在 Google 上的时间比编程还要多。这种情况也会发生在你的身上,这也是为什么你没有必要把一整套编程语法规则全部记下来的原因。知道如何高效地去搜索内容,将是你最重要的技能。
精益创业原则
跟那些经验老道的程序员相比,其实你也有你自己特殊的优势。因为你是一张白纸,所以你在开发这款 App 的时候没有条条框框的限制,没有一些既定看法的约束。你只需要瞄准这款 App 的核心功能,极尽所能地将其简化就可以了。
没有压力,就没有收获
请 千万不要依赖别人,指望着让别人来替代你开发 App。你必须在这个过程中充满坚韧的斗志。如果你之前没有学过编程,学习编程将让你获得与之前完全不同的另外一种思维模式。当然这个过程是困难的。但是 当你熬过了这个阶段,尤其是在花费了好几个小时解决掉了一个问题之后,你开始逐渐对编程世界的运行规则熟悉起来。这是项目开发过程中最有价值的环节。当你 的学习开始不断加速向前,你讲完全不满足于第一次你所找到的解决方案,你会开始寻找更好的方式来解决你的编程难题。
Stack Overflow
Stack Overflow 是互联网上的一个社群,也是你学习如何编程的最好的社群之一!你可以在上面问各种问题,但是不要期望每一个问题都能获得完美的解释。为了推动你的学习进 度,你不能将问题扔在上面就一走了之,你应该自己反复钻研,最终也许你自己就能回答得了其中的一些问题,并且为这个社群做出自己的贡献。
编程有一点儿像「七巧板拼图」游戏
事实上,你可以将编程视为某种「七巧板拼图」游戏。将你的想法打碎成为非常小的无数个能够处理的问题,然后把这些问题集合起来就构建了 App。
教程
请 千万不要花费好多个星期,甚至数月的时间去翻阅书本,教程,或者 PPT。相反,首先你应该了解的是编程语言的基本规则,然后拥有一个程序员应该有的思路,最后在「做」的过程中进行学习。这也是为什么我强调一开始你必须 清楚你所开发的东西究竟是什么,这一点非常重要。利用网络上的教程,博客以及其他资源所写的东西来学习如何针对你所需要处理的特定任务进行编程。
开源
对于外行学习编程来说,开源项目简直是你所能找到的最棒的资源了!你完全不需要从无到有的自己一个人去创建出来全新的东西。
也许最有可能产生的场景如下:你从网上找出来一段开源的代码,将其完全复制到自己的应用上,试着看能否运行得了,如果不行,将其分解,提出问题,获得答案,再对这段代码进行改善,最终达到目的。
进行日常性的编程工作,频繁的对其进行配置
尽 量保证每天都能够在你的 App 上看到进展。每天的工作时间不限长短,也许你只有几分钟花在上面也好。尤其是在学习结束后的开发前期,你毫无头绪的阶段里。我知道对于一个新手来说编程是 多么困难的一件事,但是试着让自己每天都在编程,这样你才能对你的编程环境感到舒服。不要老是想着最好的解决方案是什么,对于新手来说那些都是噪音,当项 目开始不断向前推进的时候,你会逐渐了解到什么才是最好的方法,什么才是不可动摇的编程原则。同样我还建议你能将自己的 App 配置在 Heroku, AWS 以及其他一些主机服务上。频繁的去配置 App 将在你最终发布 App 的时候节省你大量的时间。
技术
很有可能,你的 App 仅靠一种编程语言是无法达成的。做好准备,学习多种编程语言。你最终有可能会掌握 Git,Heroku,JavaScript 以及 PostgreSQL。
庆祝每一次微小的胜利
学习编程是很艰难的一件事。如果是自学的话那就难上加难。因此,你应该为你所取得的每一次进步欢呼喝彩,不管这些进步有多么微不足道,你都应该为此感到骄傲。
如果我压根不想成为一名程序员,我是否有必要去学习编程呢?
通 过上面的几步来学习编程并进行应用开发,最终达到你得到了一款由你亲手开发出来的应用,也许只是花了几个月的时间。然而这其中最重要的是,你比几个月之前 的你更加强大,也更有价值。你不再是丈二和尚摸不着头脑的门外汉,而是一个能够在基础层面进行编程,并且能够与程序员和网页设计师进行沟通的人。你同样有 能力将自己的想法落实到地面,而不用花大价钱把技术外包给其他人。
说回到 972VC 这个例子,整个开发的成本只有 9 美金(RailCasts 高级订购包),以及购买域名的一些钱。即便是你选择将技术外包,因为你是内行,你就有能力监控整个过程,并且在议价的时候更具有优势。
如今的 972 VC
如 今的 972 VC 已经成长成为了一个综合性的平台,为以色列的初创公司提供寻求融资(私募股权、风投、加速器和孵化器项目)的帮助。另外,它还提供有关天使投资团体,众筹 项目,在线协作、以及与科技相关的非营利性项目的支持服务。无论创业者还是初创公司,都可以在其中找到对于他们最有价值的内容。
我所参考的资源:
命令行交互界面: Terminal Cheatsheet for Mac
安装指引: GoRails, thoughtbot
OS X 环境下的软件打包管理系统: Homebrew
代码编辑器: Atom, Sublime Text, Vim
教 程: CSS-Tricks, Code School, Codecademy, Jumpstart Lab,RailsCasts, RubyMonk, Tealeaf Academy, The Ruby on Rails Tutorial, Try Ruby, Tuts+, UT on Rails
Ruby on Rails 开源项目: Open Source Rails
认证: Devise
自动完成: jQuery UI, Select2, Selectize, typeahead.js
CMS: Active Admin, RailsAdmin
前端框架: Bootstrap, Foundation
全文本搜索: Algolia, Elasticsearch, PgSearch, Solr, Thinking Sphinx
图标: Font Awesome
编页码: Kaminari, will_paginate
URLs: FriendlyId
数据库: MongoDB, MySQL, PostgreSQL
论坛: SitePoint, Stack Overflow
在你浏览器下的代码编辑器: CodePen, JSFiddle
JavaScript to CoffeeScript compiler: Js2coffee
基于网页的工作套件: Google Docs
Ruby style 指导手册: Community-driven Ruby coding style guide
视觉控制: Git
存储主机服务: GitHub
网站主机服务: AWS, Engine Yard, Heroku (Nezumi 是为移动端服务,Adminium 是服务于数据库的), OpenShift, Rackspace
DNS 和域名管理: DNSimple
浏览器测试: BrowserStack
网站安全扫描: Detectify
读取测试: Loader.io
后台分析: Google Analytics, Segment
订阅: MailChimp, TinyLetter
隐私政策: iubenda
UI/UX 工具: Sketch