• 量产型炮灰工程师 at 2017年5月22日

    从认知过程上来说,人理解事物需要时间。一个技能,连着学7小时的效果远不及每天学1小时,学7天效果来的好。

    但效率是可以提高的。但对老师,学生、习题、教材要求都十分高。berkeley有在教SICP(简化版),学时是4个月。知识量非常惊人。

    我个人来说,一部分靠学习(课程、老师、同事),一部分靠积累。

    比如,定义变量、函数都能提高优先级,维护性更好。比如递归。比如分解问题。都是通过课程学习到的。

    有些是观察别人(同事多一些)是怎么处理的。有些是别人告诉我的,比如CTO跟我 carrierwave 把一个开发级别的任务,变成配置级别的任务。一下就明白了一个 gem 的意义。

    有些是自己坑自己,一边骂自己傻逼,一边默默填坑。

    学习和训练都很重要。

    比如我在学递归的时候,怎么都不会。是按照老师、教材(sicp)的思路,才开始理解递归。 之后写了几个月的 clojure(遍地递归), 撸了门算法课(撸的第二门了。。。),每一次都有更进一步的理解。

    不同程序员有不同的要求

    我对 ROR 理解是,几个人,能力最强的那个,搭架子,别人搬砖。

    在比如 simple_form,有一个人懂就可以,剩下的人,有问题,就找那个人解决就好。

    新人开始的时候,能照葫芦画瓢就好。知道 rails 的概念,看完 guides ,看完 ruby 元编程。之后了还要知道 rails 的实现思路。HTTP,数据库等知识。

    最后,学习这东西,要想学好,需要付出很大的努力,包括时间、别人的指点、正确的方法。

  • @sec 如果只是想学东西的话,可以不要那个证书,就是免费的。

  • 楼主的分析挺正确! 这门课程是伯克利本科高年级的课程,建议学过cs61a或者cs61b的人学,要求是,有较好的编程基础。 这门课程讲到了软件工程的方法面面,全面但深刻,关键点都讲到了,剩下的可以在实践中慢慢体会。

    顺便说一句,作为写过几年代码的人,我始终认为,写测试比写代码难。。。

  • 数据分析师与 R 语言 at 2017年4月27日

    语法好啊,很适合那群搞数学的。 还有数据随随便便就能读进来。 当然还有轮子多。

  • poltergeist问题很邪乎,经常是有的机器上有问题,有的没有。

    我本地跑了下,似乎是用到了CSS Animations,可以先试试直接禁用掉(很多都这么干),具体可以参考这个链接

    还可以点击事件换成find('#xxx').trigger('click'),这个是不管是否有遮挡,都能click。

  • 我直接 revert 8f5df2358e7ee9c9a65d0412e0299e4f14659564 这个commit,集成测试是可以跑过的。配置应该没问题。我猜可能是phantomjs版本的问题,我本地的是

    phantomjs --version
    2.1.1
    

    另外selenium和poltergeist方法有一些的不同,同时使用(我们一个用在本地调试,一个用于CI),略蛋疼,有想解决办法,但一直也没时间去搞。

    同时建议使用screen_size: [1400, 1400],因为屏幕太小的话,会有因为点不到东西(元素不在显示器内)而报错的时候。

  • 只是对自己的看法罢了。不会把这种看法加到别人身上,能解决问题,就是好样的。我对我自己的希望就是基础功再扎实一点。记忆本来就是学习的一部分,遗忘也是。

    要求本来就是多样的。 很多时候要求不一样,比如form可以手写,可以用form_for。有的时候我还会建议去了解form_for如何构建参数的,参数拿到了如何做赋值的。

    需求总是多种多样的,总有彼此合适的。

  • 我毕业的时候数学不会,算法不不会,数据库不会。但都慢慢补回来了。倒不是觉得这些在工作中能用到,而是觉得作为一个程序员,这些不会,说不过去。 再一个就是给自己一个可能。真的有一天要用到这些呢,比如实现个算法,比如玩玩机器学习?数学、算法这些都是没办法在短时间学会的。

  • ActiveRecord::Relation用到了很多函数式编程的思想。

    1. 有需要,才会真的去做查询、装载成对象,这样可以避免没意义的执行。 也就是是函数式中的lazy。lazy可以带来很多好处,比如模块化,不需要对中间值进行计算,无限长的数组

    2. 每一次方法的调用,都返回一个新的ActiveRecord::Relation对象,而不是做修改。 所谓的pure function。另外用到了chain 这个 pattern ,jQuery 采用了同样的设计方法。

    想进一步了解的话,可以看下这篇文章 http://patshaughnessy.net/2014/9/17/20000-leagues-under-activerecord