給大二學(xué)弟的建議:技術(shù)不是用得越多越牛逼!
共 3037字,需瀏覽 7分鐘
·
2024-05-17 14:32
大家好,我是程序員魚(yú)皮,今天分享一個(gè) 90% 以上初學(xué)編程做項(xiàng)目的同學(xué)都會(huì)遇到的問(wèn)題 —— 做項(xiàng)目時(shí),盲目使用技術(shù)。
1
事情是這樣的,編程導(dǎo)航里一位大二下的學(xué)弟前段時(shí)間找我做了好幾次咨詢(xún),說(shuō)自己已經(jīng)學(xué)了很多微服務(wù)、中間件相關(guān)的技術(shù),比如 Dubbo、Nacos、RocketMQ 等等,但是學(xué)完感覺(jué)沒(méi)什么收獲,很多知識(shí)和技術(shù)感覺(jué)并沒(méi)有掌握。
這是很多初學(xué)初學(xué)編程同學(xué)的通?。簩W(xué)完技術(shù)不去用,結(jié)果過(guò)段時(shí)間就忘了。
所以我經(jīng)常跟朋友們說(shuō),當(dāng)你學(xué)完一個(gè)新技術(shù)后,要第一時(shí)間想著做項(xiàng)目,在項(xiàng)目中實(shí)踐,知道怎么根據(jù)需求合理地運(yùn)用技術(shù),才算是掌握了。
因?yàn)樗糯蠖侣?,時(shí)間和機(jī)會(huì)還很多,所以就讓他把主要的精力放在提升項(xiàng)目經(jīng)驗(yàn)上,也讓他去讀了我的項(xiàng)目學(xué)習(xí)建議。
魚(yú)皮項(xiàng)目學(xué)習(xí)建議:https://yuyuanweb.feishu.cn/wiki/Q4AdwjLDWiLZy0kAjHqcQinon8N
2
學(xué)弟很爭(zhēng)氣,過(guò)了沒(méi)幾天,就跟我說(shuō)要作為隊(duì)長(zhǎng)參加中國(guó)軟件杯大賽了,然后想問(wèn)應(yīng)該如何帶領(lǐng)隊(duì)友開(kāi)始項(xiàng)目。
我一看,這是好事??!我也非常鼓勵(lì)大學(xué)生多參加競(jìng)賽,尤其是作為隊(duì)長(zhǎng),可太鍛煉人了。
結(jié)果讓我有點(diǎn)意外的是,這位學(xué)弟想報(bào)名的賽題名稱(chēng)是 “涉詐 APP 智能識(shí)別分析系統(tǒng)”,賽題要求中涉及:APK 文件的解析、特征提取、訓(xùn)練基于 AI 的 APP 研判模型等。。。
然后我給了他幾分鐘的語(yǔ)音回復(fù),學(xué)弟表示有點(diǎn)感動(dòng) hh。
我當(dāng)時(shí)給出的核心建議大概是:參加比賽前首先要做的不是思考怎么具體去實(shí)現(xiàn)某個(gè)賽題,而是要先想明白參加比賽的目標(biāo)和意義,比如為了獲獎(jiǎng)、為了提升自己,還是別的什么。參加比賽是好的,但是要選擇和自己求職方向、擅長(zhǎng)方向相關(guān)的比賽,目前這個(gè)賽題的核心難點(diǎn)不在于后端開(kāi)發(fā),會(huì)有更專(zhuān)業(yè)的學(xué)信安的同學(xué)來(lái)參加,獲獎(jiǎng)概率也不大,所以個(gè)人認(rèn)為參與的性?xún)r(jià)比不高。更何況這位學(xué)弟的隊(duì)伍只有 3 個(gè)人,還都是軟件工程專(zhuān)業(yè)的,基本沒(méi)什么競(jìng)爭(zhēng)力了。如果實(shí)在要參加,就需要找到合適的隊(duì)友,大家分工合作。
3
學(xué)弟很開(kāi)竅,沒(méi)過(guò)幾天,就跟我說(shuō)他們又換了一個(gè)賽題,這次要做一個(gè)結(jié)合 AI 大模型的 Java 應(yīng)用。并且還參考我之前的建議,做了功能模塊圖和技術(shù)選型,現(xiàn)在想讓我給點(diǎn)建議。
我看了他們的功能模塊圖,設(shè)計(jì)的簡(jiǎn)直太好了!功能簡(jiǎn)直太全了!
但也正是因?yàn)?“功能太全了”,給我的感覺(jué)是他們要開(kāi)一家公司去做成熟的產(chǎn)品了,而不是要參加一個(gè)小比賽。
舉個(gè)例子,他們要做的是一個(gè) AI 工具,結(jié)果功能模塊圖里面有:用戶(hù)素材庫(kù)、數(shù)據(jù)可視化、多媒體提取、VIP 會(huì)員、消息通知、評(píng)論、熱點(diǎn)發(fā)現(xiàn)等等。。。
于是我的第 1 個(gè)建議是:這么多需求,先做哪個(gè)后做哪個(gè)?有些功能真的有必要做么?
我大學(xué)時(shí)剛開(kāi)始參加競(jìng)賽、包括剛開(kāi)始做自己的產(chǎn)品時(shí)也是這樣的,總想著功能越多越好,但是常常忽略了做新功能的意義,忘記了目標(biāo)。比如現(xiàn)在這位學(xué)弟的目標(biāo)是競(jìng)賽獲獎(jiǎng),那么應(yīng)該把重心放在能給比賽加分的、核心亮點(diǎn)功能的開(kāi)發(fā)上,比如 AI 模塊,像 VIP 會(huì)員、消息通知這些功能,都不是核心需求,也不影響核心業(yè)務(wù)流程,對(duì)競(jìng)賽來(lái)說(shuō)都是可有可無(wú)的。
第 2 個(gè)建議是:找到你覺(jué)得最難實(shí)現(xiàn)的功能,并思考如何實(shí)現(xiàn)?有沒(méi)有卡點(diǎn)?
我相信很多剛開(kāi)始做項(xiàng)目的同學(xué),是不會(huì)去做整體的方案設(shè)計(jì)和排期的,而是先把自認(rèn)為簡(jiǎn)單的功能做出來(lái),比如用戶(hù)注冊(cè)登錄。但如果最后你才發(fā)現(xiàn) AI 模塊搞不定,你前面的 “一頓操作猛如虎” 還有什么意義么?起碼對(duì)比賽獲獎(jiǎng)這件事來(lái)說(shuō),幫助沒(méi)那么大了。
第 3 個(gè)建議是針對(duì)學(xué)弟的技術(shù)選型來(lái)說(shuō)的。這個(gè)不涉及什么敏感信息了,都是主流的技術(shù)選型,就先給大家看一下吧:
大家看到這個(gè)技術(shù)選型圖,是什么感受?
個(gè)人認(rèn)為,雖然畫(huà)的不錯(cuò),技術(shù)也列舉地很全面,但對(duì)于一個(gè)比賽來(lái)說(shuō)實(shí)在是 “大可不必”!
因?yàn)槲乙彩菑倪@個(gè)階段過(guò)來(lái)的,給大家看看我大學(xué)獨(dú)立開(kāi)發(fā)的、拿去參加競(jìng)賽的一個(gè)作品。一個(gè)在線(xiàn)刷面試題的項(xiàng)目,背后用了微服務(wù)、Redis 集群、甚至還搭了大數(shù)據(jù)集群和區(qū)塊鏈節(jié)點(diǎn)!
結(jié)果去參加比賽的時(shí)候,人家才不管你背后用了什么技術(shù),而是要看你是否符合比賽的要求,產(chǎn)品本身是否有亮點(diǎn)。
所以我讓學(xué)弟思考:這么多技術(shù),真的有必要用么?
做商業(yè)項(xiàng)目也是這個(gè)邏輯,技術(shù)是為業(yè)務(wù)服務(wù)的,應(yīng)該先盡可能 減少 復(fù)雜技術(shù)的引入,完成核心功能,再去逐步引入新技術(shù)來(lái)優(yōu)化系統(tǒng)和解決問(wèn)題。不然只會(huì)把簡(jiǎn)單的事情想復(fù)雜。
而且即使你真的在比賽中用到了上面那些技術(shù),也已經(jīng)不是什么亮點(diǎn)了,微服務(wù)已經(jīng)可以說(shuō)是后端必學(xué)的技術(shù)。
4
萬(wàn)萬(wàn)沒(méi)想到,學(xué)弟又來(lái)找我了,這次他梳理了一些功能模塊,并且問(wèn)我:系統(tǒng)是用單體還是微服務(wù)去完成?
首先我看了下比賽要求,沒(méi)有強(qiáng)制要求使用微服務(wù),也并沒(méi)有關(guān)注后端架構(gòu),而是要求開(kāi)發(fā)者必須完成某些功能。而且學(xué)弟團(tuán)隊(duì)只有幾個(gè)人。
所以我的答案很明確:先單體再微服務(wù),別把簡(jiǎn)單的事情做復(fù)雜。
結(jié)果學(xué)弟問(wèn)我:?jiǎn)误w再微服務(wù),那為什么不直接微服務(wù)?
老實(shí)說(shuō),這次我有點(diǎn)哭笑不得,感覺(jué)他并沒(méi)有理解我之前的建議。于是我反問(wèn)他:你覺(jué)得有必要么?微服務(wù)的作用是什么?做產(chǎn)品的核心目標(biāo)是什么?核心功能需要用到微服務(wù)來(lái)實(shí)現(xiàn)么?
思考清楚這幾個(gè)問(wèn)題,我想這位學(xué)弟之后參加比賽做項(xiàng)目的時(shí)候,能夠少走很多彎路吧。
大學(xué)時(shí)期,我看過(guò)太多同學(xué)認(rèn)為 “技術(shù)用得越多越牛逼”(包括我曾經(jīng)也是這么認(rèn)為的),結(jié)果比賽無(wú)法獲獎(jiǎng);工作之后,也看過(guò)太多程序員把 “各種高大上的技術(shù)掛在嘴邊”,結(jié)果業(yè)務(wù)需求都理解錯(cuò)了。
當(dāng)然,如果是為了自己學(xué)習(xí)成長(zhǎng)而做項(xiàng)目、運(yùn)用技術(shù),是完全沒(méi)問(wèn)題的。還是那句話(huà),想清楚自己的訴求,并且針對(duì)訴求去設(shè)計(jì)和安排工作吧,共勉!
???? 點(diǎn)擊下方閱讀原文,獲取魚(yú)皮往期編程干貨。
往期推薦
我的編程學(xué)習(xí)小圈子
用了緩存后,性能反而更慢了?!
這款代碼分享工具,爆了
我學(xué)計(jì)算機(jī)的四年,共勉
要來(lái)了我們實(shí)習(xí)生的簡(jiǎn)歷,僅供參考。。
有了這玩意,分分鐘開(kāi)發(fā)公眾號(hào)功能!
