shapeless官方指南翻译总结
今天抽空把之前翻译的《The Type Astronaut's Guide to Shapeless》一书放到了Gitbook上,将其开源供所有人阅读并希望大家能够提出宝贵意见,地址为shapeless guide。此项工作非常具有挑战性,现简单总结之。
2016年底在学习scala的过程中无意发现一个名叫shapeless的框架,它主要实现泛型编程。抱着好奇的心态尝试了一下该框架,没有中文资料,那么只能找英文资料,搜索半天发现一本英文指导,同样是开源的,地址为shapeless-guide。
看了个开头,发现基本能看懂,又恰逢当时刚总结完自己的2016年情况,其中对2017的期望中就有一项是希望能够写一本书或者翻译一本书,刚好碰到这么个机会,于是就想着把这本书翻译出来,说干就干,这就有了此项工作。
之前从未进行过翻译书的工作,英语也一直是硬伤,其实不仅是英语,个人感觉所有语言都是相通的,母语不行你学什么语言都不会学的很好,天生估计是没有语言天赋,后天努力谁知是否有补偿。翻译过程中也总是出现有一句话大概知道意思却不知用汉语如何表达的情况,文辞句法也不够优雅,基本是掺不忍睹。
望勤能补拙,所以前前后后总共翻译了四遍之多。前三遍由我完成,第四遍由我的合作伙伴包亮完成,他对译文进行了完善、校验、语言美化等工作。在这里一并感谢包亮付出的大量而艰辛的劳动。
第一遍翻译的时候恰逢回家过年,每天边陪父母边抱着笔记本翻译,时常工作至深夜,母亲经常一觉醒来发现我还抱着笔记本,遂迷迷糊糊的赶我去睡觉。初稿付出的最多、用时最长、成效也最小。一来之前从未进行过此项工作,二来刚开始翻译,对作者的意图和shapeless这个框架都不够熟悉,边干边摸索。当初稿完成的时候整个人最少掉了三斤肉、累坏无数的神经元,到最后达到了看见英文就想吐的境地,终究是咬牙坚持下来了。别人过年胖三斤,我倒减了三斤,想减肥吗?来翻译吧!初稿完成之后立即进入了二稿的翻译工作,这时候对翻译也大概了解了、对此框架也基本熟悉了、作者的表达方式也清楚了,但是第一遍的成果实在是糟糕,基本相当于重新来过。第三遍就轻松了,针对的是一些前两遍没有理解的细节和概念,对一些表达也用自己理解的方式表达了出来,大概是融会贯通了。
后续交给包亮,包亮做事一向非常严谨、细致认真,经常对某个概念查阅官方资料,不像我很多地方想当然,并未深究,这一点确实需要像包亮学习。
此次翻译工作提高了英语水平(毋庸置疑)、汉语水平、查阅资料能力、交流合作能力等等,收益很大。能够坚持下来也得益于选了一本较薄的不太晦涩的英文书籍,所以如果有想尝试此项工作的,我建议可以选一本薄且自己比较熟悉领域的,以此来开始,并找一个在此方面略有所长的人进行辅助,必能有所收获。
最后希望大家能够对此书提出宝贵意见,并再次感谢包亮的辛勤工作。
shapeless官方指南翻译总结的更多相关文章
- shapeless官方指南翻译写在前面
目录 前言 Shapeless简介 The Type Astronaut's Guide to Shapeless简介 总结 一.前言 在我的2016,感恩.乐观.努力一文中,说2017 ...
- yii Query Builder (yii 查询构造器) 官方指南翻译
/**** Query Builder translated by php攻城师 http://blog.csdn.net/phpgcs Preparing Query Builder 准备 Quer ...
- 转载RabbitMQ入门(1)--介绍
目录[-] "Hello World" (使用java客户端) 发送 接收 把所有放在一起 前面声明本文都是RabbitMQ的官方指南翻译过来的,由于本人水平有限难免有翻译不当的地 ...
- 库&插件&框架&工具
nodejs 入门 nodejs 入门教程,大家可以在 github 上提交错误 2016 年最好用的表单验证库 SMValidator.js 前端表单验证工具分享 浅谈前端线上部署与运维 说到前端部 ...
- 《类型编程晋级——shapeless类库使用指南》前言及第一章翻译
从年初开始进行此项工作,我和合作伙伴包亮付出了大量而艰辛的劳动,现基本翻译完毕,有出版意向,如果有意向欢迎联系,不甚感激!也欢迎各位博友对此翻译提出意见建议以及指导如何出版,在此谢过! 前言 时间回到 ...
- [技术翻译]构建现代化的 Objective-C (上)
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3561514.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- [转]《RabbitMQ官方指南》安装指南
原文链接 翻译:xiezc 目录(其中的文章后续翻译): Windows下安装 Debian / Ubuntu下安装 基于RPM的Linux下安装 Mac OS X下安装 Homebrew安装 W ...
- zooKeeper_《ZooKeeper官方指南》一致性保障
转 http://ifeve.com/zookeeper-consistency-guarantees/ 本文翻译自<ZooKeeper官方指南>,译者:追云,校对:追云 一致性保障 Zo ...
- docker学习之路-nginx镜像(翻译)
本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...
随机推荐
- gzip 与 gunzip 语法与示例
gzip 与 gunzip 语法与示例 语法: gunzip -c 被压缩的文件 > 已解压的文件示例: 将 catalina.out.gz 文件解压到 catalina.out 文件中: gu ...
- jquery.zclip.js 不起作用
最近有用到复制的这个功能,选用jQuery的插件,正常使用的时候,没有任何问题: $('#copy_mobile_watch_address').zclip({ path: '/dist/plugin ...
- Python 使用心得之--变量命名
目前开发命名规范基本都遵循驼峰命名法,如:userName.我也不将这个规范的特性了,大家都明白.接下来进入正题,如何在python中取一个好名字,让你能更好的见名知意呢? 1.元组(Tuple)类型 ...
- Authorization user to use specifical database
DENY VIEW any DATABASE to PUBLIC;ALTER AUTHORIZATION ON DATABASE::Best TO Best
- Nagios工作原理
图解Nagios的工作原理 Nagios的主动模式和被动模式 被动模式:就如同上图所显示的那样,客户端起nrpe进程,服务端通过check_nrpe插件向客户端发送命令,客户端根据服务端的指示来调用相 ...
- Java常量笔记
在添加文件名的同时,文件名和内容可以不相同!! 1·Java 常量 常量就是固定不变的量,一旦被定义,它的值就不能被改变. 例实: 书中的代码不全,在这里不补充一下: 书中的源代码: public c ...
- Think In Java_读书笔记_042516
面向对象程序设计方式: 1, 万物皆对象. 2,程序是对象的集合,他们通过发送消息来告知彼此所要做的.(个人理解,比如你调用方法的时候需要去调用某个对象的某个方法,必须传相应的参数,这些参数列表就相当 ...
- 安装Postgresql
p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; fon ...
- Linux命令速查大全
常用基本命令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(par ...
- lumen 中的 .env 配置文件简介和适用场景
lumen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式: lumen 采用了 Dot ...