文章目錄
- 關于學習方法、動手能力和職業發展
- 給A同學的話
- 給B同學的話
- 給C同學的話
- 關于軟體發布
- 工程實踐的要求
- 磨刀不誤砍柴工:設計先行
- 軟體開發的分工
- 我是誰

題圖來源:https://nerdshizzle.com/product/funny-software-developer-job-description-t-shirt/
開學了,匯總一些我在博客園上給大學同學提的建議,希望能就軟體開發的問題,幫到同學們,感謝《構建之法》一書的作者鄒欣老師和策劃編輯周筠老師搭建了這樣一個平臺,感謝他們的作業,
關于學習方法、動手能力和職業發展
給A同學的話
同學你好啊,我是一個非科班出身但是自己選擇了做計算領域作業的人,我希望能通過我的親身體會,給你實在的鼓勵,
1.關于計算類的工程實踐,是有一些方法和技巧的,可能大學老師不一定能用比較好的方式教你,沒關系的,可以向工程界朋友請教,咱們有非常開發的計算類互聯網資源,可以借助github、stackoverflow這樣的平臺,具體來說,你提到的對IDE的使用,是一個“無他,唯手熟耳”的程序,建議可以去看IDE的官方手冊,以及所用語言的官方平臺,當然最好看英文資料啦,也可以看一些視頻資料,學習如何使用,多用多練很快就好了,至于其他工程的設計、開發和測驗程序,也是需要長期積累,不要擔心啊,
2.軟體開發,最重要的程序是培養自己的抽象思維,不知道你是否經歷過系統的計算思維的課程,如果沒有,建議你看看清華大學出版社徐志偉等老師寫的《計算機科學導論》這本書,可以參考我的文章 【計算機教育】看《計算機科學導論》,發展計算思維能力 ,看看自己在思維方式上的問題,然后再逐步培養自己的軟體需求、設計、開發、測驗等能力,請一定記住,軟體設計這一步非常重要,后面的編碼是基于設計的,
3.關于你提到的想做計算領域測驗的問題,非常好,軟體測驗是軟體質量保證中最重要的一個方面,這是非常重要的,目前國內的軟體測驗和軟體質量并不高,你可以在這個領域里好好發展,當然軟體測驗也需要很強的軟體設計和開發能力,
4.歡迎你到github上來看我分享的一些內容,也是bettermorn(更美好的明天的意思),我希望能幫到你,計算領域里有很多很有趣的事情,希望你能享受hard fun,我們一起來探索吧,
給B同學的話
感謝你的真實總結,希望我的以下文字能給你一些幫助,
軟體開發中的學習比較復雜,要牢固掌握一些理論和方法論,需要把所學變成自己的知識,所以建議以后學習以后,試著用自己的方式做一個宏觀的系統總結,比如對面向物件的學習,可以做以下總結:
面向物件的本質是什么?解決了什么問題?其與面向程序的區別在哪里?面向物件方法的幾個特點解決了哪些問題?適用于哪些場景?
具體的一些內容,可以參考我的文章
【實戰指導】暑假了,找問題,做作品
https://mp.weixin.qq.com/s/Mi_BtyDrRZzWEnnKu-0-Jg【實戰指導】寒假了,找問題,做作品【1】:找問題
【實戰指導】寒假了,找問題,做作品【2】:開發和使用模型
【腦洞大開】如何學習新的科學理論和關鍵技術
歡迎你與我交流,
給C同學的話
謝謝你的真誠而真實的總結,綜合你的描述,我覺得可以從以下維度發展自己,
1.關于溝通和協同能力
軟體開發是集體專案,非常需要鍛煉良好的溝通和協調能力,你已經邁出了很好的一步,繼續努力吧,溝通和協同有一些基本方法,可以去尋找相應的資料,簡單舉例,比如溝通,可以考慮,不同事情溝通的頻率、方式等等,
建議可以看看我的文章,
【實戰技能】關于程式員的溝通技能
2.學習時如何把握本質
看到你談到學習面向物件的問題,以后可以嘗試,學習后,試著用自己的方式做一個宏觀的系統總結,
面向物件的本質是什么?解決了什么問題?其與面向程序的區別在哪里?面向物件方法的幾個特點解決了哪些問題?適用于哪些場景?
3.如何總結軟體開發程序的經驗和教訓
建議思考下:
軟體開發是個完整的程序,從問題分析到設計、到開發、到測驗,每一個環節都很重要,每一個環節除了良好的思考方法也需要應用工具,問題分析和設計是開發的關鍵和基礎,再小的專案也需要這個程序,以后可以注意在這個環節多花些時間,“磨刀不誤砍柴工”,當然開發程序中寫好代碼,是需要代碼量熟悉開發工具,熟悉語言的使用情況的,
關于軟體發布
請問,如何區分新功能和新特性(function and feature)?建議說明兩者差別,這樣用戶可以理解版本發布的內容(release notes)
另外建議用行業通用的版本說明,可以參考這里,
major.minor.maintenance.build
major是最大的版本編號,minor為其次,maintenance為維護版本號,某些軟體可能再細分作build,為更小的版本編號,例如:1.0.0.1
major:主要版本號
minor:次要版本號
maintenance:維護版本號(僅限bug修復)
build:非發布版本號,內部版本號(或源控制版本號),通常自動增加
可參考鏈接 Firefox Release Notes/
謝謝回復,我前面指出這些問題是為了提醒同學,做工程要求準確、清晰和完備,
請注意下次發布的時候,寫清楚相關內容,
另外,關于發布內容條目,可以參考github的種類
工程實踐的要求
解釋下,課程提出的要求并不是職業標準,而是工程實踐必須要達到的目標,另外說一下,根據美國K-12科學教育框架和計算機科學框架,很多地方米國的中小學科學和工程實踐要求確實比我們大學的要求還要高一些,可參考A Framework for K-12 Science Education和 K-12
Computer Science Framework
加油吧,同學們,計算科學和技術發展的黃金時代,需要你們的貢獻,
磨刀不誤砍柴工:設計先行
友情提醒同學,要做好軟體開發,重要的環節在于設計,敲代碼是開發實作,如果在設計環節上多花些時間,也許到開發實作就沒有那么難,至于要提高開發的效率,“無他,唯手熟爾”,熟悉語言語法,熟悉開發工具,多練練就沒問題了,畢竟,現在軟體開發的條件,比以前好很多啦,
繼續努力吧!學會熟練使用開發工具,多花些時間做設計,
軟體開發的分工
問題:
在真正的軟體專案開發中,前后端對接具體是怎么做的呢?有沒有一個規范的流程去確保前后端連接的正確性?或者有沒有專門的組內幾個成員來負責對接這部分呢?
我的建議:
雖然業界很多公司提出了前后端分離的方法來做一定分工,但是作為業界人士,我更建議基于功能模塊分工,每個人完成相應功能的前后端以及資料庫設計,而不是前后端分離,因為從某種角度來說,前后端分離并不能提高作業效率反而恰恰相反,
另外,友情建議,不要太強調前后端,作為一個軟體開發者,一定要有能力做一個完整的系統,即使前端、后端和資料庫有不同的擅長點和不同的偏好,
我是誰
科技作業者,獨立顧問,“以我之愛心,以我之專業,以我之真實,助您成就有趣的事業”,曾在HP和盛大遇見良師益友,有幸獲HP CIO獎,作為HP 資深技術專家和內部技術講師,也有幸在HP硅谷和休斯敦作業,積極地參與學術社會活動,是中國人工智能學會高級會員,美國計算機學會 ACM 高級會員,ACM SIGCSE 美國計算機學會計算機教育研究中國分會理事,中國計算機學會CCF走進高校講者,我也牽頭了一個開發者社區DevHub,擅長將新興計算科技的理論和關鍵技術應用于各種服務,成功為數十個創業創新企業落地資料分析和人工智能產品設計和解決方案,行業涉及教育、醫療養老、工業制造、證券、新興商業服務、資訊產業、文化創意等,喜歡有感而書,在國內外會議及雜志發表人工智能及計算類教育及技術類中英文論文多篇,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/263414.html
標籤:其他
