业余爱好者浅谈编程 之个人经历(三)—— “自学成‘才’”

  首先澄清一下,这标题我可没有自我吹嘘,我也清楚自己是蒟蒻一枚,所以才在标题上加上了双引号,您请耐心的看后文。

  上文说到小学毕业,我埋葬了我的QBasic,其实到现在,关于Basic的语法,我也只记得最基础的部分了,关于那时候的学习记忆,也所剩不多了。不过,那时候的学习并不是“studied”而是“have studied”,虽然专门的编程学习结束了,但是它对我的影响却一直延续到现在。

  时间回到初中,我由于低年级没有过多的课业,又好了伤疤忘了痛,看起了NOI的编程书,书中用的语言是Turbo Pascal。这对我来说是一个新的挑战,因为Pascal是一种编译语言,而之前学习的Basic是一种解释语言,后者是将写的代码一行一行转换成机器代码随后执行,前者则需要先将整个程序转换成机器代码,然后再执行。正是这个机制的不同,使得解释语言在跨平台程序上面比较吃香,比如现在应用人数一直很多的Java,就在Android的手机系统上广泛应用,它的特性使得它适合制作前端应用以及I/O-Heavy的应用程序。但对于CPU-Heavy的由很多条指令组成的后端应用则及其适合用编译语言完成。

  上面的话说的十分笼统,简洁明了地说,主要是以下几点难以适应:
    1. 每行结尾需要打一个分号
    2. 需要使用的变量要在主程序开始之前定义
    3. 所有代码块都需要用“Begin”和“End”套起来,且“Begin”后面不加分号,“End”后面加分号
    4. 主程序结束的“End”后面的分号换成点号
    5. 语法涉及大量符号,比如数组,变量定义
    6. 赋值号不再使用等号而是冒号等号
    7. 不能用变量作为长度定义数组(其实可以使用动态分配内存,但由于当时刚刚转到这个语言,并不理解指针以及内存操作)

  从以上几点已经可以看出,Pascal的语法明显比Basic复杂,再加上语言不够清晰的书籍,使得入门变得及其困难。但是在一段时间的努力下,我渐渐适应了这种语言,数组问题也被定义一个足够大的数组的方法解决了。

  就这样,到了初二,我在听说noip比赛的通知后,又蠢蠢欲动,在老师的鼓励下,我报了名,参加时仿佛重拾起三年前的快乐与兴奋。但是,天不遂人意,满腔热血,竟然只换得两位数的成绩(400分满分),也只拿了一个省级三等奖。

  不过,面对这种打击,不,这已经不算打击,我没有像以前一样低沉,我深知,这是因为我自学的还不够到位。后来得知,随之年级的升高,noip不再仅仅是对语言的考察,其中需要参赛者拥有一定的算法水平,对一些问题能简化出模型,并选择最优解,而不仅仅是暴力求解。我在自学的过程中,最欠缺的也就是算法,因为一般算法的证明涉及到与我上学年级不符的数学知识。

  自学成“才”,愿望破灭了,没成天才,但是我认清了自己的不足,这又何尝不是一件好事。

  首先澄清一下,这标题我可没有自我吹嘘,我也清楚自己是蒟蒻一枚,所以才在标题上加上了双引号,您请耐心的看后文。

  上文说到小学毕业,我埋葬了我的QBasic,其实到现在,关于Basic的语法,我也只记得最基础的部分了,关于那时候的学习记忆,也所剩不多了。不过,那时候的学习并不是“studied”而是“have studied”,虽然专门的编程学习结束了,但是它对我的影响却一直延续到现在。

  时间回到初中,我由于低年级没有过多的课业,又好了伤疤忘了痛,看起了NOI的编程书,书中用的语言是Turbo Pascal。这对我来说是一个新的挑战,因为Pascal是一种编译语言,而之前学习的Basic是一种解释语言,后者是将写的代码一行一行转换成机器代码随后执行,前者则需要先将整个程序转换成机器代码,然后再执行。正是这个机制的不同,使得解释语言在跨平台程序上面比较吃香,比如现在应用人数一直很多的Java,就在Android的手机系统上广泛应用,它的特性使得它适合制作前端应用以及I/O-Heavy的应用程序。但对于CPU-Heavy的由很多条指令组成的后端应用则及其适合用编译语言完成。

  上面的话说的十分笼统,简洁明了地说,主要是以下几点难以适应:
    1. 每行结尾需要打一个分号
    2. 需要使用的变量要在主程序开始之前定义
    3. 所有代码块都需要用“Begin”和“End”套起来,且“Begin”后面不加分号,“End”后面加分号
    4. 主程序结束的“End”后面的分号换成点号
    5. 语法涉及大量符号,比如数组,变量定义
    6. 赋值号不再使用等号而是冒号等号
    7. 不能用变量作为长度定义数组(其实可以使用动态分配内存,但由于当时刚刚转到这个语言,并不理解指针以及内存操作)

  从以上几点已经可以看出,Pascal的语法明显比Basic复杂,再加上语言不够清晰的书籍,使得入门变得及其困难。但是在一段时间的努力下,我渐渐适应了这种语言,数组问题也被定义一个足够大的数组的方法解决了。

  就这样,到了初二,我在听说noip比赛的通知后,又蠢蠢欲动,在老师的鼓励下,我报了名,参加时仿佛重拾起三年前的快乐与兴奋。但是,天不遂人意,满腔热血,竟然只换得两位数的成绩(400分满分),也只拿了一个省级三等奖。

  不过,面对这种打击,不,这已经不算打击,我没有像以前一样低沉,我深知,这是因为我自学的还不够到位。后来得知,随之年级的升高,noip不再仅仅是对语言的考察,其中需要参赛者拥有一定的算法水平,对一些问题能简化出模型,并选择最优解,而不仅仅是暴力求解。我在自学的过程中,最欠缺的也就是算法,因为一般算法的证明涉及到与我上学年级不符的数学知识。

  自学成“才”,愿望破灭了,没成天才,但是我认清了自己的不足,这又何尝不是一件好事。

发布了3 篇原创文章 · 获赞 3 · 访问量 110

猜你喜欢

转载自blog.csdn.net/weixin_38791415/article/details/105261274
今日推荐