• 我对待技术学习的态度 at 2014年05月19日

    为什么我说在工作之外,不要关注细节(特别是语法细节)。因为细节这个东西,实践的时候,查查 Guides 和文档就够了,再不行就 Google 一把,故意去学习这些细节并不能提高你对编程的理解,或者说提高得太慢。

  • 我对待技术学习的态度 at 2014年05月19日

    #16 楼 @mjf429 多谢补充,你说的也能够补全文中写得偏激的,不完善的地方。受教。

  • 我对待技术学习的态度 at 2014年05月19日

    #19 楼 @jasl 你说得非常对,有大部分观点不适合于新手。但是新手必须“抓住主干,而非细节。”我对这点体会比较深,对于 RoR 来说,细节是指语法细节和框架的一些特殊应用技巧,主干则是基本 Ruby 语法,以及对 MVC 和 Routes 的应用。

  • 我对待技术学习的态度 at 2014年05月18日

    #5 楼 @billy 1)我赞同得学细节,但是是先抓主干,再抓细节 2)Angular, MongoDB, Node.js 如果是工作需要才会去学习,不需要的话,风险远大于收益。

    说实话 node.js 比 erlang 毫无技术上的优势,只是容易招人容易学。 AngularJS 数据绑定和单页面 web APP 那一套,四年前 JAVA 就有框架实现了,最近被炒火市场需求居多,不代表它技术领先。 MongoDB 现在看来作数据分析是个不错的容器,当时我学它用它做业务方面的数据库,被坑了,“应用场景不清晰”。

  • 我对待技术学习的态度 at 2014年05月18日

    #3 楼 @wcc526 你说的对,我是前几年的时候折腾的,至今对 AngularJS 持保留意见。

  • 新手自学编程,有两点误区:

    1)不会抓主干。打个比方,新手喜欢看别人推荐的“好书”,“先抓主干,再理枝叶”是学习的正途,《Effective C++》之类是好书,但它们都不是用来入门的,为什么?因为它们不是主干,语言实现细节和各种坑你都了解了,碰到实际问题依然用不好 C++。大多数技术细节其实高手也不清楚,更不用说新手了,你把 Rails 开发的主干抓好,细节地方就查 Guides。

    2)不会看 log,不会调试程序。出现了 bug 配置半天,改半天,耐心耗尽,更不容易学了。这个没办法自学,你可以网上搜一下别人如何进行 debug、看 log、调试程序的视频资料。Rails 圈子里的学习资料其实对新手非常不友好。

    最好的方式,还是找个 IT 公司边实习边学吧。

  • 恕我直言,我觉得你不适合自学编程,还是找个 IT 公司边实习边学吧。

  • #8 楼 @cqcn1991 有,不过还欠缺比较懂前端开发流程和规范的同志。

  • 你可以去李天放的课程盒子这类公司,需求都是 RD 自己想的,公司没有 PM。

  • #7 楼 @sensi 安装 sudo apt-get install imageMagick。你把配置信息发上来看看。

  • UP 一下,还在招

  • 我告诉你一个方法,你可以挂靠到另外一个公司,开那个公司的发票,然后给那个公司一点钱。

  • 就做 PM,也可以和 RD 一起写点代码。

  • UP 一下,还在招 :D

  • 那就用 lisp 那些 trick 来重新实现这些特性就好啦~~~ XD

  • #3 楼 @hooopo 大赞,这篇 post 写得太棒了。

  • #10 楼 @cqcn1991 技术博客我推荐你模仿阮一峰和 Paul Graham 的文风。

  • 码农在通常语境下并不是歧视农民,而是歧视程序员或程序员自嘲或的一种叫法。同类的名字有柏杨的《丑陋的中国人》,但后者确实在批判中国人的缺点,《码农周刊》这本书恐怕不是。

    我也从情感上反感这个名字。

  • 看你些什么类型的,写技术博客看汪曾祺和韩寒的就反了。

  • Node 是昨天的 Ruby 吗? at 2014年03月13日

    #13 楼 @search 愿闻其详。

  • Node 是昨天的 Ruby 吗? at 2014年03月13日

    @billy 为什么 Erlang 比 Node.js 靠谱?因为 Erlang 有轻量级进程,不需要用 CPS 转换之类的怪招去模拟执行多线程。此外更是因为 Erlang 为进程提供了调度器,避免了公平性问题。

    说到底 Node.js 只是比较适合 I/O 密集型并发应用。

  • Node 是昨天的 Ruby 吗? at 2014年03月13日

    #10 楼 @billy 是指 CPU 资源无法公平分配。

    因为 event loop 在处理所有的任务/事件时,都是沿着事件队列顺序执行的,所以在其中任何一个任务/事件本身没有完成之前,其它的回调、监听器、超时、nextTick() 的函数都得不到运行的机会,因为被阻塞的 event loop 根本没机会处理它们,此时程序最好的情况是变慢,最糟的情况是停滞不动,像死掉一样。所以当 Node.js 遇到高 CPU 占用率的任务时,event loop 会被阻塞住

    当 Node.js 程序的 event loop 被 CPU 密集型的任务占用,导致有其它任务被阻塞时,却还有 CPU/内核处于闲置的状态,造成资源的浪费。

  • Node 是昨天的 Ruby 吗? at 2014年03月13日

    node.js 的特色是单线程异步模型。这种模型显而易见的问题就是会造成 callback hell。callback hell 可以靠 CPS 转换、Promise 之类的方法来破;另一个问题就不那么显而易见了,如果执行耗时操作,会导致公平性问题。不过如果你能保证你所有代码都不调用阻塞函数,也不执行 CPU 密集运算,那你倒是可以无视这个问题。

  • 感谢楼主!!

  • 恕我直言,如果只想“一个自己用来说话的地方”,为什么不直接用电脑上的记事本,而要用 web?用 web 不就是想让陌生人看到么,被陌生人看到还不够(因为用户也不知道被看到没),恐怕还添加各种互动要素给用户。

    也许说 web 还有一个好处就是随时同步,但我大可将记事本放到金山云盘类似的同步盘里。

    你可能犯了和 writings.io 类似的错误定位,后者的定位是“一个人安静写作的地方”,如果是一个人,为何要用 web,web 永远是协作、社交、人与人、人与信息之间的互动。这点要考虑清楚。

  • 这个问题本质上是抽象模式 和 协作便捷性 间的权衡。

    第二种是函数式编程,抽象模式上更接近问题域,更具有表达性。因此第二种在抽象模式上完胜。 如果你的协作对象是没有函数式思想的程序员(无论他是不是新手),用第二种编程方式对于协作者而言并不友好。

    如果是我,我会用第二种编程方式,但会加上注释给协作者解释第二种的意思。

  • 是一家非常靠谱的公司,总部在美国,已经实现稳定的盈利了。支持一下。

  • 曾经沧海难为水 at 2014年02月19日

    @cassiuschen 请介绍下用什么 APP,如何调试,部署? + 1

  • 说说在大城市生活的感受 at 2014年02月13日

    坏处是房租太贵,食物开销可能对学生来说多一点,但是对上班族来说多不了多少; 好处是广州空气好,好吃的多,离香港近买东西方便(不过这个和是否一二线没关系),工资开得更高,更容易认识牛人; 配套设施感觉和二线城市差距不大。

    总的来说,利远远大于弊