当前位置:主页 > 奥秘期刊 >从零到完整架设云端服务网站的自学程式资源 >

从零到完整架设云端服务网站的自学程式资源

  

从零到完整架设云端服务网站的自学程式资源

我在 2017 年 1 月 6 日看到 Facebook 跳出一年前的贴文,这贴文是发布用 Ruby on Rails 做出的易经创业卜卦网站。而在这卜卦网站发布后的一年,我和共同创办人 Joanne打造的译者云端服务网站 Termsoup.com 已经公布两个个月了,这网站从访谈、功能规划到陆续改版也花了五个月时间,目前已有数千人注册,而且越来越多译者已经完全从 Word 转移到 Termsoup 工作了,因为在这里可以节省 50% 以上的查询词彙和资料时间,飞快地完成翻译文件,而不需要开启 Word 和一堆浏览器页面辛苦的查询资料。

一年前贴文:

从零到完整架设云端服务网站的自学程式资源

一年后的译者云端服务:

从零到完整架设云端服务网站的自学程式资源

由于网路学习资源非常丰富,尤其是线上付费课程已经越来越流行,许多厉害的线上课程老师已获得好几万名学生,且获得极高分数评价,现在要学习新技术的门槛和时间已经比以前降低很多。

我自己之前在美国唸博士班最大的收穫,就是学到如何更有效率的学习新事物,关键有两个:

第一,要找到最好的学习材料。

第二,根据程度和学习进度依序使用这些学习材料。

如果有极佳的老师提点,可以明显加快学习速度,减少摸索时间。但如果没有好老师就宁可自学,不要浪费任何时间在二流的学习教材和课程上。学到错误观念或一知半解的观念比没学更糟,因为要花额外的力气移除错误观念并塞进正确观念,等于要重整自己的脑袋。

我自己在建置 Termsoup 之前,主要会的是 HTML5、CSS3、非常简单的 jQuery 和 javascript,以及部落格等级的 Ruby on Rails 技术。我花了约半年到一年时间陆续在线上学习 Ruby on Rails,也在 五倍红宝石 上过几次免费课和付费课。

我花在线上课程的时间不少,但自己做一个「认真的专案」才能极大化进步幅度,因为碰到问题会被强迫要去解决它、在网路上找答案,甚至有三次在 Codementor 上付费找厉害的工程师协助,节省我一堆找答案时间。在这种较为痛苦的过程才能真正提升等级。如果只是做一个练习作品,很容易碰到问题就绕过去用简单的方式解决,进步会相当有限。

以下列出我的自学清单,而且是从基础和进阶的学习材料,希望可以帮助到想要学习建立网站却不知从何开始的人。但这里讲的网站建立技术主要以 Ruby 材料为主,不包含像是 Python 或 PHP 等网站技术。大部份都是英文学习材料,但不用害怕英文阅读和英文听力,逐渐习惯就好,而且功力要提升,势必要一直接触英文内容。

从零开始:HTML5 & CSS3

要学习网站技术,就一定要先了解 HTML5 和 CSS3,严格来说 HTML 和 CSS 算是语法,而不是程式。学会这两种语法,至少也能做出漂亮的自适应的静态网页,嵌入一些简单的第三方服务,就能自製 landing page。

前端基础:jQuery、Bootstrap 框架

在学会 HTML/CSS 后,可以开始了解简单的 jQuery。jQuery 可以做出不错的网页动态效果,例如一个区块或文字的淡出、淡入等,有一些适当的动态效果会让网站的质感提升,强化使用者体验,尤其使用者体验在製作网站时是很核心的元素,是一定要掌握的技巧。jQuery 其实是 Javascript 的框架,但 Javascript 较难,可以先直接用 jQuery 操作。React.js 和 Vue.js 也是窜起相当快速的 Javascript 框架,但我自己还没深入了解,而目前 jQuery 也仍是最多数人使用的框架,免费第三方资源也最丰富,所以我觉得仍是必学的前台技术。

Bootstrap 是相当好用的前台 HTML/CSS/jQuery 框架,由 Twitter 製作和分享。由于製作 responsive webpage 非常耗时,例如製作各种状态和情境的表单、按钮等,使用 Bootstrap 可以快速做出这些元素而且介面优雅,要变更颜色等属性也非常方便。另一个好用的框架是 Foundation,但我自己没用过。

后端基础:Ruby、Ruby on Rails

要学 Ruby on Rails,还是要先对 Ruby 有一定程度的了解,毕竟 Rails 是从 Ruby 延伸出来的框架,而且在写 ROR 时也还是经常用到 Ruby 语法和功能。

RubyRuby on Rails资料库基础:

虽然要做 Ruby on Rails 网站,很多资料库工作都可透过 ROR 的方法处理,而不需要自己撰写资料库语法,但是了解资料库原理还是非常有帮助。而且未来开发较複杂的网站也很容易碰到自己撰写一些 SQL 语法。在非关连资料库如 MongoDB 的部分我比较没办法提供学习素材,因为自己目前还没有用到,但这是需要学习的部分,NoSQL 很强大也越来越受欢迎。

版本控制基础:

版本控制虽然不是程式语言,但不论是个人或团队撰写程式,都是很重要的工具,可以避免版本混乱,或是当程式出错可以回复到之前版本,降低各种开发时的不确定性。

前端进阶:Javascript后端进阶:Ruby on Rails、AWS继续升级

学完这些教学之后,要继续升级写出更强大的程式,我觉得有几个重点:

亲手製作专案

最重要的还是自己做专案才能进步,否则只是上课练习或甚至只有听课,帮助极为有限。可以从简单的开始做起,例如 to-do list、部落格,之后再自己想一些服务试着做做看,做出来会很有成就感。也有的 Ruby 学习网站就是让学习者做出一些知名网站的功能,例如 AirnBnB、Twitter 这些,一方面学得快,二方面从练习成果也比较容易获得信心。

Google

Google 技巧其实是很重要的部分。我曾碰到某些难题,知道非得找高手帮助不可,就在 Code Mentor 上找人协助,用远端协作看到他们如何 google 问题找答案,而且能只看前面几笔结果就能判断答案是否在那,如果前几笔没有就转换搜寻策略。从观察高手 google 我才学到更多技巧。

Stackoverflow

Stackoverflow 也是非常重要的网站,这里有很多工程师回答问题。其实大部份基础问题几乎都已经可以在这找到了,也可以张贴问题,但这网站是有等级制度的,也就是要多发问、点击 upvote 到一定数量才能评论、回答问题,这也才能累积出有公信力和实力的答案。

善用第三方资源

现在外部资源非常丰富,就算是免费的几乎都用不完了,包括 API、Ruby gem、Javascript library,不需要每个功能都自己重新写,这样开发速度才快。

AWS

AWS 的服务种类增加非常快,现在甚至有 AI 的平台,让开发者不必自己开发 AI 程式就能分析数据或做出有机器学习能力的功能。所以多利用和熟悉 AWS 资源也非常有帮助。

相关文章