《柚子班》第四期-Always Naive

柚子班是啥?它是孤尽老师(鼎鼎大名的《码出高效》书籍作者)在2020年于阿里内部发起的,为期一年(12期)公益性质技术进阶培训营,专注于帮助1-5年的技术同学在成长中的技术进阶和成长困惑。20211030开展第四期培训。首先由衷感谢孤尽老师,在百忙之中抽出时间构思整理培训材料,每次开课前都熬通宵搞课件,想尽办法给我们这帮小兔崽子上技术干货。向技术人的纯粹致敬~

技术框架

课程内容很充实,讲了Spring Boot、Spring Cloud、MyBatis Plus等大家耳熟能详的技术框架的原理、重要源码。工作中大家开箱即用,好像都会一点,但是一旦问到某些细节的时候,就能感受到来自柚子班slogan(Sometims Naive)的无情嘲讽:根本不是偶尔幼稚,而是不断傻眼(Always Naive),如:

1、你知道怎么用Jetty或者undertow启动Spring Boot吗?

解这个题,知识储备里得知道Spring Boot启动程序默认使用Tomcat作为Web容器、通过判断导入的容器依赖坐标然后进行创建bean,才能快速给出正确的解法:在pom.xml中将jetty的依赖引入,同时要将spring-boot-starter-web中spring-boot-starter-tomcat依赖排除。

2、什么叫云原生?这个问题听起来挺简单,其实很难一下子说到点子上、说全面。老师给出的理解是:容器化、微服务、Devops、持续集成。

3、还有很多类似的问题,比如说大家都会用spring boot,能否两三个词说清楚什么是注解?为什么有了spring boot,还会出现spring cloud?已被问麻...

从这个环节中,体现出的问题是自己没有完备的知识框架体系,仅有一些知识碎片,不能像老师一样纲举目张,通过记忆、理解、表达、融会贯通后将原理内化并输出。我个人反省了下自己这几年知识获取方式,不会什么就度娘谷歌查这个点,头痛医头脚痛医脚,这个路径依赖十分差劲,这样下去永远都是遇到问题解决问题、不能借助搜索引擎or超纲立刻死机。后续要加强构建基础知识体系,不然真的是always native没救了。

手撕代码

给30分钟手写(用中性笔写在纸上的写)冒泡、插入、快速三种排序。在场的20+小伙伴都沉默了.....感觉如果是校招那阵刷ACM可能还有点印象,现在思路都不清晰了(不清晰的本质是学习之初没有理解并内化,这几年也没有温习重复记忆,现象就是说忘就忘)。反正我写的乱七八糟不忍直视一个没对十分羞愧,下课后把老师手撕的三种排序抄了一遍如下。后续还会再默写5遍,内化到长期记忆磁盘中。

    //冒泡排序
    public static void bubbleSort(int[] source){
        if(null == source || source.length < 2 ){
            return;
        }
        int temp;
        for(int i=source.length;i>0;i--) {
            boolean isSwapped = false;
            for(int j=0;j<i;j++) {
                if(source[j] > source[j+1]) {
                    temp = source[j];
                    source[j] = source[j+1];
                    source[j+1] = temp;
                    isSwapped = true;
                }
            }
            if(!isSwapped) {
                return;
            }
        }
    }

    //插入排序
    public static void insertSort(int[] source) {
        if(null == source || source.length < 2 ){
            return;
        }     
        int j=0;
        int temp = 0;
        for(int i=1;i<source.length;i++) {
            temp = source[i];
            for(j=i-1;j>=0;j--) {
                if(source[j] > temp) {
                    source[j+1] = source[j];
                }else {
                    break;
                }
            }
            source[j+1] = temp;
        }
    }

    //快速排序
    public static void quickSort(int[] source,int left,int right) {
       if(left >= right) {
           return;
       }
       int pivot = source[left];
       int pointerLeft = left;
       int pointerRight = right;
       while (pointerLeft < pointerRight) {
           while ((source[pointerRight] >= pivot && pointerLeft < pointerRight)){
               pointerRight--;
           }
           while(source[pointerLeft] <= pivot && pointerLeft < pointerRight){
               pointerLeft--;
           }
           if(pointerLeft < pointerRight) {
               int temp = source[pointerLeft];
               source[pointerLeft] = source[pointerRight];
               source[pointerRight] = temp;
           }
       }
       source[left] = source[pointerLeft];
       source[pointerLeft] = pivot;

       quickSort(source,left,pointerLeft -1);
       quickSort(source,pointerLeft+1,right);
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值