专栏名称: 程序员鱼皮
鹅厂全栈开发,持续分享编程技法和实用项目
目录
相关文章推荐
神秘的程序员们  ·  KALOS.art AI 作品每周精选 019 ·  1 年前  
质量与认证  ·  CTI华测认证参与制定ISO全球第一部ESG ... ·  4 天前  
质量与认证  ·  CTI华测认证参与制定ISO全球第一部ESG ... ·  4 天前  
51好读  ›  专栏  ›  程序员鱼皮

离谱!学编程两年,还不会用工具类?

程序员鱼皮  · 公众号  · 程序员 科技自媒体  · 2024-12-07 14:31

正文

我已经在极力忍耐了,但实在是没忍住。。。

那天在面试一位候选人的时候,我还是笑了出来。

怎么回事呢?周二晚上我公开直播模拟面试的时候,来了一位经历 “有点独特” 的同学,暂且就叫他小 A 吧。小 A 才 26 届(刚大三),就有国赛和省赛奖项、2 段实习经历、简历上也写了 2 个项目。最关键的是,他竟然有 3 段培训经历!从高考结束开始,就分别参加过 Python、软件测试、Java Web 的培训,算下来至今已经学习编程两年半!

直播记录

听起来是一位卷王了,学习时间久、自主性也挺强,直播间的朋友们和我一样,对小 A 接下来的表现充满期待!

小 A 的预期薪资是 12 ~ 15 K,看来也是自信满满,来势汹汹!

结果你猜怎么着?第一道题结束,他的薪资就直接腰斩,6 k 不能再多了!

额,准确地说,要不是模拟面试,估计这场面试到这里也就结束了。

为什么呢?我到底问了什么题?大家也可以来感受一下:

面试现场

鱼皮:你在开发 Java 项目中用过哪些集合类或者工具类?你在开发中是怎么提高开发效率的?

这道题目,其实只要你认真做过一些项目,应该都能说一点自己的想法吧?

结果小 A 答:我用 MyBatis、Spring Boot 啥的。

鱼皮:我理解你说的这些算是开发框架,当然非要说是工具也 ok。那你用过哪些工具类库呢?举个例子:你要把字符串的小写转为大写,你是自己写一个方法去转换,还是用什么现成的东西?

小 A 答:对于这种情况,我一般都是直接查教程。

我暗自心惊:还能这么回答?根本难不倒他!

其实问到这里,我基本上已经了解候选人的水平了,但想着可能小伙子面试经验不多,又有些紧张,我就再问得具体一点好了。

于是就有了下面这段对话:

直接把小 A 问懵了啊!

后面的面试过程也是类似的,有很多非常基础的内容,小 A 不但无法答出,甚至还不断爆梗!

比如:

1)鱼皮:你平时开发用过注解么?

小 A:用过,平时最多用的就是 ctrl 加一个杠的一个警字号的一个注解,还有 ctrl shift 的加杠的一个多行注解。

鱼皮(反应了一会儿):这不叫注解,这是注释啊!注释啊这是!

2)鱼皮:你是怎么注入 Bean 的?比如 Autowired 还有 Resource?

小 A:All to wear?刚才你说的那单词我没我没理解。。

3)鱼皮:平时应该写过 SQL 吧,写一句 SQL 来实现男生和女生的分组?

小 A:我还真没用到过

4)鱼皮:你做过订单相关的项目对吧?有了解过你们订单表的数据量么?

小 A:数据量还挺大的。。

鱼皮:挺大是多少?说一说你认为的 “挺大”

小 A:几千条左右?

我当时就这表情:

鱼皮:数据量挺大起码也得单表百万、千万条数据吧?

没想到小 A 突然提高了音量:百万他不让我做,百万咋可能让我做?!

真实。

问到后面,小 A 直接摊牌:“简历上的技能部分我不知道怎么写,直接从网上粘一下。”

我的建议

面试经过大概就是这样,直播间观看这场面试的朋友们甚至怀疑:鱼皮你在哪里请来的演员?

正在阅读这篇文章的你,或许也会觉得不可思议,学了两年半,怎么连工具类都不会用?连分组的 SQL 都不会写呢?

但其实我接触过这么多学编程的同学,回答过数万条向我的提问,我很清楚, **这并不是偶然 **。真的有很多同学像小 A 一样,或许受限于学校的应试教育、或者受坑于某些不专业的培训机构、又或者因为不确定自己的学习方向辗转反侧反复横跳地学习,就会导致看似学习时间挺长,其实水平可能还不如学了半年的同学。

给大家分享这位同学的经历,也是希望借此给所有自学编程的同学一些建议,不要让你的 “两年半” 变成这样。

  1. 提前确认要学习的方向,越早明确一个方向越好,走直路比走弯路能够更快达到终点。
  2. 在选择一个方向后,先利用网上的资源自主学习,不要急着去报培训机构,降低你的试错成本。比如我在编程导航写过的 免费编程学习路线 ,先快速过一遍,也就有一个学习的全局感了,更好把握时间进度。
  3. 学编程的过程中,多记录自己学到的知识和技巧,积累自己的笔记库,没事就看一看,这样你写过的代码、用过的类库印象都会更深刻,就不会出现 “一问三不知” 的情况。
  4. 除了看系统化的教程学习外,平时没事就多阅读一些技术文章、或者提前看看你学过的知识对应的面试题,能学到很多教程之外的小知识点。像我带团队开发的 面试鸭刷题工具,也能帮大家多利用碎片化的时间自学。

当然,我还是非常看好小 A 的,表达能力很不错、心态也很好,而且现在才大三,之后有了明确的学习路线和方向,相信也能高速进步~

最后,再列举一些几个我认为初级后端程序员必须要掌握的知识技能,如果目前还不了解这些,就要尽快去补充咯!

初级后端程序员必备知识技能

这里我对初级程序员的定义是 —— 至少能干活。大家可以把下面的技能当做自测表,看看这些你都会么?

我对知识点进行了分类,便于大家阅读~

1、基础编程能力

  1. 你是否能够熟练使用至少一种后端编程语言(如 Java、Python、JavaScript、Go 等)?
  2. 你是否了解基本的数据结构和算法(如数组、链表、哈希表、排序算法、队列、栈)?
  3. 你是否会进行代码调试和使用断点排查问题?

2、开发工具和环境

  1. 你是否熟悉代码版本管理工具(如 Git)及基本操作(分支、合并、解决冲突)?
  2. 你能否自主搭建一个简单的新项目(比如 Spring Boot 项目)?
  3. 你是否熟悉常用开发工具(如 IntelliJ IDEA、Postman、JMeter 等)?

3、后端开发核心知识

  1. 你是否清楚用户登录的完整流程,尤其是 Session 与 Cookie 的概念?
  2. 你是否了解 HTTP 的基本概念,包括 GET、POST 等方法的区别和用途?
  3. 你是否能够设计并实现增删改查(CRUD)功能?
  4. 你是否熟悉数据库操作,包括 SQL 查询(联表查询和分组)、事务等基本概念?
  5. 你是否了解数据库表的基本设计原则(如字段命名规范、索引、逻辑删除等)?
  6. 你是否知道如何防范常见安全问题(如 SQL 注入、XSS)?

4、前后端交互

  1. 你是否了解前后端交互的基本流程(如 HTTP 请求和响应、状态码)?
  2. 你是否了解常用的数据传输格式(如 JSON)并能处理这些格式的请求和响应?
  3. 你是否知道如何防范常见安全问题(如 SQL 注入、XSS)?
  4. 你是否知道如何使用工具(如 Postman、Curl、或者其他国产软件)来调试接口?

5、日志与调试

  1. 你是否了解开发中应该要写日志(如 log4j、SLF4J 的使用),并能通过日志排查问题?
  2. 你是否能捕获异常并处理错误情况,避免程序崩溃?

6、项目配置与部署

  1. 你是否能配置基本的服务器运行环境(如 Nginx、Tomcat)?
  2. 你是否熟悉常见的打包和构建工具(比如 Maven、Gradle)?
  3. 你是否知道如何部署一个单体项目到服务器(如云服务器、本地 Docker 部署或者可视化面板)?


这些知识大家都掌握了么?还有什么你认为对后端程序员来说非常重要的核心技能呢?欢迎评论区留言补充~

👇🏻 点击下方阅读原文,获取鱼皮的编程习路线、原创项目教程、求职面试宝典、编程交流圈子。

往期推荐

我的新项目又来咯!

网站刚上线,就被 DDoS 攻击炸了!

25 届秋招热门题目,全网首发!

我开源了一套 RPC 框架,学爆它!

鱼皮的新书,冲上了榜一

在腾讯,我的试用期总结!

我发现很多程序员都不会打日志。。