• 非常赞同一个说法:

    更建议转型静态语言,你已经有一门动态语言傍身了。

    我也在转语言,这里有一点小小的建议,具体说来:

    • 如果想继续从事 Web 开发领域,可以以 Golang 为重心
    • 如果想从事数据领域,可以以 Java 为重心
    • 如果基础扎实、好奇心强,可以以 Rust 为重心

    .NET 不要问我,我不懂,什么都不知道(逃

  • 糟糕的办公环境对于开发者而言就如同一遍又一遍、难以打破的噩梦。

  • 建议直接使用 Carrierwave。

    如果是真实的业务,可以考虑用第三方存储接在 Carrierwave,例如阿里云、七牛、S3 等。

  • 北京面试所感 at 2017年04月26日

    在北京,平日里比较忙,有事网上聊呗~

  • 北京面试所感 at 2017年04月25日

    可否透露你的专业?我只是好奇想了解一下....

  • Why not copy and paste your err log in this post?

  • 芝麻认证 on Rails at 2017年04月20日

    公司里今天开会正好提到了这个需求,真是感谢了!

  • 人在北京,没法去捧场,不过还是赞一个!

  • 不太确定这个页面你能否独自搞下来,不过这不要紧。

    就事论事,思路很简单:

    1. 从数据库中读取原始数据
    2. 计算需要呈现的数据结果
    3. 构建页面,呈现内容

    对应到 Rails 框架里,第一步抽取数据,你也提到了;第二步计算数据,这个肯定是需要写代码算的,从实现的角度讲,你写在 Controller 里还是 Model 里都可以,个人建议你写 Model 里然后在 Controller 中调方法;第三步构建页面,这个不必多说,不过需要在 Controller 中把必要的信息组织好,才能做出数据结果。

    #12 楼提到你对 Rails 框架认知不够,确实如此。https://ruby-china.org/wiki/books 这里有些书你先看看呗。

  • 呐...

    最近在看新版《射雕英雄传》,你猜郭靖为啥能不费吹灰之力练了降龙十八掌、左右互搏、九阴真经,而且练完马上就能打出威力?

    人家内功深厚啊,不像杨康那小子,连九阴白骨爪第四层怎么练都使不出来。

    「哈哈哈,你看这个人连 XX 都不会」

    这样的说法,先举一个例子:我说“你连 Slim 都不会”,你去看了 5 分钟文档,马上就能写出来,我还说你啥?

    举第二个例子:假设你自称有 5 年 Rails 开发经验,我说“你连 MD5 是什么都不知道,还以为这种加密算法能随便找台电脑分分钟破解掉”。活该被说。

    Google 曾经表态对某人说”你连反转二叉树都不会,还想来 Google 工作?“人家是大厂,硬气;你若能过面试,也能进去工作。

    当然啦,你不能,至少现在不能。

    讨厌为了面试去刷题?讨厌归讨厌,能否刷过是另一回事。

  • 北京面试所感 at 2017年04月17日

    出身也好、光环也好,过往的经历都是能力的佐证。

  • 北京面试所感 at 2017年04月16日

    哈哈。

    也不是不想写。只是觉得,一方面,我可能很难和全栈营的同学们讲清楚一些观点,因为这些观点大多是建立在一些技术经验的基础上的;另一方面,我也拿捏不好分寸,毕竟我并不了解全栈营的全部,又很容易把文章从针对全栈营的补充写成质疑或批判,那样就更不妥当。

    不过,如果以其他的角度简单写一些自己的看法和理解,倒是可以。

  • 北京面试所感 at 2017年04月16日

    通篇暴露出来三个大问题,我一一点给你:

    1. 对技术没有正确的理解
    2. 对自己的市场定位不准确
    3. 缺少正确的学习方法

    对技术没有正确的理解

    先从一个例子说起。

    可以大致了解到 ruby 的工作原理

    这句话,我不知道是全栈营里讲师的原话,还是楼主自己讲出来的话。

    我手下还是有全栈营里培训出来的人,几斤几两我非常清楚,所以我就简单问一下楼主:

    1. 你能讲讲 Ruby 中基本数据类型对应的内存模型么?
    2. 能讲讲 Ruby GC 原理及调优么?
    3. Ruby 里是如何实现 Symbol 的?
    4. 为什么说 Ruby 是动态、强类型语言?

    如果针对以上问题能讲出一二,我可以认为你大致了解 Ruby 的工作原理,否则请收回这句话。

    同样,

    全栈营给了我这样的计算机小白,节省了我最少 4 年的时间投入(大学计算机专业为例)

    这样的说法也是完全错误的。

    你有找计算机专业四年的专业课看过么?看过其中的多少?掌握了多少?

    大学里的计算机专业,四个月学两三门专业课,每一门专业课都要多读好几本相关领域的书籍,还要参考论文,最后还有考试和大作业,由整个院系和个别经验丰富的教授把关,从理论到实践,四年一直是这么过来的。 四年的学习,从数据结构、算法到数据库、网络协议、编译原理,再到操作系统、图形学原理,哪个没亲手摸过?

    当然,即使是用四年时间花在技术上面,要处理这么多的领域也必然有的放矢;但若只有四个月时间,那就真的和科班出身的相去甚远了。

    对自己的市场定位不准确

    首先,仅说北京的互联网公司里面,大公司的技术岗,面向 985/211 计算机相关专业 校招,批发价年薪 18~30 万;小公司的技术岗,面向从一本到三本的 计算机相关专业 毕业生,价格基本在月息 8000 起步。

    科班出身是硬门槛,科班出身意味着对技术的深度、广度有一定掌握,同时也具备一定的学习能力,能做到“越学越快”;若是没有科班出身,就只能用更强的实力跨过这道门槛。

    再说说企业对用人的要求,这个要求字面上很简单:

    • 有能力快速上手公司实际项目,推进项目进度,促进团队发展;这样的人对公司可以做出较大贡献,给大价钱
    • 或者,有一定的技术功底,有较强的学习能力,能够在一定时间培养之后参与到实际项目中;这样的人需要公司先投资一些成本才会有回报,所以本身给的价钱没那么高,而且在人选上会非常慎重

    所以以楼主现在的阶段来看,一万的月薪是不匹配的。论坛里有不少前辈,刚毕业第一份工作的工资可能还不到这个价格。我自己,毕业之前有过几年做项目、带团队的经验,毕业第一份工作月薪 7000(不过当时公司给租房子,算上房租就一万多了)。

    缺少正确的学习方法

    学编程,脑力劳动,不是越野跑、练体操,不需要什么肌肉记忆。

    程序员写代码时候,用的最多的肌肉就在双手十指上,键起键落,这就是肌肉记忆。

    但是,应该按下哪个键、应该写出什么样的代码、应该怎样组织结构复杂的代码,这些东西是人身上哪块肌肉能记得住的?

    必须是在形成肌肉记忆后在去补充理论知识

    如果是练健身,这么做没错;如果是学编程,那就闹笑话了。

    楼主也这样写到,

    就像学习数学一样,知道一个公式后,只有不断的应用,更换不同的应用场景,才能做到真正的理解和消化

    所以,这个学习过程为什么不能是“先了解概念,后进行实践,再修正对概念的理解,再次进行更好的实践”这样的良性循环呢?


    以上,话讲的重了点,希望楼主能不忘初心,也祝楼主能在北京找到满意的工作。

  • 去读个这方面的研究生。

    或者,

    给自己一些时间,系统学习一下这方面的网上公开课。

  • 分享一下开发心得经验 at 2017年04月13日

    大神我也想 Transfer 到英国去。。。

  • 《Rails Tutorial》这本书吃透 60%~70% 的时候就可以了。

    想要达到这个程度,需要把书里面的例子先重复做几遍,然后举一反三做点扩展的功能。

  • 继续请教:保证开发环境和生产环境的一致性,解决的又是什么问题呢?

    我的理解,这样做,通过保证开发与生产环境库、变量一致的手段,既方便了测试与调试,也降低了代码部署失败的风险,从而降低了运维成本,并为高级自动化的手段提供了更多可能。

  • 说到部署,我用过 Git Hook,Capistrano 和 Docker 来部署 Rails 应用。最近确实产生了一个疑问:如果我不拆微服务,那么用 Docker 部署 Rails 的优势和成本究竟有哪些?

  • 我只想要平静的生活

  • 无法启动 puma at 2017年03月22日

    贴一下我项目里相关的配置:

    deploy.rb

    set :bundle_bins, %w(gem rake rails sidekiq sidekiqctl)
    
    set :puma_rackup, -> { File.join(current_path, 'config.ru') }
    set :puma_state, -> { "#{shared_path}/tmp/pids/puma.state" }
    set :puma_pid, -> { "#{shared_path}/tmp/pids/puma.pid" }
    set :puma_bind, -> { "unix://#{shared_path}/tmp/sockets/puma.sock" }
    set :puma_conf, -> { "#{shared_path}/puma.rb" }
    set :puma_access_log, -> { "#{shared_path}/log/puma.log" }
    set :puma_error_log, -> { "#{shared_path}/log/puma.err.log" }
    set :puma_role, :app
    set :puma_env, -> { fetch(:rack_env, fetch(:rails_env, 'production')) }
    set :puma_threads, [4, 16]
    set :puma_workers, 4
    set :puma_worker_timeout, 30
    set :puma_init_active_record, true
    set :puma_preload_app, true
    set :puma_prune_bundler, true
    
    namespace :puma do
      desc 'Create Directories for Puma Pids and Socket'
      task :make_dirs do
        on roles(:app) do
          execute "mkdir #{shared_path}/tmp/sockets -p"
          execute "mkdir #{shared_path}/tmp/pids -p"
        end
      end
    
      before :start, :make_dirs
    end
    

    Capfile

    require 'capistrano/rvm'
    require 'capistrano/bundler'
    require 'capistrano/rails/assets'
    require 'capistrano/rails/migrations'
    require 'capistrano/scm/git'
    install_plugin Capistrano::SCM::Git
    
    # Plugins
    require 'capistrano/safe_deploy_to'
    require 'capistrano/puma'
    require 'capistrano/puma/nginx'
    require 'capistrano/faster_assets'
    require 'capistrano/sidekiq'
    require 'sshkit/sudo'
    

    你可以对照检查一下

  • 恩恩是啊。所以我才说是滚雪球,就是有了核心业务,越滚越大的意思。

  • 刚才摸索着配置好了阿里云的 CDN,发现比国内其他同类产品好用太多。

  • 根本不用这么复杂,只要能把握住技术的商业价值就有足够的机会盘活生意,接下来就是滚雪球、搞增长的事情;生意越盘越大,自然能吸引到优秀的人来加入。

    然而能做到这一点的 CEO 还是太少了,所谓“技术的商业价值”,如国内 BAT 等公司、国外微软、谷歌和雅虎等公司才是把这一点发挥的淋漓尽致。

  • 出一些书 at 2017年03月18日

    哈哈巧了,除了 Ruby 那几本书,其他的我不是正在读就是已经读过。

  • 非常赞同。

    CEO 会直接决定一个因素,公司发展的驱动力,是技术还是业务;进而造成两方面影响,研发结构与产品品味。

    如果是传统公司,IT 仅做业务支持,也就无所谓;如果是技术公司,这会直接影响到公司的命。

  • .......

  • 够大

  • 大哥语法错了... =。=

  • 要不去 FLAG 感受一下。。

  • 分享一下测试心得经验 at 2017年03月17日

    英文的没有问题啊~ 我先拜读、学习一下。