精华内容
下载资源
问答
  • 推荐一个学习群 java《学习》+交流 523401738首先说结论:Java绝对不是最容易或者最容易上手的语言。我们稍微观察最近几年开始大规模进入大家实现的几门新兴编程语言,包括Python,包括苹果主推的Swift等等,它们在...

    作为一个超过10年以上工作经验的Java开发者,我觉得应该可以来回答一下。

    推荐一个学习群 java《学习》+交流 523401738

    首先说结论:Java绝对不是最容易学或者最容易上手的语言。

    我们稍微观察最近几年开始大规模进入大家实现的几门新兴编程语言,包括Python,包括苹果主推的Swift等等,它们在宣传初期都不约而同的喜欢怼一下Java,并且理由出奇一致:我们只需要一句话就能写出hello world,但是Java需要定义类,定义方法,在方法内写输出,然后创建类的对象,再调用方法,实现输出。所以你看,我们这门语言多么简洁和高效。

    我想这也是很多新人不喜欢Java的原因。 但是我们不妨深究一下Java为什么在最初的时候就被设计成这样,顺便也能回答题主的问题。

    没错,Java最初的理念是脱胎于C++的。C++最大的成功之处是它是一门面向对象的语言。 什么是面向对象?万事万物皆对象。用面向对象的思想能够在最大程度上模拟真实的现实世界。 如果我们把“人”看成一个“类”,那么你我他、小张小李、隔壁练腰的老王都是这个类的独立“对象”。身高肤色腿长就全都是这些“对象”的“属性”,而吃饭睡觉工作等等行为就都是这些“对象”的“方法”——方法用来操控对象的属性,从而使对象做出一定的行为。众多对象的行为相互影响,就能做出更加惊天动地的事情——马爸爸这个“人类”的“对象”,用“说话演讲”这一方法,成功影响了十八罗汉们的“工作”这一方法,并提升了他们的“努力值”属性,最终造就了现在的阿里帝国。

    这就和我们玩升级打怪的游戏一样,对吧。

    而C++又是来源于C语言的。C语言没有面向对象的概念,是一门纯粹的“面向过程”的编程语言。我相信很多新手对“面向过程”这个概念都不甚了解。实际上在早期,编程的世界全部都是面向过程的,人们用程序语言直接去处理业务逻辑。

    你说需要在寄存器里放进去一个变量?好吧,我先看一下寄存器是否还有空间,如果没有的话,要看看哪些不再使用了,可以取出来,腾出空间,再把新变量放进去。这些操作在面向过程的编程思想中,每一次操作都可以只对应一条编程语句或是一小段简单的逻辑块。

    如何把大象放进冰箱?打开冰箱门,把大象放进去,关上冰箱门——这就是面向过程的思维方式,更直接了当。

    C语言是面向过程的语言,C++提出了面向对象的概念,但是仍然保留了面向过程的设计思想,而Java是纯粹的面向对象语言,没有面向过程的踪影了,它封装了它们,程序员不再那么容易看得到了。

    这也是为什么C++和Java在面世之初,被人们称为“高级编程语言”的原因之一。

    而前面所提到的一些新兴编程语言,它们所标榜的高效和简洁,其实就是典型的面向过程的编程思想。这也是新手们更容易接受和喜闻乐见的东西——简洁——别忘了推广语言也是需要宣传的,某些时候这真的只是宣传口径而已。

    但是你会发现一个很有意思的地方,如果你去苹果官方的Swift网站查看,会发现苹果仍然将这门语言称为面向对象的编程语言,事实上确实它也支持面向对象的编程方式——尽管你能在它的很多官方文档里看到大量的面向过程的编程思想。

    想想为什么这些语言一边标榜自己比Java更简洁,又要一边说自己是面向对象语言呢,这不是左右互搏么。

    其实是面向对象的方式虽然看起来冗长复杂,但是它更接近人类的自然思维模式,这一点如果不能深刻理解面向对象概念的话,是很难体会的。但是它确实在软件领域能够解决很多更大规模和复杂的事情——数一数有多少互联网巨头在发展之初都是使用更简洁的编程语言,但最后发展到一定的规模后,都不约而同在底层基础架构层面转向了Java吧,他们应该没有串通好或者被Java收买。

    其实编程只是软件工程工作过程中的一个环节,而语言又只是编程的工具,没有好坏之分,只有合适不合适。

    新人出于本能选择更简单更容易上手的语言是很正常的,但是想要在这一行业内做出成绩来是需要巨大的付出的,但这已经和语言无关了。



    作为一个超过10年以上工作经验的Java开发者,我觉得应该可以来回答一下。

    题主的问题比较大,要回答好需要了解很多编程语言的基本知识和设计理念。

    首先说结论:Java绝对不是最容易学或者最容易上手的语言。

    我们稍微观察最近几年开始大规模进入大家实现的几门新兴编程语言,包括Python,包括苹果主推的Swift等等,它们在宣传初期都不约而同的喜欢怼一下Java,并且理由出奇一致:我们只需要一句话就能写出hello world,但是Java需要定义类,定义方法,在方法内写输出,然后创建类的对象,再调用方法,实现输出。所以你看,我们这门语言多么简洁和高效。

    我想这也是很多新人不喜欢Java的原因。 但是我们不妨深究一下Java为什么在最初的时候就被设计成这样,顺便也能回答题主的问题。

    没错,Java最初的理念是脱胎于C++的。C++最大的成功之处是它是一门面向对象的语言。 什么是面向对象?万事万物皆对象。用面向对象的思想能够在最大程度上模拟真实的现实世界。 如果我们把“人”看成一个“类”,那么你我他、小张小李、隔壁练腰的老王都是这个类的独立“对象”。身高肤色腿长就全都是这些“对象”的“属性”,而吃饭睡觉工作等等行为就都是这些“对象”的“方法”——方法用来操控对象的属性,从而使对象做出一定的行为。众多对象的行为相互影响,就能做出更加惊天动地的事情——马爸爸这个“人类”的“对象”,用“说话演讲”这一方法,成功影响了十八罗汉们的“工作”这一方法,并提升了他们的“努力值”属性,最终造就了现在的阿里帝国。

    这就和我们玩升级打怪的游戏一样,对吧。

    而C++又是来源于C语言的。C语言没有面向对象的概念,是一门纯粹的“面向过程”的编程语言。我相信很多新手对“面向过程”这个概念都不甚了解。实际上在早期,编程的世界全部都是面向过程的,人们用程序语言直接去处理业务逻辑。

    你说需要在寄存器里放进去一个变量?好吧,我先看一下寄存器是否还有空间,如果没有的话,要看看哪些不再使用了,可以取出来,腾出空间,再把新变量放进去。这些操作在面向过程的编程思想中,每一次操作都可以只对应一条编程语句或是一小段简单的逻辑块。

    如何把大象放进冰箱?打开冰箱门,把大象放进去,关上冰箱门——这就是面向过程的思维方式,更直接了当。

    C语言是面向过程的语言,C++提出了面向对象的概念,但是仍然保留了面向过程的设计思想,而Java是纯粹的面向对象语言,没有面向过程的踪影了,它封装了它们,程序员不再那么容易看得到了。

    这也是为什么C++和Java在面世之初,被人们称为“高级编程语言”的原因之一。

    而前面所提到的一些新兴编程语言,它们所标榜的高效和简洁,其实就是典型的面向过程的编程思想。这也是新手们更容易接受和喜闻乐见的东西——简洁——别忘了推广语言也是需要宣传的,某些时候这真的只是宣传口径而已。

    但是你会发现一个很有意思的地方,如果你去苹果官方的Swift网站查看,会发现苹果仍然将这门语言称为面向对象的编程语言,事实上确实它也支持面向对象的编程方式——尽管你能在它的很多官方文档里看到大量的面向过程的编程思想。

    想想为什么这些语言一边标榜自己比Java更简洁,又要一边说自己是面向对象语言呢,这不是左右互搏么。

    其实是面向对象的方式虽然看起来冗长复杂,但是它更接近人类的自然思维模式,这一点如果不能深刻理解面向对象概念的话,是很难体会的。但是它确实在软件领域能够解决很多更大规模和复杂的事情——数一数有多少互联网巨头在发展之初都是使用更简洁的编程语言,但最后发展到一定的规模后,都不约而同在底层基础架构层面转向了Java吧,他们应该没有串通好或者被Java收买。

    其实编程只是软件工程工作过程中的一个环节,而语言又只是编程的工具,没有好坏之分,只有合适不合适。

    新人出于本能选择更简单更容易上手的语言是很正常的,但是想要在这一行业内做出成绩来是需要巨大的付出的,但这已经和语言无关了。

    说了那么多,最后把问题抛还给题主,你自己现在怎么思考的呢。


    展开全文
  • 如何开始在 GitHub 上学习东西

    千次阅读 2021-03-16 11:54:57
    虽然我早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也...

    换句话说,就是如何开始正确的使用 GitHub,不多 BB,直接上干货!

    虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。

    后来自己花了一个星期看完了 Python 的基础知识,就想着找点项目看一看,学一学,练一练,这个时候我才真正的去了解 GitHub,开始了在 GitHub 的瞎逛之旅,在开始之初,随之而来的问题是我不知道哪些项目当时还是新手的我,哪些项目是好项目,哪些项目好玩有价值。

    虽然现在我已经在 GitHub 上逛的相当流畅,但我还是想如果有一个东西可以收集这些对新手友好的东西,那么我当时可以少走更多的弯路,节省更多的时间吧。


    那么有这么一个东西么?


    有的,而且已经做了三年多,这就是HelloGitHub,一个分享 GitHub 上有趣,入门级的开源项目。


    v2-696f3022e0884e58ee33f9764c0183b7_b.jpg


    GitHub 网址: github.com/521xueweihan


    在项目中,内容每月 28 号以月刊的形式更新发布,主要是面向编程新手、热爱编程、对开源社区感兴趣人群的项目。更新的内容主要包括:各种语言的流行项目、入门级项目、让生活变得更美好的工具、书籍、学习心得笔记、企业级项目等。


    v2-08c70b9d3eb9a0bcafac6dc523ccb614_b.jpg


    这些项目都有一些共同的特征,那就是很酷,非常容易上手的项目,编程的魅力和便捷体验起来就是这么简单。


    v2-0dd29b558060709fb465d19c16c84d08_b.jpg


    再次给出 GitHub 地址: github.com/521xueweihan


    下面我们就来看看,这个项目具体包括啥,我们以最新的月刊(43 期)为例。


    v2-69f3f2a7eb14fd9f2087587aad6500d3_b.jpg


    0x00 简介


    v2-b7246002f0cc9d5596f144a5239b28f8_b.jpg


    0x01 目录


    v2-ea14380c16e2392ea2538f7d9fa4c82a_b.jpg


    0x02 内容


    每个类型的项目我们挑一个来看。


    C 项目


    tmux:一个终端复用工具,可极大的提高工作效率。

    • 提供了强劲的、易于使用的命令行界面;
    • 可横向和纵向分割窗口;
    • 窗格可以自由移动和调整大小,或直接利用四个预设布局之一;
    • 可在多个缓冲区进行复制和粘贴;
    • 可通过交互式菜单来选择窗口、会话及客户端;
    • 等等。


    v2-59d5bdcf77746003fe593a0e2749e61d_b.jpg


    C# 项目


    BenchmarkDotNet:功能强大的用于基准测试 .NET 库。



    v2-5fff128abfbb91852d2e0217ac0ce041_b.jpg



    C++ 项目


    dbg-macro:打日志是 C++ 开发中必不可少的一种 debug 方式,dbg-macro 受 rust-lang 中 的 dbg 启发,提供比 printf 和 std::cout 更好的宏函数。主要有如下特点:

    • 美观的彩色输出(当输出不是交互式终端时,颜色将自动禁用);
    • 兼容 C++11,并且是 header-only;
    • 支持基础类型和 STL 容器类型的输出;
    • 除了基本信息外,还输出变量名和类型;
    • 启用 DBG_MACRO_DISABLE 生成 release 版。


    #include <vector>
    #include <dbg.h>
    
    // You can use "dbg(..)" in expressions:
    int factorial(int n) {
      if (dbg(n <= 1)) {
        return dbg(1);
      } else {
        return dbg(n * factorial(n - 1));
      }
    }
    
    int main() {
      std::string message = "hello";
      dbg(message);  // [example.cpp:15 (main)] message = "hello" (std::string)
      const int a = 2;
      const int b = dbg(3 * a) + 1;  // [example.cpp:18 (main)] 3 * a = 6 (int)
      std::vector<int> numbers{b, 13, 42};
      dbg(numbers);  // [example.cpp:21 (main)] numbers = {7, 13, 42} (size: 3) (std::vector<int>)
      dbg("this line is executed");  // [example.cpp:23 (main)] this line is executed
      factorial(4);
      return 0;
    }


    v2-58e5a742bcac0513f9cb244ed56ab473_b.jpg


    Go 项目


    go-admin:基于 Golang 语言的数据可视化与管理平台。特性如下:

    • 高生产效率:10 分钟内做一个好看的管理后台;
    • 主题:默认为 adminlte,更多好看的主题正在制作中,欢迎给我们留言;
    • 插件化:提供插件使用,真正实现一个插件解决不了问题,那就两个;
    • ✅认证:开箱即用的 rbac 认证系统;
    • ⚙️框架支持:支持大部分框架接入,让你更容易去上手和扩展。


    v2-160978ce90da4ef6e2520553b5416719_b.jpg


    Java 项目


    eladmin:基于 Spring Boot 2.1.0、Vue 的前后端分离的后台管理系统,支持数据字典与数据权限管理、一键生成前后端代码、前端菜单动态路由等。基于 Spring Boot2.1.0 框架,涉及的技术栈:非关系数据库 redis、接口测试工具 swagger、druid 数据源驱动、邮件依赖(javax.mail)、三方支付和云存储 SDK、页面模板引擎 freemarker。技术栈丰富,初学者可以作为实战项目学习和使用。


    v2-796e6030b1933ab49a9f213c04de37f6_b.jpg


    JavaScript

    chart-race-react:一个简单易用的 Bar Chart Race(长条图赛跑动画) React 组件。示例代码:


    import ReactDOM from 'react-dom';
    import BarChart from 'chart-race-react';
    
    ReactDOM.render(<BarChart />, document.getElementById('root'));


    v2-a2f8494b6ecc84d4e33017d309ecc164_b.jpg


    Python 项目


    TagUI-Python:一个 Python 自动化操作的库。比如:自动打开网页并截图,示例代码:


    t.init()
    t.url('https://www.google.com')
    t.type('q', 'decentralization[enter]')
    t.snap('page', 'results.png')
    t.close()


    Ruby 项目


    shift:一个 Ruby 语言写的在线 MySQL 数据库迁移工具。


    v2-1b27ca15d1c4484e047f68e3d625faa4_b.jpg


    v2-244d28a5cfef33dfdb47cb0d7fa986c8_b.jpg


    Swift 项目


    Percent:让 Swift 语言支持百分比类型,消除精度缺失的烦恼。示例代码:


    import Percent
    
    10% + 5.5%
    //=> 15.5%
    -10% / 2
    //=> -5%


    其他


    cascadia-code:微软开源的一套等宽字体,有趣的是可以组合字符创建新的字形。组合效果如下:


    v2-2ef8af84f31864bb2c270589ca1a375d_b.png


    开源书籍


    python_ebook:Python 编程相关的电子书资源集合项目。


    book:(英文)《Cosmic Python》讲述如何管理复杂性的 Pythonic 应用程序结构的书籍。


    教程


    BigData-Notes:大数据入门教程,该教程介绍了大数据常用技术栈的基础和核心知识。内容涵盖:Hadoop、Spark、Storm、HBase、Hive、ZooKeeper、Kafka 等。


    机器学习


    dimensionality_reduction_alo_codes:该项目使用 Python 实现了 11 种经典的数据抽取(数据降维)算法。同时附有相关资料、展示效果,适用于机器学习初学者和刚刚入坑数据挖掘的小伙伴。


    v2-f671b372fe7886945ae45cce5b4755f7_b.jpg


    0x03 写在之后


    以上,就是今天分享的内容,希望更多的人能够知道 HelloGitHub 这个项目,内容已经在这了,万事俱备,差的就是你学习的驱动力和对作者 Star 的支持了。

    让走在开源路上的开发者不再孤单,让想进入开源世界的人不再畏惧。

    作者:Rocky0429
    链接: zhihu.com/question/2161

    展开全文
  • 一般3D建模多久能上手

    千次阅读 2020-08-10 16:08:52
    因为现在的行业对3D建模的技术体系和思维体系要求特别高了,而东西,并不是在网上随便扒拉几个视频教程或者买几本书就能学会的了。而且我们大多数人的自律能力也是差的,在自学的过程中,总是会遇到各种各样的...

    很多打算学习3D建模的同学刚开始学的时候,总是信誓旦旦的说:我要自学,我一定可以自学成功。然后一般半年以后再见,同学3D建模自学得怎么样了啊?基本上大多数同学都会回答:哎,老师别提了,学废了,老不好意思了。我一般都会拍拍同学的肩膀说:别难过,这是正常。

    为什么3D建模靠自学很难学成功呢?因为现在的行业对3D建模的技术体系和思维体系要求特别高了,而很多东西,并不是在网上随便扒拉几个视频教程或者买几本书就能学会的了。而且我们大多数人的自律能力也是很差的,在自学的过程中,总是会遇到各种各样的问题,基本上几个回合下来,大多数人都会举手投降,感叹一句:好难哟。其实本质上并不是难或者易的问题,而是单纯的只靠自己瞎摸索,总是有一种在黑夜里没有光的感觉,像一个无头苍蝇。

    想学习3D建模,怎么样才能少走弯路呢?答案:跟高手混。

    零基础学习3D建模需要7-8个月左右,需要学习美术基础,3Dmax基础,建模制作流程,贴图绘制和项目实战训练。只要学好了,找工作就业就不是问题了。

    如果你是零基础,需要一个完整的3D建模课程设计,一个好的课程设计大致应该包含以下4个方面的内容:

    1、一个月预科班基础课。

    虽然零基础可以学习3D建模,并不代表着可以不重视基础。所以我们学习的第一步还是要巩固自己的美术基础。

    最快的方式是直接在PS手绘板上进行临摹。一个月一般临摹40个左右的肩甲类、图表类小物件,数量就可以达标了。质量的话,在临摹的过程中,还需要有会美术的同学或者老师进行指导,发现每个作品的问题,纠正问题,再修改,再点评,如此循环,一个月美术能力将会有很大的提升。

    如果大家想学习次世代3D游戏建模的话,可以到这个游戏建模教程资料裙:它开头的数字是:107,在中间的是:217,位于尾部的数字是:2722,把以上三组数字按照先后顺序组合起来即可。3Dmax、Zbrush、Maya次时代游戏动画建模软件教学,从零基础萌新到实操探索,手把手教会你3D游戏建模

    预科班同时学习3Dmax、BP等软件的基础命令,为专业课的学习做好美术基础和软件基础的学习。

    2.三个月专业基础课。

    专业基础课主要是在预科班的基础上学习美术基础,3Dmax基础,UV拆分和摆放,贴图绘制基础。三个月高强度的训练。

    3、三个月项目实战训练。

    美术基础、软件基础、UV、贴图整个3D建模的流程都学完以后,开始进行项目实战训练,开始针对不同类型的3D建模进行训练:男性人体建模,女性人体建模,布、皮、毛发、金属等贴图的绘制,Q版等模型和色彩的训练。每个项目实战的案例都不是随意选择的,每个案例都有一定的侧重点和训练方向。每种材质都学习训练过后,到真正的公司项目上才能游刃有余。

    4、公司真实项目实训。

    如果有机会到公司的真实项目上进行实训一个月左右,在项目导师的带领下,逐渐去适应项目的节奏,效率,工作要求和标准,那离真正入职公司就不远了哟。。

    应该怎么学习3D游戏建模这个行业?

    (1)了解行业。

    如果你已经很熟悉了可以当这条不存在。不太熟就去看网站,看大神作品,关注公众号,逛论坛,加群,放开所有成见去听一听看一看。这点真的很重要。如果连想进入的行业都一点儿不了解,怎么学都是抓瞎。

    (2)熟悉基本的软件。

    第一步做得好,到这里自然就知道应该去学习啥。先看一些基础教程,熟悉主流的建模软件,可以多上手试用几个,对着教程,或者自己随便做点儿小东西,捏几个四不像,只要动了脑子,很容易就能感觉到这类软件的基本操作逻辑都是类似的。然后只管去找喜欢的案例教程,免费的小案例教程到处都是。找一个,跟着做,能不能做成功不重要,等认真做完,这软件你基本就熟了。

    (3)寻找进阶教程。

    同时学一些基本的美术理论知识,多看好作品,多收集你喜欢的素材参考图。顺便推荐一下深夜学院的教程,有的案例很不错,老师讲解的时候会分析美术相关的原理,挺实用的。其实到这里基本就是水磨工夫了,不停练习,一直练习,有成熟作品就去找工作实习继续练习,提高审美眼光,跟上技术发展的步子就好。

    文章推荐阅读 【 学习企鹅圈:1072172722 】 :

    3D游戏建模前景如何?是做什么的?大牛分享月薪2万教程工具笔记【自提】

    次世代3D游戏究竟有什么不同,看人物建模与场景搭建,第一眼就有答案!

    什么是次世代游戏?科普次世代游戏角色制作过程

    游戏行业很赚钱?那是你不了解次世代游戏建模师这个职业!

    学习建模很困难?资深3D建模师教你如何轻松过万

    一个新人想要从零基础成为次世代游戏设计师,需要哪些阶段呢?

    展开全文
  • 可能多刚接触 Spring Boot 的小伙伴都会有这样的疑问,Spring Boot 要怎么,要不要先 SSM?今天结合自己的经验,和大家说一说我的看法,也顺便推荐几个 Spring Boot 学习资料。 1.Spring Boot 是什么 我们刚...

    可能很多刚接触 Spring Boot 的小伙伴都会有这样的疑问,Spring Boot 要怎么学,要不要先学 SSM?今天结合自己的经验,和大家说一说我的看法,也顺便推荐几个 Spring Boot 学习资料。

    1.Spring Boot 是什么

    我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便。

    再后来,我们引入 Struts2/SpringMVC 这一类的框架,来简化我们的开发 ,和 Servlet/JSP 相比,引入框架之后,生产力确实提高了不少,但是用久了,又发现了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,就是那几行配置,不同的项目,可能就是包不同,其他大部分的配置都是一样的。

    Java 总是被人诟病配置繁琐代码量巨大,这就是其中一个表现。那么怎么办?Spring Boot 应运而生,Spring Boot 是 Pivotal 团队在 2013 年开始研发的一个基于 Spring 的全新框架,试图将 Spring 中臃肿的配置进行简化,使 Java 开发更加轻量与快速,这个框架非常活跃,官方也非常重视。

    Spring Boot 主要提供了如下功能:

    1. 为所有基于 Spring 的 Java 开发提供方便快捷的入门体验。
    2. 开箱即用,有自己自定义的配置就是用自己的,没有就使用官方提供的默认的。
    3. 提供了一系列通用的非功能性的功能,例如嵌入式服务器、安全管理、健康检测等。
    4. 绝对没有代码生成,也不需要XML配置。

    Spring Boot 的出现让 Java 开发又回归简单,因为确确实实解决了开发中的痛点,因此这个技术得到了非常广泛的使用,大概从 2017 年年初开始,Spring Boot 基本上面试必问,现在流行的 Spring Cloud 微服务也是基于 Spring Boot,因此,所有的 Java 工程师都有必要掌握好 Spring Boot。

    从 Spring Boot 诞生的过程中,我们可以看到:

    1. Spring Boot 并非另起炉灶,而是在现有的 Spring 框架的基础上整出来的,它把 Spring 中繁琐的配置进行了简化。
    2. Spring Boot 降低了 Spring 家族的使用门槛,使新手更易上手 Spring 框架。

    既然 Spring Boot 不是另起炉灶,那么 Spring Boot 学习要不要跳过 SSM 呢?听松哥来分析。

    2.要不要跳过 SSM

    这是很多人问我的一个问题,我的建议是:不要

    Spring Boot 基于 Spring,简单且容易上手,很多人想当然的跳过 SSM 直接上 Spring Boot。但是当我们细究 Spring Boot 中的自动化配置、条件注解、Java 配置等东西时,实在找不出太多新鲜玩意,Java 配置是 Spring3 开始提供的,条件注解 也是 Spring 中的东西,很多很多,都是 Spring 中就有的,只不过这些东西在 Spring Boot 时代大放异彩。

    也就是说,即使你跳过了 SSM 直接去学习 Spring Boot,实际上还是在学习 Spring 中的东西,那既然这样,我们还不如坐下来,老老实实把 Spring 过一遍。

    各个领域的开发工程师其实都会面临类似的问题,学习了一些优秀的封装框架之后,还有没有必要去学习底层?当然有必要!因为底层的东西可以让你深刻的理解你目前用的这个东西,也能让你在出问题时快速解决掉问题。

    其实无论你想搞什么技术,都要有牢固的基础知识,这些牢固的基础知识就像肥沃的土壤,可以孕育出各种不同技术方向的牛人,基础掌握好了,学什么框架都快。今天你跳过 SSM 直接学了 Spring Boot,假如有一天 Spring Boot 不行了,Pivotal 团队又基于 Spring 框架搞了一个新的框架出来,那你是不是又要去学一遍?但是如果你一开始就掌握了 Spring 的各种用法,无论基于它搞出来什么样的框架,你都能快速上手。更进一步,如果你研究透了 Spring 中的 AOP、Ioc/DI,你会发现很多框架大同小异,核心思想就是这些东西,那么你在学习 Spring 之外的框架,就会容易很多。

    如果你对 SSM 还不太熟悉的话,可以在公号后台分别回复 springspringmvcmybatis 获取松哥手敲 5 万余字的干货教程。

    3.都要学哪些

    那么 Spring Boot 学习都要学哪些东西呢?我这里列举了一个进阶路线:

    1. 最基础的当然是 Spring/SpringMVC 相关的东西了。
    2. 搭配各种页面模版的使用,例如 Jsp/Thymeleaf/Freemarker/Groovy Templates 等。
    3. 和各种 SQL 数据库的整合,以及一些常见的数据持久化框架,例如 JdbcTemplate、MyBatis、Jpa 等。
    4. 和各种 NoSQL 数据库的整合,例如 Redis、MongoDB、Elasticsearch 等。
    5. 搭配安全管理相关的知识点,例如 Spring Security、Shiro 等。
    6. 缓存的使用,例如 JCache、Ehcache 等。
    7. 和消息中间件的搭配整合,如 ActiveMQ、RabbitMQ、Kafka 等。
    8. 数据校验/定时任务/邮件发送等。
    9. 各种监控的使用。
    10. 结合 WebSocket 的使用。
    11. Spring Cloud 中相关组件。

    上面这些只是我列出来的一些比较常见的技术点,每个技术点都还可以延伸出很多其他的东西,大家可以结合自己的情况,按照顺序一个一个来学,这里边还涉及到很多第三方的框架,例如 Redis、MongoDB、RabbitMQ 等,Spring Boot 的出现只是让这些组件在和 Spring 家族的产品整合时变得更加方便,但是并不会简化这些组件原本的用法,所以,该学 Redis、该学 MongoDB、该学 RabbitMQ 等等,还是一个不能少。以 Redis 为例,学会了 Redis,学会了 Spring 整合 Redis,再回过头来看 Spring Boot 整合 Redis,那简直太 easy 了(大家在公众号后台回复 redis,有松哥手敲的 redis 教程)。

    当然,学习 Spring Boot 最终我们还是奔着快速开发和微服务去的,所以,像 Docker、Spring Cloud 等技术,也是需要去了解一下的。

    4.怎么学

    Spring Boot 发展到今天,网上的资料和图书现在是越来越多了。在看资料学习的同时,大家也要留意以下几个点:

    1. 多看源码。不同于其他全新的框架源码你可能会看懵了,由于 Spring Boot 是基于 Spring 的,所以只要你 Spring 基础扎实,看 Spring Boot 源码可以说是毫无压力。如果看 Spring Boot 源码觉得有压力,那可能你 Spring 基础不牢靠,这个时候不妨放下 Spring Boot,去复习下 Spring。
    2. 每当学会 Spring Boot 中的一个知识点,不妨想想这个功能在 Spring 框架中要如何使用,如何配置,两边都搞懂了,互相印证,加深对一个知识点的理解。
    3. 多多关注 Spring Boot 的发展动态。不同于传统的框架可能一年更新一两次,Spring Boot 更新非常频繁,二次每次更新都会带来一些好玩的东西,可能会有新的 API 加入进来,也可能会有旧的 API 失效,变化大,因此多多关注,避免掉坑。

    最后,我这里给大家列举几个我自己经常关注的几个资源。

    4.1 官方文档

    老实说,Spring Boot 的官方文档是我接触的所有官方文档中最条理清晰浅显易懂的,大家做开发,多多少少都接触过一些第三方的开放平台,很多平台的文档真是让人忍不住想吐槽,框架都做出来了,认认真真写个文档有那么难么?

    不过 Spring Boot 的官方文档可以算是非常非常友好了。虽然是英文的,但是实际上对英文要求并不高,连读带猜,其实很容易明白它的含义,我一般对 Spring Boot 中某个知识点有疑问的时候,都是首选官方文档,当前最新版的官方文档地址是:

    • https://docs.spring.io/spring-boot/docs/2.2.4.RELEASE/reference/html

    当然,如果你嫌官方文档打开慢,松哥也帮你下载好了最新版的 pdf,公众号后台回复 springboot2.2.4 可以获取。

    4.2 Spring 官方博客

    每次 Spring 或者 Spring Boot 发新版本,松哥都会去看一下新版本有哪些好玩的东西,增加了哪些内容。我不可能把源码读一遍然后总结出来它的变化,那一般是如何获取权威的第一手信息呢?关注 Spring 官方博客即可。

    打开 Spring 官网,在顶部菜单里有一个选项就是 Blog,关于 Spring 家族产品的任何更新计划,更新结果,都会在这里通知到大家。

    在这里插入图片描述

    松哥也推荐大家多多关注这个 Blog,一方面能够及时接收到一手信息,另一方面还能提高英语,一举两得。宅在家,泡一壶茶,细细的品一品这个网站,真的蛮不错。

    Blog 地址:

    • https://spring.io/blog

    4.3 中文资料

    说到中文资料,就不得不说松哥自己的在线教程和离线 pdf 文档了。手敲了 274 页教程,囊括了 Spring Boot2 常见的各种用法,即有离线的 pdf 供大家下载,也有在线的学习网站,这就是满满的诚意,还没下载 pdf 的小伙伴不要错过。

    在这里插入图片描述

    在线教程地址:

    • http://springboot.javaboy.org

    离线 pdf 下载文档,在公众号后台回复 springboot 获取百度网盘地址。

    4.4 学习案例

    除了这些文字性的东西之外,一些在线案例也至关重要。这里给大家推荐两个仓库,这两个仓库中的所有案例都是基于 Spring Boot2 来做的。

    首先就是我公众号上文章的配套案例:

    GitHub 地址:

    • https://github.com/lenve/javaboy-code-samples

    Gitee 地址:

    • https://gitee.com/lenve/javaboy-code-samples

    这个仓库中的大部分案例都是针对 Spring Boot 的,而且有一个好处就是这些案例都有对应的讲解文章,每个案例都对应一个文章,岂不美哉。

    在这里插入图片描述

    另一个仓库就是我整理的比较完善的一个仓库,但是就没有对应的讲解文章了:

    GitHub 地址:

    • https://github.com/lenve/javaboy-video-samples

    Gitee 地址:

    • https://gitee.com/lenve/javaboy-video-samples

    5.小结

    资料贵精不贵多,关键是要动手去学。大学时候,有的同学热衷于收集各种资料,电脑硬盘塞得满满的,但是就是不学,这些资料再多也没有用。

    展开全文
  • 入职新公司后如何快速上手项目

    千次阅读 多人点赞 2021-07-23 00:01:44
    但是,如果你给数据库中所有的表和字段都添加了注释,则该项目的下一位接手者将变得非常容易上手。 执行MySQL查询 select TABLE_NAME, TABLE_COMMENT from INFORMATION_SCHEMA.Tables where table_schema = 'enen''...
  • 据统计,Python人才需求量每日...越来越多人听说Python前景好,容易上手都来Python。那么,Python真的容易上手吗?能撇开那些天花乱坠的假大空,单纯从技术角度解释一下吗?下面给大家详细解释一下。 因为Pytho...
  • Android开发该学习哪些东西

    万次阅读 多人点赞 2017-06-15 14:58:55
    开篇: 本人也是众多Android开发道路上行走的一...众所周知,现在移动开发早就不是最热门的程序员职业了,如果你没一点真功夫,仅仅靠两三个月的集训已经难在这个行业中占有一席之地了。因此,想拥有真正的“真本...
  • 微信小程序开发,快捷方便,容易上手,学习成本不高,但是好的程序员必须要经常开发来积攒经验才为上策。在我的微信小程序上手篇中,笔者把微信小程序的demo通读了一遍,可以说收获良多,东西只有在自己理解的...
  • 案例上手 Spring 全家桶

    千次阅读 2019-07-21 23:30:02
    《案例上手 Spring 全家桶》课程亮点spring boot面试题 Spring 技术零基础轻松入门 spring boot 68 讲更全面地覆盖 Spring 全家桶核心模块 100+ 段代码示例,理解 Spring 全家桶要领 3 大项目实战,掌握 Spring ...
  • 老Java程序员谈谈swing要不要

    千次阅读 多人点赞 2021-05-23 17:02:29
    老Java程序员谈谈Swing要不要 老java程序员谈谈要不要swing Swing是什么? 1)AWT 在早期JDK1.0发布时,Sun公司就为GUI开发提供了一套基础类库,这套类库被称为AWT(Abstract Window Toolkit),即抽象窗口...
  • 面对一个不严厉的研究生导师,怎么做才能东西?修改 在知乎上差不多一直潜水,认真回答过几次问题,这是第一次问。马上研究生就要开学了,本人要读本校的研究生,本科成绩一般,没获得保送的机会。 ------先...
  • 一周上手flutter

    千次阅读 2020-04-01 18:01:41
    文中会借用多大佬的一些东西 已经会的可以跳过 Mac是要有的没有的话,去买一个实在没钱买二手的 1,flutter搭建环境 自己网上找一个网址学者搭建好就行 例如:https://www.jianshu.com/p/9e57e5cc7aeb 2,...
  • 上面涉及到的书籍,我也去给你们搜索来了电子版的,百度云链接很容易失效,如果你想获取这些书籍,也可以关注我的公众号: 帅地玩编程 ,后台回复『 计算机基础 』即可获取,文章会首发于我的公众号,如果想第一时间...
  • 电脑新手入门教程 让你快速上手

    万次阅读 2021-07-07 03:33:30
    电脑发展也相当的成熟,新手电脑可以快速入门,是每个新手梦寐以求的事情,但是不会所有人都可以快速上手,最近多用户咨询我关于零基础电脑先什么,或者是电脑新手入门必什么东西,那么接下来,我就给大家...
  • Java工程师学习指南(2019最新版)

    万次阅读 多人点赞 2019-01-08 20:43:21
    这里再推荐另一种学习方式,就是看博客,博客比起书籍来说,更适合对于某个技术点的学习,你可以很容易地在网上找到这个知识点相关的原理,实现方法,以及代码范例。 我的博客里没有讲解特别基础的东西,如果你看...
  • 刚开始我也头大,但只要坚持几天,熟悉一些专业词汇,就可以轻松地阅读了,所以不要畏惧,我们了这么多年的英语,已经有足够的水准了。 如果你已经掌握了 Web 前端开发的最基本的知识,就可以直接上手编写第...
  • 一篇“从入门到上手”的Solidworks机械设计教程

    千次阅读 多人点赞 2019-05-17 20:19:25
    一篇“从入门到上手”的Solidworks机械设计教程
  • 有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了长的路。 ——莫泊桑 在校生要找到好工作,主要靠几个光环,学校光环、竞赛光环、项目光环、实习光环。其中项目经验尤为重要。有些同学就有疑问...
  • 到这一步,你学习的过程就像你学习编程的你,完后不懂干什么,能做一些小东西的时候又感觉自己还是多不懂,距离自己想做成一个成熟的软件感觉依旧远。其实并不远。这个时候我告诉你,你就还差两步,你的香辣虾...
  • 案例上手 Python 数据可视化

    万次阅读 多人点赞 2019-02-27 23:30:05
    因为就编程而言,可以学习的东西多了,现在又有大数据、机器学习、人工智能等领域。 至于什么,拷问的应该是自己,而不是问别人。检视自己擅长什么、喜欢什么,未来有什么规划,根据这个来确定什么。 有的人...
  • 从我的历程谈谈该如何学习

    万次阅读 多人点赞 2018-10-16 11:22:06
    作为一个师者,其职责是“传道、...对于如何学习,是一个模糊也难有标准答案的问题,因人而异,仁者见仁,智者见智。本文,从我个人的学习路程上抛砖引玉的简单说说,希望有所启发,有所帮助。 首先,介绍下我...
  • 1、完整的解决方案,学好一个,其他的东西上手非常快; 2、海量的学习资料; 3、没有C++的繁琐,完全可以专注于技术点的学习; 学习难度的话,我想C++如果好的话,Cocos2d-x相对小一点,涉及功能少多,...
  • 大学计算机系最努力的同学都是如何学习的?

    千次阅读 多人点赞 2021-06-23 17:47:54
    因为小林读者里肯定还有多是在校生,我相信这些过来人的经验会帮助到你们,也让大家能提前知道如何准备,少走一些弯路,磨平校招的信息差,不至于到大四才知道校招这些事情。 说干就干,然后就有了这个「读者牛逼...
  • 前阵子有些读者问我大学期间的学习路线,说他自己...正好我也想记录下自己从高中进入大学这几年的学习与变化,我的大学经历,可以说是非常普通,没有参加任何竞赛,也没拿过奖金(当然,国家助学金得拿,哈哈)。...
  • 先放结论:MATLAB对于数模比赛各种尝试方便。长远考虑Python用处大。核心功能两者差不多,都是脚本语言,都有成熟的平台和工具。对于数学建模来讲MATLAB用起来更容易,操作比较简单,工具箱用起来比较"傻瓜&...
  • 此文件,是学习汇编新手的必备知识,文件从电脑硬件开始,详细讲解了电脑的核心部件,再进入汇编的学习。循序渐进,从易到难。很容易上手
  • 大学四年,我是如何学习编程的?

    千次阅读 多人点赞 2019-12-04 23:40:27
    大学四年,我专业是计算机专业...今天我分享下,如何在学校里免费技术,沉淀一些编程技能。 编程书籍 这是我大学看过的书籍。 设计模式 这里简单介绍一下: 设计模式是软件设计中常见问题的一般可重复解决方...
  • Python推荐几个不错的学习资源

    万次阅读 2018-01-25 17:14:01
    Python一直被赞誉为最容易学的编程语言。今天为大家推荐几个不错的学习资源,希望大家喜欢~( *︾▽︾) Python for Beginners 如果你的Python开发之旅有一段时间了,这门课程可能是一个好的...
  • Java学习必备书籍推荐终极版!

    万次阅读 多人点赞 2019-04-05 11:08:52
    早就想把JavaGuide的书单更新一下了,昨晚加今天早上花了几个时间对之前的书单进行了分类和补充完善。虽是终极版,但一定还有多不错的 Java 书籍我没有添加进去,会继续完善下去。希望这篇文章对你有帮助,不要...
  • 宝贝们,“书籍是人类进步的阶梯”,不管什么,买几本心仪的书读一读,帮助还是非常大的。尽管坏书比好书多得多,但只要有幸读到几本好书,就全值了。 Java 要的知识点非常非常多,但经典的书籍就那么几本,不算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,942
精华内容 15,176
关键字:

学东西很容易上手