半年不在csdn写博客,总结一下这半年的学习经历,coderfun的一些碎碎念.

前言

自从自己建站一来,就不在csdn写博客了,但是后来自己的网站因为资金问题不能继续维护下去,所以便放弃了自建博客网站来写博客,等到以后找到稳定,打算满意的工作再来做自己的博客网站。此篇博客用来记录自己在csdn消失的这几个月到底做了什么

正文

这一篇记录了博主从一个浅浅会crud的boy变成了一个算法菜鸟,八股文吟唱菜鸟,业务理解菜鸟,也算是刚刚入门开发这个职位了.

2023-11

在这个月我经历了很多,大多数时间是繁忙的几乎抽不出任何时间,在这一段时间我参加了七牛云1024创作者大赛,但是最后呢,效果不是很理想,我使用Hertz+Kitex开发后端,奈何前端队友不是很熟练,进度安排也不是很合理最终导致没有成功参赛,失去了这次机会;

后来呢,我偶然认识了一位其他学院比较厉害的教授想做一款医疗的小程序来参加创业大赛,我们一拍既合,做起来了医疗的小程序,这一次我总结了参赛七牛云失败的经历,安排好了进度的一些东西分配好了职责,但是到了最后,我们一个有成品有公司资助有生物科研产出的产品,尽然连校赛都没有通过, 比赛是经管法学院举报的,通过校赛的他们学院的作品占大成;这两次比赛的失利耗费了我很多心血,至此我顿悟了,好像大学期间的比赛很多都是水赛凭关系,包装,甚至金钱就可以拿到不错的名次,从此我便跨上了找实习之路;

2023-12

这个月,我背了很多八股文同时开始系统的刷算法,参加了蓝桥杯的学院预选赛,成绩真的很差,曾经自以为的能力在现实面前变的不堪一击;

同时面试的八股文,自己也是非常的菜,甚至连Java的基础数据类型都不知道,所以我决定寒假好好沉淀一番;

2024-1

这个月回到家之后,姐姐结婚了,家里好多事情,加上自己的不自律以及家里的一些事让我学习很难进行,八股没有背多少,算法到是每天都在刷,可以仿佛都是为了完成任务式的工作,没有一点实际意义;但是家乡下了几年以来最大的雪,整个大年我都玩的很开心,附上我堆的小雪人:

2024-2

因为自己在家的状态实在很差,我早早的回了学校学习,回到学校也下了很大的雪,是这里几十年都不遇见的大雪

期间还在阿里云混了一个小证书

2024-3

这个日子,我正式开启了我第一段找实习之路,投递了将近100家公司,面试的概率不到十分之一,下面列举一下我投递的部分公司:

  • 美团-后端开发-简历挂
  • 美团-测试开发-一面挂(太紧张了,没有好好抓住这一次的机会)
  • 快手-测试开发-一面挂(岗位不匹配,面试官提到了我是一份后端开发的简历)
  • 腾讯云智-后端开发-笔试完无后续
  • 腾讯云智-测试开发-简历挂
  • 快手其余岗位-简历挂了快10次
  • 百度-开发,测试开发岗位-简历挂了7次
  • 其他的公司基本都是简历挂,或者做了笔试没有后续

    PS:又混了一手小奖

2024-4

大厂拿不下,还搞不定小厂嘛?整个四月我都在面试和笔试还有背八股的路上,途中参与了一次蓝桥杯的Java比赛,基本都会写难度不大;四月份拿下了杭州,成都,西安的oc ,最后选择了西安薪资不错,伙食也很不错,但是要加班到比较晚,基本早晨我是6.50出门,晚上9.40到出租屋,打工人真的很不容易!!!

PS:公司的晚饭

PS;下班后等公交

2024-5

一直在这家公司实习,做了很多有意思的事情,最近项目也是很紧,每天都在加班,累并快乐着;

附上一张公司大门:

学习了很多关于反射在业务场景 中的使用,包括自己实习期间也有很多产出,被leader夸过几次还挺开心的,有一个根据动态表格以及用户自定义规则实现的动态计算 ,以及实习生可以在Linux中应用的场景我也有总结我觉得还挺有意思的,给大家看一下我的代码:

