应该学习哪些知识?
如果想学精,学好编程,首先我要说的是心态。
编程是一个枯燥,漫长的过程,很多时候可能还会遇到很多挫折,比如,一个问题一直没有解决的思路,或者写出的代码总是不工作。所以这个过程要心态要好,切忌急功近利,否则很难学好。
如果你还是一名学生,我建议你数学一定要学好,不管是离散数学,线性代数还是概率论。离散数学是理工科数学基础,很多计算机的逻辑思维与它有关;线性代数和概率论对于解决一些算法问题非常有用,尤其是现在兴起的机器学习热,很多算法于此有关。
如果你还没打算选择哪一门语言的时候,我建议你选择一些语法比较简单,生态比较完善的语言,比如python。
如果你已经在学一门语言,首先要做的是将基础语法弄熟,基础要扎实。然后可以看一些性能优化方面的书,或者读一些知名的开源软件,看看别人怎么写的。
与计算机有关的书,读的越多越好。
1. linux系统知识,我觉得是你熟悉完语言后,首先要学的,因为大部分企业和机构的开发环境或运行环境都是在linux上,而且通过linux系统你可以了解操作系统。即使windows和linux有非常大的不同,但是在某些方面作为一个操作系统还是有类似的地方。
2. 数据库方面的知识,包括NoSQL,包括XML,JSON等等数据存储与定义类语言或工具。一个有用的程序通常都要和数据打交道的,因此数据的存放和定义方式和机制是必须要了解的。
3.网络知识。现在是网络社会,单机软件比较少见了,程序基本上都要联网,那么网络编程知识是需要的,至少你要了解tcp/IP协议栈,尤其是tcp协议。
4.网络架构,中间件等等。作为一个程序员这些不一定是必须,但是了解非常有用,尤其是从事与互联网有关领域。
如果你对算法感兴趣,那么数据结构和算法思想需要养成的。
最后一点,还有很多知识是与你所在的公司有关,需要在工作中学习的。比如你做银行支付系统的,那么可能需要了解一些金融类的知识。