怎样学习计算机程序设计

最近很多同学在协会跟着我们学习C++编程语言,遇到了一些问题

首先我们需要确定的几个事实:

  1. C++难不难?难!不然也不会有这么多人转向Java等语言,但这并不代表大家学不会C++。以本文的大多数读者四川大学学生为例,能考上985重点本科院校的同学,本身智商和数理基础是绝对没问题的
  2. 为什么学校的C++这么简单?因为学校教的内容不仅严重落后于工业界,其内容的深度和广度都非常欠缺
  3. C++是不是已经开始被淘汰?不是!C++只是随着计算机科学的发展逐渐收缩至其更专精的范围内
  4. C++更新标准(17/20)有没有必要?没必要!最新的标准至今还没有出正式提案,C++17则依旧属于Modern C++的范畴
  5. 以后工作中C++能不能用的到?当然能!目前C++就业主要是走系统软件和服务器后端,本科打好基础非常重要

这里必须强调的是,我们的课程难度是高于计算机专业课程的,不是普及计算机知识的科普课程。但这并不意味着你学不会,除非你连初中生都不如

那么问题出在哪?

学习方式有问题。

我这里就不想老调重弹应试教育害死人之类的,但我这里必须再次强调的是,无论你以前多牛逼,无论是算法打了多少奖,或是高考考了多少分,只要你写不出来我们要求的程序,你就是弟弟!扔掉以前的坏习惯,走出舒适区!

首先的要求就是要把Modern C++当作一门新的语言来学习,忘记你之前的所有好习惯坏习惯,千万不要看目录某个概念很熟悉就跳!过!去!了!

其次就是养成自己解决问题的习惯。有问题怎么办?扒搜索引擎!泡论坛!问同学!别动不动就找老李私聊,老李也有自己的生活,老李很忙!

再就是大多数同学都会遇到的问题,就是觉得没有头绪,觉得特别难,针对这个问题,我需要特别强调:

  1. 不要打破沙锅问到底!计算机这玩意本身就是抽象的,在你的思维成长到能够理解所有层面抽象之前,死记住就行了,千万别揪着一个问题不放
  2. 如果你遇到了一个困难,应当庆幸!因为如果一个人一直做觉得很简单的事情,那是不可能进步的。遇到困难,说明突破困难就能进步了
  3. 再巨的大佬也是从小白成长起来的,心态远比能力更重要

如果对一个问题实在是没有头绪,怎么办?

  1. 找一个列表,列出来自己需要实现的功能有哪些特点?尝试归纳总结
  2. 不要一口吃个大胖子,尝试先实现这个问题中最简单的部分
  3. 看看别人怎么做的?GitHub是个非常有用的示例程序库

最重要的,千万不要惧怕犯错。希望大家能仔细品味为什么是Learn by doing,这里面这个doing到底是在做什么。

我是怎么到今天的?一个词,头铁。实际上我做的事情在很多人看来是“不够聪明“的,我在刚开始学程序的时候就是头铁,啥都不会直接啃C++。很多人就说我傻,为什么不学Python,不学Visual Basic,不是更简单吗?但如今这个傻子自己写出了一门和Python能比一比的语言,而那群曾经嘲笑我的人可能还只是会写点Python小程序吧。

对比我初学程序时的环境,请大家不要再抱怨,自己多花点精力,挑战一下自己的极限。实在有问题想不清楚,还有我们在背后支持,你们已经比我们初学时要幸福一百倍了,千万不要身在福中不知福。

发表回复