測試人員對程式設計天生“恐懼”麼?

新夢想IT發表於2022-06-24


人員掌握一門或者多門程式語言是必不可少的,許多測試人員對程式設計天生 “恐懼”,其實程式設計並不是你想象中那樣觸不可及。

許多測試人員為了提升, 抱著一本書 “死啃” ,效果肯定是有,但不是最高效的,我並不推薦。在平時繁忙的工作中,抽出大量的時間來學習,不大現實,有時候會因為緊張的工作不得不停下來,投入到工作中,待空閒時再繼續學習程式設計,你又會發現許多之前看的內容又忘記了。其實程式語言就是這樣的。你不用它,就會很快忘記。那麼如何利用碎片化的時間高效的學習呢?後面我會一一為大家解惑,並提供我自己的見解與學習方法。

 

 

 

人員掌握的程式設計水平不能與 專業的程式設計師相比 ,其中有兩塊區別, 一是熟練度,二是思想經驗 ,熟練度的差距會比較大一些,而思想家境界上我們可以無限的接近甚至超越程式設計師,就好比許多人玩 LOL遊戲,有人是大神,有些人是普通的玩家,對於同一個角色英雄,發揮出來的水平是不一樣的,你與大神的區別,一在熟練度上,二在思想境界上, 為什麼會說熟練度差距大 ,程式設計師每天使用一程式語言,熟能生巧,編碼敲擊速度要快很多,這需要長時間的鍛鍊才能實現, 人員天生沒有這樣的條件,熟練度差距自然很大,在思想境界上【所謂思想境界指的是對某類問題的解決方法】我們可以與程式設計師很容易的接近,程式設計師解決這類問題,方法是這樣的,你告訴我,我懂了,那麼這類問題以後我也能解決了,無非就是編碼速度,程式碼規範的差距,結果都是一樣的,程式設計師不可能每天都在解決沒有遇到過的問題,大部分時間都是將已知問題的實現方式(方法、經驗、思想)編碼實現出來,若我們將一些常見的問題的思想羅列出來,透過交流或者分享的方式,讓你一一體會了解,是不是要相對容易些,懂了就是懂了【不糾結深層次的問題】,你懂了才能成為你自己的。程式設計師與程式設計師之間的能力差距,其中一點主要體現在思想境界上。

那麼到了這裡又會產生另外一個問題,別人在講解或者分享某些問題的解決方法時,我們能夠理解麼?就好比你在參加一個別人的分享會,你能完全的吸收別人的思想麼?請想一想!這需要一定的基礎。就好比一個物理學家在分享一個問題的解決方法時,你能夠聽懂麼【不排除一些牛人】?若有另外一個物理學家,也遇到該問題時,聽完分享後,茅塞頓開,最終成功解決問題。因為他們在那一層次上有一定的基礎。

若要吸收別人在程式設計上遇到問題的解決思想,你需要一定的基礎,這些基礎我將其歸納為固定的知識,理解掌握別人的思想需要固定的知識點來作為支撐。

哪些是屬於固定的知識? 如:基本資料型別、字串、常用操作、陣列常用操作、正則、檔案目錄操作、常見容器物件、日期、多程式、多執行緒等等這些基礎知識屬於固定的知識點。很容易理解,例如獲取字串的長度,就一個 len方法,引數為字串,返回字串的長度,沒有歧義。

若要使用一種程式語言的話,需要熟記這些基礎知識麼? 沒有必要,一種程式語言的固定基礎知識點就好比一種程式語言的程式設計手冊,這類資料屬於字典類資料,你說過有人會去背誦一本字典麼?你所需要做到的就是會用這本 “字典”即可。技術組也在逐漸完善這類的公共的程式碼庫,並根據經驗整理出合適的字典,我這邊稱之為公共程式碼庫,當然你也可以自己收集與整理固定只是點的體系【建議後期大家統一在公共程式碼庫進行維護】。

 

 

公共程式碼庫類的字典與我們平時的新華字典的用法可不一樣,公共程式碼庫中每個知識點你需要全部的弄明白,你是不是覺得很多? 相反,這類的學習反而更加簡單,因為每個固定知識點已經沒有任何的歧義 ,你只要理解、懂了就行了、但是有些東西得記住了,例如不同容器的特性【陣列:有序,課重複;集合:無序,不可重複等】等等(其中有部分的概念還需要稍大的篇幅去講解,例如:理解多執行緒、多程式概念,執行緒,程式同步,鎖的概念),你不用去記憶,你只需按順序把知識點都理解了即可。

關於公共程式碼庫你只需要知道某一種知識點有或者沒有,並且知曉其在公共程式碼庫中的位置即可 ,比如我有一字串。需要用 Python獲取到該字串的長度,或者扣取字串中一段子字串,這類小問題屬於固定知識點可解決的問題,你只要知道好像有這樣的固定知識點可以解決這樣的問題,並且能快速在公共程式碼庫中查詢到即可。

公共程式碼庫只需要弄明白常見的知識點的含義,以及別人問題時,可以給出有或者沒有,並且能找出其位置在哪即可。

有些人可能會問,這些我早就看了很多遍了,還是無從下手,彆著急,往下看。

想一想一個複雜的問題是不是由多個稍小一點的問題組成,而有些稍小一點的問題又可以分為多個更小的子問題,當分解成的子問題已經不能在分之後,到了這裡,這個複雜的問題我們已經知道如何詳細的去實現了,因為不能再細分的子問題都對應一個個固定的知識點【公共程式碼】。

到了這裡有些人就明白了,這不就是分析問題的能力麼?非常好,別人能想到該問題的分析方法,而我為什麼卻沒想到【沒想到與想不到是有差距的,主要區別在於每個人對基礎知識掌握的廣度與深度的不同】,你沒想到,我告訴了你如何的分析方法, 你就懂了,就真正的成為了你自己的東西,這類分析方法,其實就是經驗、思想,他與某一個固定的程式語言無關,有了經驗、思想你學習更多的其他程式語言,會得心應手,你經常回聽到別人說程式語言之間基本上相通的。

剩下的就是思想經驗的吸收,何謂思想經驗,宰之前已經做過解釋,這裡再囉嗦下,公共程式碼庫中都是解決一些小問題的公共程式碼,一些負責問題【負責問題也是由多個小問題組成】的解決方法、分析方法就是經驗,有了固定的知識點作為支撐,聽別人講解一些問題的解決方法思想還是比較容易接受的,無非就是多看看別人如何將一個大問題分解成多個小問題的過程,小問題只需要熟悉公共程式碼庫即可,自然而然問題就可以解決了,這樣才能真正讓別人的經驗成為屬於自己的經驗,甚至基於你自己掌握公共程式碼庫的廣度加以最佳化,能夠給出更加合適的解決方法,那麼這個問題的解決方法上你已經超越了對方。思想經驗的吸收相對來說就比較容易了,看別人程式碼或者與別人交流,只有體會後,在遇到時才會自燃而然的想到。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2902641/,如需轉載,請註明出處,否則將追究法律責任。

相關文章