朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受

今天的话,这篇文章,主要回答一些小伙伴的问题。不过这些问题的话,相信也是大部分小伙伴会遇到的,所有,你有必要看到最后哦!

01 我跟着视频做的项目会被面试官嫌弃不?是加分项不?

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第1张图片

当然是加分项呢!不排除确实有的面试官不吃这一套,这个也看人。不过我相信大多数面试官都是能理解的,毕竟你在学校的时候实际上是没有什么获得实际项目经验的途径的。

别担心,大部分应届生的项目经验都是自己在网上找的或者像你一样买的付费课程跟着做的,极少部分是比较真实的项目。从你能想着做一个实战项目来说,我觉得初衷是好的,确实也能真正学到东西。但是,究竟有多少是自己掌握了很重要。看视频最忌讳的是被动接受,自己多改进一下,多思考一下!就算是你跟着视频做的项目,也是可以优化的!如果你想真正学到东西的话,建议不光要把项目单纯完成跑起来,还要去自己尝试着优化!

简单说几个比较容易的优化点:

  • 项目的技术选型优化 :比如使用 Guava 做本地缓存的地方可以换成 Caffeine 。Caffeine 的各方面的表现要更加好!再比如 Controller 层是否放了太多的业务逻辑。
  • 数据库方面 :数据库设计可否优化?索引是否使用使用正确?SQL 语句是否可以优化?

然后,再给大家推荐一个 IDEA 优化代码的小技巧,超级实用!

分析你的代码:右键项目-> Analyze->Inspect Code

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第2张图片

扫描完成之后,IDEA 会给出一些可能存在的代码坏味道比如命名问题。

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第3张图片

并且,你还可以自定义检查规则。

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第4张图片

02 去外包对自己简历有影响么?

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第5张图片

去外包对简历的影响,主要还是看你去的公司和经历的项目,比如你在 ThoughtWorks 做外包的话我觉得对你的简历就没啥影响,甚至还是加分项。我的很多同事跳槽,都是去了字节、阿里这些大公司。

另外,去了外包之后以后只能混外包这种说法有点自欺欺人。

首先,外包的技术深度确实不比大公司,这点没办法,根本属性决定了。然后,外包公司一般会让你会很多东西,什么东西都想让你了解一下,这可能会导致你没有一门比较精通的技术。你是 Java 程序员,下个项目需要你是 IOS 开发,然后你就要自己学,这个还是很坑的。

不过,刚毕业的话在外包干两年还是能学到一些东西的,因为你在外包公司会让你经历大量的实战项目。

其实,最重要的是,自己平时要注意多多思考和学习,勿要浮于表面就好了。

很多人抱怨抱怨公司工作强度很多大,就我来看,很多外包公司的工作强度甚至比不上甲方的程序员。

按照大众的话来说,最好是不要去外包公司,这点是没啥问题的。不过, 如果说你目前正在外包公司工作或者你只能找到外包工作的话,不要一味抱怨,只要自己能学到东西就好!

03 我都是 CRUD 的工作经历,该如何提高呢?

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第6张图片

这个读者的大概的情况是大专毕业,工作半年,目前的薪资是 7K ,他的目标是在工作一年后可以收获 10k 的月薪。他的问题是说自己应该怎么朝着这个方向努力?

10k+的工资在北上广,可以说是在程序员中比较低的薪资水平了,即使是你刚毕业一两年情况。

朋友做的秒杀系统被面试官嘲笑!大专毕业,每天都CRUD很难受_第7张图片

达到 10k 的水平要求不是很高,能完成基本的业务功能(crud),能读懂已有的老代码我觉得就完全够了。

但是,人总是要继续往高的方向去走的,刚开始一定不要给自己设定门槛。另外,目标薪水固然重要,但是不是关键的东西,我觉得还要考虑你的工作对个人的成长。

我觉得一个好的 Java 程序员应该具备下面这些素质:

  1. Java 基础 :掌握 Java 基础知识(可以看《Java 核心技术卷 1》或者《Head First Java》这两本书在我看来都是入门 Java 的很不错的书籍),当然你也可以边看视频边看书学习(推荐黑马或者尚硅谷的视频)。一定要记得多总结!打好基础!把自己重要的东西都记录下来。
  2. 多线程 :掌握多线程的简单实用(推荐《Java 并发编程之美》或者《实战 Java 高并发程序设计》)。
  3. 算法和数据结构(可选):如果你想进入大厂的话,我推荐你在学习完 Java 基础或者多线程之后,就开始每天抽出一点时间来学习算法和数据结构。为了提高自己的编程能力,你也可以坚持刷 Leetcode。
  4. 前端知识 :学习前端基础(HTML、CSS、JavaScript),当然 BootStrap、VUE 等等前端框架你也可以了解一下。
  5. Git : 版本控制工具 Git 绝对比必须的。你可以自己去 Github 上下载一些项目看,然后自己也上传一个项目到 Github 上去。
  6. MySQL : 学习 MySQL 的基本使用,基本的增删改查,索引需要重点关注,存储过程可以简单了解一下。
  7. Maven :建议学习各种框架之前可以提前花半天时间学习一下 Maven 的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)
  8. 框架 :学习 Spring、SpringMVC、Hibernate、Mybatis 等框架的使用,(可选)熟悉 Spring 原理(大厂面试必备),然后很有必要学习一下 SpringBoot。我也遇到很多公司对于应届生直接上手 SpringBoot,不过我还是推荐你有时间还是可以把 Spring、SpringMVC 好好学一下。不过 SpringBoot 优先级最高!
  9. Linux :学习 Linux 的基本使用(常见命令、基本概念)
  10. 分布式 :学习 Dubbo、Zookeeper、常见的消息队列(比如 ActiveMq、RabbitMQ)的使用.(这些东西可以通过黑马最后一个分布式项目来学,边看视频,边自己做,查阅网上博客,效果更好)
  11. Netty :可以学习一下 NIO 和 Netty,这样简历上也可以多点东西。
  12. (可选),如果想去大厂,JVM 的一些知识也是必学的(Java 内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM 内存管理)推荐《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(最新第二版》,如果嫌看书麻烦的话,你也可以看我整理的文档,在下面有链接。
  13. 微服务:微服务的一些基本概念、SpringCloud 和 Spring Cloud Alibaba 那一套都可以学习一下。我比较推荐的是学习 Spring Cloud Alibaba,因为首先它是阿里开源的,文档比较丰富,另外,它比较新,各种组件都可以说很不错。
  14. 进阶 :操作系统底层知识、计算机组成原理、Java 编码优秀实践、SQL 调优、定位解决线上问题的能力等等

知道要学什么之后,如何去学呢?

我觉得学习每个知识点可以考虑这样去入手:

  1. 官网(大概率是英文,不推荐初学者看)
  2. 书籍(知识更加系统完全,推荐)
  3. 视频(比较容易理解,比较推荐,特别是初学的时候),另外,大家不要说自己工作很多年,技术也比较厉害了就不能看视频学习了。我认识的很多大佬,包括我经历的几个项目组的技术 Leader,他们都有看视频学习技术的习惯。
  4. 网上博客(解决某一知识点的问题的时候可以看看)。

———————————————————————————————————————————
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式:备注:CSDN
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

你可能感兴趣的:(算法,数据库,编程语言,面试,程序人生)