初次接触编程是在上大学,从C语言的hello world学起,再到后面的C++,JAVA,数据库,计算机网络,WEB开发,汇编,软件工程,编译原理,操作系统,嵌入式编程等等,每学期流水账似的数十门课程,每一门其实都蛮重要的,但是一周就那么一两节课,讲道理的话真的很难做到融会贯通,很多东西都是一知半解,直到现在工作了以后才知道自己以前学到的东西是多么的浅显(相信很多毕业后就工作的同学们都有这种感觉吧)
楼主不是大神,说自己是菜鸟又觉得有些不甘心,但是真的是有一些菜,尤其是现在工作方面各种挫折吧,决定好好学习程序员该学的必备课程!
如何去检验学习的成果呢?最好的办法就是去互联网面试,如果有幸能与某些CTO交流,并且他们问的技术问题都能如数家珍,那基本上理论知识就到位了(程序员的动手项目能力当然不能忽略),理论知识是程序员进阶的必要条件,再加上实际动手去做,自然而然就更能一气呵成,到最后水到渠成,那么成为一名优秀的程序员便不难了。
好了,闲话说了很多,下面我就总结一下该准备哪些知识,作为一名程序员的面试必备知识吧:
C语言基础:C语言作为经典编程语言,30多年经久不衰,其魅力可见一斑,作为程序员,C语言相当于是入门内功,练好了再去练别的招式才好。
OOP:指JAVA和C++这些面向对象的编程,这一块我真是欠缺得太多了,还得好好加油。
数据结构与算法:程序 = 数据结构 + 算法,任何一门语言,都会涉及这两个知识点,可见其重要性,也可以说是面试必考的知识点,两者也是相辅相成,数据结构和算法用好了,真的可以一通百通,无往不利,这些东西我目前正在苦学,虽然你在工作中可能只会用到数组,链表,快速排序等等,但你有必要知道各种树形结构,一些高端算法是如何实现的,这些东西可以体现一名程序员的基础素质吧。
计算机网络知识:TCP/IP协议栈,HTTP,SOCKET编程,都会了么?以前都是
LINUX操作系统:操作系统知识也是要掌握的,进程与线程的处理,还有底层的实现等等,最好去读一下linux内核实现这本书。
WEB编程:WEB编程首先弄清原理,其次学好框架,目前我在自学go语言的
数据库知识:关系型数据库,推荐mysql(完全免费,入门简单,搭建容易,中小型公司一般都用),nosql推荐redis,可以看看,学好这两个也是蛮厉害了。
脚本语言:PHP, Python,RUBY,TCL等等都是脚本语言,这些个语言在学校里不会教,但是公司里用的可不少,随便其中一门,能精通了你也是大神,在这里我只能是选择其中一门,然后争取能简单地用一下,在实际工作中做到融会贯通吧。
运维知识:如何保证服务器可以24小时正常运作,运维人员也许刚开始几年不如开发人员,但经验很重要,越老越值钱。
大数据相关:hadoop,分布式服务器搭建等等,大数据如此火爆,这些知识讲道理还是知道一点的好!
程序员要学的东西太多了,成为一名优秀的程序员更是如此,加油吧,与诸位共勉!