为了增加说服力,先报一下自己的经历。
写过5年Java,3年Python,3年C#和两年前端。
现在已经完全脱离前端。
虽然也是个普通码农,但是相信我的经历也能给到一些帮助。
其实我想推荐C#的,但是鉴于当前C#的就业环境就业数量都还比不上其他几位,包括培训也没有其他几位的选择多,所以退而求其次选择Java。
毕竟对于一个新人来说,找到工作才是最要紧的,而这些语言里面论工作岗位的数量,Java是毫无疑问的大哥。
对于打算进入一个行业的人来说,最难的就是这个0到1的过程,没有这个过程后面的1到n的裂变也无从说起。
之所以科班出身的朋友相对轻松,就是因为在大学毕业的时候,他们通过大学所学完成了这0到1的过程。
但后面的经验积累,技术增进,对于大部分人而言都是一样的。
只要自己努力了,不要好高骛远,脚踏实地的学习,你必然有机会做得比科班出生的好。
接下来,让我们一起看看我们如何循序渐进的学习。
1. 了解Java运行环境的安装,知道运行环境的基本概念,最重要的几个设置比如classpath之类的。
知道如何使用IDE,熟练掌握下IDE的各个基本功能。
对于个人推荐IntelliJ。
几乎无可争议的Java最好的IDE。
不要再去用eclipse了,更不要相信那些让你命令行或者自己用vim打一个IDE的说法。
这种对于新手而言,看来很酷,但是最可能的是兴趣还没有培养起来就放弃了,因为挫败感太强烈。
2. 了解Java基本知识,包括基本数据类型(int,string等等),数据结构(list,map等等),输入输出语法(input stream和output stream以及reader和writer),数据库连接(JDBC),网络编程(HttpClient等等)以及基本的面向对象的概念(多态,重载等等)。
掌握了这些东西基本上算入门了Java。
推荐的读物是《thinking in Java》。
我阅读的时候是基于JDK5的,不知道是否有更新的。
虽然现在已经JDK14了都,但是之前的那个版本已经涵盖了上述这些核心的知识。
此书网上有,如果有需要也可以联系老白。
3. 掌握多线程,各种thread,runnable,synchronized关键字,votile关键字都是怎么用的,背后原理是什么。
以及一些JDK自带的支持多线程的结构比如Concurrency Hashmap 是如何实现的。
通过IntelliJ 都能很快的看到源码实现。
完成前三步就可以开始找工作之旅了接下来的内容,随着工作经历的见长,会发现越来越需要,也越来越重要,直接决定了你的薪水。
4. 是时候该回头看看数据结构和算法了。
掌握尽可能多的数据结构,明白各种不同实现的原理和差异。
这些都可以通过直接看源码达到。
搞明白什么是空间复杂度什么是时间复杂度,如何计算。
这也为我们之后进入大厂做准备。
现在的大厂面试几乎都需要数据结构和算法。
5. 学习设计模式,这将帮助你写出简洁可维护性强的代码。
到此已经完成了一次进阶了。
理论上已经可以独立完成项目并且没有和科班的有明显区别。
6. 经验积累,以及思考。
接下来的这步,要迈的是一大坎,可以去学习学习经典的框架比如spring,mybatis(别学hibernate了,基本已被淘汰)。
了解这些框架设计背后的思想光芒。
以及很多项目是如何去结合的,以及不同框架又是如何选型的。
学习各个通用的开源工具,了解他们如何相互作用,在什么场景下使用最佳等等。
这些思考都将帮你向一个高级程序员方向发展。
到了这里,已经超过很多普通程序员了,即使是一些科班出身的。
7. 架构学习。
将前面所有的融会贯通。
至此,打怪成功。
未来的世界,必然是电子的世界,编程能让我们成为这个世界建设的一分子。
希望楼主可以加入到这个队伍中来,也希望楼主成为一个优秀的工程师!如有疑问,欢迎私信老白老白将不时推出C#和Java学习内容,欢迎关注
回答的多数就是自己学过的,或者就是给别人建议的,这个问题我算是比较了解的,我自己就是做培训机构的,所以对java php 前端爬虫这种也还算了解。
零基础学习这些本质上都可以,但是你学it肯定是打算从事这块的工作,从事这块的工作就不得不考虑职业发展和薪资待遇问题。
我以深圳举例,不要去谈什么bat华为这些,中国写代码的数百万人,大厂只是少数,所以我给大多数人的一个薪资参考标准。
先说下java 它出来都几十年了,基本上现在做银行 金融这类内部系统的算是首选开发语言,在国内薪资这块也是算比较好的,基本上3年经验在深圳的话10到15k之间,大厂除外。
再说下php,php有个鸡肋就是上手学习难度没java大,但是php大多数居于外部系统项目较多,比如门户网站,电商平台这种等,搞php的实际上人数也要多于java的,因为自学php的人数可以说是所有编程语言最多的,至于为什么,光小型站长就是几百万人,目前大多数网站框架不管是帝国还是织梦都是php语言。
薪资的话php要略低于java,本质上和项目有关,银行 金融这种行业开的工资也要比做网站的工资高一些,一般3年经验大概8到15k居多。
再说下爬虫,爬虫python 出来也不短了,但是火也就是最近5年时间,薪资待遇一度超过java这些,原因是因为大数据的引起,对于高端爬虫工程师的需求增加影响,但是目前学习爬虫的人数可以说是所有编程语言里面最多的,在深圳可以普遍看到10k起步的爬虫工程师,并且经验都是一年,加上这里面学习的人太多,目前爬虫工程师就业难度算是比较大的,除非是3到5年以上的这种,新手找工作可能是很难的。
前端也是最近5年火起来的,尤其是一些小程序,h5页面的需求增加,前端工资基本上和php相当,但是后劲比php大。
严格来说,如果非的选择的话,技术难度是java大于php大于爬虫大于前端薪资水平是java大于爬虫大于php大于前端上面这两个仅仅是前期角度,后期等你有个3到5年经验的时候,前端和java的工资是比较给力的,至于爬虫的话做到后面职位发展潜力太小,做java的可以转型架构师,纯做爬虫的很难做成架构师,因为都是和数据打交道比较多,而java的话和整体项目打交道多很多。
前端的话还可以往产品方向发展,至于php追求高薪是有的,但是从招聘角度来说,php的岗位需求明显要小于前面三者。
如果是女同志建议考虑前端或者php,男同志优先java然后是爬虫,做前端的强调页面思维和细心,java开发强调代码逻辑能力。



