編程雜談:是什么讓我們?cè)趯W(xué)校做的項(xiàng)目往往拿不出手,差距在哪里?
一個(gè)是學(xué)校團(tuán)隊(duì)做的項(xiàng)目,一個(gè)是企業(yè)團(tuán)隊(duì)做的項(xiàng)目,從直覺上講,你會(huì)更信任哪個(gè)團(tuán)隊(duì)?為什么會(huì)這樣認(rèn)為呢?
不同的人會(huì)有不同的想法和結(jié)論,也許你會(huì)認(rèn)為學(xué)校團(tuán)隊(duì)做的更靠譜,尤其是Top X的學(xué)校的話,也許你會(huì)認(rèn)為企業(yè)不論如何都做的會(huì)更專業(yè)些。但是總的來(lái)說(shuō),學(xué)校團(tuán)隊(duì)在做一個(gè)項(xiàng)目的過(guò)程中,往往會(huì)存在一些弊病,這些問(wèn)題是企業(yè)團(tuán)隊(duì)做項(xiàng)目時(shí)很少會(huì)存在的問(wèn)題。

1. 任務(wù)排期不合理,突發(fā)雜事較多
由于學(xué)校的項(xiàng)目多是導(dǎo)師帶領(lǐng)學(xué)生做,很多時(shí)候不是按照任務(wù)量的拆解和總工作量大小來(lái)規(guī)劃,而是根據(jù)其他跟人事相關(guān)的因素來(lái)規(guī)劃。最典型的就是“要求明天先拿出一個(gè)樣例Demo出來(lái),我需要在會(huì)上跟xxx領(lǐng)導(dǎo)展示一下”,“xx領(lǐng)導(dǎo)xx時(shí)候來(lái)考察,到時(shí)候我想演示一下這個(gè)項(xiàng)目”。而在企業(yè)中,我們很少會(huì)聽說(shuō)xx項(xiàng)目要在xx時(shí)候給xx演示,加班加點(diǎn)推進(jìn)趕DeadLine,或者先不管三七二十一,抓緊做一個(gè)跑通能用的demo再說(shuō)。
2. 不問(wèn)后端架構(gòu)和代碼是否合理,只會(huì)從前端挑問(wèn)題
眾所周知,在企業(yè)里,代碼是有質(zhì)量和規(guī)范要求的,而且會(huì)有Code Review機(jī)制,有相應(yīng)的負(fù)責(zé)人對(duì)提交的代碼進(jìn)行評(píng)審,而且更有很多的自動(dòng)化工具對(duì)代碼進(jìn)行檢測(cè),以發(fā)現(xiàn)潛在的各項(xiàng)問(wèn)題。因此,哪怕項(xiàng)目開發(fā)進(jìn)度有延期有時(shí)并沒(méi)有太大關(guān)系,延期是經(jīng)常會(huì)遇到的,但是如果一個(gè)人寫的代碼質(zhì)量較差,代碼架構(gòu)不合理,不僅會(huì)被其他合作同事或后續(xù)接手項(xiàng)目的同事罵,而且還會(huì)嚴(yán)重影響個(gè)人的績(jī)效考核評(píng)分。
但在學(xué)校做項(xiàng)目就是不同的,后端代碼和架構(gòu)設(shè)計(jì)如何地不合理都沒(méi)關(guān)系,只要能按領(lǐng)導(dǎo)的要求做完,領(lǐng)導(dǎo)看起來(lái)滿意就好。由于后端的特點(diǎn),摸不著看不見,因此,人們往往喜歡從前端上挑問(wèn)題,比如這個(gè)按鈕擺放在這里,看起來(lái)比較礙眼,需要調(diào)整到其他地方去。其實(shí)如果從用戶體驗(yàn)角度講,去優(yōu)化前端的界面設(shè)計(jì)和操作流程,那也是很重要的,但是實(shí)際中,往往不止如此,甚至很多老師還非??床黄鹎岸?。有時(shí),xx功能是我們這個(gè)系統(tǒng)的核心,是我們系統(tǒng)的亮點(diǎn),這個(gè)入口按鈕如果放在右上角,領(lǐng)導(dǎo)可能看不見,所以得放在屏幕正中央,讓領(lǐng)導(dǎo)一眼就可以看到這個(gè)功能入口,就會(huì)更可能嘗試點(diǎn)進(jìn)去試用,以達(dá)到展示效果的目的。也許他們覺得前端工作就是畫畫頁(yè)面布局而已了。

