如果你想学Coding

前言

还是老话,虽然我会的语言多了点,但也都是一知半解,细分给不出什么建议,但大体的入门方向我还是能说说的。 身边好多人都有向编程方向努力的,无论是为了多赚钱还是什么(目前我了解到的还是多赚钱),我都予以支持。有个目标总比碌碌无为来的有意义。 但也见过挺多人从入门到放弃,甚至没有入门。想了想,打算说一下我个人认为的入门到精通编程的技巧。

目的

先说一下你为什么想学编程。

  • 为了有个好的工作以及赚钱无可厚非,但写代码不是那么容易的,也很累,而且貌似现在这个时代,coding 也不是唯一一个高薪的出路。现在市场还很饱和。不是会写个 console.log 就能拿高薪的,所以单纯为了这个目的请斟酌。
  • 为了兴趣爱好,可以,但是路程可能要走的长一点。弯路是不得不走的。
  • 也没啥别的了。其实说上面两点还是我见的最多的。但是大部分人包括我都会有误区,尽我所能,聊一聊。

说我自己

说一说我从学编程到现在的状态。高中买过一本 C++ 的书,但是看了前几章,vs 都没装过,就忙高考去了。直到大一学 C 语言,也是我唯一一科认真学了的课程。后来做微信公众平台,再后来一发不可收拾做各种东西。直到毕业,做了比较多的项目,第一份工作也算是个项目小负责人。满满意到了现在发现很多东西都在变,一直在赶。学新语言,架构什么的感觉还比较轻松。我一直归功于有 C 语言做基础。大部分人一直跟我说我有天赋分什么的。好吧其实我自己也这么认为。但光有所谓的“天赋”没有努力,谁也不能写出东西来。

学什么语言

大部分来问我的人我都推荐他们学了前端。。 优势在于,上手快,直观。对于还没入门者来说,这些东西更能提起兴趣。如果说做 python, php 什么的,可能很快就放弃了。虽然入门简单,但是不直观。同样是做一个日历程序,可能前端去完成的成就感更高一点。 缺点在于,1.需要后端支持; 2.上手容易深入难 3. 框架太多 等等吧。 但是相对于一个项目的目的来说来说,前端是一个必需品。你可以不用 php,用 java 但是你需要用 html 去让用户看见,等等。这个暂且不谈。说白了,什么语言都一样,学好了都厉害,学不好都完蛋。

学习技巧

其实说起来,技巧是有的,可能跟大家想的还真不太一样。当然了,纯个人见解。

  1. 拒绝视频。这一点我跟和我聊过的朋友都说过。但大家并不买账,觉得有人教,跟着做就行了。of course,如果你是打算赶紧随便找个小公司混着,随意。有人说看视频教程快,但是过一阵什么都忘掉了。这个就是常态。你看视频,看的是讲师的思路,并不是你自己所想,当然记不住。而且视频只会教你一些你用的到的东西。一个学弟,在后来我带他写代码的时候,他说好多内容视频里都没讲。可那些是最基础的东西。不可能通过 1 小时的视频教你学会写一个轮播图。如果你自己是其他的方法去学习,可能用了 2 个小时甚至更多,但你学会的不仅仅是一个轮播图。
  2. 耐心。无论在做什么,你是在学习过程。在写代码的过程中,对于任何可能或不可能发生的事情,都要保持一个平和的心态。首先,编程不是很随意的过程,在你完全了解一个语言之前,不是你认为他应该什么样就是什么样。学习也不是你看了什么就要会什么。写不出来也不是你个人能力有问题,相反,这才是提升你编程技巧的时候。浮躁是学习 coding 甚至可以说学习任何东西中的大忌。我也经常这样。比如我今天一天都在尝试搭一个 tomcat 的环境,但是应用一直部署不上去。这时候,你急有什么用,你总不能把电脑砸了。就算你砸了,该跑不通还是跑不通。与其每天“被”逼着思考我要不要继续做这个,还不如想想办法找找解决方案。
  3. 注意风格。朋友跟我说,代码我就随便写,要什么格式化,无所谓。包括看很多代码的注释啊,甚至代码格式都是乱的。像 php 的变量不用定义,但是全局变量需要声明。这个时候,不声明也可以,代码就会产生一种不清晰的结构。甚至你不知道这个是什么东西。包括缩进、命名等等。这些都是有规范可参考的。养成一个良好的代码风格(这个不是因人而异的),对于理解别人代码和自己未来的发展都是很必要的。
  4. 切莫比较。这个是刚想出来的。不要跟别人比。写代码这种事情,总而言之是一个经验积累的过程,在跟别人比较的时候,你已经被更多人拉到很远。而且,问这种问题,你就永远比不上我 ^_^
  5. 多问 Google。再补充一句,少问人。就初学者而言,网上一大片。搜索可以培养你筛选关键词的良好习惯。举个例子,初中我们写一篇作文来介绍孔子。我妹妹去百度:“孔子个人简介”,“孔子介绍”,结果没什么有用的信息。然而我就搜了“孔子”,就能得到我需要的内容。包括前一阵带着朋友写代码。他会搜索“怎么给元素设置内容”,但其实正确的搜索方式是"js dom value"。如果不懂,可以搜"js
    操作"类似的内容。现在的搜索要比之前聪明许多,但冗长的问题得不到正确的答案。这就是一个经验积累的过程。同样,文档不是用来学习的,是用来当作词典,如果你不会,去文档翻是最准确的。(我指的文档是官方发布的文档,不是菜鸟教程什么的)
  6. 勇于面对 out of box 的问题。out of box 在文档里就是指“不在考虑范围内”。也就是说,如果你遇到了可能不属于当前学习知识的范畴甚至不是本门语言的范畴,这不意味着你不应该去学。相反,向这个方向的钻研,会使你的知识大步向前跨。通过搜索和文档,你可以知道更多你本不知道的东西。
  7. 带着脑子。不要写着程序想着我能不能写,而是去想怎么写。动脑思考的过程是吸收知识的过程。在你不识字的时候你就会说话了对么;这个就是用脑子去完成的过程,而不是写了一页纸也学不会写字。编程也是一样。每一个不同的内容都会有不同的想法。如果按死规矩,一切复制粘贴(我没说不能复制粘贴),那这段学习之路就没什么意义啊,对么。
  8. 自信点。本来想放在上面去讲,但是与内容没啥关系。学习初期,用 6 个小时写一个 js 联动,很快了。我最开始接触 php 的时候,写一堆简单的 curl,写了一个星期,每天早起晚睡。现在看来 so easy。其实我也是进行过对比的,第一次写了一周,第二次做了 ui,写了一周,第三次就写了 3 天吧,再后来就是结构编程了,现在想想,几个小时也就写完了。所以,不要当你花很长时间写了一个你看起来很简单(你怎么看起来这个简单呢)的界面时就气馁。这本应是他给你的成就感啊,别太消极。
  9. 多看代码。看别人的代码可以学人家写的编程结构,思考方式,编程风格,最优解,也有助于你读懂以后你可能会遇到的源码,二次开发,等等。在你复制粘贴之前,先明白这是什么意思吧。不要看见复杂的内容就复制不管了,你要保证你写的代码里每一句话你都知道是做什么用的。
  10. 多写代码。这个不用说。只有写代码才是熟练的开始。很多人在纠结写什么。想写什么就写什么咯。。。你可以写一个抽奖系统、一个轮播图、甚至一个网站。对于后端,最好的建议就是你去写一个微信公众平台。。也算是一个比较直观的东西了。
  11. 原生起步。有人不会写代码就先会用框架了。。。
  12. 追求极致。
  13. 兴趣及目标。