谈谈这些年学习Java的一些心得,程序猿的世界。(新手入门)

如果你已经决定前行,其实你已经成功了一半!

分享给即将踏入编程之门的朋友们

昨天在【大学篇】里分享了自己在大学时的学习的一些历程,不知道是读者里牛人太多,还是…只能说林子大了,什么鸟都有,网络有一定的便捷性,不过也有一定的局限,如果两个人见面很有礼貌,可能转到网上就是另一种情景,心态很重要,相互尊重,现实如此,网络也如此!(还是那句话,非喜勿喷,高手请绕道)。

在(大学篇)里给大家介绍了下笔者大学时学习的一些经历,主要是自己的时间轴,没有提及相关的学习方法,本篇文章,我将结合自身学习的情况,给即将学习Java或者刚刚入门学习Java的童鞋们分享下自己在学习方面的一些心得(主要是Java web方向)。

  1. 配置学习环境,JDK,环境变量配置,学习DOS相关指令以及使用。

  2. 如果时间允许,建议先学习下C语言(很多语言底层都是使用C开发,学习下还是有很大的启发性)。

  3. 对于刚接触编程的童鞋,先以教学视频为主进行入门,这样可以手把手的跟着他来实现代码。后期建议可以看书籍,对有些东西有比较深入的了解。(先学会用,然后再去研究其中的原理)

  4. 刚开始的一段时间,先使用文本编辑器进行写代码,刚开始培养自己的代码感,IDE的各种提示功能太强(Eclipse,Intellij)。

  5. 有些东西归类为规定性的东西来认知,比如Java的变量类型,表达式,有些东西要明白设计的原理,比如面向对象的设计思想,抽象能力(编程来源于生活,又回归于生活)。

  6. Java SE部分是Java基础的部分,也是核心部分,主要讲解了Java基础语法,多线程,集合等一些Java语言的核心特性。(是后续程序的核心)

  7. 开始学习Java Web部分,首先要了解Browser/Server,浏览器/服务器模式,比如我们生活中上网浏览网页。那么这个就分为了两部分1.前端部分(html,css,javascript),2后端部分(Java Web)

  8. 前端部分我们需要接触的有Html(网页结构)、css(网页布局)、Javascript(网页动态交互),其实Javascript(它和Java没关系)也是一门语言,要学精也是需要付出很多精力。

  9. 后端部分:Java Web 后端是通过 Servlet(服务器端小程序)来实现的,它需要在容器里面(如Tomcat)来运行,刚开始学习的时候需要学习Servlet的使用方法原理。

  10. 用户访问比如登录注册 肯定要有数据库存储吧,刚开始你还需要学习Mysql数据库,然后Java怎么来操作数据库,这些都需要学习。

  11. 等你学习完相关的知识点后,后续比如,国际化,文件上传等知识也会迎刃而解。

  12. 接下来就是三大框架Spring Stuts2、Hibernate,不过现在比较流行的是Spring、SpringMvc,Mybatis,不同公司根据不同业务来选择吧。(这些确实需要一些精力来学习,不过使用框架开发可以提高我们开发的效率)

  13. 设计模式,后期也要去接触,但切记程序不要为了设计模式而设计程序,有些根据具体业务需求来设计,不要生搬硬套。

  14. 学习完这些,其实自己在学习的过程中应该培养出了一种学习能力,比如我要使用一个开源的框架,首先访问官网,看下Get start,然后实现下简单的Demo,根据自身需求结合API进行开发,如果有相关的技术博客也可以参考。

  15. 推荐一些常用的网站:

GItHub:https://github.com

发现好的开源项目,托管自己的项目。

stackoverflow:http://stackoverflow.com

一个程序员问答网站,你会发现没有比这个网站解答更详细的了。

google:

技术类的还是建议使用google

iteye:http://www.iteye.com

国内较大的Java交流社区,有些博文还不错

我这里也收集了一些Java的视频教程,如有需要可以在下面留下联系方式!我有时间也梳理下分享出来!

谈谈对java编程的个人建议及学习路线

不善于做笔记,不善于总结。解决方法 :人总是有忘性的,今天记得很牢的东西,过一星期也许就完全忘记了,用笔记下来,好记性 不如烂笔头,不要太相信自己的记忆。

注重理论,轻视实践:学习新知识前先把关于这方面的理论全部掌握后再去实践,大错特错解决方法 :在了解理论后,就立即去实践,实践驱动理论的学习,这样掌握理论才更加扎实,不容易忘 记。

