我的结论估计别人也提到了,那就是两个都要学,但是我的回答和别人大有差别的是,给出了学习路径和学习材料,并给出了学习方法。
对于在校生和工作经验在3年以内的初级开发而言,对应的建议是:先集中精力学java,在找到好工作之前,别学python,因为这个时间,学python的性价比不高,具体做法如下。
1 随便找2,3本java语法书,在搭建好开发环境的基础上,运行java的语法,比如集合,多线程,异常等,同时搭建 好数据库。
2 同样找书,边运行边学spring boot,并在此基础上找些学习项目,运行通以后,写入简历,争取找份Java方面的开发。
3 边面试边背题,先找份java开发工作,入职后,再看大厂面试题,背算法,背分布式组件,背项目,然后争取进大厂,在这之前,别碰python。
上述建议的理由是,目前大厂,或其它公司,对python需求没java多,而且java高端岗位需要的技术,比如Spring boot,分布式组件等,可以自学,或者在小公司里学到,在java方面,能以较小的代价,提升到进大厂的地步,我量化一下吧,从小白到大厂年薪 30w+,估计运气好2年,差些怎么4年都能了,而且Java方面,工作4年进大厂,年入50w的大有人在。
相反,python的应用场景是数据分析,深度学习或机器学习建模,这种岗位大厂一般是直接从名校找这方面的硕士博士,以自学的,未必有这样的机会,如果就初学python,找个初级开发,做基本的数据分析可视化,或者只调用api做机器学习或深度学习,虽然也比较容易,但第一工资相比java的要少,而且发展前景没java好,毕竟Java方面,我帮过太多的3年经验的人进大厂,而python,我接触下来,一般公司也就初级应用,大厂的职位可能未必没java多。
当你进大厂了,或者年薪有30w了,那么可以再学python,用这个做加持,估计机会比单纯做java要多。这个时间点上,你java方面分布式组件也熟悉了,也具备调优等技能,应该至少是高级开发,然后学python 数据分析三剑客,比如numpy,pandas和matplotlib就相当快,甚至我就用了一年半年就写了如下两本书。
在此基础上,你在项目里,除了能完成Java开发以外,还能顺带做些数据分析图表,乃至用机器学习做些基本建模工作,这样你升级到资深开发,乃至架构,应该要比单纯会java的要快。
而且在这个阶段,一方面你可以在大厂里拿高薪,或者等你年纪大些了,也去做些线上线下培训,至少也是条后路。
但是,在学习过程中,别两边都下注,这样一定学不好,因为你初学java+初学python,效果一定没精通java要好,同时要做到精通python,要比精通java要难,毕竟python深度学习里的算法不是每个人都能搞明白的。
相反,你精学java,找到java工作后,估计你前两年的月薪估计是1万,但第三年开始,你就有可能竞争大厂的岗位,只要挑战成功了(概率不低),你月薪3万都有可能。
前景和钱景都摆在这里,所以这个问题的结论就一目了然了。