3. 項(xiàng)目開發(fā)人員本身的知識(shí)水平和技能儲(chǔ)備就有所欠缺,又缺乏挑重?fù)?dān)的技術(shù)leader
在學(xué)校里,項(xiàng)目的開發(fā)往往最終是交由學(xué)生做的,大多數(shù)情況下幾位老師自己不會(huì)親自參與到寫代碼的過(guò)程中去,雖然有些老師不是這樣,也會(huì)親自開發(fā)核心的任務(wù),但這樣的老師不多,而且本身也是老師少學(xué)生多,不論如何也需要分很多任務(wù)給學(xué)生的。當(dāng)大多數(shù)代碼由一個(gè)個(gè)還在學(xué)校僅僅才學(xué)會(huì)了1+1=2的初級(jí)編程水平的人員實(shí)現(xiàn)時(shí),代碼的質(zhì)量就可想而知了。更為嚴(yán)重的是,除了一部分有水平的老師外,其他大多數(shù)老師不會(huì)去挑起技術(shù)架構(gòu)的重?fù)?dān),項(xiàng)目開發(fā)的完成質(zhì)量就堪憂。而這些問(wèn)題,在很多企業(yè)中不會(huì)存在,或者不會(huì)太嚴(yán)重。除了非技術(shù)人員外,技術(shù)人員多多少少也是經(jīng)過(guò)了相關(guān)技術(shù)的筆試和面試的。
典型的例子就是,當(dāng)某一個(gè)項(xiàng)目需要用到存儲(chǔ)服務(wù)時(shí),一個(gè)較好的解決方式是使用S3協(xié)議的對(duì)象存儲(chǔ)服務(wù)組件,但是對(duì)于在校生來(lái)說(shuō),S3是什么,根本不知道,甚至就沒(méi)聽說(shuō)過(guò)。最后妥協(xié)的解決方案是掛了4塊本地硬盤作為存儲(chǔ),結(jié)果由于硬編碼文件存儲(chǔ)路徑,也沒(méi)有做硬盤陣列,只有一塊硬盤可以被利用,另外三塊硬盤不知道該如何通過(guò)代碼同時(shí)利用起來(lái)。很多在校生見面只會(huì)說(shuō),xx編程語(yǔ)言某種語(yǔ)法是怎么用的,xx編程語(yǔ)言是世界上最好的語(yǔ)言等。另外,企業(yè)團(tuán)隊(duì)開發(fā)人員是有工資驅(qū)動(dòng)的,而學(xué)校的學(xué)生團(tuán)隊(duì)如果不是自己主動(dòng)有意愿去做,那么項(xiàng)目的開發(fā)效率也成問(wèn)題。
4. 需求變化較多較大,也較快
這個(gè)應(yīng)該是老毛病了,很多企業(yè)其實(shí)也存在。但是正如前面所說(shuō),管理完善的企業(yè)會(huì)有代碼質(zhì)量保證,一個(gè)質(zhì)量好的代碼,對(duì)需求的變化往往更容易適應(yīng)。代碼質(zhì)量較差時(shí),往往會(huì)消耗更多的精力在頻繁更改代碼中,代碼質(zhì)量好時(shí),反而是相對(duì)更輕松的。

5. 各項(xiàng)機(jī)制不完善,額外人工工作量很大
比如學(xué)校的一個(gè)查詢學(xué)生成績(jī)的系統(tǒng),如果出現(xiàn)了問(wèn)題,很可能需要人工通過(guò)命令行工具連接進(jìn)入數(shù)據(jù)庫(kù)中手工檢查問(wèn)題,很難通過(guò)一系列諸如日志、監(jiān)控和相關(guān)的運(yùn)維工具和自動(dòng)化工具快速定位和判斷,并給出解決方案。而且,服務(wù)的可用性也存在問(wèn)題,學(xué)校機(jī)房接入的電力系統(tǒng)有時(shí)會(huì)面臨短時(shí)停電的問(wèn)題,而且學(xué)校機(jī)房給分配的服務(wù)器往往是人工ssh遠(yuǎn)程連接方式管理的,也缺乏自動(dòng)化編排流程。這些可謂是學(xué)校以及部分中小企業(yè)的通病了。
6. 在學(xué)校做的項(xiàng)目基本不存在世界級(jí)市場(chǎng),沒(méi)有高并發(fā)也沒(méi)有大量用戶
這個(gè)是一個(gè)很客觀的因素,學(xué)校團(tuán)隊(duì)做的項(xiàng)目,很多屬于接的外包,或者面向校內(nèi)自用的。這樣的項(xiàng)目只需要功能實(shí)現(xiàn)即可,也就是“能用就行”,“我上我也行”,這樣的項(xiàng)目可能本身沒(méi)有什么技術(shù)含量,也可能因?yàn)橐?guī)模問(wèn)題根本用不到一些高端的技術(shù),久而久之就只會(huì)做到“能用就行”的級(jí)別。還記得12306網(wǎng)站一開始時(shí)的經(jīng)常崩潰問(wèn)題嗎?沒(méi)有真實(shí)的大規(guī)模應(yīng)用場(chǎng)景的需求,沒(méi)有人并且也不應(yīng)該有人去為此做優(yōu)化。
在學(xué)校有時(shí)會(huì)安排給一種可以授予“xx開發(fā)者”的項(xiàng)目,這種項(xiàng)目本質(zhì)是什么的?是企業(yè)做出了某款產(chǎn)品,然后為了推廣和測(cè)試其產(chǎn)品,讓大家使用他們的產(chǎn)品去做開發(fā),這時(shí)最容易的入口就是學(xué)校老師學(xué)生們,老師們能簽到合同自然愿意,而學(xué)生們則變成了免費(fèi)測(cè)試勞動(dòng)力,對(duì)于學(xué)生將來(lái)的發(fā)展沒(méi)有什么用途。
寫在最后:
既然學(xué)校做項(xiàng)目有如此多“天生”的缺陷,那么學(xué)校做項(xiàng)目的優(yōu)勢(shì)在哪里的?AI檸檬認(rèn)為,關(guān)鍵在于自主研發(fā)的前沿創(chuàng)新型技術(shù)研究及其成果轉(zhuǎn)化落地應(yīng)用。學(xué)校做項(xiàng)目要利用好學(xué)校自身的科研優(yōu)勢(shì),而不是拿自己的劣勢(shì)跟企業(yè)競(jìng)爭(zhēng),更不是老師為了自己賺些蠅頭小利而讓學(xué)生成為免費(fèi)勞動(dòng)力,而是應(yīng)當(dāng)發(fā)揮好學(xué)校的教書育人的作用,讓學(xué)生能夠更好的成長(zhǎng)為一名能夠了解社會(huì)、適應(yīng)社會(huì)、符合社會(huì)需求的合格應(yīng)屆畢業(yè)生,以及前沿技術(shù)創(chuàng)新和科研成果產(chǎn)出的作用,回歸高等院校的本質(zhì)。
版權(quán)聲明
轉(zhuǎn)載請(qǐng)注明作者及來(lái)源鏈接,謝謝。
本文地址:?https://blog.ailemon.net/2021/07/03/cjznl/?
——————
另外,對(duì)于編程學(xué)習(xí)的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書籍分享:

粉絲編程交流:
