-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
索引: 用中文代码作示例的编程教程 #5
Comments
下面是想到的. 还有哪些可能的方向呢?
在初期人力有限的情况下, 考虑从工作量小, 周期短, 受众广的方向做起. |
我修改了下 Kotlin 的和 Haskell 的,现在稍微能看了,以前那个 Hello World 式的实例感觉十分挫 23333 |
现在的示例程序并不为了演示编程语言本身的特性, 而是对中文命名进行可行性验证. 原则上越简单的越好. 如果想要用中文代码演示编程语言本身特性, 欢迎写一些针对某一编程语言的入门教程. |
我已经证明了 Kotlin 中可以完美汉化 |
看了你的例程, 觉得在例程里展示一种编程语言中尽量多可以中文化的语言特性其实挺不错的. 大赞一下. |
Teaching Front End Programming in Your Own Culture里提到在编程教学中引入中国文化特色:
同作者已经有比较中文特色的JS教程, 但代码本身还未完全中文化. 已提建议何不把代码本身中文化? |
在2D图形编程方面初步尝试了汉化p5js接口实现的中文编程演示#20 (comment) . 在osc发了贴. 相信影响总是慢慢积累的. |
实用教程的可能方向:
|
刚开始写CTS的0基础入门笔记, 请多提批评. 特此 @htwx . |
如此,打算着手Scala以及相关框架的笔记/短教程. |
已将vuejs入门中文化的小结发布在中文代码示例教程之Vuejs入门&后续计划一文中. 顺便列出了以后进行类似实践的框架. 下一个在占据市场80%的PHP框架中选择, 考虑Laravel. |
@jeffreybaoshenlee 请教一下, 如何知道哪些外文IT类书籍最需要翻译(从市场角度看)? 译著的发布渠道有哪些? 如果想对其中的示例代码使用中文命名, 哪些渠道最可能愿意接受? |
@nobodxbodon 抱歉,我對譯著發行等業務方面的問題,不太瞭解。我按照自己的理解回答一下,供您參考: 目前,還是講述具體技術的外文 IT 書較受歡迎,也就是那種看了之後直接就能用來編程或做項目的。這種書,最好是能夠融入作者自身的獨特經歷或心得,而不能僅僅是把相關素材簡單地拼湊起來。 發佈渠道麼,傳統的渠道可能還是出版社。 示例代碼用中文命名,這個對於傳統的印刷書籍來說,可能需要與出版方溝通一番(我還沒嘗試過)。 最後,我又想到,如果打算先試試水,那可以在網上找找那種能夠自由運用的作品,我記得有一些作者,已經把自己的作品發佈成這種形式了。另外也可以拿自由教材(可能就是類似 WikiBooks【維基教科書】 的東西吧)練手? |
@jeffreybaoshenlee 多谢详细介绍! 也许开始从单篇文章入手更现实一些(投入相对小的多). 比如这种: https://www.ibm.com/developerworks/cn/xml/x-scalaxml/ |
@nobodxbodon 嗯,CC 協議下面有很多變種,限制程度各有不同,可能需要仔細辨別一下(https://en.wikipedia.org/wiki/Creative_Commons_license#Seven_regularly_used_licenses )。 另外,或許還有其它一些版權協議也值得關注,例如 MIT。詳細對比可以參見:https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses 。雖然在我印象中,這些協議主要是用於軟件的,但是近年來,也有很多人將它們套用在文章、圖片、視頻等資源上面。 另外,我也喜歡那種本身就融入了翻譯機制的文章發佈平臺,哈哈。 |
@duotai 刚收到这个:
请问是打算在gitbook进行中文编程的相关写作吗? 还有它能access哪些resources呢? |
打算写一个Python快速入门的原型, 内容涵盖官方入门文档三四五章中最常用的部分, 示例代码可能选材于西游记某个故事(之前的尝试在"西游记"主题Python入门示例尝试-数据结构 5.1-5.1.2). 比较想参考现实项目的开发过程, 从一个最简单的需求(最简短的故事)开始, 对应最简单的代码, 然后逐渐扩大需求(逐步完善故事), 随之扩充代码并同时演示各种语法/结构对于代码的作用. 最终的代码效果也许是个类似说故事的过程. 下面演示了非常粗略的构思, 请多提建议.
|
@nobodxbodon 哈哈,西遊記題材很好。如果加上互動(命令行式的交互?),可能就是個文字冒險遊戲啦。 |
@jeffreybaoshenlee 的确! 刚看了一下官方入门居然好像没提到获取键盘输入. 感觉应该属于常用功能. |
@nobodxbodon 我想起很久以前看到過的一本書,《深入淺出面向對象分析與設計》(英文原名《Head First Object-Oriented Analysis and Design 》),它不是為了講解某個具體編程語言的,而是為了講解面向對象(OO)這個理念。 整本書都用一個較大的例子來貫穿,也就是根據用戶輸入的起點與終點,給出地鐵換車方案。前面各章所講的小知識點(例如怎麼拆解需求,怎麼把需求映射到類,怎麼設計類的字段,怎麼決定類與對象之間的相互關係,怎麼用對象來表示現實世界的事物等等),逐漸匯聚成最後這個可以運行的大例子。 |
@jeffreybaoshenlee 多谢! 刚看了一下amazon, 虽然是4星, 不过有不少一星评论, 似乎有些非编程新手对它的组织有不少意见. 考虑先把它学习一下, 以供借鉴. 顺便把示例代码中文化一下 :) |
@jeffreybaoshenlee 刚粗略浏览了一下: https://zhuanlan.zhihu.com/p/41920600 好像地铁例子是最后一章的, 之前还有三个不同项目. 不过大思路还是很值得借鉴. 多谢. |
@nobodxbodon 嗯,現在回想起來,最後那個大例子,在複雜程度和廣度上面,可能與前面那些小例子之間差得比較大。怎樣組織素材,怎樣循序講解,確實很需要思考。 我想到反向推理的辦法,先擬構一個心目中的成品,然後看看能不能把它拆解成依賴關係較為明晰的幾個小模塊,接下來按照依賴關係,重新梳理一遍:先講不依賴其它模塊(或者說,在依賴樹中處於樹葉地位的)單元,再講本身依賴其它模塊,同時也為另一些模塊所依賴的單元,最後講只依賴其它模塊的樹根單元。不過,我這種想法還是過於理想了,實際上各模塊之間或許是循環依賴的關係,沒辦法這樣輕易地拆解,而且處於樹葉地位的單元,在實現細節上,有可能比其它單元更複雜(這種單元,或許根本就不用納入教程,只是說調用某個軟件包或庫就行了)。 |
第一次看到在示例代码中用非英文母语命名的编程书籍. 日语版的初めてのJavaScript 第3版. 示例代码: class Person {
constructor(name) {
this.name = name;
this.id = Person.nextId++;
}
}
Person.nextId = 0;
const 一郎 = new Person("一郎"), /* id 0 */
次郎 = new Person("次郎"), /* id 1 */
三郎 = new Person("三郎"), /* id 2 */
四郎 = new Person("四郎"); /* id 3 */
const arr = [一郎, 次郎, 三郎, 四郎];
/* 1. IDを使って直接比較 */
console.log(arr.find(p => p.id === 三郎.id)); // Person { name: '三郎', id: 2 }
/* 2. thisを利用。thisを定数「三郎」に指定 */
console.log(arr.find(function(p) {return p.id === this.id}, 三郎));
// Person { name: '三郎', id: 2 }
/* アロー関数ではthisは「語彙的に(lexically)」に束縛される(6章参照) */
console.log(arr.find(p => p.id === this.id, 三郎)); // undefined 期待中文示例代码的编程书籍早日面世. 另外, 看来日语命名在日本开发者中也是有阻力的, |
刚发文首次发现在例程中使用日语命名的编程书籍. 其中译者的一句话(2016 年 12 月)颇值得推敲:
在线翻译如下: "今后,以日本国内为目标的开发会逐渐使用日语标识符吧" 有兴趣的可以研究一下日本业界是出台了什么命名规范推广日语命名吗? |
@nobodxbodon 哈哈,你又發現好東西啦。 我感覺,開發者可以先從自己寫的博客文章或電子書入手,試着把裡面的範例代碼,用中文編程風格寫出來,或者給出中英文兩個版本,構成雙語對照。結合相應的 API(例如你寫的那個工具)來實現雙語對照,應該是可以考慮的。 補記:代碼語言轉換工具,將來或許可以考慮反向使用,例如把其它語言轉為英文。 |
嗯, 在知乎专栏里一直在写这样的短文. 可惜在其他地方还没看到这样的实践. 如有发现请告知. 关于源代码机器翻译, 其实做下去会遇到和自然语言机器翻译类似的问题. 就是词汇的歧义. 当然会比自然语言好一些, 因为命名往往使用的是最正式(非口语化)的词汇, 连接词的使用也较少, 而且基本没有完整语句. 即便如此, 也至少存在词性问题, 比如此文的例子中
而现在是用的最简单的首个词义, 就是名词的"基本原理". 改进就需要一些自然语言处理的方法.
是的. 不过使用场景还不明确. 如果是为第三方使用而将少数公开API添加英文版本, 大可以人工翻译保持准确度. 如果是出于某种原因必须转换为英文命名, 但不需保证可读性, 这时候机器翻译会比较适用. |
@nobodxbodon 嗯,反向使用的問題我也沒有具體想好。有的時候,或許可以考慮機器翻譯加人工干預,也就是對其中個別的地方,手工做出處理,例如像 Google Translate 那樣,點擊譯文中的某個詞語,然後選擇你認為更合適的其它譯法,或者輸入自己的譯法。這些修訂操作,也可以記錄並收集起來,慢慢形成知識庫。然後……或許對解決詞彙歧義有所幫助? |
刚发现的使用中文命名标识符(包括Python, 前端模板, 数据库等等)的2018年Django系列视频教程! |
日本编程书籍《我的第一本编程书》(原书 2016 年7月出版)例程中,借助作者自制的语言工具,代码的所有关键字和标识符都使用了日文。中译版将它们都翻译为了中文。 |
之前写了一个Java入门教程, 在Java区有链接. 有空请各位斧正.
现在考虑下一个教程的主题, 不知有什么建议.
@jeromechan 看到你之前的译作https://github.com/jeromechan/programming-principles-cn, 想必有些感想?
The text was updated successfully, but these errors were encountered: