今天抽空把之前翻译的《The Type Astronaut's Guide to Shapeless》一书放到了Gitbook上,将其开源供所有人阅读并希望大家能够提出宝贵意见,地址为shapeless guide。此项工作非常具有挑战性,现简单总结之。

2016年底在学习scala的过程中无意发现一个名叫shapeless的框架,它主要实现泛型编程。抱着好奇的心态尝试了一下该框架,没有中文资料,那么只能找英文资料,搜索半天发现一本英文指导,同样是开源的,地址为shapeless-guide

看了个开头,发现基本能看懂,又恰逢当时刚总结完自己的2016年情况,其中对2017的期望中就有一项是希望能够写一本书或者翻译一本书,刚好碰到这么个机会,于是就想着把这本书翻译出来,说干就干,这就有了此项工作。

之前从未进行过翻译书的工作,英语也一直是硬伤,其实不仅是英语,个人感觉所有语言都是相通的,母语不行你学什么语言都不会学的很好,天生估计是没有语言天赋,后天努力谁知是否有补偿。翻译过程中也总是出现有一句话大概知道意思却不知用汉语如何表达的情况,文辞句法也不够优雅,基本是掺不忍睹。

望勤能补拙,所以前前后后总共翻译了四遍之多。前三遍由我完成,第四遍由我的合作伙伴包亮完成,他对译文进行了完善、校验、语言美化等工作。在这里一并感谢包亮付出的大量而艰辛的劳动。

第一遍翻译的时候恰逢回家过年,每天边陪父母边抱着笔记本翻译,时常工作至深夜,母亲经常一觉醒来发现我还抱着笔记本,遂迷迷糊糊的赶我去睡觉。初稿付出的最多、用时最长、成效也最小。一来之前从未进行过此项工作,二来刚开始翻译,对作者的意图和shapeless这个框架都不够熟悉,边干边摸索。当初稿完成的时候整个人最少掉了三斤肉、累坏无数的神经元,到最后达到了看见英文就想吐的境地,终究是咬牙坚持下来了。别人过年胖三斤,我倒减了三斤,想减肥吗?来翻译吧!初稿完成之后立即进入了二稿的翻译工作,这时候对翻译也大概了解了、对此框架也基本熟悉了、作者的表达方式也清楚了,但是第一遍的成果实在是糟糕,基本相当于重新来过。第三遍就轻松了,针对的是一些前两遍没有理解的细节和概念,对一些表达也用自己理解的方式表达了出来,大概是融会贯通了。

后续交给包亮,包亮做事一向非常严谨、细致认真,经常对某个概念查阅官方资料,不像我很多地方想当然,并未深究,这一点确实需要像包亮学习。

此次翻译工作提高了英语水平(毋庸置疑)、汉语水平、查阅资料能力、交流合作能力等等,收益很大。能够坚持下来也得益于选了一本较薄的不太晦涩的英文书籍,所以如果有想尝试此项工作的,我建议可以选一本薄且自己比较熟悉领域的,以此来开始,并找一个在此方面略有所长的人进行辅助,必能有所收获。

最后希望大家能够对此书提出宝贵意见,并再次感谢包亮的辛勤工作。

