精华内容
下载资源
问答
  • 学习编程, 但不知道从哪里开始

    万次阅读 2019-11-04 20:18:56
    译文地址: 我学习编程, 但不知道从哪里开始 译者: 朴瑞卿 常常被问的问题 作为导师, 笔者经常被问到以下问题: “如果我是新手, 我应该学习哪种编程语言? ” “哪种编程语言最适合工作? ” “最流行的编程语言是...

    原文地址: I Want to Learn Programming but I Don’t Know where to Start

    原文作者: Robyn Silber

    译文地址: 我想学习编程, 但不知道从哪里开始

    译者: 朴瑞卿

    常常被问的问题

    作为导师, 笔者经常被问到以下问题:

    • “如果我是新手, 我应该学习哪种编程语言? ”
    • “哪种编程语言最适合工作? ”
    • “最流行的编程语言是什么? ”

    顶级编程语言

    如果您正在寻找顶级编程语言的官方排名, 可以在这里找到: IEEE Spectrum top programming languages

    该列表很适合检查指定的语言是否还在广泛使用. 但如果您不熟悉编程, 笔者建议您不要仅仅通过这个列表来选择一门语言.

    译者注: PHP不一定是最好的开发语言呢…(破音)

    如何选择一门编程语言

    计算机科学完全是一个累积研究领域. 这意味着, 每一个后续的知识点都是以先前的知识点为基础.

    如果您曾在学校中竭尽全力学习编程(或任何其它科学领域)但失败了——或许问题并不出在你身上. 任何累积性学科的优秀教授都去会精心规划课程. 只要每个学生都充分准备并满足前提条件, (教授)对于学生的先验知识的预期就应该是明确的. 一个好的教授理解这种预期并且假定没有超出该范围的知识. 因此, 任何超出预期范围的知识点都必须要进行教授. 课程中的每个知识点都是循序渐进的.

    当一个学科是累积性的, 在设计课程或学习路径时必须一丝不苟.

    综上所述, 不要依据排名选择语言. 选择一种您拥有完整的学习路径且无需对先验知识进行任何假设的语言.

    译者注: 选择编程语言要进行综合考量, 如语言学习曲线、社区活跃度、职位需求量(如果您是为了工作的话)、您自身的基础及意向从事的行业领域等

    几句忠告

    在开始学习编码之前, 请务必反复思考一下笔者的观点: 计算机科学中的一切都循序渐进的.

    我喜欢重申这一点, 因为有追求的程序员可能犯的最大错误就是, 由于错误地认为自己不够聪明去学习编程而放弃. 学习编码与您的智力无关. 诚然, 学习编程很难, 但这并不是取决于您是谁, 而是由于有太多的知识点需要学习.

    首先, 请接受以下即将发生的情况: 为您介绍一个对您完全没有意义的新知识点.

    这种情况将一遍又一遍地发生. 每次发生这种情况时, 您的处理方式将决定你的成就.

    如果当前你正在学习的知识点对你而言很无厘头, 请停留在当前位置, 暂不要进行下一个知识点. 重申一下, 这些知识点是循序渐进的. 略过前面的知识点无异于搭建空中楼阁.

    译者注: 我有一招从天而降的掌法, 少侠要不要学? —— emmm… 我还是先锻炼身体吧

    我发觉自己始终处于这种情况. 常常不得不多反复观看同一视频教程讲座, 以掌握所学的内容. 如果您发现自己和笔者的处境一样, 请不要气馁.

    如果您使用的辅导资料(或书籍)没有充分诠释该知识点, 那么务必去寻找其他适合您的资源. 没有任何理由因辅导资料所涵盖的知识点对您没有用处而放弃. 您可以在YouTube上免费找到几乎所有想要学习的内容. 找出要搜索的内容(例如, [您的编程语言]中的[知识点] +其他任何有用的关键字).

    如果您正在YouTube上寻找教程, 请先查看统计信息. 快速浏览评分或观看次数. 如果仍然不确定该视频是否值得花时间观看, 请阅读一些评论以了解他人的观点.

    很多知识点第一次见到就很无厘头, 所以, 请避免过多负面的自省.

    译者注: 意思就是不要被各种问题打击到怀疑人生, 坚持下去

    对于您学习路线经过的每一个知识点, 您需要自我反省, 其目的是在学习中去理解. 对于您涵盖的每个知识点, 问自己一些问题, 例如:

    • “这个知识点对我有意义吗?”
    • “有没有新的术语? 如果是这样, 是否为每个新术语提供了正式定义? ”
    • “有没有新技能? 我了解应用程序中如何使用每种新技能吗? 我可以通过解决实践问题来验证我对这项技能的理解吗? ”
    • “明天我会记住刚刚学到的东西吗? 后天呢? 如果没有, 我该如何将其记忆? ”

    最后一条建议: 永远不要低估记忆的力量. 记忆是一种在学习中没有得到充分利用的方法. 诚然, 理解一个知识点是最终目标. 但理解可能需要时间. 如果您真的很难领悟一个知识点, 请分解该知识点并记住其核心内容. 如果您不了解某件事的原理, 那么您的目标应该是背下来. 如果您需要有关如何记忆的技巧, 请考虑使用学习卡的技巧. 您可以在Interview Prep文档中阅读有关如何使用此技巧的更多信息.

    译者注: 想不通, 先记忆, 后理解.

    一. 计算机科学基础

    第一步是学习计算机科学基础知识,这将在我的文章《Intro to Computer Science Terminology》中介绍. 本文的撰写是专门针对每个人. 我特地撰写此文, 即使没有计算机背景的人都易于理解.

    本文涵盖的概念主要是定义性的. 您可以任意阅读这篇文章, 足够满足您的需要. 笔者建议将这些术语记住. 像在学校时那样对待每个术语, 您需要在考试中能够回忆起每个术语的定义. 如果您不想这样做, 也不必强求. 但是, 您记住的概念越多, 就越容易理解后面的知识点.

    二. 命题逻辑(可选)

    您不必具备强大的数学才能成为程序员. 数学技能可能会有所帮助, 但不是必需的.

    如果对自己的数学能力没有把握, 笔者建议您学习命题逻辑. 命题逻辑涵盖的原理是编程的基础.

    您可以从以下YouTube教程中学习命题逻辑: Basic Concepts in Propositional Logic.

    三. Java编程

    在学习了计算机科学的基础知识之后, 你将准备好去学习一门编程语言.

    无论大家的背景如何, 我精心设计一条适合多数人的学习路线. 之所以为这条路线选择Java, 是因为Java是我最有经验的语言.

    Java是需求最大的编程语言之一. 它被归类为一种面向对象的编程语言(稍后您将学习这意味着什么), 并且用于制作桌面、Web和移动应用程序.

    如果您喜欢从书中学习,我建议以下内容: Head First Java.

    如果您正在寻找视频教程,建议您在Derek Banas的Java YouTube教程: Java Video Tutorial中观看1–19、31–33、88和93.

    YouTube教程中的第一个视频将指导您下载一个名为Eclipse的计算机程序. Eclipse是一个集成开发环境(IDE)。您可以将IDE视为程序员专用文本编辑器的一个专业术语. 它只是一个计算机应用程序, 提供用于编程的文本编辑器以及用于运行程序的其他工具. 这是Derek Banas的有关如何下载Eclipse的YouTube视频的链接: Install Eclipse for Java.

    译者注: 推荐IDEA, 一个Eclipse的竞品, 目前易用性比Eclipse略高

    四. 算法和数据结构

    算法是用于执行特定任务的一组指令(或步骤), 其中每个步骤必须明确定义, 能够执行并且是有限的(也就是说, 它不会无限执行).

    数据结构是组织内存中数据的一种方式.

    算法和数据结构是编程中最具挑战性的两个专题. 在编程中, 您无需将算法作为必备基础进行学习, 但如果您希望在一家知名的科技公司担任软件工程师, 那么您将在面试中表现出对算法和数据结构的理解.

    译者注: 原文作者推荐了一门99刀的课(点进去), 译者觉得挺贵的, 链接被我删了, 回家刷《算法导论》吧

    五. Android开发

    在我看来, Android开发是Java编程最有趣的应用之一. Android应用程序主要使用Java进行编程, 因此一旦您学习Java, 就为Android学习做好了准备.

    译者注: 目前Kotlin被Google作为首选Android开发语言.

    这是开始学习Android极佳的免费视频教程:Udacity-Android面向初学者的开发.

    完成上述Udacity课程后, 您将有几种选择. 以上课程应由同一团队Google员工进行扩展. 完成课程后, 其他讲座应该会显示(如果找不到, 请在Udacity上搜索). 这将是一个不错的选择, 尤其因为它是免费的.

    然而, 如果您愿意花钱买一本出色的书, 我强烈建议推荐: 《Head First Android Development:A Brain-Friendly Guide》. 这本书提供的详细的解释和有用的视觉效果可以真正帮助您学习Android的思想. 每章都会引导您完成一个示例应用程序. 所有内容都使用任何人都能理解的文字和图表彻底解释.

    有用的资源

    Stack Overflow是一个程序员可以在其中获得免费的代码帮助的网站. 如果您有困惑并想提出问题, 请先搜索. 如果找不到问题, 那就创建一个帐户并自己发布问题吧!

    译者注: 搜索引擎是一种工具, 寻得答案是一种能力, 提问是一种智慧.

    How To Ask Questions The Smart Way

    如果您对如何学习编程有任何见解, 欢迎下方留言讨论.

    推荐阅读:

    欢迎关注公众号(代码如诗):
    在这里插入图片描述

    [版权声明]
    本文发布于 朴瑞卿的博客, 允许非商业用途转载, 但转载必须保留原作者 朴瑞卿 及链接: http://blog.piaoruiqing.com. 如有授权方面的协商或合作, 请联系邮箱: piaoruiqing@gmail.com.
    展开全文
  • Linux到底学什么

    万次阅读 多人点赞 2019-09-27 21:07:57
    来源:公众号【编程珠玑】 作者:守望先生 ... 前言 ​我们常常听到很多人说要学学Linux或者被人...在回答学什么之前,我们先看看为什么。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应...

    来源:公众号【编程珠玑】

    作者:守望先生

    网站:https://www.yanbinghu.com/2019/09/25/14472.html

    前言

    ​我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?

    为什么要学Linux

    在回答学什么之前,我们先看看为什么要学。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应用程序的开发者或者维护者,如果不了解Linux的基本使用,该如何进行开发或者维护呢?

    当然,也有可能你听说Linux更高大上,或者是说Linux对开发者更加友好(Windows用户把刀放下),这都是题外话了。

    在我看来,学习Linux主要有以下两点原因

    • 使用标准C/C++ 编写运行在Linux上的应用程序

    • 编写部署在Linux上的应用程序,如Python,Java web服务程序

    • 一探究竟。众所周知,Linux开源,windows并非如此。

    而对于Python,它有Python解释器,Java有Java虚拟机,他们实际上对Linux的需求是没有C/C++来的高。即便如此,Linux也是值得Python/Java开发者去学习的。如果你是做C/C++开发,那么Linux是必备的,还记得当前被VC6支配的恐惧吗?

    Linux学习方向

    那么一般说的学Linux是要学什么呢?方向不同,要学习的内容也不同,可以大致分为这么几个方向:

    • 运维,维护Linux服务器

    • 应用开发,开发Linux应用程序

    • 底层开发

    我本人是做Linux应用开发的,因此对于运维方向和底层方向不是很了解,这里仅简单说一下。

    运维Linux主要需要学会对服务器的基本部署,监控,配置,管理等等, 你可以认为,这些机器归你管了,7*24小时保障它能正常提供服务(删库跑路就别做了),所以7月24日请对运维的朋友好点。也欢迎运维的朋友留言纠正或者补充我的说法。

    底层开发需要了解uboot,文件系统,内核等底层相关内容,主要工作可能涉及文件系统裁剪,驱动开发,内核模块定制(如内存管理,进程调度)等等。底层开发总体来说要求比较高。

    应用开发自然是需要学习如何开发在Linux上运行的应用程序,如何定位Linux应用程序问题等等。

    来源:公众号【编程珠玑】 作者:守望先生

    Linux应用开发学什么

    Linux的学习很多会以命令为主,因而初学会觉得枯燥甚至疑惑,鼠标点点点就能完成的事,为什么要劈里啪啦敲这么多?这里给出两点理由,也欢迎你补充:

    • 出于资源的考虑,绝大部分Linux服务器没有图形界面

    • 命令行便于自动化,将一系列操作写入脚本,可代替手动操作

    而它的学习我把它分为这么几个阶段:

    • 基本使用

    • 开发调试

    • 系统认识

    这三个阶段对知识积累的要求不一样,但总体来说并没有严格的先后之分。

    类于windows,当年你学习windows的时候学了什么?

    • 开关机?

    • 安装卸载软件?如安装视频播放器,音乐播放器(为啥要安这玩意?)。

    • 如何打开安装的软件?如打开浏览器上网,打开编辑器写文档

    • 如何存放自己的资料?移动,创建,删除等等

    • 如何使用office 办公软件

    • ……

    是不是想想好像也没有特意地去学习?

    那么对于学习Linux来说也是类似的,就是学会这些最普通的使用,

    • 如何开关机

    • 如何上网

    • 如何打开命令行

    • 如何使用命令行安装卸载软件

    • 如何编辑文本

    • 如何创建,移动,删除文件

    • 如何查看文件内容,解压缩文件

    • ……

    这个阶段最难的就是从图形界面到命令行的转换

    那么第二阶段呢,就需要学会:

    • 如何编写Linux应用程序

    • 如何编译或者构建你的程序

    • 如何运行你的程序

    • 如何定位程序bug

    而第三阶段,则是一个需要漫长的学习过程,但都是为开发服务,包括:

    • 理解并践行一切皆文件

    • ELF文件,Linux主要可执行文件格式

    • Linux各大机制的基本原理,如进程调度,内存管理,虚拟内存,文件系统等,既然要写Linux应用程序,怎么能不了解它所在平台的主要机制呢?

    越是疑难问题,越需要这些最基本的知识。

    怎么学?

    来到了大家最关心的问题了,同样的,每个人的情况不太一样,这里只给出我的个人建议。

    关于第一阶段,你可以先定个小目标,例如一段时间内学会在Linux下进行你的日常活动(玩游戏就算了),例如编写文档,看视频等等。同时建议:

    • 选择主流的发行版,如ubuntu,centos等,遇到问题时比较容易解决

    • 在window下安装虚拟机,这样Linux环境就随你折腾了

    在这期间,你可能需要了解

    这里的学习你可以通过网上搜索资料或者购买相关书籍进行操练。如果你不想安装虚拟机或者docker,你可以通过一些在线的Linux来体验。

    第二阶段也是主要的阶段,这一阶段要学习的东西非常多,多是命令的学习,这里同样可以参考《鸟哥的Linux私房菜》。不过初期阶段建议抱着一个目的去学习,就是如何在Linux写一个完整的程序,为了达到这个目的你需要学习

    这个过程涉及到的命令非常多,但是不建议每一个都去细学,首先知道有这么一个命令即可,然后需要的时候能够快速找到用法,如通过man命令查看手册。总之,记住你的目标就是流畅地进行开发调试,而在达成这个目标地过程中,你自己自然会慢慢接触很多东西。

    但是有必要说明的是,开发Linux应用程序并不一定要在Linux下编写代码,你可以选择利用samba等工具在windows和linux之间共享文件,然后再在windows下熟悉的工具中或者你认为比较强大合适的工具中编写代码,在Linux下进行编译调试即可。当然你也可以选择Linux下的IDE,或者将vim调教一下也是可以的。

    第三阶段要求是比较高的,这个时候你应该学习过操作系统的相关课程(如,《现代操作系统》,《操作系统原理》等),然后你可以通过诸如《Linux内核设计与实现》,《深入Linux内核架构》,《深入理解Linux内核》等书籍进行相关概念学习,也可以通过阅读源码进行深入学习,最终,你需要了解堆和栈,内存管理,进程调度,虚拟内存,文件系统等相关知识。
    当然相关命令学习也必不可少,例如readelf,nm,ipcs,iostat,objdump,free,chrt,pmap,uptime,top,pidstat等。

    以上就是三个阶段Linux相关的学习内容和建议,实际上其他相关内容的同步学习也非常重要,包括相关数据结构与算法,系统编程,计算机网络等内容的学习,否则看到很多命令的结果仍然会一脸懵逼。

    最后,建议实践再实践

    总结

    限于本人知识水平有限,以上属个人建议和看法,仅供参考,欢迎留言说说你为什么要学Linux,有什么学习方法?

    推荐阅读:

    linux常用命令--开发调试篇

    Linux常用命令--文本查看篇

    Linux常用命令--系统状态篇

    Linux常用命令-解压缩篇

    关注公众号【编程珠玑】,获取更多Linux/C/C++/Python/Go/算法/工具等原创技术文章。后台免费获取经典电子书和视频资源

    展开全文
  • 推荐10个堪称神器的学习网站

    万次阅读 多人点赞 2020-01-07 10:27:26
    最近很浮躁,手头的一些网站都看烦了,看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 多都起来了。...

    每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。”

    今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈)

    既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推荐给大家。如果觉得不错的话,文末请点赞。

    01、大学资源网

    大学资源网是一个完全免费并且功能非常强大的学习网站,它免费提供了丰富并且全面的学习视频教程,并且视频课程一直在更新,非常良心。

    我比较看重的是它里面的考研视频教程,有数学、英语、政治、专业课等等;还有英语视频课程,对于一名程序员来说,如果想要变得更优秀,英语是不可或缺的。

    另外,我看到它还贴心的支持:小学课程、初中课程、高中课程。挑了几个看了一下,竟然找到了年轻时上课的感觉。

    02、北京大学公开课

    北京大学公开课是北京大学出品的一个完全免费的公开课视频学习站,它面向大学生,也向社会大众免费开放。

    我比较喜欢的是里面的《数据结构与算法》,对于我们程序员来说,既然进入了专业的编程领域,算法、数据结构、网络模型、计算机原理等这些计算机科学专业的理论知识是必须要学习的。

    虽然算法很难,需要智商,但我还是要鼓励大家学一下,一旦掌握了其中的套路,你会受益无穷的。

    03、大学自学网

    大学自学网是一个完全免费的大学生自学网站,它不仅支持免费在线观看所有学习视频,还支持免费下载所有学习视频,是一个可以满足很多人自学需求的良心网站。

    向下拉,你会看到一个计算机板块,里面有“网络安全基础”、“嵌入式Linux操作系统”、“Python”等热门方向的视频。这些也是工作以后的刚需。

    我看里面还有一个“电脑安装与维修实用技术”,妈妈再也不用担心我不会给女朋友修电脑了,哈哈哈。

    04、偶书

    偶书是一个完全免费的精品电子书网站,它不仅支持电子书搜索下载,还支持非常全面的电子书分类功能和非常贴心的电子书推荐功能。

    下载了一本《Java编程思想》,质量还是挺不错的。另外,推荐大家空闲的时间可以读一读《代码大全》、《编程珠玑》、《重构》等等,偶书上都可以搜索到。

    05、哔哩哔哩

    bilibili 是国内知名的视频弹幕网站,通过动漫打出了名声,最近两年发展势头迅猛,里面有不少有创意的 Up 主,不乏一些有趣的程序员。

    看到我的好朋友【程序员良许】也在上面,我就知道 B 站上的视频质量越来越高了。顺带再推荐一些 up 主给大家,比如说小甲鱼(涉及到 C 语言、Python、Web 前端等)、技术胖(主攻 Web 前端,涉及到 React、Vue、Flutter 等等)。

    06、简单教程

    简单教程是一个完全免费的高质量编程开发学习网站。它提供了丰富的基础学习教程,包括:微信小游戏开发、移动开发、前端开发、后端开发、java 技术、.NET 、数据库和缓存、运维开发、XML 。

    如果是 Java 程序员的话,我建议大家先学一学《设计模式》。设计模式就好像是武功的招式,有了这些招式,加上一些内功,就能战无不胜了。

    07、Stack Overflow

    Stack Overflow 是一个世界级的问答网站,该网站允许注册用户提出或回答问题,还可以对已有问题或答案加分、扣分或进行修改,条件是用户达到一定的“声望值”。“声望值”就是用户进行网站互动时能获取的分数,例如,用户 A 回答了一个问题,用户 B 对用户 A 的解答给予了“加分”,用户 A 就会因而获得 10 点声望值。 当声望值达到某个程度,用户的权限就会增加,如声望值超过50点就可以评论答案,另外网站也会根据用户的贡献颁发徽章 。

    我最近坚持每周看一个问题,目前已经总结了很多个高浏览量的问题,感觉很多以前不解的问题都突然豁然开朗了,大家感兴趣的话,可以看一下我之前学习过的记录:打印Java数组最优雅的方式是什么?

    08、YouTube

    这个里面我比较喜欢的是 JavaPoint 的视频,观看量也比较大,内容讲解的也很实用和入门级,很适合初学者学习。每集差不多 10 分钟,强烈推荐。

    09、牛客网

    牛客网”是一个专注于程序员的学习和成长的专业平台,集笔面试系统、课程教育、社群交流、招聘内推于一体。

    说道面试题,肯定是面试之前要刷一刷,不少读者问我,想跳槽,但是又感觉不自信,那么我的回答只有一个,就是刷面试题啊。

    10、CSDN

    CSDN 是 1999 年成立的,算是国内最老,最成熟的技术博客网站了。虽然近年来被吐槽很多,比如说资料下载的问题,比如文章抄袭的问题,但是这并不妨碍 CSDN 能够帮助我们解决很多问题的现实。如果你搜解决方案的时候,无论是某度,还是谷歌,排名靠前的几乎都出自 CSDN。

    看到我的好朋友江南一点雨我就放心了,说明 CSDN 的推荐机制还没有出毛病。他的文章质量还是非常高的,在 Spring Boot 方面有着很专业的见解。

    好了,就推荐个大家这 10 个堪称神器的学习网站吧,用心地学上一年半载,你会回来感谢我的。人最重要的就是放下自己的偏见,以及开阔自己的眼界。干,就对了。

    最后,还有很多读者问我是怎么学习的,那我干脆就把我看过的一些优质书籍贡献出来:

    计算机基础入门推荐:《程序是怎样跑起来的》、《网络是怎样连接的》、《计算机是怎样跑起来的的》

    进一步认识计算机网络:《计算机网络:自顶向下》、《图解http》

    数据结构+算法入门:《大话数据结构》、《阿哈算法》

    算法进阶:《算法第四版》、《编程珠玑》

    由于我是 Java 技术栈的,顺便推荐几本 Java 的书籍,从左到由的顺序看到

    Java:《Java核心技术卷1》、《编程思想》、《深入理解Java虚拟机》、《effective Java》、《Java并发编程的艺术》

    数据库:《mysql必知必会》、《MySQL技术内幕:InnoDB存储引擎》

    就先介绍这么多,这些都是最基础最核心的,希望对那些不知道看什书的同学有所帮助。

    对了,我介绍的这些书籍,已经顺便帮你整理好了,你可以在我的原创微信公众号『沉默王二』回复『书籍』获取哦

    有收获?希望老铁们来个三连击,给更多的同学看到这篇文章

    1、老铁们,关注我的原创微信公众号「沉默王二」,专注于有趣有益的程序人生,保证你看完有所收获,不信你打我。

    2、给二哥点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    作者info
    作者:沉默王二,CSDN 2019年度博客之星,《Web全栈开发进阶之路》作者
    原创公众号:『沉默王二』,已写了 250 多篇文章,专注于有趣的 Java 技术和有益的程序人生,期待你的关注。

    展开全文
  • 从入门到精通,Java学习路线导航

    万次阅读 多人点赞 2019-09-09 11:00:25
    最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还了解这个行业,也不知道从何起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。 Java学习路线 当然,这里我只是说...

    引言

    最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。

    Java学习路线

    当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。

    基础阶段

    首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Oracle数据库,JDBC,Linux基础,Java8新特性,数据结构和算法,设计模式。
    对于基础阶段,我们所要掌握的就是基础,虽然是基础,但学起来也够呛。因为是初学者,所以基础阶段会有一点难度,但只要肯坚持,这些也没什么难的。对于Linux、数据结构、算法和设计模式我们掌握一些基础就行了,也没必要学得非常透彻。

    Web基础

    基础阶段过后,我们还必须要掌握一些Web方面的知识,Html,JavaScript,JQuery和AJax,同样的,对于这些知识,我们只需掌握基础,而不需要深究,否则,你将耗费大量的时间。

    JavaWeb

    Web阶段过后,当然就是JavaWeb了,对于JavaWeb,我们需要掌握的知识有:Servlet,JSP,MVC设计模式,Cookie,Session,JavBean组件技术,EL表达式,JSTL表达式,过滤器Filter,监听器Listener,文件的上传下载,国际化。

    JavaEE

    最后是JavaEE阶段,当你学到这个阶段,你对Java的程序开发已经了如指掌。然而,自己开发的过程是艰难而复杂的,所以JavaEE阶段我们需要去学习一些非常优秀的框架,来帮助我们进行程序开发。
    对于框架,我们需要学习Struts2,Hibernate,Spring,SpringMVC,JPA,SpringData,MyBatis,Spring Boot,Spring Cloud,Dubbo。要学习的框架其实非常多,有些框架也十分有难度,我们在学习阶段只要能够熟练使用它们即可,有能力的话可以研究一下源码,看看框架的底层实现。当然,除了框架,我们还需要学习Maven,Git,Github,ActiveMQ,Jenkins等。
    在JavaEE阶段学习的东西是最多的,但如果你经历了JavaEE阶段的学习,你的编程水平将会有质的飞跃。

    其它

    这里是我在写了这篇文章几天后才加上的,有人向我反映,说数据结构和算法不学好就只能当个码农,说我在文章中指出"只需学习数据结构和算法的基础即可"是误导别人。确实,这句话是没说错,我在之前的文章中也强调过数据结构和算法的重要性,它们是程序的灵魂。然而,数据结构和算法是具有一定难度的,对于新手可能非常地不友好,新手要想彻底掌握它们是很困难的,所以我只是说在基础阶段掌握基础即可,而不需要去深究。而随着学习的深入,你的知识体系将会越来越庞大,这个时候,对于数据结构和算法可不能仅仅停留在表面了,我们应该去更加深入地研究这些东西。
    在这里也感谢大家给我提出的意见,只要大家说的在理,说的是对的,我都会去及时改正。金无足赤,人无完人,在写文章的过程中,难免会有一些不太严谨的地方,这里也欢迎大家批评指正。

    学习资源

    我知道,对于有些名词,你们可能都没有听过。没关系,按照这个路线一点一点地往下学,相信你会感受到编程的魅力所在。
    下面对整条知识路线进行一个梳理,并附上对应的学习资源,需要的小伙伴们下载就好了。

    1. 基础阶段
      Java基础——链接:链接:https://pan.baidu.com/s/17yh-M7LYSRsXmFeQKSrAww 提取码:mqf4

      Mysql数据库——链接:https://pan.baidu.com/s/1NfS6Q9fb_OMna608w9GYeg 提取码:94ns

      Oracle数据库——链接:https://pan.baidu.com/s/12uVSvaY4pbXRWy2DtIIf8w 提取码:5r8p

      JDBC——链接:https://pan.baidu.com/s/1QF9S_GpucFvoLSrQqV6d0Q 提取码:ltnh

      Linux基础——链接:https://pan.baidu.com/s/1e0ekEVjmtfNWAEO0123wDw 提取码:pwxz

      Java8新特性——链接:https://pan.baidu.com/s/103nPGgEEjbxzuy1rHRJepg 提取码:6omt

      Java数据结构和算法——链接:https://pan.baidu.com/s/1LQ__Hp7i-TR7gRa4YJQXJg 提取码:zwwd

      Java设计模式——链接:https://pan.baidu.com/s/1ik7PRwlAVgJzhSCdthdu1A 提取码:nr5e
    2. Web阶段
      JavaScript DOM——链接:https://pan.baidu.com/s/1_HtKFXeRm5xF7p2vYk_c7w 提取码:ks6g

      JQuery——链接:https://pan.baidu.com/s/1IPPNu2qsJ-MgLX7mGcVYbQ 提取码:umdr
      AJAX——链接:https://pan.baidu.com/s/1MC1iryOq9_SSV1qWYk5P5Q 提取码:78hu
    3. JavaWeb
      JavaWeb阶段——链接:https://pan.baidu.com/s/1EJYIgAuAHhaJLv8Pp-QjgA 提取码:584f
    4. JavaEE
      JavaEE阶段全套视频——链接:https://pan.baidu.com/s/1rJ5MyvFMuN_cbDVbw-2B3A 提取码:mdlf

    课件及源代码

    文章发布过后,有很多人来问我有没有源码和课件,这里当然是有的,为了方便大家,我就把源码和课件链接放在这里,也不用劳烦大家一直问了。
    链接:https://pan.baidu.com/s/18fr2-Hy-0aoRr9wDIl1zbg 提取码:2zxp

    关于Java学习路线上的所有资源都在这里了,欢迎大家下载!

    马上就要到中秋佳节了,在这里也提前祝贺各位中秋节快乐,身体健康,阖家欢乐!

    2021年05月18日更新

    因为百度网盘自身的一些原因,导致这些资源经常出现失效的现象,而且资源数目比较多,维护起来比较麻烦,所以我特地将所有资源进行了一个整合,上面的所有学习资源都在这个链接里面:

    链接:https://pan.baidu.com/s/1arKhD9FsrUl5K_0R4MBLqw
    提取码:1122

    展开全文
  • python学习方法总结(内附python全套学习资料)

    万次阅读 多人点赞 2019-10-29 16:50:38
    不要再问我python好不好了 我之前做过半年少儿编程老师,一个小学四年级的小孩子都能在我的...所以python真的是想学就一定能学会的!!!! --------------------华丽的分割线-------------------------------- ...
  • 肖舸 嗯,这是一位朋友发到... 我呢,试着回答一下,如果回答得不好,叫做肖某人学艺精,回去重新学习再来过哈。呵呵。 一家之言哈,欢迎拍装。 原文如下: 我呢,试着回答一下,如果回答得不好,叫做肖某人学艺
  • JAVA后端应该学什么技术

    万次阅读 多人点赞 2019-07-01 16:17:34
    目前要从事Java的后端开发应该学习以下内容: 第一,Servlet技术。Servlet技术是Java后端的重要技术之一,作为Java Web开发的核心组件,Servlet承担了Web MVC结构中的核心作用(功能导航)。传统的Model2结构...
  • 程序员要点儿理财知识,而仅仅是代码技巧

    万次阅读 多人点赞 2014-05-04 12:41:39
    钱小俊是一位时尚的“月光族”,他有一份令人羡慕的高薪工作和一个幸福的家庭,虽然是按揭贷款,也是有房有车一族,生活也算是丰衣足食。 可是一场梦境、一个自称财富精灵的人的出现彻底改变了他的生活,颠覆了他...
  • 真正想学什么,也不知道自己究竟适合学习什么样的技术,有部分同学就会盲目的寻找资料去,不要着急,小鸿这里带大家了解什么是前端。前端入门需要学习哪些技术。学习前端需要具备什么样的学习条件。 什么是...
  • 很多人经常会问:“在什么时候学习编程才合适?”,甚至有很多在职场中打滚了多年的人也会有这样的疑问。他们当中有很多人都把自己的专业跳到编程专业,原因是多方面的,其中包括了他们对自动化的畏惧,而这个问题...
  • 转行IT:零基础学什么技术好?

    千次阅读 2019-09-20 16:20:27
    最近在微博上看到一段话,他说:“要...转行IT:零基础学什么技术好? 与传统行业相比,感觉IT行业钱太好赚了,北大青鸟学员薪资毕业就有过万的,工作经验丰富和技术精湛的,一般月薪达到2万甚至更高。 互联...
  • 黑帽seo需要什么技术? 黑帽seo是网站优化的一种,通过非正规的手段去达到一个优化排名的作用,相比于白帽seo技术,黑帽seo的一大特点就是能更快的获得排名。黑帽的做法也有非常的多种,如采集、站群、批量链接、...
  • 很多小伙伴问我进大厂到底需要怎样的技术能力,经过几天的思考和总结,终于梳理出一份相对比较完整的技能清单,太顶了,建议收藏!!
  • 大家好,我是KookNut39,在CSDN写文,分享一些自己认为在学习过程中比较重要的东西,致力于帮助初学者...最近在更新C/C++方面的知识,感兴趣的欢迎关注博主,可以去专栏查看之前的文章,希望未来能和大家共同探讨技术
  • 学习技术的一点感想

    千次阅读 2011-03-12 17:00:00
    换句话来说,不是为了学技术学技术,而是因为有某件事情(某个项目)要去做,而目前我并了解这种技术,所以需要去探寻这种技术。学技术的唯一目标,就是为了把这个项目做完!否则,技术学起来是枯燥和乏味的。...
  • 在分享之前,先说说初学者如何学习编程,这个话题想必非常的重要,要学好编程,给你一些学习网站也好、实用工具也好,前提是你知道如何去学习它。 见过很多初学者,以及小鹿我刚开始学习的时候,也是自己瞎摸索,...
  • 有很多人在问小编,为什么人工智能学习要用Python?运行速度慢不好之类的,今天就让小编谈谈自己的感受先来说说前景随着“大数据”“云计算”“人工智能”等等科技的兴起,IT行业在今后三到五年将会迎来一个高速发展...
  • 每天读一点好玩心理--技巧

    万次阅读 2018-01-19 07:55:13
    1.演讲的技巧 现在的演讲多用Power Point等软件辅助演讲,要进行一场有说服力的演讲,内容好坏一定能成功,重要的是给听众留下印象,吸引听众 1)准备篇 演讲前,都会紧张,甚至恐惧,如果演讲失败,如何是好?...
  • PS技术 在学校里 学三年 也学不到这么多

    千次下载 热门讨论 2011-08-21 07:11:05
    PS技术 在学校里 学三年 也学不到这么多
  • Java后端开发学习路线:一文串起所有主流技术点

    千次阅读 多人点赞 2020-05-11 10:45:27
    经过一番梳理、虽然东西不少,感觉还是挺清晰的,说了,肝。 前方高能 一图胜千言,但凡能用图,就不想用文字。直接看图吧,看完再聊几个问题。 注:本图素材已收录进开源项目:github.com/JavaCollection,...
  • 如何学习FPGA

    万次阅读 多人点赞 2015-03-25 20:27:45
    一、入门首先要掌握HDL(HDL=verilog+VHDL...第一句话是:还没数电的先数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilog太像C了,很容易混淆,最后你会发现,你花了大量时间...
  • 推荐10个堪称神器的 Java 学习网站

    万次阅读 多人点赞 2019-10-28 15:11:28
    这里强调一下刷题的重要性: 可以让思维保持活跃 强化对基本知识的理解 要找到工作,就要过面试,刷题怎么能行 9)JournalDev 想学系列文章,我推荐 JournalDev,这个网站上所有的 Java 系列文章都堪称经典。...
  • 大家在学习Python的时候,有人会问“Python要什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问题,而对于自学Python来说,那就...
  • 黑客要学什么编程语言

    万次阅读 多人点赞 2014-03-30 07:56:16
    黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程...
  • 什么?如何去? 经常上网,发现最多人问的问题就是C++难。而得到的回答却基本上是说很难,甚至有说要两年才算入门。我开始是VB的,现在转学QT。谈谈我对C++的看法。 1、入门兴趣和方向 大家...
  • 哪些 Java 知识需要再

    万次阅读 多人点赞 2019-10-28 17:08:49
    同样的,自学 Java 的时候一定要先知道哪些 Java 知识需要再了,毕竟技术的更新迭代就好像火箭一样快,Java 的一些知识早已经过时了。如果懂得断舍离,那起来就不免太痛苦了。 1)AWT 和 Swing 真不知道为...
  • “费曼技巧”(Feynman Technique)是一个让你学习效率、效果大幅提升的学习技巧,核心...什么是费曼技巧1、Choose Your Concept :你想知道什么? 在白纸的顶部写出一个你要理解的概念。2、Pretend You Are Teachi
  • “算法都是封装好的,了有什么用?”,这是几年前一个试用期员工问我的问题。   他有一年工作经验,基础一般跟过几个项目,属于可以干活的人。来了以后就问我,要快速提升应该学什么。面试的时候觉得他算法功底...
  • 编程可以这样

    万人学习 2017-06-26 09:27:55
    《编程可以这样》提出一种全新的学习理念,在我们去窥探各种语言或技术的细枝末节之前,老张会带着大家先去程序员的世界里遨游一圈:C语言只是用来写黑底白字的控制台程序吗?算法在游戏开发中有什么用?学校开设...
  • Apollo代码学习(二)—车辆运动模型

    万次阅读 多人点赞 2018-10-11 20:53:13
    要实现对车辆的控制,研究其运动模型和动力模型必可少。上文对横纵向控制的构成及实现做了概述,本文将从车辆的运动和动力模型入手,研究如何控制车辆,以及为什么这样控制车辆。 工欲善其事,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,195,783
精华内容 878,313
关键字:

想学点技术但不知道学什么