我是如何一步步从编程小白到编程新手的?-记商店大赛心得

Published on:

前言:

参加比赛之前,我还是一个编程小白。

有一天,我在Youtube上看了一个freecodecamp的创始人Quincy Larson给自学编程的人建议。

前两条是:
1. code everyday
2. hang out with people who code

那个时候,我还不太明白,现在我才明白了深意。


还记得,2月13日凌晨00:02,也就是比赛刚开始的那一刹那,陈竹她们就提交了作品,这速度,我都惊呆了。

这从一个侧面也说明了,第二季的比赛竞争情况比第一季要激烈的多。

其实,一开始我们也是信心满满的,跟南京的小伙伴们卢标和马俊楠,畅谈如何拿到最好的名次以及去北京参加线下课程。

虽然从现在这个情况来看,应该是实现不了这个愿望了,但在这半个多月的时间里,我们确实尽力了,趟过了很多坑,也采到了很多果实。

好,既然ORID写了这么久,我尝试一下用ORID的思路来写这篇总结:

Objective


首先,让我来复盘一下这次比赛的整个过程。

1. 比赛初期,交流迸发灵感,初版上线

比赛前一天,我们在线下交流时,确立的主题是女装,这个想法是我提出来的,网站的名字都讨论好了,叫Beautys。
之所以确立这个主题,是从两个因素来考虑的。

  • 首先,我们讨论网站最吸引人的元素是什么? 当初,我们是从性别这个角度去考虑的,很明显答案是女性。
  • 其次,我们考虑是做小而美还是大而全? 当初,我们认为经历有限,应该做一个小而美的网站。 结合这两点,我们做了女装,并且只做5个分类: dress、skirts、shorts、jeans和suits。

很快,我们就做出了一个初版出来:

当然,现在来看确实不太好看,不过当时我们觉得做的已经很酷了。

2. 交流进一步深入,新的作品产生

之后,我们又进行了深入的交流,重新思考了这个问题:

  • 最吸引人的元素应该就是人本身 万千世界,如果我们要列举出最有吸引力的具体的元素,那么每个人的答案都不相同,各有原因。 但如果我们把望远镜拉远一点,所考虑的对象就模糊成一个类别了,基本可以涵盖一切的内容,一般来说,这里面可能就有吃穿住行玩这五个主题。 如果,我们把望远镜再拉远一点,其实这一切背后最主要的东西就是人啊,人这个东西才是决定你能吸引到的一切,从这个角度来看,我认为罗辑思维的得到专栏才是我最中意的服务。
  • 我们比赛投票的对象是谁? 一般来说,我们作品的主要投票对象是全栈学员,自从vip一票抵5票后,这就更明显了。 那么这些人最大的痛点是什么? 我们讨论的结果是bug,初学编程的人最怕遇到bug自己不会解,最后挣扎着从入门到放弃。 这个想法最初是来自于@lubiao,我们同在南京参加线下meetup,有一次他提出了这个想法,那时候,我已经在做beautys了,于是我鼓励他做一个网站把这个想法实现,后来他并没有做这个,而是做了江南百货。 后来,我就做了一个demo给他看一看:

再后来,这个想法就被我承接过来了,被我们拿来做了心得作品,取代了beautys。
当初,YY师兄还给予了鼓励,说有点像landing page的样子,当然,那个时候landing page的教程还没有被放出来。

3. 新的作品初版上线

经过一番努力,我把初版做出来了,参考的是全栈营的landing page,初版张酱紫:


4. 不断迭代,增加功能

在这个过程当中,大部分功能是靠大神们的logdown或者论坛上的帖子完成的,小部分是自己总结和学习来的。

总结一下,有这么几个:

  1. 实作多图上传 by YY老师
  2. 验证登录 by YY老师
  3. 正确部署到heroku by 潘秀斌助教
  4. 让图片像Pinterst网站那样排列 by 刘慧玲
  5. facebook登录 by 郑智
  6. social-share by 马俊楠
  7. 敏捷搜索 by 毛尧吉
  8. 页面布局的高频小套路 by 陈俊鸿

最后定稿:debugsharing



Reflective


1. 最大的收获:学会分享,才能更快进步

当然,最大的收获其实是老师的Growthhack的教程,这个课程系统的帮我理清了landingpage的制作过程:

  • 首先要对潜在用户做一个调查问卷,理清用户的实际需求
  • 根据调查结果,整理出痛点
  • 然后根据痛点整理文案,辑写landing page

除此之外,我最大的收获是学会分享。

我们的作品在不断迭代的过程中,大部分是靠大神们的分享才做出来的,直到我也开始尝试分享的时候,才明白笑来老师提到的一句话:学习即社交

要知道,分享并不是码码字那么简单,至少有三个部分构成。

  • 首先,你得要求自己能实作出来这个功能,才能写出一个详尽的教材。 这从某种意义上来说,也是一种倒逼自己进步的方法,而不是脑中只有模棱两可的概念。
  • 其次,分享是一种社交行为。 分享,即在展示你的学习状态,加深别人脑中对你的印象,说不定会有意想不到的收获。
  • 最后,你还要负责,负责为其他同学模仿你的教材时可能出现的bug负责。 如此来说,这又会推着你在相关方面加深理解以及有可能的刻意练习和提取记忆。

真是一举三得,何乐而不为呢?

回过头来再看这次比赛取得名次最好的几位,莫不是他们都乐于分享,论坛上有很多他们写出来的热门帖子,slack上也总是能看见他们热心帮助的身影。

