谢邀。对比java和python后者还算是小语种。不知道楼主的具体情况如何。根据个人情况,建议先学java,毕竟你目前的需求是尽快找到更合适的技术工作,java择业面相对较宽,虽然也难学,但学习资源丰富,上手肯定比python快,等你通过java站稳脚跟了,再去试试python不迟。目前看来,Java主流,Go最有潜力,但我说一个优秀的java程序员工资也不低。
现在互联网行情
就目前互联网 行情而言 ,大环境不怎么好,除非能力特别好,不然想找一个合适的工作还是有些困难的。我个人觉得学习IT技术必须的具备的几个条件:
第一:学习能力。什么是学习能力,就是当一个陌生东西给你了,是否有学习他的欲望,自己琢磨的心思,学习能力非常重要,如果一个人没有学习能力的话,任何东西都很难学。
第二:正常人的思维逻辑,比如JAVA不是每一个人都能学会的,因为JAVA的逻辑比较强,有一些人天生逻辑就差,比如一道数学题,有的同学马上懂,有的同学需要老师讲几遍,但是有的同学老师咋讲都不懂。
第三:必须而且一定有一个老师,因为如果没有人给你解答问题,会浪费很多时间,而且大多数问题对于一个新手来说是很难自己解决的,可能明白人的一句话,你需要一天的时间。
当然也可以参考我之前回答过得一篇文章:转行上培训班去当程序员就业是否可行?www.zhihu.com一年java开发,一本,计算机专业,想进阶大数据,自学还是报班呢?www.zhihu.com准备报培训班了,Java和Python学哪个比较好?www.zhihu.com大学即将毕业,学java开发的,感觉技术还是很一般,不知道下一步是继续学习,还是找实习什么的…?www.zhihu.com
感谢邀请。零基础当然是可以的。身边有很多都是零基础学习java的,而且学成找的工作也还是不错的。不过楼主要考虑两个问题。
学历问题,如何学习Java,以及怎么写简历。在之前的回答里,我也提到了这点。关于学历,就目前而言,一定要去弄个本科后者更高的学历,想进大厂的话,高学历是必学且非常重要的一个字标。
1、包装自己的简历 ,目前简历是非常重要的,要想在众多简历中让hr眼前一亮,一个优秀的简历是必不可少的
2、学历问题。说一个显示的问题,没有本科学历,目前很难街道面试电话,想象一下,面试机会就很少,那么,拿到offer的概率可想而知。所以我说,学历虽然不是必须的,但是及其重要的,至少在互联网行业,是一个敲门砖!
3、提升自己的能力,合理规划,同时还要去多看面试题
针对于第一个问题,可以参考我之前的一个回答:这样写简历,offer不给你给谁?mp.weixin.qq.com
然后第二个问题:
关于学历,趁现在还年轻,强烈建议你去自考一个本科,或者读一个网络教育的,然后如果时间充足的话,在进行那个读硕士。其实就目前这个社会而言,渠道是很多的,只要找对渠道,能用钱解决的问题都不是问题。个人认为,这个绝对不是问题。
关于如何学习 Java
首先要对java有一定的认识,其次入门,进阶
由于 JVM 的支持,使得 Java 成为一种跨平台的编程语言,一次编写,到处运行;换句话说,一段 Java 代码可以不加修改地在 Windows、Linux、Mac OS、UNIX 等平台运行。先认识,在找一个教程进行学习
关于技术方向,可以参考下面之前回答过的文章:专科出身 学的Java 在没有工作经验的情况下 要会什么技术才有机会进BAT做开发啊?www.zhihu.com
建议分阶段去学习或者是报一个培训班之类的,这样效率更高一些.
个人推荐的书籍:
Java Web
前端HTML/css/js,J2EE(Servlet/jsp),数据库(Mysql/oracle)
Java开发框架
Spring MVC/Mybatis/Herbernate/maven
《Java编程思想》
深入了解java基础
Java设计模式
《Effective java》代码设计及效率
Java虚拟机
《深入理解Java虚拟机》深入理解Java虚拟机以及并发《Java并发编程实战》
深入理解Java底层和JDK类库及所用到框架中源码
前提是对设计模式有深入理解
系统学习相关理论
《深入理解计算机系统》、《计算机网络》、《TCP/IP》、《数据结构与算法》
如果对技术开发比较感兴趣,公众号id:codeGoogler, 欢迎一起交流技术~
Java学习前的一些准备
· JDK - (Java SE Development Kit)
JDK是Java开发所需要的环境,就跟我们想玩某个网游一样,玩之前一定是需要先安装相应的程序包的。 那这个JDK就是我们准备登陆Java大陆前需要安装的一个程序包。
· IDE - (Integrated Development Environmen)
IDE是集成开发环境,一般集成开发环境都会带有JDK,可以使用自带的JDK也可以使用我们下载的JDK,不同的IDE配置不同。Java常用的IDE有Eclipse、MyEclipse、IntelliJ IDEA。IDE具备代码分析、补全、变异、调试等常用功能,可以大大的提高开发人员的编程效率。
Java自学推荐路线
1、入门基础
o Java简介
§ 了解什么是Java;代码语法基本格式;输出表达式。
§ 了解Java大致的编译以及执行过程
o Java语言基础、循环、数组 ; 了解类和对象
§ 掌握Java的基本数据类型和引用数据类型有哪些;
§ 掌握强制数据类型转换和自动类型提升规则;
§ 常量如何声明及赋值;
§ 循环的语法及作用;
§ 数组的声明及定义;
§ 掌握类的概念以及什么是对象。
o OOP封装、继承、多态
§ 面向对象的三大特征,本节内容非常重要也相对来说较为难以理解,一定要耐下心来好好理解。
o java.util.*包下的常用类
§ util包下的Collection、Comparator、Iterator、List、Map、Set接口都很重要,着重看一下他们的实现类,如:ArrayList、LinkedList、HashSet、HashMap、Hashtable、TreeMap、TreeSet等。
o java.lang.*包下的常用类
§ lang包下的基本数据类型对应的包装类(Byte、Short、Integer、Long、Double、Float、Character、Boolean);
§ 字符串相关的类String、StringBuffer、StringBuilder。
o IO流操作,多线程及Socket
§ 掌握IO读写流相关的类,了解字节流,字符流和字符流缓冲区;
§ 掌握线程的概念,多线程的创建、启动方式,锁和同步的概念及运用;
§ 掌握Socket通信的概念,如何声明客户端服务端,如何完成双端数据通信。
o 数据库基础(Mysql)及JDBC
§ 掌握数据库的基本概念,Mysql的安装、启动与停止
§ Mysql数据库客户端的安装与使用
§ JDBC的概念,在Java中使用Mysql驱动包连接Mysql
通过第一阶段的学习掌握Java语法和常用类,数据库入门技术相关知识。让自己对于存储,IO,这些有个大概的了解。这时候,暂时不需要花大量的精力以及篇幅去学习多线程和Socket,当然这里不是说他们不重要,而是对于现阶段的你,或许很难非常清晰的明白以及了解他们具体的作用。这里第一节忽略掉了Swing,Swing章节的内容可以不学,因为在实际的工作中基本上没有用武之地。
使用第一阶段的技术完成一个小型的系统,找一个自己做容易理解的系统练练手,比如超市管理系统、成绩管理系统等等这类需求简单却能讲整章内容结合起来使用的项目。当然这个时候可能会有人觉得没有图形界面没法完成系统操作。实际上我们可以通过Console的输入输出来做系统界面。
新手在第一阶段的学习时,是最难熬的,因为这个时候需要背的东西特别多,且不再像看小说一样,什么东西都能看明白。路就变成了前面熟悉,左右陌生。这个时候人的求知欲作祟,往往会把自己带着偏移了方向,因为我们自己也不知道这样走对不对。渐而远之,也就慢慢放弃了。而这样的放弃,是最不值得的。所以,学习Java一定要按照某一个大纲,一直往下不要往其他地方偏,先走完一遍之后,再回头慢慢捡。
2、前端基础
o HTML基本标签、表格、表单和框架;
§ 掌握网页的基本构成;
§ 掌握HTML的基本语法;
§ 表格的作用以及合并行、合并列;
§ 表单标签的使用,提交方式get/post的区别;
§ 框架布局的使用
o CSS样式表;
§ 掌握CSS的语法及作用,在html中的声明方式;
§ 掌握CSS布局的函数使用;
§ 掌握CSS外部样式的引入。
o JavaScript;
§ 掌握JS的语法及作用,在HTML中的声明方式;
§ 掌握JS的运行方式;
§ 掌握JS中的变量声明、函数声明、参数传递等;
§ 掌握HTML中的标签事件使用;
§ 掌握JS中的DOM原型
上述三节都可以查看w3school : HTML 系列教程
o jQuery
§ 了解如何使用jQuery,下载最新版或者老版本的jQuery.js
§ 掌握选择器、文档处理、属性、事件等语法及使用;
§ 能够灵活使用选择器查找到想要查找的元素并操作他们的属性;
§ 动态声明事件;
§ 动态创建元素。
o BootStrap;
§ 掌握BootStrap的设计理念,以及使用方式。这是我们需要接触的第一个前端框架,使用起来也很简单;
§ 掌握BootStrap的栅格系统、表单、全局样式、分页工具栏、模态框等。
o Servlet
§ 掌握Java中的Web项目目录结构;
§ 掌握Java Web项目的重要中间件Tomcat;
§ 掌握Servlet中的Request和Response;
§ 掌握Servlet的基本运行过程。
§ 掌握Servlet的声明周期
o 动态网页技术
§ JSP在Java Web中的角色;
§ JSP的编码规范,以及JSPServlet;
§ JSP显示乱码的解决办法等。
o JSP数据交互
§ JSP中如何编写Java代码,如何使用Java中的类;
§ JSP中的参数传递。
o 状态管理Session和Cookie
§ 掌握Session的作用及作用域;
§ 掌握Cookie的作用及作用域;
§ 掌握Session及Cookie的区别,存储位置,声明周期等;
§ 掌握Session及Cookie分别在JSP和Cookie中的使用
o JSTL和EL表达式
§ 使用EL表达式输出page、request、session、application作用域中的值
§ 使用JSTL来做逻辑判断或循环控制
o JNDI数据库连接池
§ JNDI的作用以及如何使用JNDI连接数据库
o 分页和文件上传
§ 掌握在JSP中如何使数据达到分页的目的;
§ 掌握在JSP表单中如何上传文件,Servlet如何处理上传请求(Commons-Fileupload、Commons-IO)。
o Ajax
§ 掌握Ajax的基本概念;
§ 掌握jQuery中的Ajax请求;
§ 掌握JSON
o Filter、Listener;
§ 掌握Filter和Listener
§ 掌握Session过滤器和编码过滤器
通过第二阶段了解前端相关的技术,如果你喜欢前端各种酷炫的效果,那么就深入学习JS、CSS。不大感兴趣的话,就浅尝辄止,并重点学习Servlet、Filter、Listener。重点学习,重点学习,重点学习。 重要的话说三遍!
学习完第二阶段的内容之后,就可以进行B/S版本的系统开发了。这个时候我们可以挑选个稍微复杂点儿的项目来练练手,能找到商业项目练手的那是最好不过的,没有的话,就写写学生管理系统,档案管理系统,人事管理系统之类的练练手吧。
3、 主流技术应用
o Struts2应用
§ 通过学习Struts,了解什么是MVC;
§ 掌握Struts是如何完成界面控制的;
§ 掌握Struts的参数接收及传递;
§ 掌握Struts的拦截器;
§ 掌握Struts的OGNL和标签使用。
o Hibernate应用
§ 了解什么是ORM,ORM在项目中的作用及优势;
§ Hibernate中的hbm与实体类之间的关系;
§ 什么是HQL,什么是关系映射(一对一,多对一,多对多);
§ 了解Hibernate的事务、懒加载和缓存。
o Spring应用
§ Spring容器的作用;
§ Spring的AOP和IOC;
§ Spring托管Hibernate事务;
§ Spring整合Struts2和Hibernate。
通过第三阶段了解目前Java领域比较经典的三大框架,了解他们的大概功能,并加以使用。通过使用SSH开发一个简易CRM之类的项目来加强了解,理清楚框架的大致原理。搞清楚这三个框架之间的作用域以及角色。
在第三阶段的内容学习完了之后,就应该对整个系统研发有个大概的印象,实际上这个时候,独立完成一个系统之后,再回过头来仔细思考下Servlet+JDBC+JSP与SSH实现项目的相同点及区别。这样会让你更加的有收获。
4、模拟实际项目开发
· 1
o SpringMVC的应用
§ SpringMVC中的控制器注解、请求注解、参数注解、响应注解等;
§ SpringMVC中的静态资源处理;
§ SpringMVC的容器。
o Mybatis的应用
§ Mybatis的Mapping与实体映射;
§ Mybatis中的SQL语句写法;
§ Mybatis的缓存。
o Spring+SpringMVC+Mybatis整合
§ SSM的整合使用;
§ 回顾SSH与SSM的区别。
o Redis+Mysql的查询优化设计
§ Redis的安装与连接;
§ Redis常用命令;
§ Redis存储机制;
§ Redis的持久化机制。
o FastDFS的使用
§ 什么是分布式文件系统;
§ 分布式文件系统解决的问题是什么;
§ FastDFS的使用
o Linux操作系统
§ Linux中的常用命令;
§ Linux下的JDK、tomcat安装;
§ Linux下的项目部署方式。
o Nginx的使用
§ Nginx的作用;
§ 反向代理和正向代理分别是什么;
§ Nginx实现tomcat代理。
o Mysql集群方案
§ Mysql集群的常用方案有哪些;
§ Mycat中间件的概念
§ Mycat的使用准则;
§ 了解数据库的主从复制;
§ 了解数据库的主备切换;
§ 为什么需要主从和主备。
o Solr入门
§ 什么是全文检索;
§ Solr做搜索的优势是什么;
§ Lucene、ElasticSearch、Solr之间的关系;
§ Solr的安装与使用。
o JVM
§ 回顾所有所学习到的知识,联系所有框架中的自定义容器、上下文来理解变量及对象的存储
§ 理解垃圾回收是怎么一回事
§ 理解集中回收算法
§ 完全理解整个堆栈模型
通过第四个阶段了解更简单易用的SpringMVC,应用和存储集群相关的概念及实现方案。让自己具备一个设计高可用,可扩展的项目框架视野。这样对于后面继续专研SpringCloud / Dubbo、zookeeper这些RPC相关的框架有很大的好处。
第四阶段的内容更加偏向于互联网技术栈,通过这一节的内容能够脱离出基本的增删改查,了解出了增删查改之后,需要了解的集群、系统性能优化、外部缓存服务器使用、集群负载等概念。这些思维对于后面的提高以及学习会很有好处。
只要功夫到位,任何行业都能学的会,同时后期你也需要不断的去提升自己的技术,去磨合,多思考,左海职业规划 希望对你学习互联网有一点帮助!关注个人公众号【终端研发部】
搜索不到的,可以通过这个图片地址:回复【Java】可以得到java全套学习资料和视频详解
回复【面试题】可以领取各种非常实用的大厂面试题
回复【Spring Boot】可以领取springboot相关的学习资料和详解