程序员内功主要有数学和英语,有了英语这杆枪,平时写代码排错,不仅可以做百度工程师还可以做谷歌工程师,有经验的小伙伴应该经常能在Stack Overflow上找到答案吧。不过从学校到社会学了好多年英语,见效往往不大。中国人是特别勤奋的,为什么在英语这一关很难过去,这是有原因的,本人也是走了很多弯路(当然现在还期待成功),跟大伙分享下自己学习过程中的经验,特别是目前最流行的英语神器挑战原版书阅读、无字幕看美剧!

这边举一些场景,但不否定确实有很多依靠自学、应试教育和校外培训自学成才的高手,例子如下:
素质教育与实用英语的冲突
学校里面学了很多年的英语,现在的娃从小学甚至幼儿园启蒙班就开始学英语了,虽然书拿起来能读,看视频能跟着念,但需要看原版书籍、无字幕电影就犯愁了,更别提跟老外直接对话、写信。
自学英语与实用英语的冲突
曾几何时,我也想通过自学打通任督二脉,凭借一腔热血打造大好时光,拿起字典从字母a开始背,还没到abandon就放弃了。
英语培训与实用英语的冲突
在校时的校外培训到出社会的社会培训、专题班,花了很多时间和费用,效果有,但不是特别明显,往往过一段时间就遗忘了。
问题如下:
幼儿阅读绘本,在词典里的归类是研究生考试、雅思、托福等高级词汇,我们寒窗苦读十几年确完全没接触,为什么老外的孩子可能睡前故事就在磨耳朵了。翻阅了欧美对小学生课外读物的清单,发现哈利波特系列在4~6年级就建议全系列读完了,这是套由浅入深,有特地设计的好读物,基本上能轻松读完就有研究生词汇!
2)、学习方法不对
常规学习方式:先阅读课本、跟读、做题、篇后有生词组,中间穿插一些造词、造句、图文示例,然后以单元考、期中期末等考试指标上压力(校外的朋友可能以群打卡等方式鞭策自己),日常辅佐单词记诵、晨读、睡前阅读等方式,费时费力,特别的辛苦。
3)、使用方式不对
阅读文字的时候,要么太难无法下手,要么生词过多,词典翻多了就对一边了。看美剧的时候如果没有字幕就无法观看,当然看多了美剧听力还是有很大提高的,不过仅限于熟词。
这些例子不知道是否有共鸣,让我们快速进入主题。
学习英语是一件很辛苦的事,做好一件事,可以选择氪金、微氪金、零成本等方式,我们这里来研究下如何轻松愉快(白嫖)的掌握。
1)、不要随便学英语
如果没有实际用途,比如出国、应试、工作需要,不建议进入学习。当然没有需求我们制造需求,比如做转岗前的准备,比如下一份工作对英语是刚需的!
2)、正确的学习方法
这里假定我们程序员统一的学习目标:
3)、正确的使用方式
建议学习方式:定时定量的进行长期阅读,透析生词并保证反复记诵直至熟练,再透过巨量的阅读开启听力和读写能力!
学习工具有很多,包括单词卡片、遮光卡片、各种app、真人互动(付费)等,下面将介绍本人长期坚持下来,用起来特别爽的工具组合。
日常使用:每天吃完晚饭、散完步,阅读1~2本英语绘本(难度为跳起来能够得着那种难度),词典查词(自动记录生词),电脑端anki同步生词库,手机端早晚背诵(不过夜、有坚持就容易出奇效!)
理论上来说,这套工具可用于任何语言,如果目的都相同的话!
这边选择docker安装,部署在群晖nas上,`非必选,个人使用时采用一般pdf阅读器也同理!``
附:hub上相关文档,technosoft2000/calibre-web - Docker Image | Docker Hub
胜多负少的
docker create --name=calibre-web --restart=always \
-v /volume1/books/calibre:/books \
-v /volume1/docker/apps/calibre-web/config:/calibre-web/config \
-e USE_CONFIG_DIR=true \
-e SET_CONTAINER_TIMEZONE=true \
-e CONTAINER_TIMEZONE=Europe/Vienna \
-e PGID=65539 -e PUID=1029 \
-p 8083:8083 \
technosoft2000/calibre-web
日常使用
这是个全平台的软件,日常使用免费即可,直接官网下载使用即可,如果要氪金,建议跟每日听力一起购买,有优惠!
词典的使用,主要在阅读时辅助查词,并记入生词本为后面的单词背诵提供素材,私人订制生词本!
查词后自动加入生词本,在设置->常规中打开即可!

按两次ctrl+c进行取词翻译,非常实用!这里默认没有加入生词本,用时在小窗口打开详细即可!

建议另建一个生词本,每天阅读完手工将生词本归档到这个生词本,避免误操作及无用的单词进入,方便后面的anki单词同步!

补充: 添加酷炫词典,提高阅读效率!这里常用牛津高阶双解词典+Vocabulary+有道在线的组合!文末提供下载。

词库的安装在设置里,选择【词典库管理】进行单文件或文件夹的添加即可

这也是个伟大的软件,全平台支持,仅ios端需要付费,价格不贵,如有需要可以考虑!
这是个在考研圈很火的软件,用来背单词多少有点大材小用了,后续如有需要再另开博文讲解。
安装:官网 (apps.ankiweb.net)下载对应平台版本,安装、打开、注册、同步即可
添加词典牌库

添加同步插件

注:代码来源于插件官网,搜索dict2anki,打开详情页即可找到,其他插件同理!
同步单词

注意:首次使用需要登录欧路词典拿去令牌,按提示登陆一下欧路词典就好
手机端安装app,牌库同步,进入背诵即可,比较简单,这里不做过多展示
首先不是什么书都适合阅读,如果你在意效率的话!网上有推荐百万阅读书单可以考虑下耐力如何~
建议兴趣为主
阅读方法:
分享的新手电子书:
璐璐的英文小酒馆:中西文化差异,热点,旅游,奇闻异事,喜马拉雅、每日英语听力
有中文穿插,很适合新手
The daily stoic:苹果播客里免费,需要国外账号搜索,无cc,常速,面向英文本土,背景干净,适合睡觉催眠
TED Talk: 喜马拉雅、每日英语、苹果播客都有,适合当背景音,适合有基础,每日英语可以反复精听
Audible:亚马逊的有声书,朗读书,付费为主
油管:只要喜欢的就行,太多啦~
关注「 工具酷 」微信公众号

好的工具也需要持之以恒的坚守,英语学习本就是一项长期的工作,让我们开心快乐的驰骋在英语的海洋,吸收最先进的科学技术!

【求评论、求点赞、求收藏】
好了,今天就聊到这儿吧!别忘了点个赞,给个在看和转发,让更多的人看到,一起学习,一起进步!!
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/