写给大学生的程式技能Cheatsheets

昨天去参加HappyDeisgner Mini #5听到Caesar Chi在讲他跑校园传道(提倡OpenSource)的故事,Caesar Chi说他会这么做是受到Jserv南下传道的启发。

为什么要深入校园传道。我想其中最大的问题是:大家都已经深刻发现了「校园的资讯教育」与「现行职场」、甚至与「国际技术圈」上的巨大​​差距。已经大到一个相当难以扭转的状态。其实,任何技术,在写下来制成纸本教材并且搬到课堂的那一刻,就过时了。只是现在速度更快到,当你今年写下来准备开课,明年这套技艺就已经有可能过时了。真的很难期待,从传统学校传授知识的过程中去介入什么。

所以唯有提倡学生尽量跳脱只能在学校学习的思考框架。在线上学习( Online School )。多多参与接触开源社群。

But, How?

在线上学习( Online School )。多多参与接触开源社群。对我们已经在工作的职业程式设计师,这个概念再简单不过。但是我发现这对初学者来说,是一个很空泛的概念。他们其实更需需要的是一份Guideline,有一个具体的方向去「自学」去把目标具体化。

(这份Guideline 也是我回想若当初我刚出社会时,希望有人能给我的一份清单)

=== 分隔线===

Source Control
  • 理解什么是「版本控制」,为什么我们要使用「版本控制」
  • 学习Git : http://try.github.io
    • git commit
    • git push
    • git pull
    • git branch
    • git checkout
    • git merge
  • 注册Github帐号
  • 把自己的作业推上Github
  • Fork 同学的作业,帮他修错字,然后拉pull-request
  • 卡关就上Google 找Stackoverflow 的答案
Do a “real” project

读书跟做事不一样。你不应该去「读完」Ruby 再去用「Ruby on Rails」写一个网站。

  • 找一本可以教你作一个project 的书(不知道去哪找可以上网问),从头到尾贴code 跟著作一遍搞懂架构以及学习debug。
  • 扔开书后的第一次:作一个比书里面的demo 还小的project,如果里面demo 一个论坛,那么就做一个留言板。
  • 扔开书后的第二次:重新作一个简单的论坛,不看书。
  • 扔开书后的第三次:重新作一个有你想要的功能的论坛,可以贴图,可以分享到FB。
  • 去找可以帮助你重新把程式技巧提炼的更好的书,重新补基本功(这时候你可以好好的看Ruby 书了)。
  • 去Meetup 找职业的前辈,问他们怎么样可以更好的翻修你的project
学习协作

独自开发一个小东西,和实际上与多人一起开发一个中型结构的专案是完全不一样的世界。而学校几乎不可能有这样的环境。

  • 注册Trello帐号(这是一个简单协作、看板式的专案系统)
  • 试着与同学或同事「合作」。但用Trello 管理所有待办事项。
  • 重点是
    • 把一件庞大的目标拆分成数十个可以执行的小事项
    • 每一样事项有各自的状况。现在做到哪里,还缺什么,需要交付的材料,多久才会做完,遇到什么困难
    • 不要用Off-book (phone/email) 的管道沟通
    • 有问题就提出,不要藏在台面下。
    • 每一件事都应该要有一个可以指派的人
分享(程式码以及文章)

不断的贴code 以及练习在网路上发表文章,可以强化你的表达能力与逻辑组织能力。知名软体公司37Signals 甚至表示,他们不太注重程式底子,只雇用「写作能力」良好的人。因为写作能力强大代表着:组织能力与逻辑能力强​​。

这不是什么可以速成可以伪装的东西。同时不断发表东西,连带的效应就是可以帮你建立reputation,和让别人发现你的存在

  • 把学到的东西发表到Blog 上面。(不要怕害羞)
  • 即便是小小的程式片断也贴到Blog 上。
  • 不断的贴code 以及练习在网路上发表文章,
  • 把自己作品放到Github 上
Learn English

这里说的学习英文不是说去背单字,上补习班,考TOEIC。而是:

  • 练习帮自己在Github 的Project 上写README
  • 有办法在在Github 上用英文open issue / reply issue
  • 在Stackoverflow 上用英文问问题
  • 订阅社群电子报。(尤其读社群电子报,如Ruby Weekly,是个学习Ruby非常快的方式)
  • 聆听社群Podcast。(社群都会有一些Podcast,短的5分钟如Ruby5,长的30-45min,可以很快的让你抓到这个礼拜世界上最新的重点是什么)
  • 购买线上教材。(现在网上学习的教材都比大学教科书便宜非常多,有些甚至不要钱。不过他们都是「英文」影片以及作业)

=== 分隔线===

小结:

这是由我过去的实战经验总结出来的CheatSheet。当然,这些事我并没有说都是非常「轻松」做到的事。但我可以向你保证这些方向,如果练成都是「非常值钱非常具有竞争力」的技能。认真执行三个月,你「马上」可以见到与台湾完全不一样的那个世界。

转载自:http://blog.xdite.net/posts/2013/11/22/opensource-cheatsheets