精华内容
下载资源
问答
  • 聊聊自学,那些让你事半功倍的自学资源!

    万次阅读 多人点赞 2021-04-19 13:21:50
    资料在精,不在多。

    互联网让信息更容易触达,但想从庞杂的信息中筛选出有价值的内容,也需要花费大量的精力

    众所周知,B站是一个学习网站。一入B站深似海,从此游戏是路人。B站虽然视频资源多,但是内容也是五花八门、参差不齐。

    Jack 精挑细选,收集了关于学习计算机编程的视频,这里有我曾经的入门视频,也有跟朋友交流获得的,特此筛选了下面这些视频,分享给大家。

    图片

    看了图片,你可能会问,为啥没有网络爬虫的视频?别急,都有!

    计算机原理

    计算机科学速成课,内容覆盖面非常广,从底层的布尔逻辑,硬件原理,到黑客技术,再到热门的CV、NLP,言简意赅,覆盖面非常广,还能练习英语。

    图片

    视频链接:https://www.bilibili.com/video/av21376839

    操作系统

    B站关于操作系统课程资源很多,我在里面也看了不同老师讲的课程,觉得比较好的入门级课程是《操作系统 - 清华大学》,该课程由清华大学老师向勇和陈渝授课,虽然我们上不了清华大学,但是至少我们可以在网上选择听清华大学的课嘛。

    图片

    视频链接:https://www.bilibili.com/video/BV1js411b7vg

    数据结构

    强烈推荐浙江大学的算法与数据结构课程,该课程非常系统,也很经典,适合小白入门算法。

    图片

    视频地址:https://www.bilibili.com/video/BV1JW411i731

    机器学习

    机器学习基础

    这个大家应该都知道,吴恩达老师的机器学习,太经典了。

    整个领域的巨头之一,学术地位很高。同时,他出的视频也对新手非常友好,易懂,连数学知识一起讲解,思路非常清晰!

    入门机器学习的不二之选。

    图片

    视频链接:https://www.bilibili.com/video/BV164411b7dx

    深度学习基础

    不用多介绍了,还是推荐吴恩达老师的深度学习系列。

    图片

    说着说着,又想起了研一刷视频的那段日子,过得太滋润舒适了。

    视频链接:https://www.bilibili.com/video/BV1FT4y1E74V

    深度学习框架

    Pytorch

    框架这种东西,多用用就好了。跟着视频自己动手试一试,基础原理会了,上手很快。Pytorch 就是深度学习框架里的 Python,人生苦短,我用 Pytorch

    图片

    视频链接:https://www.bilibili.com/video/BV1Rv411y7oE

    Tensorflow

    身为一名合格的调包侠,主流框架都得掌握一二。Tensorflow 个人感觉,相对 Pytorch 要难上手一些,但 Google 大佬的东西,咱也得会呀!

    最新版的 Tensorflow 2.x 的视频没有,只找到了一个 1.x 的视频。

    图片

    视频链接:https://www.bilibili.com/video/BV1kW411W7pZ

    数学基础

    在机器学习算法中,涉及到最为重要的数学基本知识有两个:线性代数概率论

    这两也是大学的必修课了,如果知识早已还给老师,也没关系,哪里不会学补哪里

    线性代数

    推荐 MIT 的老教授 Gilbert Strang 的线性代数上课视频。

    讲得清晰而且直观,深入线代的精髓,完全不是那种理论堆砌的讲法,而且老教授幽默风趣,很有人格魅力。

    英文不好,也不用担心,有中文字幕

    图片

    视频链接:https://www.bilibili.com/video/BV1at411d79w

    概率论

    说实话,概率论的视频,我真没看过,有看过的小伙伴,欢迎评论区里留言推荐。

    Python编程

    Python 是一门非常友好的编程语言,不但易于入门而且功能强大,在进行机器学习算法开发的过程中会大量使用 Python。

    视频必须推荐小甲鱼 Python 课程,风趣幽默,涉及Python语法基础网络爬虫Pygame飞机大战等各种有趣的内容,非常丰富。

    图片

    视频链接:https://www.bilibili.com/video/BV1Fs411A7HZ

    C++编程

    C++编程,我看过觉得不错的,是慕课网的视频,老师讲得绘声绘色、形象生动、通熟易懂。B站没有版权,没有找到这个视频。慕课网就可以白嫖,免费课程。

    图片

    讲解分为多个篇章,循序渐进,观看顺序是:起航篇、离港篇、封装篇、继承篇、多态篇、模板篇。

    视频链接:https://www.imooc.com/search/?words=C%2B%2B

    数据库

    无意间在 B 站发现一个学习 SQL 很牛的视频,主讲人是外国的工程师,这门课程适合初学者和进阶,这位工程师全程以「实战」的方式来授课,案例经典,课程真的通熟易懂,很简练。

    图片

    视频链接:https://www.bilibili.com/video/BV1UE41147KC

    絮叨

    春节即将到来,又是一个悄悄发育的好机会,所以就给大家找了些 B 站的学习优质视频,并且再送一波福利图书

    除了视频,我们还是需要搭配一些书本,因为想要深入学习,必须学会自己“啃书”。

    也欢迎大家分享自己的编程经历,我们一同成长!

    最后再送大家一本,帮助我拿到 BAT 等一线大厂 offer 的数据结构刷题笔记,是一位 Google 大神写的,对于算法薄弱或者需要提高的同学都十分受用(提起码:m19c):

    https://pan.baidu.com/s/1txDItPwDrnG8mOloOFbGaQ

    以及我整理的 BAT 算法工程师学习路线,书籍+视频,完整的学习路线和说明,对于想成为算法工程师的,绝对能有所帮助(提取码:jack):

    https://pan.baidu.com/s/12tbVrUF056pY7aCyMpgl1w

    我是 Jack,我们下期见!

    展开全文
  • 0 基础 Java 自学之路(2021年最新版)

    万次阅读 多人点赞 2021-04-07 23:18:48
    我大学是普通本科,大三开始自学的 Java,自学了一年,但是我是计算机专业的,所以有C语言基础,但是我这一年的自学走了不少弯路,花了很多时间学了很多后面根本没用到的东西:Oracle、Hibernate、Struct2、JBPM ...

    微信搜索【程序员囧辉】,关注这个坚持分享技术干货的程序员。

    我的最新文章:BAT 老兵的经验之谈,成长路上这个道理越早知道越好

    前言

    如果你想自学 Java,认真看完本文,你以后的职场生涯至少少走1年弯路。

    本文会持续更新,建议收藏。

     

    初衷

    在 CSDN 上经常有同学私聊我询问 “如何自学 Java”、“想转行 Java 靠谱吗” 等问题,因为自己也是在大学时自学的 Java,所以我能理解这些同学的痛苦和迷茫。

    写这篇文章前,我看了一些网上 Java 自学的文章,很多我都不太满意,有的甚至让我感到愤怒,要么是站在现有的视角侃侃而谈,要么是纯粹的瞎编骗小白。

    很多文章都有一个老毛病:完全没有从小白的视角去思考,内容太多,什么微服务、架构、大数据都来了,这根本不是自学阶段该去看的东西,小白看了这些文章,只会越看越懵逼,根本没法下手。

     

    其实我在18年写过一篇“0基础Java自学之路”,但是现在来看,当时那篇文章写的过于简单,只是提供了一个思路,但是很多内容没有写。

    如今已经过去了3年,我对于这个话题又有了一些新的思考,同时为了拯救广大正处于水深火热的同学们,于是,我决定重新写一篇自学教程。

     

    自我介绍

    在写本文前有必要介绍下我自己,让大家更好的去比较和参考。

    我大学是普通本科,大三开始自学的 Java,自学了一年,但是我是计算机专业的,所以有C语言基础,但是我这一年的自学走了不少弯路,花了很多时间学了很多后面根本没用到的东西:Oracle、Hibernate、Struct2、JBPM 等等,还有就是缺少有经验的人的指导,所以容易抓不到重点,所以也浪费了不少时间。

    不过当时还没有现在这么内卷,所以我在大四秋招刚开始就找到工作了。

     

    行业现状

    程序员现状

    由于程序员的薪水比较高,最近几年有很多其他专业的人涌进了程序员行业,加速了这个行业的内卷,但是据某招聘网上的数据统计,程序员当前的需求量还是远高于全行业的平均线的。所以,程序员的现状我觉得是不错的,至少几年内是无需担心的。

     

    Java 现状

    最近几年,Go、Python 等语言快速崛起,大有挑战 Java 地位的趋势,但是 Java 毋庸置疑仍是当前互联网行业里招聘需求量最大的。

    众多大厂:阿里、美团、快手、拼多多、滴滴、网易等,都是以 Java 为公司的主语言,部分大厂:腾讯、百度、字节等,虽然以其他语言为主语言,但是多多少少也会有一些 Java 岗。

    所以,Java 的现状及未来,我觉得都是比较不错的。岗位多也代表着机会多,对于新人来说比较友好,所以我个人是比较推荐新人学 Java 的。

     

    自学前你应该知道

    自学前请做好心理准备,自学是一个既寂寞又漫长的过程,如果想踏进来,请做好放弃几乎所有娱乐生活的准备,包括过年的时候。如果只是抱着三天打鱼两天晒网的态度,那我建议还是放弃吧。

    但是如果你能坚持下来,我相信一定能有所回报,我自己就是个例子,我走了那么多弯路,跟着本文走,你们没理由比我当时更差。

     

    自学预估周期

    自学的周期我给大家定了一个参考时间:6个月,平均每天6-8小时,共1200个小时左右,大致安排:

    1、3个月基础知识学习和强化。

    2、2个月 SSM 项目实战反复练习,项目实战同时也在复习和巩固之前的基础知识。

    3、1个月面试高频题准备,看面试题其实也会增加自己的专业知识,而且可能比你想象的要多,不夸张的说,前几年我从面试题里学到的知识可能比工作里获得的还多。

     

    自学教程获取

    授人以鱼不如授人以渔,一个简单又靠谱的的教程获取方式:B站搜索关键字+教程,例如:Java基础教程、MySQL教程、JavaWeb教程、SSM整合教程、Java项目实战等等,然后按“最多点击”排序,在前几个里寻找一个合适的即可,一般点击高的都是质量还可以的。

     

    很重要的建议

    1、爱因斯坦的成功公式:成功 = 效率 * 时间,自学也一样,需要劳逸结合,不要搞的太累,否则效率下降,花再多时间也没用。

    2、自学是一个漫长的过程,循序渐进、保持耐心,如果可以,找个伴一起学习,互相鼓励,互相交流,可以让自己更有动力坚持下去。

    3、将自己的学习过程记录下来,当你发现累计的越来越多的时候,心里会有一种小成就感,这会提高你学习的动力。

    4、专注于重点知识的学习,本文介绍的基本涵盖了当前你应该学习的内容,没有提到的大部分是没那么重要的,如果你无法判断是否重要,可以在本文下面留言,我会一一解答,至于像一些什么:k8s、hadoop、hbase 等等,看都别看,对于当前的你来说只是浪费时间。

    5、利用好搜索引擎,有什么问题就百度,新手大部分的问题百度都能解决。

    6、看视频不要看书,当前阶段的你看任何书,包括大名鼎鼎的《Java编程思想》都是浪费时间。

    7、看视频要跟着敲一遍甚至多遍,如果只看视频不跟着敲,你会发现最后啥都学不会。

    8、视频中一些介绍历史的视频可以过一遍简单了解就行,节省点时间。

    9、关于视频教程的选取:选择近2~3年的教程,讲师让自己听着舒服即可,点击高的视频水平基本差不多。

    10、不懂的知识可以反复看,例如同一个知识点有两套教程,看完第一个没完全理解,可以再看第二个,加深印象,也可以查些资料帮助理解。

     

    自学知识点

    1、Java SE

    1.1、Java基础

    基础概念/语法:面向对象(继承、封装、多态)基础、包、类、接口、方法、对象、属性、第一个 Java 程序。

    数据类型:1)基本数据类型8种:byte、short、int、long、float、double、char、boolean;2)引用数据类型

    变量类型:局部变量、实例变量(成员变量)、类变量(静态变量)

    修饰符:public、private、不写、protected、static、final、abstract、synchronized ,volatile 

    运算符:1)算术运算符:+、-、*、/、%、++、--;2)关系运算符:==、!=、>、<、>=、<=;3)逻辑运算符:&&、||、!;4)赋值运算符:=、+=、-=、*=、/=;5)条件运算符:Object x = (expression) ? value if true : value if false;

    循环结构:for 循环、while 循环、do...while 循环

    条件语句:if...else、if...else if...else

    异常处理:try...catch...finally、throws、throw

    字符串:String、StringBuilder、StringBuffer

    其他:switch case、数组、日期时间、枚举、使用 IDE 进行 DEBUG

     

    1.2、集合

    Map:HashMap(最重要)、ConcurrentHashMap、TreeMap、Hashtable

    List:ArrayList(最重要)、LinkedList

    Set:HashSet(最重要)、TreeSet

     

    1.3、多线程

    线程生命周期

    创建线程的三种方式:继承 Thread、实现 Runnable;实现 Callable 

    ThreadPoolExecutor(线程池)

    锁:synchronized 和 Lock

     

    1.4、I/O流

    1.5、网络编程

    1.6、反射

    1.7、泛型

    1.8、注解

     

    小结:

    1、该阶段很重要,建议至少看两套不同的教程。由于每个老师的观点都会有一些片面性,当遇到疑惑的时候,可以看看其他老师的理解,可能就想通了。

    2、看第一遍时会比较慢,第二遍会快一点,已经掌握的知识可以快速带过。

    3、有疑问的知识多看几遍,也可以网上看点博文辅助理解,实在看不懂的可以先记下来,后面学到一定程度可能就理解了。

    4、对于重点知识,可以做笔记来加深自己的理解,也方便后续自己复习。

    5、Java基础、集合、多线程是核心中的核心。

     

    章节目标:熟练掌握该章节所列的所有 Java 核心基础知识,能熟练的编写 Java 程序。

     

    配套教程

    【尚硅谷】Java零基础教程视频

    【动力节点_2017年版】Java零基础教程视频

    【动力节点_2020年版】Java零基础教程视频

     

    2、SQL

    2.1、SQL

    1)了解基础概念;2)掌握 DML 语句的使用:SELECT、UPDATE、INSERT 和 DELETE;3)掌握 DDL 语句的使用:操作表时用到的一些SQL语句。例如:CREATE、ALTER、DROP等。

     

    2.2、JDBC

    掌握基本的使用。

    配套教程

    【动力节点】JDBC从入门到精通视频教程-JDBC实战精讲

    【尚硅谷】JDBC核心技术(新版jdbc)

     

    2.3、MySQL

    掌握基本的使用。

    配套教程

    【尚硅谷_2019版】李玉婷2019版MySQL基础(P243---P326)

    【尚硅谷_2017版】MySQL数据库全套完整版(sql数据库优化)

    【狂神说Java】MySQL最新教程通俗易懂

    【动力节点】MySQL基础入门-mysql教程-数据库实战

     

    章节目标:熟练掌握SQL语句的基础使用,了解JDBC和MySQL的基础使用。

     

    3、Java Web

    3.1、偏前端内容

    HTML、CSS、JS(JavaScript)、Ajax、jQuery

     

    3.2、偏后端内容

    Servlet、JSP、Request、Response、HTTP、Session、Cookie、Filter、Listener

    Java Web初级内容的相关技术在当前 Java 后端已经比较少直接使用到了,最近几年的 Java 程序员甚至可能都没接触过。大部分是被下一节的 SSM 框架给封装代替掉了,但是这一章节初学者还是有必要认真学习一下,做到能看得懂、能照着改。

     

    章节目标:了解该章节所涉及的知识,做到能看得懂、能照着改。对于 Servlet 可以稍微多留意一下,Servlet 是本章节比较重要的知识。

     

    配套教程

    【尚硅谷】最新版JavaWeb全套教程,java web零基础入门完整版

    【黑马程序员】完整JavaWeb快速入门教程

    【狂神说Java】JavaWeb入门到实战

     

    4、常用工具

    4.1、Tomcat

    Web 应用服务器。

     

    4.2、Maven

    项目构建管理,简单理解为用于导入 Jar 依赖的工具。

    配套教程

    【尚硅谷】Maven视频(maven零基础入门)

     

    4.3、Git

    分布式版本控制系统,简单理解为代码管理工具。

    配套教程

    【尚硅谷】Git与GitHub基础全套完整版教程

    【狂神说Java】Git最新教程通俗易懂

     

    章节目标:需要知道有这么些工具,然后掌握其基本的使用即可。

     

    5、核心框架

    5.1、Spring

    1)掌握基本的使用;2)掌握核心概念,需重点注意的知识点:IoC(控制翻转)、DI(依赖注入)、AOP(面向切面编程)、事务控制。

    配套教程

    【尚硅谷】Spring5框架最新版教程(idea版)

    【狂神说Java】Spring5最新完整教程IDEA版通俗易懂

    【黑马程序员】Spring教程IDEA版

    【动力节点】2020最新Spring框架教程【IDEA版】

     

    5.2、SpringMVC

    1)掌握基本的使用;2)掌握核心概念,需重点注意的知识点:MVC 架构、Controller 里的各种注解、一个 HTTP 请求的流程。

    配套教程

    【尚硅谷】SpringMVC实战教程完整版(spring mvc框架源码解析)

    【狂神说Java】SpringMVC最新教程IDEA版通俗易懂

    【黑马程序员】SpringMVC教程IDEA版

    【动力节点】2020最新SpringMVC教程【IDEA版】

     

    5.3、MyBatis

    1)掌握基本的使用;2)掌握核心概念,需重点注意的知识点:XML 文件力的 SQL 语法、接口(interface)和 SQL 的映射。

    配套教程

    【尚硅谷】MyBatis实战教程全套完整版

    【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂

    【黑马程序员】Mybatis教程IDEA版

    【动力节点】2020最新MyBatis教程【IDEA版】

     

    5.4、Spring Boot

    掌握基本的使用。

    配套教程

    【尚硅谷】2021版SpringBoot2零基础入门springboot全套完整版

    【狂神说Java】SpringBoot最新教程IDEA版通俗易懂

     

    章节目标:了解 SSM 框架的基本使用,该阶段可以不用做到完全理解,可以在项目实战里去通过实际的例子加深自己对 SSM 的理解。

     

    6、项目实战

    准备 2~3个项目实战,将之前所学的知识点应用起来,做出一个真正的项目(网站)。学习的项目必须使用 SSM 框架,加深自己对 SSM 的理解。该阶段所做的项目,也是未来写在你简历里的“项目经验”,需要跟着敲一遍。

     

    目标:将之前所学知识串联起来,熟练掌握一个 Web 项目的完整流程,通过项目加深对之前所学知识的理解,特别是 SSM 框架知识。

     

    配套教程

    【尚硅谷】SSM框架实战,ssm整合教程

    【狂神说Java】SSM框架最新整合教学IDEA版

     

    7、面试准备

    如果对于上述的 Java 基础知识你已经能熟练使用,然后也能熟练搭建一个简单的 SSM 的项目。那我建议你可以将时间多花在面试准备这一章节上,面试准备的重要程度可能超过很多人的想象。同时在看面试题的过程中也能加深自己对之前知识的认知。

     

    7.1、重点知识点

    • Java 基础高频面试题
    • ​集合高频面试题,重点:HashMap
    • 多线程高频面试题,重点: synchronized、线程池
    • MySQL高频面试题,重点:索引、锁
    • Spring/SpringMVC/MyBatis高频面试题,重点:Spring
    • SSM 实战项目

    该模块对应我们上面学习的知识,但是只会使用是很难满足当前的面试要求的,因此需要针对这些知识进行面试强化,具体的题目可以看下我的面试系列文章。

     

    7.2、进阶知识点

    • JVM
    • Redis
    • Kafka
    • Zookeeper
    • Dubbo
    • 算法:常见的算法,二分、排序等,可以刷剑指offer的题目
    • 设计模式:可以主要看下单例模式

     

    你可能会有疑问,为什么进阶里列的知识点都是之前上面没有提过的,还需要准备面试题。之所以补充进阶部分,主要是为了应对当前互联网行业内卷越来越严重的现象,这几个知识点都是当前 Java 面试的高频考点,但是要像前面的基础知识一样,系统的学习这些知识对于初学者当前阶段来说基本不太可能,所以一个比较合适的方式是直接看高频面试题,然后将高频面试题带着理解记下来。

     

    章节目标:各个知识点的高频面试题熟记于心,尽量做到理解,不能理解就先硬背。

     

    面试真题可以参考我的文章Java 基础高频面试题(2021年最新版)

     

    常见问题

    1、自学时遇到不懂的知识怎么办?

    答:百度/谷歌找答案,初学者遇到的问题基本百度上都能找得到,多利用搜索引擎,锻炼自己的解决问题的能力,这个能力会贯穿你的整个程序员生涯。

     

    2、普通人按本文自学后能达到什么程度?

    答:如果你确实很努力的花了超过1000个小时,按本文的路线去学习,掌握了本文所介绍的知识,那我相信你找个工作是不难的。

     

    3、在网上看到有人自学6个月进 BAT?

    答:自学6个月进 BAT 有吗?我相信是有的。多吗?我相信是海底捞针。

    针对这个话题,大部分是假的,更多的是一些人/机构用于打广告的,看了文章内容99%要你付费加群或买资料。

     

    4、自学还是培训机构?

    答:坦白的讲,培训机构肯定比自学要轻松点,至少培训机构会帮你们制定好方向。但是自学其实会给公司留下不错的印象,公司会觉得你的学习能力不错,同时自学也很锻炼人,对你以后的成长有帮助。

    我只能帮你们分析,你们可以根据自己的情况去选择。但是,我觉得如果你无法靠自学进入这一行,你以后的路可能也会走得比较艰难。

     

    5、算法是否重要?

    答:对于0基础自学的同学来说,算法的地位可以稍微放后面一点,当前的目标还是先打好 Java 基础,能写 Java 代码。

     

    6、是否应该先学 C 语言?

    答:说实话,我个人并不建议,虽然 C 语言确实是挺重要的,但是我觉得如果有这个时间,还不如把 Java 基础多巩固一下。

     

    7、初中/高中/中专学历能不能自学 Java?

    答:网上可能有很多人/机构说学历不重要啊,balabala。但是负责任的说,学历还是很重要的,我不是很推荐这些同学自学 Java,因为真的比较难,就算学会了也困难重重,很多企业都有学历限制。

    目前来看,至少要有大专学历,最好有本科,否则建议还是仔细考虑下,除非你确实已经走投无路了。

     

    8、大龄转行自学 Java 是否可行?

    答:跟学历一样,大龄在这个行业也是个问题,如果现在有工作,我建议可以先用业余时间学看看,但是不要轻易辞职自学,风险很大。

     

    9、看书学习快,还是看视频学习快呢?

    答:视频。自学阶段的小白看书效率很低,基本是看不下去的,不推荐看书,可以后续学习的差不多了,看点入门的书籍辅助。初学阶段主要看视频,然后辅助看一些网上入门的博文。

     

    10、为什么不能看书,我有时候看了一上午视频就感觉很浮躁,下午去教室看书不行吗?

    答:因为本文还是主要按大多数人的学习情况来写,所以正常会推荐新手看视频,但是如果视频有时候看不下去,想尝试下看书,我觉得也是可以的,但是如果看书看不下去后,说明不合适,就不要继续坚持了,还是看视频为主。

    看书的话,《Java编程思想》我肯定是不推荐的,这本书我自己当时看过,效果不好,不推荐。

    目前看来对于初学者,评价比较好的是:《Java核心技术·卷 I 基础知识》,这本书我自己没看过,但是我看有好几个正在自学的同学推荐看,然后本身评价也不错,所以想看书的同学建议可以入这本书试试。

     

    11、有不少大一新生表示看不懂?

    答:大一新生看不懂,我觉得是正常的,也不需要急,因为你们所处的时间点还是很早的,只要现在抓紧时间,按本文的路线去学习,到大三应该就学的差不多了,后面还有时间去学学进阶的知识。后面毕业后,你们会发现你们的优势是比较大的。

     

    12、好多东西听不懂,还有好多词看了后就忘了,不知道具体是啥意思,搞的越来越懵了?

    答:这个是初学者正常都会遇到的,不需要很慌张,没有什么捷径,就是多看、多敲、多练,久而久之用多了,就记住了。

     

    福利

    文章提到的知识点,我在B站找了一些当前点击量和评价比较不错的教程,简单的整理了一份“0 基础 Java 自学之路(配套教程)”,需要的微信搜索:程序员囧辉,在菜单栏 “自学教程” 自行获取即可。

    如果觉得不合适,也可以按文中“自学教程获取”提到的方法去自己寻找合适的,也是可以的。

     

    最后

    如果你的问题没有在本文提到,或者你对本文有疑问,你可以在文章下方留我留言,对于每个留言我基本都会在24小时内回复,极端情况下可能会放到周末回复,原则上只要是与本文相关的正常留言我都会回复。

    对于评论里的题目,如果是很多人关注的,我在后续会添加到文章的“常见问题”里。

    展开全文
  • 我是如何自学C语言的(一个菜鸟的学习路)

    万次阅读 多人点赞 2018-02-07 21:26:31
    本人也是一个菜鸟,目前依然还在学习,当初在我开始自学C语言的时候,走过了好多弯路,如果你看到这篇文章,希望你不要走我走过的弯路,这也是我写这篇文章的目的,我也不想像老头子一样叨叨叨,哪些要做,哪些不要...

    零基础扫盲课:          

     计算机科学速成课(扫盲课):【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili

            简介:这个视频会以自下而上的方式,给你介绍整体计算机行业的各项知识,这样初学者对整个计算机的概貌就能有一个全面的了解,会知道自己现在所学的知识处在计算机知识体系的哪一层,视频讲的非常好,推荐刚刚入门的学习好好看看。如果有一定的基础,看起来会格外通畅。

    ---------------------------------------------------------------------------------------------------------------------------

    更新:2018/10/13

    由于百度分享链接经常失效,所以把网盘中的链接整理出来,方便大家查看。

    =====================================

    1.Mark  编程先导课[也可以只看上面的 零基础扫盲课 ](链接:https://pan.baidu.com/s/1tz_IDqtiE0lGoQD-oMMqzQ 
    提取码:zeri )

    2.翁恺  C语言程序设计【C语言】翁恺C语言程序编程全系列

    3.小甲鱼  带你学C带你飞【C语言】《带你学C带你飞》_哔哩哔哩_bilibili

    4.小甲鱼  汇编语言【汇编入门】《零基础入门学习汇编语言》_哔哩哔哩_bilibili书用王爽老师的《汇编语言》

     

    学习路线:

    1.按照序号来学习,计算机科学是  Po学校  Mark老师的课程,很精辟实用,耐下性子看完,会对你学编程有很好的帮助作用。(这个和上面的计算机科学速成课类似,但是更直接更精炼)

    2.两个C语言教程是有目的的。第一个翁恺老师的我推荐速看,速看不是不思考,而是一天看一章把它看完,快速看掉,因为这一遍会在你的脑海里留下一个C语言的框架,这很重要。入门的书,谭浩强C语言教程第四版(别听网上说这本书不好【确实有错误的地方】, 这本书对于初学者来说,是最适合的,在指针那块讲的挺好的。里面的编程风格啥的,小甲鱼老师会纠正的。---》个人观点)

    3.然后细看小甲鱼的视频,去鱼C论坛做课后题,每一题都要做!不会的在论坛提问,很快会有人回复你的,论坛的学习氛围很好。

    4.学完对指针可能还有困惑,你想完全掌握指针的最好办法,就是学会汇编,所以第四个是汇编语言。汇编还有会让你对C语言有更深层次的领悟!

    5.坚持!!!坚持!!!坚持!!!有些东西刚开始接触搞不懂很正常,坚持学下去,学到后面你就明白了。有时在敲代码的时候,某个知识点突然就懂了,很多人搞不懂就放弃了不学了,这是最可惜的。所以那些大牛们都是很有毅力,坚持到最后的人。

    6.C语言开发项目实战:http://c.biancheng.net/cpp/u/xiangmu/ ,感觉自己学的差不多了,就来操练一个项目吧!!(学完C就可以开始动手做了)

    ======================================

    ---------------------------------------------------------------------------------------------------------------------------

    带我入门的鱼C论坛http://bbs.fishc.com/forum.php

    ---------------------------------------------------------------------------------------------------------------------------

        首先,本人也是一个菜鸟,目前依然还在学习,当初在我开始自学C语言的时候,走过了好多弯路,如果你看到这篇文章,希望你不要走我走过的弯路,这也是我写这篇文章的目的,我也不想像老头子一样叨叨叨,哪些要做,哪些不要做,好像自己很牛逼一样。我只是把自己觉得是坑,是弯路的地方,结合自己的看法,复述给你听,希望你有自己的理解。

    1.  不停的换教程,我总觉得自己正在学的教程没有把我给讲懂,就认为这教程不行,后来慢慢的深入了之后才发现,教程大体上都是差不多的,并不是教程讲的不好,而是本来应该自己花时间去思考的东西,认为应该是由老师来讲的,所以即使再好的教程,我也觉得不怎么样(当然也有很差的教程,就是特别啰嗦的,说半天说不到点子上的,这种视频就不要看了!)。还有书,入门的书我买了好几本,到最后真正看的只有一本,就是谭浩强的那本。虽然这本评价不是很高,但是确实是这本书带我入门的。我当初的入门书是谭浩强的《C语言程序设计》第四版,指针部分讲的通俗易懂,非常形象。教程是小甲鱼的,叫做《带你学C带你飞》。当初自己就应该完整学完一本书和一套教程,你在学习的不同阶段,对知识和体系的理解是不一样的,这也是为什么在计算机学习中,囫囵吞枣是一个褒义词了。换了那么多书和教程,实在是浪费时间,现在想想,挺后悔的。

    2.  下载各式各样的教程,我看见名字牛哄哄的教程就会把它保存到百度云盘里,然后下载到电脑上,典型的教程收集狂,,我的电脑硬盘几乎是满的!我电脑里有800G左右的视频教程,每天看着这些个教程,就好像看着满大箱的金元宝,感觉自己好有钱,像 渗透测试,WEB安全,逆向破解看着就叫人热血沸腾,哪里还有兴趣学C语言,恨不得直接上  渗透测试。当然,这是不可能的,万丈高楼平地起,C语言都没学会,谈何这些呢?这些电脑里的教程,让我越来越浮躁!一天我不知哪里来的想法,把电脑里这个阶段没学到的“高深教程”全都给删除了,顿时感觉世界都清净了!专心学基础的,接下来的这段时间,我专心了不少,这些教程给了我莫大的学习计算机的动力,也耗费了不少精力,去胡思乱想,万丈高楼平地起,专注很重要!

       

    3.  不动手,只用眼睛看,我刚开始学的时候,觉得教程讲的我都听得懂,干嘛还要敲一遍代码?然后到自己写作业的时候,就是各种出错,天花乱坠的错误!!!输入法错了啊,关键字打错了啊,少一个括号啊!崩溃!然后我再也不敢怠慢了,该自己敲一遍的代码,就自己好好打一遍。还是会出错,各式各样的错误,很蛋疼!过了两个星期左右,我就明显的感觉自己的错误变少,思路也更清晰了!到最后要学完的时候,有一个作业是做一个简易通讯录的程序,一百多行的代码,我敲完顺利编译运行!没有错误,如果我一直偷懒不动手,是不可能达到的。现在想想,编程也是一个不断试错的过程,一开始学的时候,是不断纠正自己的错误,因为开始的程序都是简单的。到后来,程序越来越复杂了,就是找程序的错误,如果自己的错误都没有解决,何谈后面解决程序的错误呢?

    4.我这个人喜欢刨根问底,应该有很多才入门的朋友和我差不多,总想把东西彻底搞明白,再学下面的东西。这种习惯其实是非常好的,但是在学计算机方面的东西有点不现实,因为有些知识是要你有一定的基础之后才能理解的。当初我记得自己一直纠结常量和常变量有什么区别,问了老师。老师也没把我讲明白,后来学到内存自然而然的就懂了。所以我建议不懂的知识,先囫囵吞枣,先吃下去。最后回过头来就自然而然就消化了。

    5.  一开始我听老师说,编程主要学的是其中的思想,听完自己感觉挺轻松,认为学思想,不就是听听课,没作业吗?所以没有吧课后作业当回事。过了几天,继续上课听老师讲,直接听不懂了。后来还是和一个学长交流,他说课后作业很重要,这是一个巩固的过程,将自己的知识用起来,这样就能更好的理解了,这也是一个反馈的过程。反馈非常重要,通过作业,写出一行行的代码,直到顺利运行,是一件很有成就感的事情,更能够激励自己去学习!学长讲的挺有道理的,我也听进去,按照他说的操作了,自己实践证明,写课后题确实是一个很好的巩固和反馈的方法!

    自己当初就是不专注,眼高手低,懒,才浪费了那么多时间,现在想想其实也挺可贵的,毕竟是一段难忘的经历,但还是希望看到这篇文章的朋友,别走我走过的坑。

    -------------------------------------------------------------------------------------------------------------------

    更新:2019.02.27

          强烈推荐一个免费良心的Arduino教学网站(太极创客):太极创客 – Arduino, ESP8266物联网的应用、开发和学习资料内容超详细,讲的深入浅出,谁听谁知道!!!

            太极创客讲的C++面向对象编程基础讲的非常好,结合Arduino开发实例,如果你学完了C,对C++面向对象编程有兴趣,不妨先看看他们的课,作为入门资料是非常不错的。

            说实话学C语言其实挺枯燥的,学完了也不知道干啥。本身自己是学机械,所以对硬件特别感兴趣,所以经常做一些小制作,但是这些小制作都很没啥技术含量。我当时就想学单片机来着,于是就上网找学习路线,无意中就关注到Arduino,这是一款开源微控制器(看着像玩具,实际功能很强大)。淘宝上十几块就可以买到了一个入门的板子,当时挺感兴趣,就买了一块,而且它是C语言来开发的,并且集成了大量的库,我们可以用很少的代码实现我们想要的功能,总之非常好玩。如果你也喜欢小制作,我推荐你学完C语言可以玩一玩Arduino,相信你一定会喜欢的。

    ===========================================================================

    更新:2019.07.26

               博主本身是机械专业的学生,接触代码的时间不多,但是本身也非常喜欢计算机,因为这个东西实在是太神奇了,不是吗?好像是无所不能的。如果你看过了上面的计算机科学扫盲的视频,就会知道,计算机的内部全部都是精心设计的电路,通过一层一层的抽象,最终形成了程序这个东西。博主当时才开始学的时候,也听老师这么说过,但是自己的知识还不足以理解,当时应该才学到C语言,对底层的知识一概不知,因为这时候你的认知还局限在内存(对内存很浅显的理解)。

              如果你想对底层的东西有一个比较清晰通畅的理解的话,还需要好好的学学汇编,学完汇编之后,你就会明白为什么指针那么重要了。这时候你的认知就跨在CPU内存之间了。然后再看两本小书,这两本书是《程序是怎么跑起来的》《计算机是怎么跑起来的》。这时候你的思维就活跃在整块主板之上了,如果再稍微有一点数电的知识,你就会彻底明白计算机到底怎么一回事(这个时候你会感到很通畅,当然还有很多东西还是不懂),这个时候从C语言往下的脉络就很清晰了,这个时候再往上深挖,像《数据结构》《操作系统》这些内容就可以学习了(可能还是要补一补《计算机组成原理》的知识),当然要学好还是要花很大功夫的,如果对底层结构非常感兴趣可以看一本非常牛逼的书,冬瓜哥写的《大话计算机》

             自己当初在才开始学的时候很迷茫,因为完全是自己摸索,所以有很多疑惑诸如一些:学编程要不要数学好,英语好等等(你只要会打字开机关机,就能学好编程)。

             对于大多数人来说,编程是一个新的思考方式,所以一开始不适应很正常。从一开始懵逼到开窍需要一个过程,可能非常漫长(有些人两个月就开窍了,有的人半年,有的人一年,这个说不准),一旦开窍之后,进步就会非常快。度过这个过程最简单的方式就是动手敲代码和思考(花时间独立思考),时间一到,自然而然就开窍了,所以不要急。

    =============================================================================

    更新:2019.11.15

    大家可能听过“XXX是世界上最好的语言”,实际上的情况是每个语言都有它最适合的领域,Java适合Web,Python适合深度学习 与数据分析,C/C++适合开发底层程序,即使是汇编也会在某些对性能要求极其高的项目中用到。当然了不是说某某某语言只能干什么,只是最适合,也可以用来干其他事,只不过很费劲,很麻烦而已,而且有很大可能达不到预期的效果。

    其实,扯那么多,就是想引导思考下,C语言到底适合来干什么事情,还有为什么说C/C++,C和C++到底有着什么样的关系?C语言最适合开发硬件程序,例如单片机程序,驱动程序,甚至操作系统。

    之前推荐了一个太极创客的Arduino教程,Arduino就是一款单片机,这里要说的也和Arduino有关。如果已经学习了Arduino,并且想要制作自己的小制作的时候就会遇到下面问题:

                用原装的板子做电路,线路复杂容错性差。想要做专门的板子来运行Arduino程序,可是不会画PCB板,不知道如何打印PCB,不知道如何焊接元器件等等一系列的问题。这个问题也是博主之前遇到过的,这里推荐大家一个教程,手把手教你制作自己的Arduino电路板,制作电路的全过程都会涉及,包括但不限于:画原理图库和封装库,绘制原理图,绘制Pcb,打印Pcb,焊接元器件,烧录BootLoader程序等整个流程。

               链接放这里了:Altium Designer 学习-----手把手绘制Arduino PCB线路板(零基础)_哔哩哔哩_bilibili(讲的非常棒!!!)学完这个视频,在自己的小项目中制作PCB电路板这个技能,自己应该可以上手了!

    =========================

    (2021.08.10)更新:小甲鱼老师《带你学C带你飞》的后续课程补充

    帮老污龟填一下坑

    =============================

    以前博客写的文章,放在这吧:

    其实在之前写过一篇[文章](https://blog.csdn.net/C1664510416/article/details/79283512),但是也不清楚当时是怎么想的了,就是单单写相互独立的几点,并没有把自己学习的整个过程都写出来,所以一直想完整的记录一下过程。不过,已经过去了这么长时间了,只能凭着记忆来写了。

    第一次接触编程是初中的时候,不过只学了一个“Hello World”就学不下去了。那时候我哥还在上大学,我说:“想学编程,你能不能给我带本书然我看看?”。我哥借了一本C语言的书,名字记不得了,是一个外国人写的,讲的倒是挺好的,看完了第一部分就迫不及待的上机了,在我哥的电脑上摸索了一个多小时,那个Hello World都没有运行起来。。。。。。当时内心是何其崩溃和绝望,至今还记得。然后我哥也看了半天,他也没找出原因。。。那时候网络还没有普及,他就带了一台电脑回来,后来我就回去继续看书,好像看到变量类型哪里看不懂了。就是这样我学不下去了,然后就一直停滞在了变量类型... ...**(所以初学一定要多上机,还有就是要找一个好请教的人,不会的立马请教,比如上论坛提问也可以,有问题就立马解决了,一直拖会把自己给拖垮的)**

    后来就到大学了,之间一直没有碰过编程,但是一直保持着对计算机的兴趣。可能会有人问要不要英语好,数学好。这个问题其实分层的,就是这个问题对于程序员来说,是存在的!但是对于初学者,对于刚刚入门的人来说,根本就不存在英语好不好,数学好不好的问题。只有等你成长到了一定水平的时候,才会面对这些问题。所以,对于初学者来说,干(学)就完事了!

    大一下学期,自己买了电脑,然后就又燃起学习编程的欲望了。学之前查过很多,看看到底学哪一门编程语言比较好,网上都说是C语言,也有推荐Python的,但是当时启蒙老师“[小甲鱼]( https://fishc.com.cn/forum.php )”(没错,就是那个老污龟)推荐先学C语言,然后就义无反顾的“入坑”了!

    你可能有疑惑,就是为什么有那么多编程语言?现在解释给你听的话,只能打比方,你能大概体会到意思就行了。以后不断学习,自然而然就明白了。编程语言相当于工具,有些工具适合做驱动开发,内核开发,像C语言;有些工具适合做,服务器的开发像Golang;有些适合开发前端的开发像JS... ...这些语言都是人为设计的工具,每种工具都有他适合的领域。如果你听着还是很难理解的话,没关系,大致明白意思就行了,后面你自然会懂的。

    而大多数人选择C语言作为入门语言是为什么呢?因为这些大多数人的人都是计算机系的,C语言构建了计算机的半壁江山,C可以说是计算机产业的[核心语言]( http://c.biancheng.net/view/1715.html )。而且后面的许多程序需要要么是用C来写成的,要么是收到C的启发。学完C之后,再学习其他的东西,都会有一种游刃有余的感觉,因为你可以隐约感觉到他们之间千丝万缕的联系。或者你也可以参考这篇[文章]( http://c.biancheng.net/view/1716.html )。

    决定以C语言作为入门教程,就开始找书了,买了很多书,最后真正看的是这两本:《C语言程序设计-谭浩强(第四版)》,《C语言程序设计现代方法(第二版)》。前者入门,后者进阶。入门书能入门就行,太厚的看着都费劲,更别提学了。入门后,再用一本体系完善的书进阶。

    因为是完全自学,我其实学了两遍才入门。第一遍看的翁恺的视频,老师讲的很好,不做学完没啥效果,因为单单就看视频也没上机做题。第二遍看的小甲鱼的《带你学C带你飞》,有配套的课后题,自己都认真做了,这次真的入门了。所以,初学一定上机做题,敲代码,否则想入门真的非常困难。

    那些课后题可能很难,想不出来,有时候是有思路,代码写不出来,这都很正常,没思路就看答案,看完答案自己动手实现一遍,多练就行了。因为才开始学编程的话,大脑还没有适应这种“模式”,写程序对于大脑来说是一种新的表达“模式”,要慢慢适应,要有耐心。我理解的“编程思维”就是大脑表达的一种“模式”,一旦大脑“适应”了这种表达“模式”,你就拥有了“编程思维”。而这种模式不光要花时间,更重要的是“练习”,所以要多上机多敲代码。

    最后,我想说这句话给你听:**过早退出是一切失败的根源!** 

       

    展开全文
  • 25 篇 Java 入门技术博文,送给正在自学的你

    万次阅读 多人点赞 2019-11-09 11:04:12
    很多大学生或者正在自学的程序员问我:“二哥,能否提供一个 Java 入门的学习路线?”刚好我之前花了 7 周多的时间写了 25 篇 Java 入门的技术博文,于是我想不妨把这些整理成一个系列分享出来,给大家作为一个参考...

    很多大学生或者正在自学的程序员问我:“二哥,能否提供一个 Java 入门的学习路线?”刚好我之前花了 7 周多的时间写了 25 篇 Java 入门的技术博文,于是我想不妨把这些整理成一个系列分享出来,给大家作为一个参考。

    先来通过思维导图看一下这 25 篇 Java 入门技术博文涉及到的内容。

    下面是这 25 篇 Java 技术博文对应的链接。非常适合作为入门的参考。

    Java 的核心目的和并发编程
    Java:程序不过是几行代码的集合
    什么是面向对象编程(OOP)?
    如何理解 Java 中的继承?
    吃人的那些 Java 名词:对象、引用、堆、栈
    Java 的操作符——“=”号
    害死人的自动递增,不偿命的自动递减
    Java 流程控制语句
    Java是通过什么机制来确保对象初始化呢?
    Java 访问权限控制:public、private、protected
    Java代码复用的三种常用方式:继承、组合和代理
    Java:多态乃幸福本源
    Java 抽象类和接口,看这一篇就够了
    Java内部类
    Java String,看这篇就够了
    Java 数组,看这一篇就够了
    Java 集合类入门篇
    HashMap,难的不在Map,而在Hash
    Java泛型的重要目的:别让猫别站在狗队里
    Java异常处理:给程序罩一层保险
    如果有人再问你 Java 的反射,把这篇文章扔给他
    Java枚举:小小enum,优雅而干净
    Java注解(Annotation):请不要小看我!
    Java I/O 入门篇
    Java:并发不易,先学会用

    看完后,如果你觉得有用,请回来顺手点个赞,这将是我继续写下去的最强动力。如果你觉得意犹未尽,关注「沉默王二」公众号,后台回复关键字「免费视频」获取入门教学视频(已分门别类)。

    展开全文
  • 为什么“自学”总是那么难?

    万次阅读 多人点赞 2021-02-06 15:22:13
    自学绝非易事。没有外部约束,没有DDL,即使没学成,也不会造成什么后果。但在这个日新月异的社会,在这个竞争激烈的环境中,不会自学,很难杀出重围。本文作者Natassha Selvaraj在Why Is Self-Learning So ...
  • 软件测试全套教程,软件测试自学线路图

    万次阅读 多人点赞 2018-07-09 14:08:02
    现在市面上这么多软件,每个软件背后都有软件测试工程师的功劳,这也造就了软件测试行业前景非常好,今天我就分享一下自学线路图,及全套教程! 软件测试学习线路图 点击查看大图 第一阶段: 该...
  • 聊聊自学,让你事半功倍的学习网站和工具

    万次阅读 多人点赞 2021-04-12 23:00:26
    上大学后,有个明显的感受是:很多知识都要靠自学,才能掌握。 我大学本身自动化专业,学得了强电玩得了弱点,做得了硬件写得了软件,怎么形容呢? 啥都学,但啥都不精通。 为了参加各种科技竞赛,取得好名次,各种...
  • 网络工程ospf自学PPT6
  • 自学自学笔记-源码

    2021-02-08 14:00:08
    自学笔记 Mybatis 弹簧 springMVC
  • 自学编程需要注意什么?

    千次阅读 多人点赞 2017-12-20 13:43:35
    我的读者都知道,我是非科班 0 基础自学过来的,我很清楚一个人自学编程有哪些误区,有哪些需要注意的地方,以及哪些可以提升效率的地方,所以,我从我的自学经历给一些自学编程的后来者总结了一些建议,希望给正在...
  • 自学的网页设计资料,简单易懂,看完自己便可以自己设计网页了,一定要坚持看完。
  • 动画概论04503湖北自学考试在线湖北自学考试门户湖北自学考试网校.doc
  • 自学python

    2018-04-26 21:28:55
    自学Python——编程基础、科学计算及数据分析,拿走不谢。
  • 自学考试笔记自学考试小抄自学考试串讲00533我国古代文学作品选二.doc
  • qt自学资料 qt自学资料 qt自学资料 qt自学资料
  • JQuery.自学笔记、最全自学Query.路线,
  • 自学编程/如何自学编程//自学C语言/如何自学C语言//自学java/如何自学java? 本人从事指导自学行业,多年来成功指导数百名学生自学成功,其中包括从初一到大学乃至非计算机专业的社会人士,总结出一套适用于学习...
  • UML自学手册自学手册

    2010-10-19 22:27:57
    自学手册自学手册自学手册自学手册自学手册自学手册
  • Matlab自学程序
  • 10个自学编程顶尖网站
  • 自学考试收费管理系统》是为自学考试收费管理部门专门开发的一套管理系统。包括自学考试和教师资格考试,是一套对基本信息考试类型、电子档案费、考生基本信息、报考信息、
  • Matlab 自学用书

    2018-10-08 15:47:55
    这是Matlab 自学用书提供给大家,想自学的同学可以进行下载~
  • Java自学路线图之Javaweb自学

    千次阅读 多人点赞 2020-03-08 21:36:24
    文章目录Javaweb自学技术要点Javaweb自学--...CSS3Javaweb自学--JavaScriptJavaweb自学--jQueryJavaweb自学--XMLJavaweb自学--Web服务器基础Javaweb自学--ServletJavaweb自学--Cookie&SessionJavaweb自学...
  • Java 后端自学之路

    万次阅读 多人点赞 2018-02-09 10:21:27
    最近有些网友问我如何自学 Java 后端,还有些是想从别的方向想转过来,但都不太了解 Java 后端究竟需要学什么,究竟要从哪里学起,哪些是主流的 Java 后端技术等等,导致想学,但又很迷茫,不知从何下手。...
  • VB自学教程

    2017-11-06 10:45:34
    VB自学教程VB自学教程VB自学教程VB自学教程VB自学教程
  • FORTRAN完全自学手册,用于指导初学者学习
  • Django自学教程

    2020-02-09 23:04:29
    Django自学教程,学习Django的教程,Django自学教程,学习Django的教程,Django自学教程,学习Django的教程
  • lucene自学

    2014-09-17 18:29:39
    lucene自学文档,记录了我学习lucene的一些笔记

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 264,622
精华内容 105,848
关键字:

自学