哈哈。
也不是不想写。只是觉得,一方面,我可能很难和全栈营的同学们讲清楚一些观点,因为这些观点大多是建立在一些技术经验的基础上的;另一方面,我也拿捏不好分寸,毕竟我并不了解全栈营的全部,又很容易把文章从针对全栈营的补充写成质疑或批判,那样就更不妥当。
不过,如果以其他的角度简单写一些自己的看法和理解,倒是可以。
通篇暴露出来三个大问题,我一一点给你:
先从一个例子说起。
可以大致了解到 ruby 的工作原理
这句话,我不知道是全栈营里讲师的原话,还是楼主自己讲出来的话。
我手下还是有全栈营里培训出来的人,几斤几两我非常清楚,所以我就简单问一下楼主:
如果针对以上问题能讲出一二,我可以认为你大致了解 Ruby 的工作原理,否则请收回这句话。
同样,
全栈营给了我这样的计算机小白,节省了我最少 4 年的时间投入(大学计算机专业为例)
这样的说法也是完全错误的。
你有找计算机专业四年的专业课看过么?看过其中的多少?掌握了多少?
大学里的计算机专业,四个月学两三门专业课,每一门专业课都要多读好几本相关领域的书籍,还要参考论文,最后还有考试和大作业,由整个院系和个别经验丰富的教授把关,从理论到实践,四年一直是这么过来的。 四年的学习,从数据结构、算法到数据库、网络协议、编译原理,再到操作系统、图形学原理,哪个没亲手摸过?
当然,即使是用四年时间花在技术上面,要处理这么多的领域也必然有的放矢;但若只有四个月时间,那就真的和科班出身的相去甚远了。
首先,仅说北京的互联网公司里面,大公司的技术岗,面向 985/211 计算机相关专业 校招,批发价年薪 18~30 万;小公司的技术岗,面向从一本到三本的 计算机相关专业 毕业生,价格基本在月息 8000 起步。
科班出身是硬门槛,科班出身意味着对技术的深度、广度有一定掌握,同时也具备一定的学习能力,能做到“越学越快”;若是没有科班出身,就只能用更强的实力跨过这道门槛。
再说说企业对用人的要求,这个要求字面上很简单:
所以以楼主现在的阶段来看,一万的月薪是不匹配的。论坛里有不少前辈,刚毕业第一份工作的工资可能还不到这个价格。我自己,毕业之前有过几年做项目、带团队的经验,毕业第一份工作月薪 7000(不过当时公司给租房子,算上房租就一万多了)。
学编程,脑力劳动,不是越野跑、练体操,不需要什么肌肉记忆。
程序员写代码时候,用的最多的肌肉就在双手十指上,键起键落,这就是肌肉记忆。
但是,应该按下哪个键、应该写出什么样的代码、应该怎样组织结构复杂的代码,这些东西是人身上哪块肌肉能记得住的?
必须是在形成肌肉记忆后在去补充理论知识
如果是练健身,这么做没错;如果是学编程,那就闹笑话了。
楼主也这样写到,
就像学习数学一样,知道一个公式后,只有不断的应用,更换不同的应用场景,才能做到真正的理解和消化
所以,这个学习过程为什么不能是“先了解概念,后进行实践,再修正对概念的理解,再次进行更好的实践”这样的良性循环呢?
以上,话讲的重了点,希望楼主能不忘初心,也祝楼主能在北京找到满意的工作。
去读个这方面的研究生。
或者,
给自己一些时间,系统学习一下这方面的网上公开课。
大神我也想 Transfer 到英国去。。。
《Rails Tutorial》这本书吃透 60%~70% 的时候就可以了。
想要达到这个程度,需要把书里面的例子先重复做几遍,然后举一反三做点扩展的功能。
继续请教:保证开发环境和生产环境的一致性,解决的又是什么问题呢?
我的理解,这样做,通过保证开发与生产环境库、变量一致的手段,既方便了测试与调试,也降低了代码部署失败的风险,从而降低了运维成本,并为高级自动化的手段提供了更多可能。
说到部署,我用过 Git Hook,Capistrano 和 Docker 来部署 Rails 应用。最近确实产生了一个疑问:如果我不拆微服务,那么用 Docker 部署 Rails 的优势和成本究竟有哪些?
我只想要平静的生活
贴一下我项目里相关的配置:
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 等公司、国外微软、谷歌和雅虎等公司才是把这一点发挥的淋漓尽致。
哈哈巧了,除了 Ruby 那几本书,其他的我不是正在读就是已经读过。
非常赞同。
CEO 会直接决定一个因素,公司发展的驱动力,是技术还是业务;进而造成两方面影响,研发结构与产品品味。
如果是传统公司,IT 仅做业务支持,也就无所谓;如果是技术公司,这会直接影响到公司的命。
.......
够大
大哥语法错了... =。=
要不去 FLAG 感受一下。。
英文的没有问题啊~ 我先拜读、学习一下。
这样需要配别的什么东西一起用吧,否则谁来处理前端资源优化、压缩的任务呢?
我实在不想折腾前端,能省则省。
Turbolinks 的事件处理
不能好好的写$(document).on('ready', function() {})
,要写成page: change
,后来又改成page: load
,最近升级到 Rails5,还要改写成turbolinks: load
。
然而前端是我的弱项,从一个坑跳到另一个坑里,天知道我经历了什么……
当然,告诉了。
我一路自学 Rails,看到这个东西的时候就知道不能用。。
感谢!
我之前写的确实不对,这次受教了。
我先去参考一下 Homeland 的 Dockerfile。
嗯那就是我道行还不够深,先把 Dockerfile 写对了,再考虑用进去。
容器部署的调度工具我也是昨天才想到这个问题,脑子里转了一圈发现周围没什么好用的。至于提升运维能力,这得看公司发展,我自己心很大,但这不是我一厢情愿就能做成的事情。
没有,只是用 Puma 起了多线程。
是我没讲清楚。 我目前不用 Docker 是有原因的:
docker 也有 docker 的成本,业务没那么复杂的时候,Docker 有点大材小用。
上面那段 nginx 的配置在 development 环境中如何体现?