shapeless官方指南翻译总结的更多相关文章

  1. shapeless官方指南翻译写在前面

    目录 前言 Shapeless简介 The Type Astronaut's Guide to Shapeless简介 总结 一.前言        在我的2016,感恩.乐观.努力一文中,说2017 ...

  2. yii Query Builder (yii 查询构造器) 官方指南翻译

    /**** Query Builder translated by php攻城师 http://blog.csdn.net/phpgcs Preparing Query Builder 准备 Quer ...

  3. 转载RabbitMQ入门(1)--介绍

    目录[-] "Hello World" (使用java客户端) 发送 接收 把所有放在一起 前面声明本文都是RabbitMQ的官方指南翻译过来的,由于本人水平有限难免有翻译不当的地 ...

  4. 库&插件&框架&工具

    nodejs 入门 nodejs 入门教程,大家可以在 github 上提交错误 2016 年最好用的表单验证库 SMValidator.js 前端表单验证工具分享 浅谈前端线上部署与运维 说到前端部 ...

  5. 《类型编程晋级——shapeless类库使用指南》前言及第一章翻译

    从年初开始进行此项工作,我和合作伙伴包亮付出了大量而艰辛的劳动,现基本翻译完毕,有出版意向,如果有意向欢迎联系,不甚感激!也欢迎各位博友对此翻译提出意见建议以及指导如何出版,在此谢过! 前言 时间回到 ...

  6. [技术翻译]构建现代化的 Objective-C (上)

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3561514.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  7. [转]《RabbitMQ官方指南》安装指南

    原文链接   翻译:xiezc 目录(其中的文章后续翻译): Windows下安装 Debian / Ubuntu下安装 基于RPM的Linux下安装 Mac OS X下安装 Homebrew安装 W ...

  8. zooKeeper_《ZooKeeper官方指南》一致性保障

    转 http://ifeve.com/zookeeper-consistency-guarantees/ 本文翻译自<ZooKeeper官方指南>,译者:追云,校对:追云 一致性保障 Zo ...

  9. docker学习之路-nginx镜像(翻译)

    本篇来自https://hub.docker.com/_/nginx/?tab=description 它是docker hub上nginx的官方网站,上面有关于nginx的使用描述等.从这里你可以找 ...

随机推荐

  1. Java标准注释配置

    eclipse中java文件头注释格式设置 windows->preferences->java->Code Templates->comments->Type-> ...

  2. C++标准库之queue(各函数及其使用全)

    原创作品,转载请注明出处:http://www.cnblogs.com/shrimp-can/p/5283520.html 一.FIFO队列,即先入先出队列 1.队列的声明 std::deque< ...

  3. LSTM基础

    DNN,CNN,RNN:1.DNN:深度神经网络,或称多层感知机.解决早期单层感知机对于复杂函数不能模拟的情况.其形式为层之间全连接.实用sig等连续性函数模拟神经对机理的响应,训练算法使用    B ...

  4. 如何用photoshop把一张图片分割成几张图片呢?

    今天情人节,祝大家节日快乐!朋友发来一张照片,我发现这张照片是几张照片组合起来的,是不是感觉每一张都是萌萌哒呢?为了体现单张的独特性,现在我要把它切分成单张,使用Photoshop CS5该怎么弄呢? ...

  5. CDMA sid, nid, bid 含义解释

    copyright@ celldb.cc SID 是系统识别码,每个地级市只有一个sid,是唯一的. NID是网络识别码,由各本地网管理,也就是由地级分公司分配.每个地级市可能有1到3个nid. BI ...

  6. vue学习笔记 计算属性(四)

    计算属性就是vue实例里的computed属性,对应一个对象,里面可以放各种方法,方法的作用就是可以生成和数据变量对应的计算后的变量,跟数据相关的复杂逻辑变量,都可以使用计算属性实现,computed ...

  7. [.net 面向对象程序设计深入](8)认识.NET Core

    [.net 面向对象程序设计深入](8)认识.NET Core  1,概述          .NET 经历14年,在Windows平台上的表现已经相当优秀,但是“跨平台.开源”却是其痛点,从16年开 ...

  8. Centos安装MySql、Java、Tomcat

    一.安装MySql 安装MySql yum install -y mysql-server mysql mysql-devel 启动MySql服务 service mysqld start 为root ...

  9. boostrap详情解毒

    详解Bootstrap表单组件 表单常见的元素主要包括:文本输入框.下拉选择框.单选框.复选框.文本域.按钮等.下面是不同的bootstrap版本: LESS:  forms.less SASS:  ...

  10. WebGL 创建和初始化着色器过程

    1.编译GLSL ES代码,创建和初始化着色器供WebGL使用.这些过程一般分为7个步骤: 创建着色器对象(gl.createBuffer()); 向着色器对象中填充着色器程序的源代码(gl.shad ...