计科专业的大一新生,如何提高编程能力?

1,860 阅读5分钟

大家应该都知道欧阳修的《卖油翁》的寓言小故事,油翁说的那句“无他,唯手熟尔”,不仅适用于康肃公的射箭、油翁的倒油,也适合新手编程。

我上大学的时候由于老师水平太菜的原因,编程其实学得一塌糊涂。这里多说一句,当时捧着老师推荐的《Java 编程思想》视为圣经,前前后后看了好多遍,差点被劝退。当然了,AWT 和 Swing 可真没少学,当时为了做一个类似 QQ 的聊天界面,真的是差点崩溃,用的是 MyEclipse,不像 NetBeans 能拖拽组件。

嗯,我说老师水平菜这件事,会不会被说不尊重老师?真没有哈,纯粹说一个事实。我上大学那会编程水平也菜的不行不行的。

勉强找到一份外企的实习工作后,终于下定决心要奋发图强,原因很简单,因为如果能力和公司要求不匹配的话,是会被无情辞退的。观察期两个月,和我同去的一波新人当中就被辞退了七八个。

怎么提高编程能力呢?我的做法很简单,就是到编程网站上找例子做,有些是原封不动地抄到本地,但因为环境的不同,很多都不能正常运行,为了解决错误,又不好意思为前辈,就只能问搜索引擎,当时谷歌还能正常访问,如果还找不到答案,就去问度娘。

实在是解决不了,只能放弃,继续去抄下一个例子。就这样持续了半年的时间,水平竟然得到了很大程度上的提高,想起来真的是觉得不可思议。重要的是,领导安排的任务也都能独立地完成了。

说到这,给大家推荐一个我觉得不错的 Java 在线学习网站。

风格贼舒服!还能做任务和打游戏,学习起来也更轻松自在一些。网址我贴一下:

codegym.cc/zh/quests/t…

记住一点,编程是一门手艺活,不动手是学不会的。尽量把网站上的代码都敲一遍,你就会发现自己在技术层面突飞猛进。

清华大学的孙家广院士曾说过三句话,我觉得非常妙:

  • learning by doing
  • do not give up
  • get things done

我之前一直推荐的 vhr 和 mall,都是 GitHub 上很优质的练手项目,文档特别全面,如何部署,如何上手每一个技术栈,不管是松哥还是宏哥,要么提供了视频演示,要么写了详细的文档,新手完全不用担心看不懂、跑不起来的问题。

把其中的任意一个 down 下来,用 Intellij IDEA 打开,然后运行它,加 log,试着修改一些数据和代码,看看有什么变化,用不了仨月,你就会感觉自己的编程能力在突飞猛进。

这个过程中,你既可以通过实践去检验学过的知识,也可以通过拆解优质的项目学习作者的编程经验,可谓是一举两得。

还有,像《C 程序设计语言》这本书,里面的代码都写得非常的优雅,在学习的时候不仅要看懂里面的代码,还要能把里面的代码在本机上敲出来跑起来,一遍没记住,就多敲几遍,直到自己可以自主的敲完一个例子。

有很多读者向我反馈,说敲完代码总是忘记,其实问题很简单,就是敲得少啊,就像一篇文言文,你得背会啊,不然考试的时候肯定答不出来啊,就是因为还没有形成记忆,没有刻意练习。

我一开始学 Java 的时候,也总是忘记,需要不停地查 API。为了方便,我桌面上就备了一份 Java SE 1.6 的中文帮助文档(又暴露了什么),想不起来就去查,查久了,敲久了,经常用的 API 算是彻底记到脑子里了。

如果真想学习 Java 基础的话,可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。

GitHub 星标 115k+的 Java 教程,超级硬核!

其实不只是学编程语言,像 Linux 命令啊,也得经常敲才能形成肌肉记忆。像常用的 cd mkdir cp rm 等等,如果不敲上个几十遍,后面该跟什么参数就会很生疏。记得我最经常跑的一条命令是 ps -ef | grep java,用来查看正在运行的 Java 进程,好 kill 它。

编程是一门手艺活,不动手是学不会的


有读者说,掘金上有个博主在骂我,不仅标题抄袭我,内容也抄袭我,还说自己是反讽。然后一直在评论区带节奏,我觉得很没有必要,大家都是博主,各说各的,就可以了。

这里简单回应一下。

博主在自己的文章里留言这样说:

我本来不打算说的,但这博主一直在评论区带节奏,我就留言了一句。

不知道动了谁的奶酪,可怕。