java 复制代码
    public static boolean isNumeric(Object obj) {
        if (obj == null) {
            return false;
        }
        try {
            Double.parseDouble(obj.toString());
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }

    /**
     * 查询搬迁安置人口列表
     *
     * @param list 需要的集合集合
     * @return 搬迁安置人口
     * @desc:反射获取字段名,如果字段名在里面就把字段值拿到然后放在map中累加
     *     拿到对象的字段判断是否可以计算
     */
    public static <T> T findNumericFields(List<T> list, Class<?> clazz) {
        if (list.size() == 0) return null;
        Map<String, Number> map = new HashMap<>();
        // 遍历字段,判断是否是数值类型,如果是则放入hashmap中初始为0
        Field[] declaredFields = clazz.getDeclaredFields();
        for (Field field : declaredFields) {
            if (!field.getName().contains("column")) {
                continue;
            }
            field.setAccessible(true);
            try {
                if (isNumeric(field.get(list.get(0)))) {
                    map.put(field.getName(), 0);
                }
            } catch (IllegalAccessException e) {
                throw new RuntimeException(e);
            }
        }
        // 遍历List,对每个item进行反射,如果字段名在hashmap的key中能找到,就将字段值加入到hashmap的val中
        list.forEach(item -> {
            for (Field field : item.getClass().getDeclaredFields()) {
                field.setAccessible(true);
                try {
                    Object value = field.get(item);
                    String name = field.getName();
                    if (!name.contains("column")) {
                        continue;
                    }
                    if (isNumeric(value) && map.containsKey(name)) {
                        Number v;
                        if (value.toString().contains(".")) {
                            // 说明转换为小数
                            v = Double.parseDouble(value.toString());
                        } else {
                            v = Long.parseLong(value.toString());
                        }
                        Number numberValue = v;
                        map.put(field.getName(), map.get(field.getName()).doubleValue() + numberValue.doubleValue());
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        });
        T res = null;
        try {
            res = (T) clazz.newInstance();
        } catch (InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }
        Field[] fields = clazz.getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            String name = field.getName();
            if (map.containsKey(name)) {
                try {
                    field.set(res, String.valueOf(map.get(name)));
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        }
        return res;
    }

哈哈,是不是还挺抽象的,如果大家想看反射在业务中的场景,或者实习生怎么使用Linux,可以看我下一篇博客哦;
蓝桥杯成绩 也出来了,很意外的拿了省一,我的题几乎都是暴力出来的,只有两道编程题没有暴力,剩下都暴力了就剩一了,真的很意外

下个月的一号就要去西科大国赛了,但是我已经好久没有写算法了,这周还要python考试,真的有点慌,期间我的电脑还因为开不了机重置了一次,很多东西都重装了,哎心累;

总结

接下来,我的预期的计划如下:

  • 端午节后离职回学校准备考试
  • 新做一个项目,学习在场景中使用MQ,延伸自己的思想
  • 每天准备背各种八股文
  • 每隔两三天就进行一次模拟面试
  • 寻找暑假的实习机会
  • 每天刷算法,Python或者Java都可以

加油吧骚年,未来是你的!!!

相关推荐
oneouto3 分钟前
selenium学习笔记(二)
笔记·学习·selenium
ProcessOn官方账号5 分钟前
如何绘制网络拓扑图?附详细分类解说和用户案例!
网络·职场和发展·流程图·拓扑学
sealaugh328 分钟前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
炭烤玛卡巴卡35 分钟前
学习postman工具使用
学习·测试工具·postman
thesky1234561 小时前
活着就好20241224
学习·算法
蜗牛hb1 小时前
VMware Workstation虚拟机网络模式
开发语言·学习·php
汤姆和杰瑞在瑞士吃糯米粑粑1 小时前
【C++学习篇】AVL树
开发语言·c++·学习
虾球xz2 小时前
游戏引擎学习第58天
学习·游戏引擎
贵州晓智信息科技2 小时前
如何优化求职简历从模板选择到面试准备
面试·职场和发展
奶香臭豆腐2 小时前
C++ —— 模板类具体化
开发语言·c++·学习