更新時(shí)間:2022-04-28 17:15:57 來源:動力節(jié)點(diǎn) 瀏覽4073次
許多人想知道他們是否具備成為一名優(yōu)秀程序員的條件。這個問題沒有簡單的、勾選這些框的答案,但有一些你可能擁有或可以發(fā)展的有用特征。
你為什么問?當(dāng)您第一次坐下來編寫程序時(shí),您可能并不確切知道它應(yīng)該做什么(或如何做)。如果您對此有紀(jì)律,您將花一些時(shí)間在紙上計(jì)劃事情并或多或少地弄清楚您希望您的程序做什么。這很好,但它不能代替實(shí)際使用過該程序并注意到,是的,在這里添加這個小功能會很棒。
秘訣是添加小功能可能非常困難!對于以前從未編程過的人來說,這似乎令人驚訝:您需要做的就是讓它打印這一段數(shù)據(jù),或者接受這一種類型的輸入,或者,等等。問題是在程序內(nèi)部,架構(gòu)可能不會旨在支持此類信息。例如,假設(shè)您想在簡單的圖形用戶界面上將按鈕從一個位置移動到另一個位置。如果程序設(shè)計(jì)得很好,這應(yīng)該不是太大的問題,但如果沒有,那么考慮這種可能性:按鈕的位置由其位置(以像素為單位)決定。所有按鈕位置都被硬編碼到程序中,以允許它決定特定的鼠標(biāo)單擊結(jié)束了哪個按鈕?,F(xiàn)在,如果你移動一個按鈕,您可能必須返回并更改每個按鈕在例程中的位置以繪制按鈕和在例程中接受輸入。這可能很麻煩!
顯然,您需要某種方式來獲得一種不太難更改的按鈕位置概念。但是,如果您開始您的程序并且不認(rèn)為能夠移動按鈕會很好,bam,您必須返回并更改可能20行或更多行代碼(例如,每個按鈕兩行)只是移動十個按鈕之一。而且,如果您按一個按鈕出錯,您可能會看到難以發(fā)現(xiàn)的意外結(jié)果。
這種程序設(shè)計(jì)很脆弱:一開始它可以工作,但是當(dāng)你需要改變一些東西時(shí),它就不靈活了。每個按鈕都依賴于其他按鈕,并依賴于程序員進(jìn)行更改。一種更好的方法是將繪制按鈕和單擊按鈕時(shí)的位置聯(lián)系起來——更改一個并不意味著您必須更改另一個。
您越愿意在設(shè)計(jì)程序之前進(jìn)行預(yù)先思考,您就越容易找到實(shí)際的代碼編寫方式。這并不是說當(dāng)您第一次學(xué)習(xí)時(shí),您不應(yīng)該只編寫一些簡單的程序而不必過多擔(dān)心這些問題。但是您應(yīng)該準(zhǔn)備好注意這些事情以及您的第一個程序確實(shí)存在哪些問題。
你需要的第二個特質(zhì)是耐心。在你的編程生涯的某個階段,你肯定會犯一些小錯誤,這些錯誤會花費(fèi)你數(shù)小時(shí)的調(diào)試時(shí)間,然后才意識到你拼錯了一個變量名,所以編譯器認(rèn)為它是另一個變量。這些事情甚至發(fā)生在優(yōu)秀的程序員身上——你練習(xí)得越好,你發(fā)現(xiàn)你的錯誤就越有趣——但仍然很難找到。如果您不愿意耐心地研究可能的假設(shè)并依次測試每個假設(shè),那么您可能會發(fā)現(xiàn)編程既令人沮喪又令人振奮。
如果您希望最終獲得一份全職的編程工作,那么您將需要獲得足夠的耐心,因?yàn)閹缀蹩梢钥隙ǎ鷷ㄙM(fèi)大量時(shí)間為其他程序員編寫代碼文檔,甚至可能會尋找別人代碼中的錯誤。
所有這一切的好處是,您可以關(guān)注可能產(chǎn)生連鎖反應(yīng)的小細(xì)節(jié),并且在詢問自己可能出現(xiàn)什么問題以及如何測試它的過程中變得更好。最后,您可以使用許多工具來幫助緩解問題;您可以使用編譯器查找語法錯誤,使用調(diào)試器查找運(yùn)行時(shí)錯誤。生活并不黯淡:并非所有時(shí)間都花在尋找錯誤上!
你需要能夠以邏輯、精確、嚴(yán)謹(jǐn)?shù)姆绞剿伎?-您必須愿意并且能夠指定流程中的所有細(xì)節(jié)并準(zhǔn)確了解其中的內(nèi)容。這可能會導(dǎo)致一些驚人的認(rèn)識——例如,一旦你編寫了一個程序來實(shí)際執(zhí)行它,你就會更好地理解幾乎任何東西。有一個故事說,一群程序員在試圖對法律的邏輯進(jìn)行編程時(shí),發(fā)現(xiàn)了立法機(jī)關(guān)通過的州法律中的一個缺陷——結(jié)果發(fā)現(xiàn)有兩段陳述相互矛盾!沒有人注意到,直到他們試圖讓計(jì)算機(jī)能夠理解它變得足夠簡單。但這確實(shí)意味著您需要有能力最終以計(jì)算機(jī)能夠機(jī)械地再現(xiàn)它所需的詳細(xì)程度來理解整個過程。
同時(shí),你必須能夠以正確的方式解決問題,成為或成為一個好的問題解決者。雖然您的程序可能需要完成某項(xiàng)任務(wù),但不要陷入您嘗試解決問題的第一種方式。例如,如果您需要存儲20個電話號碼,使用數(shù)組可能比使用20個單獨(dú)的變量更有意義。即使您最終可以這樣編寫程序,但使用數(shù)組編寫程序會好得多。這將是一個更短的程序并且更易于維護(hù)。通常,重述問題是重新定義問題的好方法。這是您將隨著時(shí)間的推移而學(xué)習(xí)的技能;在開始編程之前,您無需掌握它。
如果你堅(jiān)持不懈,愿意關(guān)注設(shè)計(jì)問題,并專注于解決問題和精確解決問題,你將成為一名程序員。如果沒有,那么您可能會發(fā)現(xiàn)編程生涯令人沮喪和乏味。
以上就是動力節(jié)點(diǎn)小編介紹的"當(dāng)程序員需要學(xué)什么,自身具備什么?",希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743