这个首先要看什么语言了,像java的话,一般来说3-6个月左右,可以从零基础到熟练(前提还是要适合编程),如果想学C/C++的话,就比java要难了,可能要多花一点时间。其次就是天赋了,这个真心说不准,有些人很快就入门了,有些人可能要更长的时间。
不过你如果想找工作的话,就很难说了,因为就工作来说编程知识其实到真不算什么,只能说是必要知识。比如做软件,对操作系统等知识了解点,对软件开发链的过程等等都知道点才算好;如果是网络方面的,还要学TCP/IP等相关知识;如果想做游戏,还要了解游戏引擎等等。
简单讲下学习方法:
看书、看视频,高手不会随便帮忙的,但好的书籍、视频里包含了很多他们的精华
编程,将上面看来的知识通过编程进行实践,验证自己对这些知识的理解程度。
学习编程工具,对工具的了解可以令你事半功倍的,现代开发工具,尤其是集成化开发工具,整合了很多有助于编程的功能,如断点调试、重构工具等等,都可以帮助你写出正确的程序
算法/数据结构。可以说这就是整个编程的核心了,要开发高效的程序就必须掌握好算法和数据结构。如果你学过这些知识,你会发现很多自己想出来的问题解法,都不过是数据结构及算法的一个缩影,高效的算法可以大大提高运行效率、占用资源好几个数量级。而且企业面试就看2个方面,一个就是熟悉的语言的理解程度(语言细节等),还有一个就是数据结构/算法了,而且这方面比前者更重要。当然这方面也是最抽象的,数学不好很吃亏。
等有了一定的基础,就可以学习其他知识了,如操作系统、网络等,不一定要都会,挑关于你将来工作需要的知识就行了。
项目开发。项目开发不同于书上的小程序,不是写一个简单的程序就好,而是写出一个实实在在的类似于你平时用的程序,当你有扎实的基础了,就可以来试试看。综合运用,牵涉到很多相关的知识,可以检验你对这些知识的熟练程度,而且遇到的错误及其解决方法等,都是非常宝贵的实践经验,同时你也可以了解实际编程是怎么一回事。
0基础的就不建议上培训班了,培训班不会为了一个人拖慢进度,如果遇到困难,拉下进度只会浪费时间和金钱,至少也要有点基础。其次,这行业最后还是要靠自学,只要干这行就要一直补充新知识,培训班只能快速满足你的需求,但能否帮助你建立扎实基础就不知道了,如果时间紧的话可以去试试看,如果时间多的话还是照上述说法一步步来比较好。