不善于思考,遇到问题首先想到问别人解决方法 :勤于思考,在学习的道路上会遇到大量问题,这些遇到的问题是你的宝贵财富。遇到问题时 首先想为什么会出现该错误,尤其在程序中,应该学会看错误提示,根据提示去寻找错误的根源,实在 不行再去问同学,问老师因为自己寻找错误的过程是最好的 学习过程,这个错误一旦被自己解决掉,首 先得到的是极大的满足感,另外会留下深刻的印象,这是看书所得不到的,有过这种经历的同学才会有 这种体会。即使没有解决也会从这个过程中学到很多东西,这种感觉是:只可意会,不可言传。

学好技术,一步一个脚印,踏踏实实,严重错误解决方法 :技术的发展日新月异,尤其在软件方面。学习一门新的技术,开始时不必面面俱到,先把 hello world 写出来再说,要“ 趁热打铁” ,会的东西,仔细看;不会的东西,硬着头皮去看,实在不行就跳过。

小结 :实践,实践,还是实践, 即使书上有代码,也要把它敲出来,敲代码也是有感觉的。

学习Java决不能听完敲一遍就过,一定要多敲几遍,第一遍可以跟着老师的思路,后面一定要有自己的 思路,慢慢培养自己的编程思想和实现功能的逻辑。甚至可以自己给自己出题,完全靠自己实现一些有 意思的小功能,对提升自己的能力和代码熟练度都有不小的帮助。多看视频,多练习,主要是练习一些算法的运用,建议下载一些编程练习题,一道一道弄通弄懂。经常 做笔记,用记事本把一些经典问题保存下来,以备复习。 如果是零基础的话,可以自学或者找培训机构(一定是线下学习),跟着老师一步一步地走,反复看视 频,每看到视频出现一段代码就马上在电脑上给他跑出来,不要直接拿源码光盘来复制,不要把视频看了半段才开始敲代码。这样几天后你会找到一些感觉,然后没事就想些代码来写写,比如想下怎样把 名字转换成乱码,然后再用另一个方法转换回来,模拟步话机发送几条消息什么的。这样下去不出3个月 你定牛逼。

一门永不过时的编程语言——Java软件开发。5G时代,万物互联,java开发必然是越来越火,所以java 是必要且必须的,下边就是总结的java路线据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域 中,javaEE程序员的需求量10年来一直居于首位!

程序员一般职业线路比较简单,没太多选择,除非换行业者另说。两个大体方向发展,这里分3年、5年、10年来说管理方向(广度):成为管理人员,例如产品研发经理,技术经理,项目经理等技术方向(深度):成为高级软件工程师、架构师,大数据工程师等第一阶段-——三年我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段。

第二阶段——五年五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西, 热衷于研究各种技术实现细节、看了N多好书、写一些博客、在Github上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物。

第三阶段——十年十年又是另一个门槛了,转行或是继续做一名程序员就在这个节点上。如果在前几年就抱定不转行的思路并且为之努力的话,那么在十年的这个节点上,有些人必然成长为一名对行业有着深入认识、对技术有着深入认识、能从零开始对一个产品进行分析的程序员,这样的人在公司基本担任的都是CTO、技术专家、首席架构师等最关键的职位,这对于自己绝对是一件荣耀的事,当然老板在经济上也绝不会亏待你。或者就是往管理方向出发,这个时候你的技术能力,我相信是非常牛的了,对于产品、项目经验也是非常的丰富,可以往研发经理,技术经理,项目经理等方向去发展。选择什么样的职业线路,需要客观认识自己,根据自己的特点进行规划,选中后制定有序的学习计划。 职业机会也是留给已做好准备的人。

我的个人建议:1.首先零基础学习java先要有一个学习计划,了解java要学习哪些技术。

2.做好自己的时间规划,如何快速入门那肯定是需要不断地提高自己的学习效率,学习过程中尽量把手机调至静音给自己一个安静的学习环境和氛围。

3.很多人凭着自己的感觉学,由于不掌握适当的学习方法、学习方式,导致越学越怀疑,越学越 迷茫,自 信被打击,觉得自己不适合,最后放弃。盲目地看书学,对大部分人来说,一开始就看书学,就是一个错误的方式,看不懂,即使看懂了也不会写程序,最后导致浪费时间。新手都觉得自己学了后面的忘了前面的,这是由于不专业的学习过程导致的。

4.学编程禁忌中途断开,要一气呵成, 自己在学习的时候不要只照着视频练习,这样学习一点意义都没有,还会让你产生错觉觉得自己是学会了的。

四千字干货 – 十三位Java工程师的学习心得

史上最强Java学习大全,多亏我足够无耻,才从公司十三位Java程序员口中问出方法来。

没错。

