一個項目往往有多個文件夾和文件,每個文件夾代表不同的含義,而一般的編程課從不講這些項目怎麼組織,每個文件夾什麼含義,項目如何配置如何運行…… 然而實際工作中就是要用到這些。編程課講的一般都是怎麼寫代碼的問題,而很少提及實際應用


你對實際應用的理解是錯誤的。工作中開發工作基本上可以分成兩塊。

第一是應用場景是什麼

第二是如何解決這個場景下的具體技術和編程問題

應用場景,我們可以用粗略一點的例子來說明下

「用戶需要在網頁上登錄之後,才能知乎網頁版上回答問題,提交問題可以修改刪除。知乎網頁版本同時在線用戶大約是xxxx萬,大約有1%的用戶在同時回答問題「

上面一句話,就是一個簡單的應用場景。說明瞭知乎用戶在網頁版本知乎上的一項操作要求。前面部分是講的是操作需求,最後一部分是整體情況的描述。

如果單獨是前面部分的需求,就是簡單的增刪改查的代碼,可能大部分學過編程的同學都能完成。但是附加了後面兩個條件之後,就會出現巨大的變化。

所以開發過程中,我們需要明白我們要在什麼背景下解決什麼技術問題。不同的背景之下,解決方案並不相同。

理解了背景之後,纔是出技術,寫編碼,針對具體問題具體解決,技術層面上的工作就來了。

但至於文件夾如何用,項目如何配置,如何運行。文件夾部分這個沒有一定的定數,如何配置,如何運行完全是和項目的整體架構有關。

編程課上很難模擬超過一定規模的項目,也很難模擬什麼應用場景。所以這部分知識自然也就被忽略了。重點就會成了怎麼做單機版軟體了。

另外這位兄弟,既然你意識到了缺乏,那麼你可以自己學起來,補上!

這樣更好!


在實際項目中,要考慮很多其它課程的內容,除了要學編程語言外,還有數據結構、演算法、面向對象技術和設計模式、程序設計原理、操作系統、資料庫、模擬電路、數字電路、計算機組成原理、微機原理、計算機體系結構、計算機網路、計算機安全、軟體工程等等課程,這些都只是基礎課。

學好編程語言是基礎課中最基本的要求,是一年級的課程。

只有到高年級,學好了以上課程,但還不夠,還要培養出自學能力,訓練出分析複雜問題的能力,才能真正理解和做項目。

有限的課時(4年的課壓縮到3年完成),老師只能講課程相關的內容,能講全和講好就很不錯了。

只有到高年級後,老師才指導以小虛擬項目為主的課程設計,沒有團隊。

第四年畢業設計中,老師才指導每人以實際項目的子項目,一人一個子項目,不能重樣,沒有團隊。

研究生過程中,基本都是實際項目,指導多人以團隊開發同一個項目。因是非公司運作方式,學生還是抱著按部就班學習的思想,項目進度不快,也不規範。

只有到了公司,經過多年的訓練,真正接觸實際需求,按需求做項目,按規範做項目,按項目要求快速學習,才能真正做好項目。

一口吃不出一個胖子,如果喫出了,也是虛胖。


如果是大學裡面的話,有兩個原因:

一、老師太水,ta都不知道,怎麼可能告訴你?

二、學生太水,連代碼都不會敲,理解那些東西有什麼用?

很多高校的老師都是研究生畢業之後直接去應聘的,很多實際應用上的東西沒法說,可能ta自己都沒接觸過。

很多普通高校的學生都是混日子的,所以大部分學生可能都接收不了那麼多的東西,所以老師怎麼可能還去跟ta們說那麼多?

比如你跟他說一堆實際應用要用到的東西,可能他會反問你一堆基礎的代碼問題。

有些高校是升本的,升本前招的是什麼水平的老師?可能是野雞大學的本科生,你信嗎?你讓這些老師怎麼跟你說實際應用?

如果你關注到了代碼以外的東西,說明你代碼過得去了,這個時候你比ta們要先一步,你應該主動問老師,而不是等老師講。

很多實際應用的東西即使老師說了,過後你可能就忘了,因為有些東西不常用。

比如java開發環境搭建,這個夠實際了吧?但是有多少人是真正意識到的?老師不說嗎?當然不是,而是這種東西你配置一次之後可能一兩年都不會再碰,以至於你都沒意識到它的重要性。

當時我學的時候,老師強調了好幾次,也教了幾次,但是有什麼用?等到自己換電腦,真正工作的時候才發現,自己連開發環境都不會搭。


各個語言(社區)都有自己一套完整開發~構建~打包~發布的工具鏈和對應的俗成的項目組織結構

現實生產中整個流程都是可自動化的而且也應該是自動化的

所以實際項目也都是遵循了這套社區約定而已

真想學就去看手頭語言對應的主流工具相關說明就是了,網路搜一下也就是半天的時間


有一種課程叫實戰課,專門教你寫項目

至於項目如何組織,以我相對熟悉一些的 Flask 框架為例,事實上你根本找不到一個大家普遍接受的項目結構(指代碼文件及文件夾的組織形式)

可以看一下這個帖子:

https://www.v2ex.com/t/617056#reply47?

www.v2ex.com

你會發現,大家的代碼文件組織形式更多的是依靠經驗和習慣,可以推而廣之,其他的很多編程語言和框架也是如此。


大學講理論的多,實操靠自己

遇到不好的學校,連理論都自學

大學=大不了自學,大不了廣博地學習


第一,實際應用,例如商業項目,是很複雜的,可能應用了很多技術甚至新技術,許多框架等,不是短時間內講得清楚的。

第二,商業項目或者說成熟的項目都有保密性質,也不可能會作為教學素材。

第三,教學的目的是入門,如果開門見山就講項目,那這就不是教學而是勸退,當然天才除外(存在一些天才變態,身邊就有)。


課程會講某個知識的實際應用的,這也要看講課的老師,有經驗的老師基本都會涉及一些小案例,但不會帶你做大項目


推薦閱讀:
相關文章