<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>waterflowseast (Eric Huang)</title>
    <link>https://ruby-china.org/waterflowseast</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>介绍我的项目 ＋ 找一份工作</title>
      <description>&lt;p&gt;2013-11-08 更新：已找到满意的工作，感谢大家的鼓励。&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;网站：&lt;a href="http://www.waterflowseast.com" rel="nofollow" target="_blank" title=""&gt;WaterFlowsEast.com&lt;/a&gt;，源代码：&lt;a href="https://github.com/waterflowseast/waterflowseast" rel="nofollow" target="_blank" title=""&gt;这里&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;接下来，我会 1) 介绍这个项目 2) 找一份工作&lt;/p&gt;
&lt;h2 id="介绍这个项目"&gt;介绍这个项目&lt;/h2&gt;&lt;h2 id="项目周期"&gt;项目周期&lt;/h2&gt;
&lt;p&gt;项目从 8 月 3 日开始，在 10 月 31 日告一段落。8 月 3 日～8 月 28 日，参考大量网站，用 Foundation 框架将主要的页面写出来，并用蹩脚的 PS 水平制作所需的图标。设计页面的流程、数据库的字段、各个页面的显示内容，以及斟酌用词。8 月 29 日，开始建立 Rails 项目，并进行了第一次提交。之后，一直到国庆放假前两天，写的都是后台代码。国庆回家，几乎没写什么代码。国庆回来，连续好几天没心思写代码，后来勉强在 10 月 18 日把所有的前端代码写完并提交。10 月 19 日～10 月 31 日，优化用户体验、写文档。&lt;/p&gt;
&lt;h2 id="为什么写这个项目"&gt;为什么写这个项目&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;我内心极度渴望能够有一件自己的作品，它能够让大伙儿瞅一眼，就觉得这个不一样&lt;/li&gt;
&lt;li&gt;为了能够熟悉 Rails 开发所涉及的各个方面，从整体上掌握如何开发一个项目、如何发布一个项目&lt;/li&gt;
&lt;li&gt;上一份工作辞职转向 web 开发，考虑到水平低微，没人会要，只能写出个东西来，证明自己的能力，然后找一份工作&lt;/li&gt;
&lt;li&gt;希望能够帮助到初学者，让他们在学到基础知识后，能够有多一份的代码可以参考&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="很多功能有现成的 Gem，为什么不用"&gt;很多功能有现成的 Gem，为什么不用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;为了某个功能而用这个 Gem，可能会为很多自己用不到的功能买单：消耗内存&lt;/li&gt;
&lt;li&gt;修改 Gem 的默认配置以满足自己需求所花费的时间，可能比自己从头开发所需的时间更多&lt;/li&gt;
&lt;li&gt;Gem 很少进行维护，或是 API 变动很大&lt;/li&gt;
&lt;li&gt;使用了太多不必要的 DSL，使得学习成本增加&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="关于提交与测试"&gt;关于提交与测试&lt;/h2&gt;
&lt;p&gt;问：为什么每次提交都是一大片代码，而不是一个功能点的代码
答：为的是让初学者能够看出来我写这个项目的大概流程，提交次数太多的话，很难从整体上看出流程&lt;/p&gt;

&lt;p&gt;问：为什么没有测试
答：没有精力。JS 的部分，我不会测。Tire、Sidekiq 的部分，要通过读它的文档，我才会测。暂时没有精力&lt;/p&gt;

&lt;p&gt;问：以后还会补写测试吗
答：如果后续有比较大的开发或者是有空余时间的话，我会补写核心部分的测试&lt;/p&gt;
&lt;h2 id="如何运行这个项目"&gt;如何运行这个项目&lt;/h2&gt;
&lt;p&gt;从 GitHub 上把源代码 clone 下来后，直接查看 README.md，里面分别说明了如何在本地与服务器上运行这个项目&lt;/p&gt;
&lt;h2 id="看不懂代码怎么办"&gt;看不懂代码怎么办&lt;/h2&gt;
&lt;p&gt;你可以登录网站，在【本站相关】节点组下的【疑问】节点发帖（会扣除你 2 个积分），或是在站内发私信给我（如果我没有关注你，会扣除你 8 个积分），我会尽量解答你的疑问。&lt;/p&gt;
&lt;h2 id="关于网站"&gt;关于网站&lt;/h2&gt;
&lt;p&gt;目前，网站运行在 512MB 内存的 Linode 上。如果用户增多，导致无法满足需求，我会考虑移到国内，并增加内存。&lt;/p&gt;
&lt;h2 id="找一份工作"&gt;找一份工作&lt;/h2&gt;&lt;h2 id="我的经历"&gt;我的经历&lt;/h2&gt;
&lt;p&gt;11 年 6 月本科毕业，7 月入上海一公司，维护一个 C 语言项目并偶尔写一些脚本。12 年 2 月第一次知道有 Ruby 这个语言，但只是随便看了下，没有放在心上。两三个月后，第一次知道有 Rails 这个框架，挺感兴趣。因为 Rails 是用 Ruby 写的，所以花了两个月时间把 Ruby 相关的入门书籍看了个遍。&lt;/p&gt;

