为什么我说在工作之外,不要关注细节(特别是语法细节)。因为细节这个东西,实践的时候,查查 Guides 和文档就够了,再不行就 Google 一把,故意去学习这些细节并不能提高你对编程的理解,或者说提高得太慢。
新手自学编程,有两点误区:
1)不会抓主干。打个比方,新手喜欢看别人推荐的“好书”,“先抓主干,再理枝叶”是学习的正途,《Effective C++》之类是好书,但它们都不是用来入门的,为什么?因为它们不是主干,语言实现细节和各种坑你都了解了,碰到实际问题依然用不好 C++。大多数技术细节其实高手也不清楚,更不用说新手了,你把 Rails 开发的主干抓好,细节地方就查 Guides。
2)不会看 log,不会调试程序。出现了 bug 配置半天,改半天,耐心耗尽,更不容易学了。这个没办法自学,你可以网上搜一下别人如何进行 debug、看 log、调试程序的视频资料。Rails 圈子里的学习资料其实对新手非常不友好。
最好的方式,还是找个 IT 公司边实习边学吧。
恕我直言,我觉得你不适合自学编程,还是找个 IT 公司边实习边学吧。
你可以去李天放的课程盒子这类公司,需求都是 RD 自己想的,公司没有 PM。
UP 一下,还在招
我告诉你一个方法,你可以挂靠到另外一个公司,开那个公司的发票,然后给那个公司一点钱。
就做 PM,也可以和 RD 一起写点代码。
UP 一下,还在招 :D
那就用 lisp 那些 trick 来重新实现这些特性就好啦~~~ XD
码农在通常语境下并不是歧视农民,而是歧视程序员或程序员自嘲或的一种叫法。同类的名字有柏杨的《丑陋的中国人》,但后者确实在批判中国人的缺点,《码农周刊》这本书恐怕不是。
我也从情感上反感这个名字。
看你些什么类型的,写技术博客看汪曾祺和韩寒的就反了。
@billy 为什么 Erlang 比 Node.js 靠谱?因为 Erlang 有轻量级进程,不需要用 CPS 转换之类的怪招去模拟执行多线程。此外更是因为 Erlang 为进程提供了调度器,避免了公平性问题。
说到底 Node.js 只是比较适合 I/O 密集型并发应用。
因为 event loop 在处理所有的任务/事件时,都是沿着事件队列顺序执行的,所以在其中任何一个任务/事件本身没有完成之前,其它的回调、监听器、超时、nextTick() 的函数都得不到运行的机会,因为被阻塞的 event loop 根本没机会处理它们,此时程序最好的情况是变慢,最糟的情况是停滞不动,像死掉一样。所以当 Node.js 遇到高 CPU 占用率的任务时,event loop 会被阻塞住
当 Node.js 程序的 event loop 被 CPU 密集型的任务占用,导致有其它任务被阻塞时,却还有 CPU/内核处于闲置的状态,造成资源的浪费。
node.js 的特色是单线程异步模型。这种模型显而易见的问题就是会造成 callback hell。callback hell 可以靠 CPS 转换、Promise 之类的方法来破;另一个问题就不那么显而易见了,如果执行耗时操作,会导致公平性问题。不过如果你能保证你所有代码都不调用阻塞函数,也不执行 CPU 密集运算,那你倒是可以无视这个问题。
感谢楼主!!
恕我直言,如果只想“一个自己用来说话的地方”,为什么不直接用电脑上的记事本,而要用 web?用 web 不就是想让陌生人看到么,被陌生人看到还不够(因为用户也不知道被看到没),恐怕还添加各种互动要素给用户。
也许说 web 还有一个好处就是随时同步,但我大可将记事本放到金山云盘类似的同步盘里。
你可能犯了和 writings.io 类似的错误定位,后者的定位是“一个人安静写作的地方”,如果是一个人,为何要用 web,web 永远是协作、社交、人与人、人与信息之间的互动。这点要考虑清楚。
这个问题本质上是抽象模式 和 协作便捷性 间的权衡。
第二种是函数式编程,抽象模式上更接近问题域,更具有表达性。因此第二种在抽象模式上完胜。 如果你的协作对象是没有函数式思想的程序员(无论他是不是新手),用第二种编程方式对于协作者而言并不友好。
如果是我,我会用第二种编程方式,但会加上注释给协作者解释第二种的意思。
是一家非常靠谱的公司,总部在美国,已经实现稳定的盈利了。支持一下。
@cassiuschen 请介绍下用什么 APP,如何调试,部署? + 1
坏处是房租太贵,食物开销可能对学生来说多一点,但是对上班族来说多不了多少; 好处是广州空气好,好吃的多,离香港近买东西方便(不过这个和是否一二线没关系),工资开得更高,更容易认识牛人; 配套设施感觉和二线城市差距不大。
总的来说,利远远大于弊