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的使用描述等.从这里你可以找 ...
随机推荐
- _1_html_
创:18_3_2017修:20_3_2017什么是html? 超文本标记语言 告诉浏览器内容的语义,html中包含了各种标签html页面的框架是什么? <!DOCTYPE html> #D ...
- JAVA基础知识(1)
1.JAVA的三大体系:JME(微缩版),JSE(标准版),JEE(企业版): 2.JAVA的三大核心机制:JAVA虚拟机,垃圾回收机制,代码安全性检测 3.java开发集JDK 4.java编译器j ...
- Linux块设备驱动(一) _驱动模型
块设备是Linux三大设备之一,其驱动模型主要针对磁盘,Flash等存储类设备,本文以3.14为蓝本,探讨内核中的块设备驱动模型 框架 下图是Linux中的块设备模型示意图,应用层程序有两种方式访问一 ...
- Layoutinlater 转
http://blog.csdn.net/guolin_blog/article/details/12921889
- iOS开发之数据存储之NSData
1.概述 使用archiveRootObject:toFile:方法可以将一个对象直接写入到一个文件中,但有时候可能想将多个对象写入到同一个文件中,那么就要使用NSData来进行归档对象. NSDat ...
- javascript 数组的部分常用属性用法
数组 检测数组(返回布尔类型 a. instanceof(); 检测是否是数组对象 console.log(arr instanceof Array) ; b. Array.isArray() ,H5 ...
- nodeJS之eventproxy源码解读
1.源码缩影 !(function (name, definition) { var hasDefine = typeof define === 'function', //检查上下文环境是否为AMD ...
- JQ实战天猫淘宝放大镜
这个特效平时生活中很常见,话不多说先上效果图. 首先布局,遮罩层是这个效果中的重点精华,也就是下面代码中的shade. <style> * { margin:0px; padding:0p ...
- my first blogs(我的处女博)
末夏的夕阳送走一批批下班的人,些许的轻风给一天烦躁的心带来一丝丝的清凉.我倒是挺喜欢在这种天气,提前下了公交车然后漫步回家.这样我能多点时间回顾一天的事情,俗话说是思考人生. 不知不觉毕业两年多了,在 ...
- word-wrap: break-word;与word-break: break-all;文本自动换行
word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行它们的区别就在于:1,word-break:break-all 例如div宽200 ...