0基础php怎么学,有没有靠谱点的机构推荐一下?
可能是最全最靠谱的Java学习指南,文末赠送3T学习资料!本文会先介绍一下如何学Java,接着就是福利分享时间啦!整理了大概3T左右的Java学习资料,希望对你有所帮助!我写过一个Java工程师学习指南,我把它分为了四个部分,第一步是打好Java基础,掌握Java核心技术,第二步是掌握Java Web技术栈,能够做一些项目,第三步是掌握Java方面的进阶技术,包括网络编程、并发编程、JVM等,第四步是掌握后端进阶技术,比如分布式、缓存、消息队列等技术。按照这样的一个脉络,我觉得能够掌握这里面的绝大部分内容,并且有过相应的一些实践,那么可以算是学好了Java。当然,学好Java只是一个开始,要真的干好活,做好项目,以及其他各方面的技术工作,则是在学好Java的基础去延伸和展开的。接下来就是具体的四篇文章,建议大家按顺序阅读,有点长,收藏的时候记得点赞或者评论哈。笔芯!Java工程师学习指南入门篇最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程。今天我们要讲的是,小白同学如何入门Java。先声明一点,文章内容不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦。本文所述的方法不一定适合所有人,如有错误敬请谅解。01 前期准备工作开发环境搭建这一步我们往往会直接跳过,但既然是面向小白的教程,这里就提一下吧。首先你需要一台电脑,然后安装好JDK和JRE,JDK提供的是Java开发工具,也就是一些必备的jar包,JRE则是Java的运行环境组件,我们熟悉的JVM就在这里面。安装好这两个东东之后,一般还要配置一下环境变量,否则有一些目录可能无法被正确找到。IDE选择和安装IDE指的就是本地开发编辑器,没有了它,你就只能直接在记事本这类工具里敲代码了。IDE最大的好处就是整合了大量的工具和功能模块,让你非常轻松地完成开发。以前大家都用eclipse,不过eclipse已经不流行了,现在我推荐你直接用intellij idea作为你的第一个代码编辑器。如果是用过eclipse的同学,基本上也可以无痛切换。intellij idea可以直接在官网上下载,试用版30天,如果想要永久使用,网上也有一些办法滴。关于jar包jar包是什么,其实就是将一堆class格式文件打包,Java中把它称为jar包,这些jar包在编译器中能被直接识别,让开发者使用。对于新手来说,可能只需要用到JDK自带的一些API,但是如果你要引用外部jar包,可能就会遇到一些困难了。对于idea来说,导入外部jar包有两种办法,一种是手动导入jar包,一种是使用maven。后者会在Java Web相关的文章中讲起。手动导入jar包其实也不难,你需要先下载好jar包,然后在对应的项目下选择导入jar包即可,具体的方法这里就不展开说了,因为在网上都找得到。02 学习Java基础的几种方法了解基础语法学习一门语言,最开始要做的事情就是学习它的语法。我最早学习Java语法是在Runoob,这个网站可以让你对任意一门语言完成最快速的语法入门,当然,这只是相当于你浏览了一遍基础语法。想要真正掌握Java语言基础,光看基础语法还远远不够,我在大三第一次接触Java课程,听老师讲面向对象三大特征听得一头雾水,连数组的初始化方式都理不清楚,但这些内容都是我们需要掌握的。所以,为了学好Java基础,我们还需要看视频或者看书进行学习。看视频视频的话,可以到极客学院或者慕课网听Java基础课程,当然也可以看我分享的Java视频课程。大家也都知道,现在Java的培训班非常多,基本上学的东西也都大同小异,不过它们的有些课程还不错,大家有渠道的话也可以去看一看。看视频的好处是你可以更好地接收知识,同时也会耗费你更多实践,所以,有时候你也可以选择看书。看书看书的话,对于小白来说不推荐太复杂的书,比如《Java编程思想》这种书,新手千万不要看。我个人建议,你只需要先看看《Java入门到精通》这种类型的书就足够了,因为这个部分的学习只是为你后面的学习开个头,你以后可能还要回过头来重新研究这些内容。现在市面上介绍Java基础的书籍实在太多了,质量参差不齐,内容同质化严重,笔者看过的其实也不多。给大家一个建议,你只需要挑一两本书来看即可,这里推荐两本最简单的吧,《head first java》和《Java从入门到精通》。看博客这里再推荐另一种学习方式,就是看博客,博客比起书籍来说,更适合对于某个技术点的学习,你可以很容易地在网上找到这个知识点相关的原理,实现方法,以及代码范例。我的博客里没有讲解特别基础的东西,如果你看一些比较基础的文章,可以到Runoob等网站上查看。如果你有一个很明确的知识点想要学习,相信搜搜引擎会给你更好的答案。代码实践除此之外,一般的Java书籍或者视频课程都会要求你相应完成一些练习题,这部分内容你需要自己在电脑里使用IDE完成。在IDE里,你可以很好地熟悉Java语言的使用,基本代码的实现,同时可以尝试各种各样的API,并且测试一些语言特性,比如继承,封装,多态等等。另外,这也是你熟悉IDE的一个好机会,因为在公司里做开发可能要用到IDE各种各样的功能,提前熟悉好IDE绝对是有益无害的。03 Java入门必备知识点梳理在Java入门阶段,你可能需要接触到以下这部分知识,不管你是从通过哪种方式学习,这些内容都是你学习Java基础时绕不过的重点。Java基础知识这部分内容是你必须要掌握的内容,在入门阶段你需要把这些基础打扎实,以便于在学习后面的内容时可以更上一层楼。如何把基础打扎实呢,最好的办法就是在IDE上把书上或者视频上的每个例子都实现一遍,当然有的时候你也可以自己写一些有意思的例子。1 基本数据类型比如int,double,char,以及其包装类。熟悉基本数据类型的使用,了解每种类型所占的字节数,以及它们和包装类之间的相互转换。2 流程控制比如for循环,if else,while循环等等如果是学过c语言的同学,这部分可以跳过了。3 字符串类型String的使用字符串类型是Java中很重要的类型,它不是基本数据类型,但却很常用,熟悉和实践String相关的api,开始你对字符串的学习吧。4 数组数组的初始化方式有哪些,二维数组应该怎么写,把数组当成方法参数又该怎么处理?5 类和对象Java中最重要的两个概念:类和对象,它们有什么用呢,有什么区别和联系呢,请在代码中实践它们吧。Java核心技术对于这部分内容,我相信很多小白只能了解它们的基本使用方法,但是并不明白其背后的一些原理:比如为什么接口和抽象类有这些区别,多态的意义是什么,为什么要有反射。新手在学习这部分内容时,只需要知道怎么用就可以了。当然,你最好把这些特性都实现一遍,以加深印象。至于为什么有这些特性,这些特性背后的原理是什么,不是我们现在讨论的内容,这些内容我们将在初级和中级篇中讲述。因为,要了解这些原理,你得了解JVM,了解并发技术的基础,了解网络基础,甚至更多。显然,这不是你现在能做到的。1 接口和抽象类写一些接口,同时写一些实现类去实现这些接口,并且了解一下为什么我们需要接口,为什么子类需要实现接口里的方法。同理,去实现一些抽象类吧。然后,看看它和接口有什么不同。2 继承,封装和多态如何理解继承,子类和父类之间有什么联系呢。封装是一种保护代码的方式,有哪些方式可以实现封装呢。多态一般分为重载和重写,它们分别怎么使用?3 异常处理Java中的异常处理主要用于捕获和处理错误,请你写一些try catch代码块去捕获错误吧。4 集合类集合类是我们经常需要打交道的东西,List,Map,Set等等,赶快去熟悉API,然后写一些测试例子吧。5 IO输入流和输出流IO输入流和输出流可以操作文件,网络数据等内容,如何在Java代码中完成这么复杂的操作呢,其实只需要简单的几个api就可以了。6 多线程为了让系统资源最合理地分配和调度,我们需要多线程,多线程会让程序变得有趣,也会带来很多问题,使用Thread和相关API,去尝试这些有趣的事情吧。可选内容:1 反射(了解即可,不是入门必须)2 枚举类型和泛型(了解即可,不是入门必须)3 网络通信(了解基本的socket使用即可,需要网络基础)4 数据库操作(了解基本的JDBC即可,需要数据库基础)04 总结总而言之,对于一个Java小白来说,入门Java可以分为这几步:1 首先搭建好Java开发环境 2 通过Runoob等一些网站熟悉Java的基本语法 3 通过看书看视频等方式熟悉Java基础知识,通过代码实践加深理解 4 通过看书看视频等方式初步了解Java核心技术,通过代码实践加深理解。本文主要是为大家提供一个学习的思路,以及推荐一些学习方法,如果你能够按照这样的步骤去学习,并且配合上一些适合你自己的学习方法来完成学习计划,相信你可以很好地完成对Java的入门。微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,作者黄小斜(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源)Java工程师学习指南初级篇最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好。原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都是站在Java后端的全局上进行思考和总结的,忽略了很多小白们的感受,而很多朋友都需要更加基础,更加详细的学习路线。所以,今天我们重新开一个新的专题,分别按照四篇文章讲述Java的学习路线(分别是入门篇,初级篇,中级篇,高级篇),笔者也打算趁此机会,回忆一下自己的Java学习历程。今天我们要讲的是,小白同学如何入门Java。先声明一点,文章内容不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦。本文所述的方法不一定适合所有人,如有错误敬请谅解。01 Java Web项目指南jav在上一篇文章中,我们讲到了入门Java的几个步骤,先搭建好环境,然后熟悉基本语法,接着熟悉Java的一些核心技术,并且在代码中进行实现。如果你已经完成了这部分内容的学习,应该会感觉自己对Java已经有一定了解了,可以轻松地写出一些Java代码,比如实现多线程输出数字,再如操作IO流等等。当然,这些代码通常只是一些demo,我们在实际的项目中可能并不会这么简单地使用这些技术,我们可能会同时使用集合类,多线程,以及操作数据库的API。所以,在今天的初级篇中,我们就来谈谈怎么做项目吧。Java Web项目对于大部分Java新手来说,最适合他们入门的项目就是Java Web了。因为Java天然适合做Web应用,并且生态完善,更有很多开源的工具和框架去支撑这些应用,比如Spring,Hibernate,SpringMVC等等。那么,如何开始着手做一个Java Web项目呢。个人认为最好的方式就是看视频了。因为,看书的话,很多内容比较过时,并且一般不会提供源代码。也有一些大佬喜欢推荐开源的项目(在GitHub上面的项目),但是对于小白来说,如果没有很完整的文档去指导他们,那也是毫无意义的。曾几何时,Java Web的项目还在使用JSP + Servlet进行开发,后来出现了Struts2,再后来,出现了我们现在也一直在用的SpringMVC,说实话,不论使用哪种开发框架,你都需要先花一些时间去学习相关的技术,否则你会发现,即使是看视频,你也不知道里面在讲什么。要想做好一个JavaWeb项目,你不仅需要一个好的项目课程,还需要足够的知识储备,下面就让我们来理一理这些内容把。知识储备Java基础部分的内容咱们上次说过了,这里就不再重复啦~下面我们分别来说说其他几方面的知识储备把02 前端知识推荐资源:在w3cschool学习html,css和js,支持在线测试代码。既然是做Web,就难免要涉及到前端技术,不过,现在前后端分离已经是一种趋势,所以,如果你对前端不感兴趣,也没必要花太多时间去学习。对于大部分同学来说,你最好要了解html的基本标签和格式,自己能够写一些简单页面,CSS的话,也可以稍微接触一些。相对于前面两个服务于样式的技术,我们倒是更应该去学习一下JavaScript,了解它的一些基本语法,以及ajax的使用,因为在前后端交互时,ajax是非常重要的。所以,做一个Java Web项目,你不需要花太多时间在写前端页面上,如果有源代码可以直接使用,当然,对于一些需要修改的前端页面,你得怎么去做修改它,因为有时候你需要使用JSP,JSP既包括前端代码也包括Java代码,如果你完全看不懂前端代码的话,那就很尴尬了。03 Java Web常用技术JavaWeb的技术栈其实比较庞大,所以我们不要求面面俱到,只是希望你能够熟悉一下项目中可能用到的技术。下面列举一些常见的技术,大家最好要了解一下。1 JSP和Servlet推荐资源:《JavaWeb入门到精通》,慕课网、极客学院等网站上的JavaWeb基础课程这是Java Web开发最原始的形态,现在很少直接使用了,但是后来的各种框架其实也是建立在servlet之上来做的。你们需要了解这两个技术分别是用来干什么的,最好能写一些demo来实践。对于JSP,有时候你可能还要学习jstl等标签语言,因为这些标签可以让你更方便地往JSP中插入Java代码。2 Spring和SpringMVC推荐资源:《Spring实战》,慕课网、极客学院等网站上的SpringMVC基础课程。事实上,除了上述资源之外,你也可以直接到官网上查看快速开始文档。Struts2早已被时代抛弃,Spring则是当今的霸主,你需要了解Spring如何使用,以及SpringMVC如何使用,并且学会在项目中使用它。由于SpringBoot最近很火,并且搭建方式比SpringMVC更简单,你也可以先学习SpringBoot,以便更快速地搭建起你的第一个Java Web项目。3 MySQL推荐资源:《Sql必知必会》,Runoob上的MySQL基础教程,慕课网、极客学院等网站上的视频课程一个JavaWeb应用一定要有数据啊,所以我们需要用到数据库,其实搭一个mysql数据库是非常简单的,但是对于初学者来说最麻烦的就是写sql了,所以,先学会建表,熟悉sql,对你以后做项目也是大有裨益的。4 Hibernate和Mybatis推荐资源:Runoob上的Hibernate和Mybatis基础教程,慕课网、极客学院等网站上的视频课程当你学会了使用sql去查询数据,可能还不足以让你在项目中很方便地处理数据,因为我们还需要一个步骤,就是把数据库的数据转化成Java里的对象。orm框架就是为了解决这一问题而出现的,它可以让一张表和Java类一一对应,让数据查询变得非常方便。Hibernate和Mybatis都是orm框架,只不过现在mybatis越来越火了。所以,你需要了解这一技术,因为它会广泛地运用到大部分Java Web项目中。5 Maven推荐资源:《maven实战》,易百教程里的maven教程,慕课网、极客学院等网站上的视频课程刚才咱们已经说过了Spring,orm框架,以及MySQL等方面的技术了。实际上,一个简单的Java Web项目也只需要这些东西了。但是,有一个问题,就是:一个项目里用到这么多技术,所需要的jar包也会很多,我们如何管理这些jar包呢。如果直接导入所需jar包,那当jar包更新或者需要替换时,每次都要手动操作,非常麻烦。另外,当jar包很多时,项目打包后的war格式文件也会很大,不利于传输。为了解决上述问题,maven应运而生了。maven通过pom.xml文件来指定所需的jar包,并且自带了很多构建相关的功能,比如编译,打包,运行单元测试等等,因为它本身就是一个构建工具。当然,新手可能还难以理解这些概念,你必须要知道的是,大部分Java Web项目需要用maven来管理,你需要学会maven的基本用法,最基本的用法就是:学会修改pom.xml文件。6 Tomcat推荐资源:慕课网、极客学院等网站上的视频课程。对于小白来说,Tomcat相关的技术是非常复杂的,毕竟它是一个应用服务器啊,事实上这个时候,你只需要学会如何安装Tomcat即可。毕竟,它在项目中的作用就是提供一个运行环境而已。正常来说,你只要下载解压Tomcat的压缩包即可。由于现在的IDE都支持集成Tomcat,所以一般情况下你都可以在IDE中配置好你的Tomcat路径,然后设置好你的项目路径,IDE会自动把你的工程代码部署到Tomcat服务器上。如果你使用想跳过IDE直接部署工程到Tomcat上,也可以直接编译工程并且打包得到war格式的文件(这个步骤可以使用maven来完成),然后拷贝war文件到Tomcat下的特定目录即可。上述两种部署方式的详细步骤请到搜索引擎寻找答案。7 Git和GitHub推荐资源:廖雪峰的Git教程,GitHub官网,慕课网、极客学院等网站上的视频课程。既然要做项目,为什么不把它发布在GitHub上。当你熟悉了Git指令之后,你可以很方便地发布你项目中的每一次更新,并且同步到GitHub上,这样既可以让你更好地管理项目版本,又可以让你GitHub更加活跃,为你未来的面试加分。所以,赶紧学好Git指令,然后开启你的项目之旅吧。04 其他常用组件除了上面几种必备的技术之外,有时候我们在项目中还会用到其他东西,在这里我们把它们叫做组件。这里只做简单的介绍,至于具体怎么使用,在网上都可以很容易地找到相关文章。1 日志系统当项目代码比较多的时候,容易发生错误,日志可以很好地记录代码运行时的错误,常用的日志系统有log4j,logging等等,另外你还需要了解一下slf4j。2 单元测试日志系统可以记录代码问题,单元测试则是为了避免代码出错,常用的单元测试组件主要是JUnit,建议你找个文档看一看,然后下载下来玩一下。3 JSONJSON逐渐成为前后端数据交互的标准格式,为了在项目中使用JSON的API,你也需要导入它的jar包,一般我们都会使用阿里提供的fastjson,赶快下载来玩一玩吧。当然,常用的Java Web组件还有很多,比如HTTPClient,再比如一些加密工具,一些压缩工具等等,这里就不再一一列举了。5 总结今天的内容就到这里了,与其说是初级篇,反而更像是“项目篇”呢。因为学完基础内容之后,做项目是最好的复习和实践方式了。所以这篇文章围绕着做项目来展开,也就不足为奇了。今天我们主要讲的是,做好一个JavaWeb项目,需要哪些知识储备,需要了解哪些技术,并且我也推荐一些比较精品的视频课程。后面我还会写一篇文章,专门讲一讲怎么做项目,会更加详细,更加侧重怎么去做,敬请期待吧。总结以下今天说的几个要点吧:1 Java基础知识储备 2 前端知识储备 3 了解和使用JavaWeb常用技术 4 JavaWeb常用组件介绍 5 视频课程推荐俗话说的好,磨刀不误砍柴工,相信你看了本文之后,可以更好地做好知识储备,然后开始Java Web的项目实践,希望你能够顺利地完成你的第一个项目。微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,作者黄小斜(关注公众号后回复”Java“即可领取 Java基础、进阶、项目和架构师等免费学习资料,更有数据库、分布式、微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南、Java程序员面试指南等干货资源)
敲黑板!!!我最近刚整理的Java学习资源大礼包,希望对各位有所帮助。
1、Java电子书大合集2、Java基础学习资料 3、2018Java视频课程 4、Java学习资源大礼包5、Java架构师视频课 6、Mysql视频课程7、Java算法课、笔试面试课 除此之外,还将赠送我原创的求职面试大礼包领取方式:关注微信公众号【Java技术江湖】后回复“Java”即可领取上述所有资料。如果你想感谢我平时多关注一下公众号发的文章,没事打开看看,点点“在看”或者“guanggao资料都是免费送的,没有转发、集赞等套路,你也不用给我发红包感谢我,不要钱哒~觉得资源还不错的话,分享一下让更多的人来获取福利吧微信公众号【黄小斜】作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财。目前我坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不只有 coding!关注微信公众号「黄小斜」后回复「Java」、「Python」、「C++」、「大数据」、「机器学习」、「算法」、「AI」、「Android」、「前端」、「iOS」、「BAT」、「校招」、「笔试」、「面试」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费学习资料。想从事IT互联网之类的?
现在越来越多的年轻人倾向从事IT行业,很多不是科班出生的人或是没有专业基础的人想通过自学的途径走上这条道路,但大家肯定也和我当初一样有很多的困惑。本人学校学的是国际贸易专业,毕业之后的不顺利加上自身的兴趣爱好,走上编程的道路,下面就结合亲身经历说说自己的看法,希望能够对致力于编程行业的童鞋有所帮助。
工具/原料兴趣+勤奋+毅力方法/步骤自学编程能找到工作吗?
想必这是大家最关心问题了,我的经历告诉你们,是可以的。同样先辈们的经验也能够给我们肯定的回答,小有名气的架构师张宴毕业于中南民族大学经济学院国际经济与贸易专业(和我一个专业,看来这个专业出编程人才啊),京东创始人刘强东学的社会学,如果说这两位学校都还不错,那么90后小猪cms的创始人猪哥初中没毕业,现在公司营业额过千万。再比如我现在的同事高中没毕业,自学php三个月就找到现在的工作。只要你有技术,别人为什么不要你,这行有技术就不怕找不到工作。
零基础自学编程难吗?
答案是肯定不容易的,时代不同了,对从业人员的要求也越来越高,想想当下做什么不难呢,容易的事情为什么就会轮到你呢。想想销售容易吗,工厂打工一天12小时重复机械的工作容易吗,坑蒙拐骗做些违心的事情容易吗。相比这些,如果你有兴趣,编程学起来还是很有意思的,痛并快乐着。如果你不是富二代又想过得比别人好,那就得比别人付出更多的努力。
自学多久能够找到工作?
这个没有定律,看学的什么方向,怎么去学,努力程度,天分等等。这里只能大概介绍下。一般培训机构制定的计划是脱产学习3-4个月,如果有时间和金钱预算可以选择培训机构,不错的培训机构还是有的。如果是完全脱产自学,或者在校学生,估计得要6-8个月,如果是用工作之余的时间去自学,个人觉得至少得要10个月以上的时间,以上都是建立在你足够勤奋的情况下。我个人的情况是从自学到找到工作花了12个半月的时间,我是边工作边自学,学学停停,导致时间花费比较长。同时我自学的过程中又走了不少弯路,前期学java web开发,学了半年,总算把java基础学扎实了,但想想后面还有jsp/servlet,ssh等一大堆东西要学,战线太长,又想转去android开发,结果学了几天感觉挺难的又放弃了,最后才转到现在做的php开发,如果一开始就明确目标从相对来说简单点的php开发做起,可能学习的时间会缩短一倍。所以说这行方向还是挺重要的,如果能找到一个有经验的人指引你的学习方向,一定会事半功倍。
学到什么程度能够找到工作?
光说不练假把式,说的天花乱坠不如拿出一个有说服力的作品来的强。当然编程行业喜欢把写的代码叫做项目,别人问你有没有做过什么项目,就是问你有没有写过完整的一套软件,吐槽一下,中国人就是喜欢摆弄一些名词,什么正则表达式,听了根本不知道啥意思,别人英文原话regular expression见名知意,所以学习过程中要习惯这种环境,不要被一些名词吓到。学习一开始就要给自己树立目标,要能写出一套完整的像样的作品出来,可能自己写的东西和成熟的商业作品差距很大,这是自然的,但自己作品的功能一定是从相应行业的实际应用出发,功能实现的少点、差点没关系,但千万不要还像学校上课一样写些自娱自乐的没有实际意义的东西,因为不久的将来你就要参加工作了。
有什么好的学习方法?
我个人是看视频加自己动手,现在网上免费的视频非常多,不要贪多求全,尤其是在练习项目的阶段,找一个完整的项目,看完一集视频,然后自己动手完完整整的把代码写出来,不要照着视频抄,这样一点意义都没有,不要一味追求一样,最好加入自己的思考,或是觉得视频作者的代码不够完美的地方,然后自己动手改进,这样当你跟着完成一两个项目的时候,你会发现你的水平会突飞猛进。当然我当时这样学的两个项目都没学完,学到一半就去找工作了,面试也就是拿的这个项目,但就这样也找到了工作,虽然工资低点。编程行业动手是最重要的,键盘敲烂,月薪一万,这是至理名言。即使参加工作之后,通常还是一个人在战斗,很少会有人带你,给你一套源码,你自己去研究,研究好了接着在上面开发,所以自学能力很重要,而自学的过程说的偏激点就是在积累学习的方法。
自学过程中的一些注意事项
1、要善于构建大的知识框架体系,不要执着于细枝末节的知识点。中国的应试教育培养出来的人都喜欢啃细节,对于自学来讲这是大忌,比如在遇到一个函数的时候,非要把这个函数的参数,返回值都弄的清清楚楚才肯罢休,其实你会发现,即使现在弄得清清楚楚,一个月不用,你又会忘得干干净净,当时花的时间都是白费,其实你只要记住函数的名字,或是知道有这么一个东西,当要用的时候,上网百度一下,或是查一下手册,怎么用都清清楚楚,这样用了几遍之后,自然就记住了,而且再也不会忘记。
2.先学重要的知识点,用不到的可以暂时放一放,因为你时间有限,遇到比较难的知识点,如果不是特别重要的,就跳过去,当你哪天用到的时候再来好好的研究,带着问题去学习,你会发现学习难的知识点也没有那么痛苦。比如我在学正则表达式和linux系统时,都是因为要用到了才去学,并且感觉学起来还很有意思。
3.要善于查资料,互联网就是最好的老师,遇到问题先百度,至少能够解决你98%的问题,因为你遇到的问题别人肯定也会遇到,除非你已经到了高处不胜寒的境界。
END注意事项完全是自己的经验之谈,每个人有自己的方法,找到合适的方式就好linux小白?
对于Linux初学者来说,首先是敢于尝试!不要被周围影响,小马过河,一定要自己大胆尝试,就会小有成效!
当然,对于学习Linux,前人已经铺好了无数的基石,有无数可以参考学习的资料,而且内核也是开源的,必要的时候可以查看其代码,甚至已经有非常多帮你分析内核代码的书籍资料,甚至还有很多中文资料。所以,不论你打算要学习到如何的程度,已经有无数的资料可以参考,也有极为庞大的社区可以依靠。本文将就Linux学习推荐一些经典免费的书籍,主要侧重覆盖从入门到成为系统管理员的有关方面,学习对象为初学Linux,以及需要重新系统学习Linux的读者,将涵盖以下方面:
入门基础
Linux命令行及工具
Linux Bash脚本
Linux发行版本
Linux系统管理
Linux基本开发
为啥需要重点学习系统管理方面呢?有的Linux开发人员可能会说,不是有专门的Linux系统管理员吗,有必要花大力气学习系统管理吗?这个博主表示是非常有必要,开发可能侧重于功能的实现,而且往往侧重于细节,然而系统管理则直接面向功能本身,更多的是从整个系统的宏观角度来熟悉Linux。咱们有句话说不识庐山真面目,只缘身在此山中便是这个道理,开发者对于细节或许极为了解,但是未必对整个系统功能有足够的熟悉。而如果对于宏观的系统整体有足够的理解,对于开发本身来说也是有很大的促进作用的。
划重点———————————————
【书籍推荐】
入门基础书籍
Introduction to Linux
这是一本免费的书,来自于Linux文档项目。虽然免费,但是不影响它的流行程度,该书比较系统的介绍了Linux的一些基本概念,包括文件系统,命令行,网络等。但是鉴于Linux现在也是版本帝,有些内容可能跟不上最新的版本,但是,这完全不影响对于基本概念的理解。
Linux Fundamentals
从这本书的书名就可以看出,作者Paul Cobbaut就是侧重于介绍Linux最基础的有关知识。涉及到Linux的历史,如何安装以及一些简单但是常用的命令。
Linux命令行及工具书籍
GNU/Linux Command−Line Tools Summary
这本书同样来自于Linux文档项目。适于初学Linux命令行的读者。
Bash Reference Manual from GNU
此书来自于GNU,着重介绍Linux命令行。
The Linux Command Line
如果你把前面的几本基本的命令行的书籍啃完,并迫切希望能够进一步深入了解命令行,那么这本出自William Shotts的书是必须一读的,此书500多页的篇幅,极为详尽的介绍了Linux命令行,也许你自诩比较熟悉命令行,相信此书还是能够带个你新的见识。
Linux Bash脚本书籍
Bash Beginners Guide
顾名思义,此书就是为初学者准备的,同样来自于Linux文档项目。
Advanced Bash-Scripting Guide
如果你对Linux Bash脚本有了基本的认识,那么这本书将是你进阶的必备书籍。此书900多页的篇幅涉及Bash脚本的方方面面,不论对于打算进阶或者已经较为熟悉的人来说都是一本重要的参考书籍。
The AWK Programming Language
AWK命令是一个极为强大的Linux命令,同时提供非常强大的脚本支持。也正是因为强大,所以就有专门的书籍来介绍这个命令,如果你要把自己的Linux命令再提升一点的话,建议看下这本书来深入的学习该命令。
Linux 101 Hacks
不论从这本书的书名,还是这本书的来源The Geek Stuff,此书都暗示着其将以新颖独特的角度为你介绍Linux脚本。
Linux发行版本书籍
CentOS System Administration Essentials
这本书较为系统的介绍了Centos系统的有关知识,包括了文件系统,包管理系统,用户系统,安全中心以及一些常用应用软件介绍,对于使用Centos系统的人员还是有所帮助的。
Ubuntu Manual
这本书来源于Ubuntu Manual网站,以不多的篇幅较为系统的介绍了Ubuntu系统的日常使用。
For Linux Mint: Just Tell Me Damnit!
这本书集中介绍了Linux Mint系统,涉及了安装,包管理,定制桌面等方面。
Solus Linux Manual
顾名思义,此书介绍Solus Linux系统,篇幅较短。
The Debian Administration’s Handbook
这本书号称Debian Linux系统的圣经,涵盖了Debian的历史,安装,包管理,虚拟机,存储等方面,对于使用Debian系统的人员来说,此书必备。
Linux系统管理书籍
虽然此章节被独立命名为Linux系统管理,但是,前面的章节其实都可以认为在此范畴,只不过更加偏向于基础。所以,在这章节中都是侧重于较为深入的系统管理有关知识,最好是在前面章节的基础之上再学习此章节。
Linux System Administration
这本书也是出自于Paul Cobbaut之手,覆盖了网络,磁盘,用户,内核,库等管理。
Advanced Linux System Administration
如果你觉得自己很懂Linux系统管理,也非常希望别人能够知道你很懂,那么你应该去参加LPIC。而要参加该认证,此书是必看的官方指定用书。
Pro Linux System Administration, 2nd Edition
这是一本非常详细的Linux系统管理的书籍,全书1000+页的篇幅涵盖了Linux系统管理的很多方面,即适合初学者,也可以作为有一定基础的人系统学习的重要参考。同时,该书的第二部分介绍了很多Linux系统管理的应用,如NTP,DNS,邮件,文件共享,性能监控等等,非常值得一看。
Linux Bible 9th Edition
不用讲了,敢取这么牛逼的名字,而且书的评价还不错,必然是好书。此书将近1000页的篇幅,从不同程度介绍了Linux系统,比如如何入门,如何成为Linux的熟练用户,如果成为系统管理员,如何成为Linux安全维护人员等等,还是比较实至名归的。
Linux Servers
此书又来自于Paul Cobbaut,从书名就能推测其范畴,主要侧重讲述如何打造你的Linux服务器,包括web server,mysql数据库,DHCP等。
Linux Networking
Linux网络对于系统管理员来说是最为重要的一块之一,同样出自于Paul Cobbaut之手,较为系统的介绍了Linux网络基础知识,网络配置,同时着重介绍了常用的网络服务等。
Linux Storage
此书作者估计你都能猜到了,不错,又是Paul Cobbaut。该书同样较为系统的介绍了Linux的存储系统,涉及文件管理,磁盘管理,数据库等方面。
Linux Security
作者就不介绍了,你懂的。很多时候对于Linux系统都更侧重于功能方面,对于安全方面往往做的不够。然而现在网络安全正面临越来越严峻的挑战,由网络安全带来的损失也是越来越大,因此,对于Linux的安全管理已经成为系统管理最为重要的一部分。此书同样系统的介绍了Linux的安全管理有关方面,涉及用户/组安全,文件安全,iptables防火墙,selinux安全等方面。
Linux基本开发书籍
最后,稍微推荐一下Linux开发有关的书籍。
Advanced Linux Programming
此书面向致力于Linux软件开发人员,介绍了Linux多进程,多线程,进程间通信,以及硬件接口等方面,对于从事有关开发工作还是很有帮助的。
Linux博大精深,很多人即便从事一辈子Linux开发也未必能够熟悉Linux的各个方面。为了能够支撑自己在Linux的路上走的足够远,一个牢固的基础是必须得有的,本文侧重推荐Linux系统管理的有关书籍,希望读者能够对Linux的宏观整体有个非常透彻的理解,为以后选择某个方向深入研究铺好路。同时,也欢迎各位的其它推荐,欢迎大家在评论区留言,帮助楼主推荐更合适的书籍![祈祷]
该从哪门语言入手呢?
高中学历完全可以学编程,更何况你才20岁。
首先要确定自己是不是真的喜欢这个行业,如果没有很强的兴趣支撑,我猜你坚持不了多久。因为学编程并不光是学习一门编程语言这么简单。
不知道题主对于软件开发行业的发展方向是否了解。对于题主的情况而言,我建议学习Web开发,或者网络爬虫方向。因为这两种入门都是很容易的,学习两三个月往往能做出实际可用应用程序,有助于提成自己的信心,持续保持学习的动力。而这两个方向目前社会上所需要的人才也是特别之多。
Web方向目前最流行的就是php、java,python web方向几年来也发展起来了,不过岗位没有前两者多。
java入门门槛高,学习周期长,所以对于题主来说我是不太建议学习这个方向。不过也需要看自己的兴趣,而且你也才20岁,说一句实在的其实学哪个语言都行,只要坚持下去,进入软件开发行业是完全可以的。
PHP和python相对于java要简单得多,入门容易,PHP由于强大的lnmp生态,所以深受中小企业喜欢。
python随着近几年的大数据和人工智能的推动,更是火热的一塌糊涂。而爬虫方向则是非常容易入门的,现在招聘爬虫工程师的是非常多的。
下面是在智联招聘上截取的:
PHP:
JAVA:
Python爬虫:
对于选择哪个方向还是得看自己的兴趣了。
以上只是自己的见解,如有问题可以下方回复,谢谢。
如果喜欢PHP的话,我之前回答过多个关于PHP学习的问题,并且也在持续写自己的原创技术文章,感兴趣的话可以关注 「 Coding之路i 」。23岁了零基础学习编程?
我是计算机专业的,对于编程,我觉得你应该考虑清楚你是否真的想从事IT行业,当然并不是看不不起你,而是这个需要足够的耐心和毅力,甚至说是枯燥的,不管什么东西半途而废都是劳财伤力的。
如果你考虑清楚了,那么现在你要给自己一个大概的定位,比如,你是想走大数据,前端,JAVA还是安卓等。那么,现在你可以从以下几步去做。
(一)你可以在网上招聘信息里看它岗位要求,需要学哪几种语言,运用哪些软件等系列要求。那么此时的你已经有了方向,知道自己应该需要学什么。
(二)这个时候,你需要背单词了,你需要会写和知道它的意思。因为大部分软件都是纯英文的,你看不懂意思,很难下手,而且,至少你要看得懂代码吧,要不然的话无论你敲代码和找错都会茫然。当然,你也可以选择不背拿手机有道去查或者直接百度,这样的话就有点耗时。
(三)学习的话你可以有几种选择,报培训班和自学。那么你需要买那种入门或基础的书去学,对于书的选择,你可以从多方面了解,看评价,适合自己的才是最好的。说实话自学的话,其实挺苦逼的,没有人监督和为你解惑,自己的话有时候很容易陷入死胡同里,一天或者几天都无法解决问题。这个时候就需要大神了,你会发现,你的问题大神就需要几分钟就能解决,这个时候的自己是无比的郁闷,至少当时的我是这样。所以自学的话如果有条件一定要认识这方面的大神,有大神的帮忙会事半功倍。或者去网上或者网盘里搜索有关视频自己学,或者网易云上的资源也还行。当然大学的图书馆的话,这个也是可以很好的利用的。
培训机构的话,这是个速成的方法,至少你不会茫然,他会从基础教你,不过具体教的怎样,这个,我不就不清楚了,没培训过。说实话,如果选择培训的话,这个培训机构需要慎重选择,从师资,实力,资金,口碑等多方面考虑。
这是我个人对学编程的一些建议,希望能够帮到你。不管选择哪种方式学习,自己一定要认真学,然后多问,学到了就是自己的。然后IT行业更新速度很快,所以,需要不断学习改善,最后希望你如愿以偿。