给大二学弟的建议:技术不是用得越多越牛逼

大家好,我是程序员鱼皮,今天分享一个 90% 以上初学编程做项目的同学都会遇到的问题 —— 做项目时,盲目使用技术。

1

事情是这样的,一位大二下的学弟前段时间找我做了好几次咨询,说自己已经学了很多微服务、中间件相关的技术,比如 Dubbo、Nacos、RocketMQ 等等,但是学完感觉没什么收获,很多知识和技术感觉并没有掌握。

这是很多初学初学编程同学的通病:学完技术不去用,结果过段时间就忘了。

所以我经常跟朋友们说,当你学完一个新技术后,要第一时间想着做项目,在项目中实践,知道怎么根据需求合理地运用技术,才算是掌握了。

因为他才大二下嘛,时间和机会还很多,所以就让他把主要的精力放在提升项目经验上,也让他去读了我的项目学习建议。

2

学弟很争气,过了没几天,就跟我说要作为队长参加中国软件杯大赛了,然后想问应该如何带领队友开始项目。

我一看,这是好事啊!我也非常鼓励大学生多参加竞赛,尤其是作为队长,可太锻炼人了。

结果让我有点意外的是,这位学弟想报名的赛题名称是 “涉诈 APP 智能识别分析系统”,赛题要求中涉及:APK 文件的解析、特征提取、训练基于 AI 的 APP 研判模型等。。。

然后我给了他几分钟的语音回复:

我当时给出的核心建议大概是:参加比赛前首先要做的不是思考怎么具体去实现某个赛题,而是要先想明白参加比赛的目标和意义,比如为了获奖、为了提升自己,还是别的什么。参加比赛是好的,但是要选择和自己求职方向、擅长方向相关的比赛,目前这个赛题的核心难点不在于后端开发,会有更专业的学信安的同学来参加,获奖概率也不大,所以个人认为参与的性价比不高。更何况这位学弟的队伍只有 3 个人,还都是软件工程专业的,基本没什么竞争力了。如果实在要参加,就需要找到合适的队友,大家分工合作。

3

学弟很开窍,没过几天,就跟我说他们又换了一个赛题,这次要做一个结合 AI 大模型的 Java 应用。并且还参考我之前的建议,做了功能模块图和技术选型,现在想让我给点建议。

我看了他们的功能模块图,设计的简直太好了!功能简直太全了!

但也正是因为 “功能太全了”,给我的感觉是他们要开一家公司去做成熟的产品了,而不是要参加一个小比赛。

举个例子,他们要做的是一个 AI 工具,结果功能模块图里面有:用户素材库、数据可视化、多媒体提取、VIP 会员、消息通知、评论、热点发现等等。。。

于是我的第 1 个建议是:这么多需求,先做哪个后做哪个?有些功能真的有必要做么?

我大学时刚开始参加竞赛、包括刚开始做自己的产品时也是这样的,总想着功能越多越好,但是常常忽略了做新功能的意义,忘记了目标。比如现在这位学弟的目标是竞赛获奖,那么应该把重心放在能给比赛加分的、核心亮点功能的开发上,比如 AI 模块,像 VIP 会员、消息通知这些功能,都不是核心需求,也不影响核心业务流程,对竞赛来说都是可有可无的。

第 2 个建议是:找到你觉得最难实现的功能,并思考如何实现?有没有卡点?

我相信很多刚开始做项目的同学,是不会去做整体的方案设计和排期的,而是先把自认为简单的功能做出来,比如用户注册登录。但如果最后你才发现 AI 模块搞不定,你前面的 “一顿操作猛如虎” 还有什么意义么?起码对比赛获奖这件事来说,帮助没那么大了。

第 3 个建议是针对学弟的技术选型来说的。这个不涉及什么敏感信息了,都是主流的技术选型,就先给大家看一下吧:

大家看到这个技术选型图,是什么感受?

个人认为,虽然画的不错,技术也列举地很全面,但对于一个比赛来说实在是 “大可不必”

因为我也是从这个阶段过来的,给大家看看我大学独立开发的、拿去参加竞赛的一个作品。一个在线刷面试题的项目,背后用了微服务、Redis 集群、甚至还搭了大数据集群和区块链节点!

结果去参加比赛的时候,人家才不管你背后用了什么技术,而是要看你是否符合比赛的要求,产品本身是否有亮点。

所以我让学弟思考:这么多技术,真的有必要用么?

做商业项目也是这个逻辑,技术是为业务服务的,应该先尽可能 减少 复杂技术的引入,完成核心功能,再去逐步引入新技术来优化系统和解决问题。不然只会把简单的事情想复杂。

而且即使你真的在比赛中用到了上面那些技术,也已经不是什么亮点了,微服务已经可以说是后端必学的技术。

4

万万没想到,学弟又来找我了,这次他梳理了一些功能模块,并且问我:系统是用单体还是微服务去完成?

首先我看了下比赛要求,没有强制要求使用微服务,也并没有关注后端架构,而是要求开发者必须完成某些功能。而且学弟团队只有几个人。

所以我的答案很明确:先单体再微服务,别把简单的事情做复杂。

结果学弟问我:单体再微服务,那为什么不直接微服务?

老实说,这次我有点哭笑不得,感觉他并没有理解我之前的建议。于是我反问他:你觉得有必要么?微服务的作用是什么?做产品的核心目标是什么?核心功能需要用到微服务来实现么?

思考清楚这几个问题,我想这位学弟之后参加比赛做项目的时候,能够少走很多弯路吧。

大学时期,我看过太多同学认为 “技术用得越多越牛逼”(包括我曾经也是这么认为的),结果比赛无法获奖;工作之后,也看过太多程序员把 “各种高大上的技术挂在嘴边”,结果业务需求都理解错了。

当然,如果是为了自己学习成长而做项目、运用技术,是完全没问题的。还是那句话,想清楚自己的诉求,并且针对诉求去设计和安排工作吧,共勉!

本文有帮助的话,牛友们点个赞吧~ 谢谢大家

#我的失利项目复盘##我的成功项目解析#
全部评论
🐟皮说的很对,我一开始做项目也是纯大杂烩,各种中间件往里面砸,最后面试官一句,你这个中间件加多了有什么坏处吗,你这个项目最多有多少个人用呀,😃
12 回复 分享
发布于 2024-06-16 02:38 广东
说的很好,一说项目两个字,很多人总认为项目应该是一个很大的工程,一个很全面的系统,其实聚焦某一业务的小项目效果会更好,容易有更大的收获
8 回复 分享
发布于 2024-06-29 12:24 广东
皮哥皮哥,你们公司还招实习生吗可以内推吗😋
2 回复 分享
发布于 2024-06-14 21:32 湖南
1 回复 分享
发布于 2024-06-14 15:53 安徽

相关推荐

避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
46
42
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务