责任编辑假设你最少已掌控了两门C词汇,接着,能协助你更快自学程式设计。
译者 | Bob Roebling
翻译者 | 弯月,白眉林 | 郭芮
公司出品 | CSDN(ID:CSDNnews)
下列为原文:
读书的这时候,一位同学在与初学者开发者撷取实战经验的这时候曾说:最难读的C词汇是第二门词汇。
千万别有鉴于此深感伤心,这句话的原意只不过是说,在你第二次自学程式设计时,就早已对程式设计有了许多想当然的设想。你会在句法上做许多的TNUMBERA51和假设。因而,在自学第二门词汇时,你要具体来说忘记那些假设。在你自学第二门即使是第二门词汇时,很大要谨记这一点儿。
探究程式设计
原有的C词汇早已少于了5,000种,但TIOBE成分股只列举了前250种词汇。而名列在前20的C词汇都保有相近的国际标准库,这并非碰巧。
我指出思索程式设计的最差形式是,除去大部份的“累赘部份”,剩的就多于生活必需品了。
基本上重要组成部份
五种词汇的每一各方面都能归因于真与假。为何?电的组织工作形式是这种:要么有电,要么没电。内存以0和1的形式存储值,这个最基本上的单位叫做比特,而比特要么为真要么为假。
8比特等于一个字节,足以表示ASCII表中的任何字符。那些比特以特定的顺序翻转,以提供字符的十进制表示形式。计算机知道怎样将这种表示形式转换为字母。
基本上的二进制表示形式,表示了单词Hello。
理解这个概念后,后面的内容就很好理解了。
工具
大部份词汇中的那些工具都是相同的,你能按照任意顺序自学,但我通常会采用下列顺序:
变量
这似乎很简单,但话说回来,怎样创建变量呢?
运算符
什么是运算符,怎样使用?你明白基本上的数学运算符,但你明白逻辑运算符吗?“AND”运算符的正确拼写是“and”还是“AND”,还是使用诸如“&&”之类的符号?
条件语句
出人意料的是,我写的最受欢迎的Swift和Python文章都与决策有关。接下来,你需要知道怎样在程序中做出决定。你自学的词汇使用的是传统的“ if/else if/else”,还是像Python一样使用“ if/elif/else?你的词汇是否带有“switch”或“guard”语句?
循环语句
怎样遍历重复的任务?你自学的C词汇否包含for循环、while循环、do-while循环或for-each语句?
函数
是否能创建函数?如果能,那么该怎么创建?怎样在那些函数中包含参数?你是否知道怎样正确使用函数才能节省时间,并减轻你的组织工作负担?
类和结构
这种词汇是否有类或结构的概念?这个问题听起来有点愚蠢,但有些词汇要么没有,要么多于一种。如果有,那么该创建类或结构?类是否需要构造函数或初始化形式?
错误处理
错误是不可避免的。当出现错误时,这种词汇是否保有强大的错误处理解决方案,你又将怎样使用呢?应该使用“ try/catch”、“ try/except”还是其他语句?是否还有其他子句,比如能进行其他处理的“else”或“finally”?
测试
怎样测试代码?是否有用于测试的内置库,还是说你要下载单独的工具?
大多数现代C词汇都包含上述工具。即使是稍旧的词汇(例如COBOL)也保有大多数工具,只不过它们有不同的称谓,例如pharagraph或copybook。
实战
在了解那些工具后,接下来要做的是使用这种词汇并编写应用程序。你能通过阅读文档来自学一种词汇,但直到你编写许多应用程序之后,才能真正掌控这种词汇。
编写应用程序能强迫你像那门词汇的程序员那样思索。在参加了C的课程并阅读了有关C++的文档后说,我能我了解C++,但多于真正使用C++特有的功能编写应用程序后,才算真正掌控了C++。
二十一点儿(Blackjack)是一个不错的入门项目。二十一点儿需要用到变量、运算符、条件、循环(根据玩家的数量)、函数,类/结构和错误处理。你还能尝试潜在故障的测试用例,例如牌发完了等。
还有许多其他的入门项目,比如爬楼梯游戏、快艇骰子或老虎机等游戏。
如果想尝试更高级的内容,则能尝试重新创建“大富翁”之类的游戏。多多思索游戏的机制,界面以文本为基础即可。
请务必记住,如果你不愿接受有难度的挑战(例如不去尝试二十一点儿中的双倍下注或拆牌功能),那么你对这种词汇的理解就会很有限。
还有什么?
责任编辑无法涵盖词汇要提供的大部份内容。事实上,你能利用上面介绍的工具编写任何内容,国际标准库中包含的其他功能只不过减轻了程式设计的负担。大多数国际标准库都包含相同的功能,因而在各个词汇之间也享有相近的名称。
随着使用词汇的次数增多,你能从国际标准库中找到更多的信息,但很大要先自学那些工具。
在使用某种词汇的这时候,你需要搞清楚词汇本身的优缺点。这能协助你决定针对某个特定的问题应该使用何种语言。
如果你需要加速进行许多数据科学研究,那么能参考Python或R的几个包。如果你需要加速编写一个服务,那么能考虑C或Go。如果你需要Web服务器,则能考虑Java或Python。
光靠看书或文章不足以学好两门C词汇,你需要真正的实战。
自学新词汇是一种挑战,祝你好运!
原文:https://medium.com/better-programming/how-to-learn-any-new-programming-language-quickly-94996895669b
译者:Bob Roebling,高级系统管理员和技术传播者,保有多种C词汇的背景。
责任编辑为 CSDN 翻译,转载请注明来源出处。
【END】