除了给他们点赞,我自己也要行动起来。
于是,我根据自己平时学习整理记录的一些经验,分享了自己的几个思考:

  1. 七步给商品增加评论功能
  2. 七步给商品做一个分类
  3. 12步给商品增加收藏功能
  4. 关于多图上传的seed文档的思考
  5. 如何让用户输入的内容支持html语法?

2. 最大的坑:学会准确定位自己

除了收获,一路走过来,坑也是到处都有,一不小心就跌进去了,总结出来大概有这么几个大坑:

我作为主程,实力太弱了

一开始,我是挺有信心的,我觉得自己rails101做过8遍,job-listing做过5遍,应该是有这个能力来做主程的,现在来看我还是太高估自己了。

生活的经验告诉我,吃的多不代表消化的好。拿编程来说,练习的多不代表练习的效果就好。

后来有很多事实证明,我确实不太适合做主程,不过,我还是每天在进步,每天写orid总结,除了过年有几天给自己放了几天假,每天都有总结,里面记录了我一路的成长历程。
老实说,从能力上来说,后端我觉得还能勉强应付,前端我真的是一窍不通,比赛的过程中有很多时间花在了前端的反复修改中,因此这是我以后应该重视的地方。

未能抢到先机

我们提交作品的时间拖得有点晚,直到当天晚上的八点才急急忙忙提交了作品,事实上,比赛开始前一周,我们明明有大量的时间来定主题、实作功能和部署,但我们并没有抓住机会里沟通,事实上,提交的早的作品可以较早的抢夺第一批的投票热源。

线下交流的网速是个大坑

如果在家里,大家练习时对网速的要求都能得到保障,如果需要演示敲代码和面对面交流,都完全没有问题。
但如果要参加线下的交流活动,如果网速这一块不能得到保障,这绝对是一个大坑,不仅影响大家练习的速度,还会影响大家的心情。


Interpretation


通过这次比赛主要学会了:

1. 制作landingpage

  • 学会用金数据的微信小程序来做调差问卷,一键发给朋友,查看数据超级方便,一目了然
  • 整理数据,编辑和调整文案
  • 根据4p和Golden circle理论,编辑landing page

2. 收藏了几个高清图片网站

3. 用feed订阅大神们的logdown

feed官网注册后,把相关的logdown链接放进去就可以订阅了,没事去浏览一下,就能有很多收获。

4. 滚动截图

一开始我用的截图工具是微信电脑端自带的截图功能,也用过snip,浏览器截图插件用的是smartshoot。
但要不就是不支持滚动截图,要不就是不太好用。
最后,通过浏览logdown才发现,snip只有通过官网下载的版本才可以滚动截图,app store下载的版本没有滚动截图这个功能。
关于浏览器的滚动截图插件,最后用了FireShot插件才完成了全页面截图。

5. 处理图片

伍兰同学分享的这个工具真是赞到爆: 把自带预览工具用出神器效果,完美解决了我的p图需求。

6. 尝试做一个Google Programmer

YY老师在3月2日的直播中提到xdite老师说的一句话,很有意思,Rails Programmer == Google Programmer。

老实说,在学习全栈营课程之前,我就大量使用过google了,此前我还专门整理了使用google的一些技巧。

但YY老师的直播还是给了我很多收获,根究直播的内容,我践行了一下,实际解决了两个问题如下:

7. 用github协作

因为一些无法解决的bug,虽然我跟队友并没有产生直接的协作,但我通过跟@lubiao的交流,了解了一些协作的方法以及可能遇到的问题。

  • 首先是熟读教材,按教材内容来一步步操作
  • 记住,一旦协作之后,就只能每个人做不同的功能,然后上传自己的分支,主程合并分支,最后每次做新功能都要从远处拉下最新的master分支再开始做。
  • 如果在上传heroku的过程中,出现下面这样类似的问题: 执行命令:git push —force heroku master 如果出现了如下报错:

可以考虑强推:
git push —force heroku master

8. 复习了学习学习再学习的概念

所谓:预则立,不预则废,如果你打算做一件事情,但是没有好好想想what、how和why,那么你很可能半途而废或者效率低下。
因此,做有些事之前,一定要先在脑海中预先演练,并且问自己三个问题

  1. why?我为什么要做这件事情?
  2. how?我应该怎么做这件事情?
  3. what?我现在能做什么事情? 其实,花不了多少时间演练,最怕的是白白消耗了注意力和时间。


Decisional


如果要用一句话来给我参加这次比赛做一个总结,那就是:

比赛大起大落,真是太刺激了。

为了这次比赛的进度,我甚至连以前每天都看的得到专栏和每天一页Priciples的学习进度都忽略了,哈哈哈 ,现在又可以开始新的征程了。

虽然我们的作品还有很多的问题,还要不断地迭代和完善,期待自己能做的更好,同时除了每天code以外,每天一定要给自己至少留出半小时思考,这是必须的。

回到前言说的两条自学编程的建议:

1.保持每天练习代码的节奏,才可以让自己进入可以练习的状态。
2.跟同时编程的伙伴聚会你才会发现,原来你不从孤独。


如果,看到这篇文章的你,也想来一次从编程小白的蜕变,欢迎用我的优惠码报名下一期线上学员。

什么?你说有多少折扣?

好吧,差点忘记了这个最重要的事情。

用我的优惠码:432a-5c15-1cde,原价19990,可以享受2000的折扣。

Comments

comments powered by Disqus