这篇文章总结于我们公司十三位使用Java作为开发语言的程序员前辈,方方面面近四千字。

作为十大编程语言榜首的Java,真的太多人学也有太多要学的东西了,以至于后台总有人问Java该怎么学,甚至还有具体问编程问题的。

乘此机会,整理Java程序员的从入门到精通之路,分享一下这么多年来我们公司Java程序员的学习心得。

为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花了一整个星期才终于写完。

内容框架如下:

  1. 职业规划
  2. 学习安排
  3. 实操技巧

这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。

职业道路该怎么走?

因为题主已经明确了自己想要成为「真正的java开发工程师」,所以这里只介绍Java相关的职业规划。

Java这门语言可以发展的方向很多,如果想走开发这一条路的话,至少有七种选择:

传统领域:

  • 后端开发:Java、Shell、Python、SQL
  • 全栈开发:Java、HTML、CSS、JavaScript、Shell、Python、SQL、PHP
  • 移动开发:Java、C、C++、Python
  • 游戏开发:Java、 C#、C++

新兴领域:

  • AR/VR:Java 、C#,、C++
  • 物联网:Java、C、Python
  • 计算机视觉:java、C++ 、Python

本文不做其他编程语言的发展道路以及非开发道路的职业分析,如果感兴趣的话,可以移步作者的另外一篇文章,里面有非常详细的介绍。

计算机专业学什么语言好找工作?www.zhihu.com

了解完了一门语言可能的职业发展方向之后,你就可以根据你的个人喜好以及当下情况,选择不同的方向钻研。

因为你的人生是你自己的,我只能给你提供道路,没办法帮你选择。所以第一步,我只能帮你到这里了。

通过上面的分析,你可以看到,不管你走哪条道路,你都不能只会一门编程语言,也就是说「真正的java开发工程师」不能只会用Java,你必须得会一些其他辅助性的语言。

所以,关于学习规划,我会分为下面三个部分来讲:

  • 编程通用知识
  • Java的学习步骤
  • 其他编程语言的学习

编程通用知识:

每一个知识点后面,我都放了一门推荐课程,如果自觉掌握扎实,可以跳过。

  • 算法

算法导论-麻省理工:

https://www.bilibili.com/video/BV1Tb411M7FA?from=search&seid=12004933714620194673​www.bilibili.com

  • 编译原理

编译原理-哈工大:

https://www.bilibili.com/video/BV1zW411t7YE?from=search&seid=7656665281813628810​www.bilibili.com

  • 数据结构

数据结构-浙江大学

https://www.bilibili.com/video/BV1JW411i731?from=search&seid=5548436889164823839​www.bilibili.com

  • 操作系统

计算机操作系统精讲-华中科技大学

https://www.bilibili.com/video/BV1Wb411H7Ge?from=search&seid=4742768788475129453​www.bilibili.com

  • 网络原理

计算机网络原理 -哈尔滨工业大学

https://www.bilibili.com/video/BV1gb411k7gd?from=search&seid=5937420088890690226​www.bilibili.com

很多人都会问,学这些有什么用?我编程又用不到。

这里我举个例子,都说学习就像盖房子,而基础学习就是打地基,没有地基能不能盖房子?当然可以!

但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。

所以,为了你之后的学习更顺畅,一定要耐着性子哪怕逼自己也要把这一块给啃下来。

这直接决定了你之后的发展高度。

Java的学习步骤

这一块分为学什么以及怎么学两部分。

学什么

1.语言基础

说白了,就是学习这门语言的基本语法。

需要注意一点的是学习Java语言基础的时候,一定要多动手,不要觉得自己理解了就跳过去了。不然等你真的要实操的时候,你会发现有很多细节是你之前忽略了的,而这些细节阻碍了你的整个编程。

下面是推荐的一些书籍以及课程:

书籍:《Head First Java》《Java核心技术》

视频:

Java零基础教程视频

https://www.bilibili.com/video/BV1Rx411876f?from=search&seid=15227919425633671150​www.bilibili.com

学到最后,你能掌握下面这些知识就够了:

2.进阶学习

1.多线程高并发

推荐课程:

马士兵2020年最新Java多线程高并发讲解:

马士兵2020年最新Java多线程高并发讲解——20年架构师告诉你Java多线程与高并发应该怎么学_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

2.Web开发

它们的学习顺序应该是从上到下,因此最先学习的应该是前端开发的HTML/CSS/JS三种语言。

课程:

HTML5+CSS+JS全方面解析

【星月教你做网站】HTML5+CSS+JS全方面解析,附上节课回顾word文档帮助记忆,最新最全的HTML5教程—_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

