谈谈非计算机专业学习编程的体会
大学时我并不是学习计算机的,学的是经济学。大学大家知道的,很多大学老师上课对着ppt读,真心觉得是浪费生命,学了无数概论,没啥用,就算你学过原子弹概论,你还是茶叶蛋也不会做。后来听了一节计算机网络的课,老师年轻风趣,至今还记得他叫我们做网线,一个一个学生的过,我从小动手能力差,晚上被留下,告诉我网线怎么做,认真负责的态度,切实可见的效果,让我喜欢上了网络课。所以我常想遇到一个稍微靠谱对一个人一生至关重要,倒不是他能让你成功,而是让你产生希望。
后来网络课讲到了HTML,知道了IIS和ASP,后来又知道了PHP和JSP。最开始从PHP开始看起,看到了什么析构函数,云里雾里的,自己在寝室里面研究LAMP,自己安装linux操作系统,所以你看我想第一点还是兴趣,那时我不知道以后自己会从事编程工作,只是愿意学,因为它实用,因为它讲道理,你付出了努力,它就不会让你失望。
刚开始的感兴趣,会被接下来的难点困住,你去看看那个网页源代码——我的个娘,我的个天,我的个妈,下图是百度首页的源码。
百度首页源码局部
你看到这里,一大堆学生会败下阵来,楼下长发飘飘的美女,去了编程,爷要下去耍耍,等些日子又重新萌发兴趣,又遇困难诱惑,最后不了了之。此刻重要的一个靠谱的学习资料,重点记住循序渐进四个字,慢就是快,这里我推荐w3school或菜鸟教程,这里面东西好学,但能够坚持把这里面某个方向看完又不多,世间最难的事是坚持做那些小而容易的事情。
菜鸟网站首页局部
接下来一个难点就是编程语言这一关,这是学习编程的核心一战,举个例子,让你编程算出今天是星期几,已知公元1年1月1日是星期一,我不说让你什么快排、红黑树之类,就是这个小程序,如果你能顺利短时间写出来,我觉得基本语言关没有太大问题。C语言代码如下:
#define _CRT_SECURE_NO_WARNINGS#include
编程能够教你如何思考,你可以在此过程磨练心性,做到静心,细心,耐心,信心和决心。乔布斯说Everybody in this country should learn how to program a computer… because it teaches you how to think。
至此你已经完成自学编程的第一关,后面你自己希望通过自学后面能够从事这个行业,建议你去看牛客网,上面又很多面经,看面经总是能够找到和自己又类似经历的人,然后跟他们去学习。
牛客网面试经验页面
面试经验截图
接下来你才能真正入门了,你需要沉淀,需要学习操作系统,计算机网络,组成原理和算法数据结构四本大书,这个不是开玩笑,耗时耗力,但这一定是值得的。这是非科班出生的自学者最大一个障碍,不要急着看高级技术,什么分布式、云计算、人工智能什么的,你起码要搞清内存和cpu的基本工作原理,不然你走不远的,永远是一个“票友”。
计算机专业基础课
此刻并行需要知道项目是什么,编程的最终目的是做出软件。真实项目网上资源不多,可以看看开源但网站github,参加一个开源项目,如此经过一个项目的实战,你才可以真正理解编程的意义。
经过上述的这些努力就可以找一个小公司去实习了,感受一下真实的需求,为后面进入大公司做一些准备。可以看出非科班自学编程的路还是很辛苦的,一定要有时间、有耐心,还需要一定悟性,很多都坚持不下来,所以交一些朋友,参加一些网上课程也是不错的选择,和别人一切沟通,一起进步,要比一个孤独的坚持要好的多。总之,一是兴趣,二是坚持,三是按照学习的规律来,假以时日一定能够学成以用的。