“读到这篇文章的时候我自己已经在学习编程的路上磕磕绊绊好一段时间了,学习编程是一件痛并快乐着的事情,我想这篇文章的作者的目标也许和我一样,并不是想转行做开发者,但是喜欢这种亲手用代码创造出一款产品的乐趣,恩,在代码的世界,每一个开发者,都是造物主。”
原文链接:https://medium.com/sofa-blog/how-a-designer-built-and-shipped-an-ios-app-in-6-months-58258869b5fa
关于设计师是否需要去学习编程是一个持续的话题。我很高兴能和大家聊一聊这个问题。
我认为通过学习编程能让设计师从另外的角度去看待问题。
你想通过学习代码做到什么?是去得到一份工作,完善你的简历,进入一个设计的新领域,更好地和开发者沟通?学习编写代码要看你的目的到底是什么。
就我来说,我想去发布一个App 产品。
一点的故事背景
在2015年,我和两个朋友一起完成了Sofa 这个项目的第一个版本。我是设计师,其他两个人一个是IOS开发工程师,一个是前端开发工程师。我们之前一起工作,现在也还在一起合作得很好。
在那个时候我不需要知道如何去编写代码。只要我将设计部分的工作做好就足够了。在经过了一年的开发和测试之后我们发布了1.0的版本。
但是,紧接着出现了一些困难。Sofa对我们来说是一个工作之余的项目,因为我们都有全职的工作。我的两个开发小伙伴由于工作太忙了导致没有办法继续花很多时间在sofa上面。我们的产品陷入了停更的困境,这对我来说十分痛苦。基于很多用户的反馈,我本来有很多的想法要对产品进行迭代,但是现在我却无能为力。这是让我决定去学习编程的导火索。
从Framer开始学起
和很多设计师一样,我之前也略微有学习过一点的HTML,CSS以及JavaScript。但是直到我开始使用Framer我才真的开始了解去这些代码的基础原理。
在于设计师去学习如何编程这个事情上,Framer 是一个那么神奇的工具。能亲眼看着自己编写的代码实现自己想要的效果,让我了解到到底这个编程的过程当中发生了什么。Framer教会了我基本的一些代码知识比如说“变量”、 “FOR循环”、“遍历” 、还有函数。没有什么花哨的技巧,都是些实用的知识。
通过Framer我涉猎了更多的JavaScript的知识,但是我的心更向往着去开发原生的IOS App。
向Swift前进
在swift语言还是诞生之前,我尝试地去学过IOS开发,那时候的主流开发语言是Objective-C,它对于我实在是太难消化了。当Swift语言发布了,我当时就认为,我应该能学会它。其实我也不是很确定,但是swift语言给了我一点点的自信。
这是很艰难的部分。当时有很多学习IOS开发的资源,但是大多数都非常糟糕,老师们总是会想当然地假定学生对很多基础的概念十分了解。很多针对初学者的课程都是这个状况。他们告诉你如何去实现“X”,但是从不告诉你你同同时需要先完成“A,B 和 C”。课程结束后反而觉得更加困惑和失落。
我觉得我体验过最好的学习IOS开发的资源是来自Meng To。 他的 Design+ Code 课程非常棒。他自己本身是一个设计师,他知道如何和设计师交流。这是让我觉得他的课程比别人的好的一个重要原因。纯开发者去教没有开发经验的人,他们总会忘记刚开始的时候的我们最应该学什么。Meng 为设计师们解决了这个问题。
Design + Code 教会了我如何在各个窗口间来回地传递数据,通过代码改变APP的界面设计,以及如何使用故事板。再次说一下,很多其他的课程也教这些,只是他们没有传达得很清晰易懂。
这个课程教会了我IOS开发的基础知识。从那时候开始我就能够探索和搭建一些产品框架。一个是Sofa2的早期框架,另外一个是针对IPAD的协作程序。我没有彻底地完成他们中的任何一个,但是我在这个过程中学到了很多。
在六个月里开发和上线Sofa2.0
在2017年的夏天,我觉得我已经等不及要去迭代Sofa了。等我的同伴的时间表上有时间,那估计就是明年了。那个时候我就决定自己开发Sofa的2.0版本。
我刚开始的时候我心里真的不是很有谱,但是我就是一股脑的扎进去了。我对于开发的基础的了解,足够我一步一步慢慢向前推进了。
在我开发的过程中,有两个我一直使用的学习资源:Stack Overflow 和 YouTube 。是的,就是YouTube。当你学习一些新的东西,只是看书总是不够的。看看别人是如何解决那些你遇到的类似的问题总是非常有帮助的。这就是YouTube特别棒的地方。当我碰到一些难点解决不了的时候,我总是在YouTube上搜索相关的视频来看。这里有一些YouTube账号对于我的开发学习帮助非常大:
Mark Moeykens
Brian Advent
Let’s Build That App
Sean Allen
我真的非常感谢这些人分享了这么多这么棒的而且通俗易懂的内容。
从七月份到九月份,我主要在做基础的app功能的开发。然后从九月到十二月份,我变成一个测试人员,对产品的一些功能和体验进行了不断地测试。
随着时间一周一周的过去,我收获了越来越多的自信。总有一些棘手的问题很难处理,还有一些我特别怕的难题,比如说 核心数据,但是总的来说整个过程并不是很难。
2017年12月6号的时候,我正式上线了Sofa2.0版本。严格的来说,还没用到6个月的时间,我的数学一直都不好。我很难形容自己的这种感觉——花了很长时间在做一样东西然后把它和全世界分享。有点吓人,有些激动,总得来说——特别有意思。
在我自己开发的这段时间里,我的好朋友同时也是Sofa的成员,Oliver Pfeffe 一直默默地支持着我。他是Sofa app的第一版的开发者,也是我合作过最棒的开发者。当我告诉他我想要自己开发Sofa 2.0版本时,他非常地支持。当我陷入困境时,他总是给我指明正确的方向,而不是直接告诉我答案。他让我自己按自己的想法把代码写出来,这样我学到的更多。到开发阶段的尾期,他帮我进行了代码审查(我当时有一堆重构的活需要做)并且写了一些库帮我清理了从google book上获取的数据。他在我开发2.0版本的过程中给了我很大的帮助,虽然他可能不这么认为。
我并不是一个人在战斗
我很清楚的知道,我没有办法一个人完成这些所有的事情。Framer教会我编写代码的基础,Meng To教会了我基本的IOS开发,还有Stack Overflow和youtube 和Oli 教会了我更多IOS开发中更深层的东西。
不仅仅是那些教会了我如何编写代码的人,还有那些每天都支持着我的人。我的妻子,我的家庭,我的朋友,我的工作伙伴,我的老板等等。我非常幸运身边有这么一群人,他们关心并且支持着我看似有些愚蠢的激情。这段时光我永远也不会忘记。
你也能做到
不仅仅是设计师,每个人都可以。如果你有一个你向往的目标,虽然现在没有足够的技能,不要担心。现在这个时代,学习新东西的途经和机会都远远超过历史上任何一个时期。你唯一要做的就是把时间用在学习上。而且完成这件事情可能没有你想象的那么困难。
文章中提到的学习网站和软件介绍:
Framer
最新版本的Framer结合了图形设计和代码编程的功能,比之前纯代码的工作流程相比,降低了不少的学习成本。Framer官方网站上不仅有很多软件使用视频教程,而且还有基础的代码知识的讲解,学习资源是很丰富的,只是所有的学习资料都是英文的,需要有一定的英文基础,当然,如果有一定的代码基础就更好了。Framer最厉害的地方,实现app的各种复杂动效,同时可以调用真实的数据实现最接近原生app的效果,用Framer做一款APP的demo是合适不过的了。
Stack Overflow
著名的开发者技术问答社区,做开发的没有不知道的,不管国内国外的开发者都喜欢在这上面提问和帮别人解决问题
Design + Code 网站
这篇文章的作者学习基础的IOS开发知识的网站,内容当然是英文的,不过从作者的介绍来看,这教程的制作人本身也是个设计师,所以内容对设计师来说应该是更浅显易懂,而且整个网站的设计也很棒。
YouTube
YouTube是一个汇集了各种各样视频的网站,当然也包括很多教学视频,全世界的很多技术达人都喜欢在YouTube上面发布自己的教程,不管是编程还是设计,只要你想找,都能找到很好的学习资料,当然,因为大部分的视频语言都是英文的,所以最好自己能有一些英文基础,不过就算你听力不好也没有关系,youtube有自动英文字幕的功能,对没有字幕的英文视频可以自动生成英文字幕,而且准确率相当高,看字幕比纯靠听明显简单多了。
作者介绍的几个开发教程播主的地址:
Mark Moeykens https://www.youtube.com/channel/UChH6WbyYeX0INJjrK2-6WSg
Brian Advent https://www.youtube.com/channel/UCysEngjfeIYapEER9K8aikw
Let’s Build That App https://www.youtube.com/channel/UCuP2vJ6kRutQBfRmdcI92mA
Sean Allen https://www.youtube.com/channel/UCbTw29mcP12YlTt1EpUaVJw