学完这方面的内容后,你可以试着自己写一些页面。要求是尽量做的漂亮一点。

接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。

Servlet和JSP

Servlet和JSP(JAVAEE基础)【北京尚学堂·百战程序员】_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com

还是那句话,一定要多动手

3. 数据库使用

你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

MySQL 基础+高级篇- 数据库 -sql -尚硅谷

https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=11418667468726396464​www.bilibili.com

4、开发框架

开发过程中一般为了提高效率,会使用一些Java Web框架,而这也是你需要掌握的。

目前比较主流的是SSM框架,即spring、springmvc、mybatis

学习这个框架,经常接触到一个叫maven的工具,这个工具也是你以后工作当中几乎是必须要使用的工具。所以在你学习搭建SSM之前,可以先了解一下maven的知识,不需要太深入,只要大概即可,进一步的学习可以边用边学。

至于学习三个框架的搭建,你一定要可以快速的利用它们三个搭建出一个Web框架。

课程:

mybatis-spring-springmvc-Java一站式学习

https://www.bilibili.com/video/BV1mE411X7yp?from=search&seid=15801924176319161348​www.bilibili.com

学完之后,你可以尝试着做一个简单的增删查改的Web项目,检验学习成果。

其他编程语言的学习

作为一个程序员,不可能靠一种语言走遍天下。所以你还要拓展至少一种其他语言。

至于,精通python之后的编程语言该如何选择,首先就得看你自己的工作需要。

或者,你可以参考下面的这篇文章。

最热门的十种编程语言,总有一种适合你

怎么学?

每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。

但下面这几点,最好还是不要去做了,因为我带了这么多人,敢这样做的都是事倍功半,结果惨不忍睹。

1.一味的对着别人的代码去敲。

刚开始不会做只有跟着别人敲,这不是问题,问题是跟着别人敲了之后你要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让你看得仔细点,练了打字外并没有其它任何帮助。

因为模仿复现不是关键,思考才是关键。你要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。只有这样,你的学习才是有效的。

2.想着一口气吃成个胖子

这一块的情况稍微少见,但也不是没有,有的人急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。

一个典型的例子,我两年前带的应届生,北京一所高校来的。当时他做的那部分出了点问题,我就推荐了一本书给他,让他看完后把这个问题解决,因为不是很急,我说一个星期搞定就行了。结果两天后,他就跑过来跟我说书看完了,问题也解决了。我问他怎么做的,他说他看了个大概后直接照着书上做了。

技术这玩意儿,不是看了个大概能照着做就会了,一口气吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,这里给个建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。

说完了第一点如何学习基础知识,接下来说说第二点如何巩固基础知识。方法千千万,最有效的我认为还是刷题,有方法的刷题。

下面这个刷题方法很普通但也很实用,推荐给你:

第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。

第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。

第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。

在这里,给大家推荐两本书还有一些学习网站,能够让大家学得更轻松些。

三,实操技巧

这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。

如何找项目练手:

1.做一些实操性强的个人项目,自己练练手

田纳西大学助理教授奥斯汀·亨利结合自身经验,给出了一份“程序员都应该尝试的挑战性项目”清单,包含下面六个项目,我之前做了一遍觉得还不错,推荐给大家:

  • 文本编辑器
  • 2D游戏-太空侵略者
  • 编译器-Tiny BASIC
  • 迷你操作系统
  • 电子表格
  • 电子游戏机模拟器

每一个项目都存在不同的挑战,比如文本编辑器就要求在不使用GUI框架中内置的文本框组件的情况下,搭建支持光标移动、选择、插入和删除操作的文本框并将文本文档存储在内存中。

如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,你的能力肯定能再上一个台阶。

2.写技术文章

大家想必都知道费曼技巧,这也是其中的一种应用了,把你自己弄懂的东西教给别人,让别人也能看懂,在这个过程中你肯定还是要把一个完整的项目给做出来的,一整套下来,你会将自己理解的东西掌握的更透彻更深入。

也算是一种不错的实操方式了,能让你的基础更加牢固。

3.接一些开发兼职

这是三种方法中实操性最强的一种了,没有之一。

而且不用说,这也是最快最有效的方法了,毕竟编程这件事,光有理论是不够的,动手实践才是关键也是最终目的。

但兼职也有很多坑很多小门道,你首先得注意项目是不是靠谱,像那种没有需求文档的就不要接了。

这里我分享一篇很实用的文章,不仅教你如何判断项目是否靠谱,还整理了国内外总计24家IT类兼职平台的特点及区别,希望能对你有所帮助。

六个接私活的网站,你有技术就有钱

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。