&lt;p&gt;之后，开始跟着 Michael Hartl 的 Ruby on Rails Tutorial 学习开发，但因为对 web 完全没有概念，也没有人进行指导，遇到了很多阻碍，最终没有坚持下来。后来，慢慢地觉得在公司继续待下去，维护一些不知道有谁真正在乎的项目，既不能给我带来成就感，也不能给我带来幸福感。那段时间非常失落，不知道自己该怎么办。&lt;/p&gt;

&lt;p&gt;最后，决定转行做 Web 开发。一方面，我对 Rails 开发挺感兴趣；另一方面，我觉得开发出一个 Web App，如果有人使用它，能给我带来很大的成就感。作出决定后，打算一边工作，一边学习，等到学得差不多的时候，再去找工作。接着，便是学习各种 web 相关的知识：html、css、javascript ...&lt;/p&gt;

&lt;p&gt;学了好几个月，但因为只在空余时间学习，工作上又时有烦心事影响学习，再加上本来底子就薄，学习效果不甚明显。这时候，本打算离职，进行全职学习。但琢磨着可能需要半年的时间，保险起见，可能需要一年的时间，手头的积蓄不足以让我支撑那么久，再加上农历新年将近，我还盼望着年终奖，所以就忍了下来。过完年，到了 13 年三月份，手头的积蓄能够支撑我进行全职学习了，就向公司提出了离职申请，四月初，项目交接完毕，便离开了公司。&lt;/p&gt;

&lt;p&gt;之后的 4 月～7 月，是我进行全职学习的时间。先是学习前端技术，然后温习了一下 Ruby，等有信心了，便再一次学习 Ruby on Rails Tutorial。这一次学习，因为基础知识扎实了，明显比上一次轻松很多，我照着它的流程敲了三遍代码。之后，准备完全脱离书本实现一次，考虑到时间的关系，省略了所有的测试，也省略了所有的前端效果，还省略了一些非核心的代码。即使这样，还是花费了我整整两天半的时间才把它写出来。&lt;/p&gt;

&lt;p&gt;不满足于这样的速度，之后又练习了好多次。每练习一次，理解便深刻一分，速度便快上一分。练习到后来，一次练习一般需要一小时 45 分钟。总共练习了大约 30 次，最快的一次用了一个半小时。我还特意上传到 GitHub，留作纪念。&lt;/p&gt;

&lt;p&gt;等完全熟悉了 Ruby on Rails Tutorial 的代码后，便开始看介绍 Rails 开发的 PDF 和个人博客，对于精彩的代码，我也会自己实现一遍。看完之后，我又把 RailsCasts 上所有的免费视频看了一遍，对于自己感兴趣的又另外看了一遍。而那些我觉得特别有用的，也特意实现了一遍。之后，开始看各种 Gem 以及开源程序的源代码。转眼间，来到 8 月，我觉得自己已经有能力独立写出一个优秀的程序，便开始进行开发，一直到 10 月 31 日结束。&lt;/p&gt;

&lt;p&gt;至于为什么开源，是因为我非常感激 Michael Hartl 能够将 Ruby on Rails Tutorial 免费地发布在网页上，也非常敬佩 Ryan Bates 能够不辞辛苦地发布视频，帮助人们学习 Rails 开发。如果我的程序能够帮助到别人，我会觉得自己做了一件有意义的事情，会感到很开心。&lt;/p&gt;
&lt;h2 id="我的能力"&gt;我的能力&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;HTML、CSS：能够用框架写出所需的页面&lt;/li&gt;
&lt;li&gt;Javascript、jQuery：还未入门&lt;/li&gt;
&lt;li&gt;Rails：能写出组织良好、清晰简明的代码&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="对公司的要求"&gt;对公司的要求&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;办公地点：上海&lt;/li&gt;
&lt;li&gt;团队氛围融洽，能偶尔组织活动，增加团队凝聚力&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="联系方式"&gt;联系方式&lt;/h2&gt;
&lt;p&gt;邮箱：WaterFlowsEast@gmail.com&lt;/p&gt;

&lt;p&gt;如果觉得我是你们公司所需要的人，请发送邮件到以上邮箱。
如果方便，请在邮件中说明你们团队做的是什么产品，为什么做这个产品，以及联系方式。
如果贵公司之前在 ruby-china 发帖招聘过，邮件中什么都不用写，直接贴地址即可。&lt;/p&gt;

&lt;p&gt;对于所有的邮件，我都会进行回应。如果权衡之后，我觉得自己不适合贵公司，为了节省贵公司的时间，我会直接在回复的邮件中说明。如果我觉得自己适合贵公司，我会联系贵公司进行面谈。&lt;/p&gt;

&lt;p&gt;一旦找到工作，我会在这里更新帖子。之后，若再有发送给我的邮件，我将不再进行回复，感谢理解。&lt;/p&gt;

&lt;p&gt;最后，非常感谢你有耐心读到这里。&lt;/p&gt;</description>
      <author>waterflowseast</author>
      <pubDate>Fri, 01 Nov 2013 14:28:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/15217</link>
      <guid>https://ruby-china.org/topics/15217</guid>
    </item>
  </channel>
</rss>
