大家应该都知道欧阳修的《卖油翁》的寓言小故事,油翁说的那句“无他,唯手熟尔”,不仅适用于康肃公的射箭、油翁的倒油,也适合新手编程。
我上大学的时候由于老师水平太菜的原因,编程其实学得一塌糊涂。这里多说一句,当时捧着老师推荐的《Java 编程思想》视为圣经,前前后后看了好多遍,差点被劝退。当然了,AWT 和 Swing 可真没少学,当时为了做一个类似 QQ 的聊天界面,真的是差点崩溃,用的是 MyEclipse,不像 NetBeans 能拖拽组件。
嗯,我说老师水平菜这件事,会不会被说不尊重老师?真没有哈,纯粹说一个事实。我上大学那会编程水平也菜的不行不行的。
勉强找到一份外企的实习工作后,终于下定决心要奋发图强,原因很简单,因为如果能力和公司要求不匹配的话,是会被无情辞退的。观察期两个月,和我同去的一波新人当中就被辞退了七八个。
怎么提高编程能力呢?我的做法很简单,就是到编程网站上找例子做,有些是原封不动地抄到本地,但因为环境的不同,很多都不能正常运行,为了解决错误,又不好意思为前辈,就只能问搜索引擎,当时谷歌还能正常访问,如果还找不到答案,就去问度娘。
实在是解决不了,只能放弃,继续去抄下一个例子。就这样持续了半年的时间,水平竟然得到了很大程度上的提高,想起来真的是觉得不可思议。重要的是,领导安排的任务也都能独立地完成了。
说到这,给大家推荐一个我觉得不错的 Java 在线学习网站。
风格贼舒服!还能做任务和打游戏,学习起来也更轻松自在一些。网址我贴一下:
https://codegym.cc/zh/quests/tutorial?transition=force
记住一点,编程是一门手艺活,不动手是学不会的。尽量把网站上的代码都敲一遍,你就会发现自己在技术层面突飞猛进。
清华大学的孙家广院士曾说过三句话,我觉得非常妙:
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 它。
编程是一门手艺活,不动手是学不会的。
PS:周四的时候,人民邮电出版社的傅道坤编辑、孙建新编辑特意从北京飞到洛阳,找二哥约稿,当然还有一些其他的一些合作意向。说真的,二哥有点受宠若惊,要知道人民邮电出版社可是国内数一数二的出版社。
我带他们去撸了串,期间聊得非常的愉快。两位老师承诺说,以后人民邮电就是二哥的图书馆,想要什么书尽管开口,他们邮寄过来。想送读者也没问题,尽管开口要。
还有,如果哪个读者想出书,找二哥,二哥把两位编辑推荐给你,毕竟他们俩手里掌握着出版社最优质的资源,不仅图书质量有保证,销量也是杠杠的。当然,稿费也一定给到位。
CSDN 上还是卧虎藏龙的,我当年出书就是出版社在 CSDN 上发现了我,嘿嘿。
另外,这两篇文章在 CSDN 上的阅读都还不错,如果没看到的话,可以再读一下。
绝不误人子弟!零基础应该选择学习Java、PHP,还是前端?
愤怒!竟然还有学校还在教 Java 的 Swing
PPS:注意第二篇文章,里面的内容还推荐了 Java 的基础,比如说语法、集合框架、多线程并发和 Java 虚拟机,这些都是比 swing 要重要太多的内容。
大学还在教,有自己的苦衷,但是大学毕竟也只有四年,大专三年,时间说长不长,说短不短,自己还是应该知道哪些是重点要学的内容,不然时间上可能真的来不及,基础很重要,但基础不等同于 swing,这是我一直以来的观点。
最后,比较来,比较去,还是觉得 CSDN 最好,博客园上的喷子太多,我已经放弃,没想到掘金上的喷子也多,差不多也要到放弃的时候了。
以前总有人抨击 CSDN 社区质量低,我一直觉得这里才是最好的,相对来说一直在进步,而博客园和掘金,不知道为什么,喷子反而更多。
好好珍惜吧,大家一起加油!