導航:首頁 > 程序命令 > 程序員是如何解決疑惑

程序員是如何解決疑惑

發布時間:2023-01-08 11:06:21

程序員怎麼在工作中解決問題並提升學習能力的

學習,不停的學習。
剛遇到工作上的難題之後,一般就是靠個人能力解決,要是一個人不能解決的話,就申請團隊解決,總之最主要的目的就是解決難題。
作為程序員我認為最值得學習的精神就是:程序員的學習精神。
在日常的工作中我們也經常會遇到難題,但是從來沒選擇逃避過,就是認真面對困難,然後再一一把它們解決掉,在解決困難的途中,收獲會非常大。

Ⅱ 程序員獨立研發的時候,遇到問題了你們都怎麼解決啊

1.技術問題:網路,bing,SCDN,請教前輩
先網路,網路是個好老師。
網路解決不了的再bing搜索一下,我遇到很多次都是在bing上找到的。
當搜索引擎搞不定的時候,這時候需要論壇了,去CSDN找找相關的技術貼,總會有點思路。
最後就是找公司的同事,這個有些時候需要花一些代價,畢竟大家都很忙。
2.邏輯問題:有些時候會遇到很惡心的邏輯
當想不明白或者想不通的時候,我會試著一步一步把邏輯寫在紙上,這樣就會很清晰,如果在某一步被卡住了,那麼問題的關鍵也找到了。當然有些時候或許一開始就走入了一個誤區,從而導致了一個錯誤的思路,這個時候我一般會睡上一會,或者做些完全和開發不相關的事,目的是忘記剛剛所有的東西,然後從新審視問題,換個角度去考慮。
(個人經驗,純手打!)

Ⅲ 程序員遇到百度不出來的bug都是怎麼解決的

筆者不同意下面網友的回答。程序員如果解決bug的水平停留在網路,那麼本質上只是一個「面向搜索引擎的代碼搬運工」,是不合格的程序員。

程序員對面bug,正確的「打開方式」是像福爾摩斯和柯南那樣,尋找線索、運用邏輯推理來縮小問題可能的根因范圍,最終精準定位。

常用的方法有:

1. 壞境上下文變換法

2. 工具調試法

3. 版本回溯對比法

4. 代碼審計法

……

沒有編程問題是stack overflow和Google解決不了的,假設你在編程中遇到了問題,你自己解決不了、你周圍的的人都解決不了的時候,我覺得stack overflow、Google是你最好、也是最後的幫手。

作為一個程序員,我覺得Google、stack overflow是你必須要學會使用的兩個工具,這兩個工具本身並沒有使用門檻,只不過因為一些眾所周知的原因,很多人不能使用Google和stack overflow這兩款工具。

Google主要還是方便,而且很多編程問題都需要用到英文搜索,當然現在網路在專業能力上也提升明顯,不過跟Google也還是有比較大的差距,因此我還是強烈建議要學會使用Google,這會幫你在工作、學習上事半功倍。假設Google確實因為某些原因沒辦法很好的使用,我也建議你至少要會使用Bing搜索。

現在可以說stack overflow上沒有你找不到的問題了,從IDE環境安裝問題,到各類編程語言問題。演算法問題,數據結構問題,調試,重構等等,幾乎這里就沒有你找不到的答案,可以說在stack overflow上你可以找到任何解決方案,並且上面的回答者基本上都是非常有經驗,而且都是實際中遇到的問題分享出來的,這個工具一定要會使用。同理,除了stack overflow這個專業的垂直程序員問答社區,你也可以使用Quora這個綜合問答社區,這上面也能找到很多問題的答案。

一些比較優秀的文本編輯器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。

一些比較非常出色的IDE集成開發環境: visual studio,IntelliJ IDEA,PhpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。

macOS平台比較好的第三方包管理工具: Fink,Macports,Homebrew等。

一些比較好的終端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。

一些比較好的筆記軟體、markdown工具、效率工具: Evernote,有道雲筆記,為知筆記,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。

虛擬機軟體、容器軟體: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。

我是個程序員,職務是linux底層驅動工程師。平時的主要工作是調試驅動,但產品遇到諸如死機、重啟、不開機之類的問題時,也要參與查找原因。一部分問題,確實可以查看相關的log,然後網路這些log的關鍵字來解決;但更多的問題,牽扯的條件太多,並不是簡單的網路就能解決的。

觀察了周圍同事們的做法,我總結出以下幾種解決方法:

網路因為競價排名的原因,搜索出來的結果有很多廣告的成分,所以有時候要翻好幾頁才能看到一條相關的答案,有些甚至要翻幾十頁。

因為網路搜索使用的是SEO技術,即普通用戶可以通過優化網站內容來提升關鍵詞排名。

而這就會導致一個問題:你搜索關鍵詞後展現出來的結果是有人想要讓你看到的,並不是質量最好的。

也就是說,網路搜索結果被人為干預了。所以網路一直被網民所詬病。

但網路搜索不出結果,未必是網路的原因,也有可能是自己輸入的搜索詞不準確造成的。所以對於網路,我們要做到如下幾點:

除此之外,網路搜索還有點小技巧,粥左羅《萬字干貨,徹底講透搜索技巧,10倍提升你的搜索力(免費教程)》這篇文章寫得非常好,我整理幾點,僅供參考:

01 過濾目標內容

命令:「+」「-」

用法:通過「+」和「-」來對搜索結果進行過濾

比如在關鍵詞後加上「-推廣 -推廣鏈接」就可以排除搜索結果中包含相應字樣的鏈接。如果你發現廣告還沒有排除干凈,你也可以再加上「-廣告」通常就能徹底的消滅廣告。

02 搜索包含某關鍵詞的內容

命令:「intitle」

用法:通過「intitle」命令指定搜索結果中要包含的關鍵詞,注意「intitle」後邊連接的冒號是英文狀態下的。

03 搜索某一個格式的文件

命令:「filetype」

用法:通過「filetype」命令可以限制我們要搜索文件的類型,注意「filetype」後邊接的冒號也是英文狀態下的。

04 搜索特定時間范圍的內容

命令:「時間..時間」

用法:通過「時間..時間」命令可以限制我們要搜索的文件的時間,注意兩個時間的中間頓號沒有空格。

相對網路,谷歌、必應對於技術搜索,就相對准確許多,所以當你網路搜索不到時,嘗試下別的搜索引擎,說不定會有新發現。

現在程序員使用的機器語言,都是國外的,更准確的說,都是美國的。所以很多論壇、資料等,都是英文。如果你只會用中文來搜索,某些小眾的問題,當然搜不到啦。

所以,要學會使用英文關鍵字來搜索。

有時候甚至要去國外的一些論壇來搜索想要的答案,這就要求要有一定的英語閱讀能力,不能一看到英文帖就放棄。

有時候不管你如何搜索,都找不到自己想要的答案,該怎麼辦呢?這種情況下,就只能硬著頭皮嘗試自己解決了。

或者,尋求同事或朋友的幫助,尋求大腦風暴,說不定就會有思路。

如果有些問題是因為新器件帶來的,還可以找到器件供應商,讓他們安排技術支持幫忙查找原因。

除此之外,還可以把問題整理好,寫清發生的條件、復現步驟、測試方法、相關的LOG截圖等資料,去一些技術論壇發求助帖,尋找大牛的幫助。

做技術時間久了,發現有些問題確實無解,根本沒有辦法去解決它。

這時候,我一般會嘗試把它繞過,就是說,想辦法讓它無法復現,雖然問題還是存在,但是能把它掩蓋過去。

比如有些驅動在開機啟動時會載入不正常,那麼就讓它晚點啟動,或者手動載入。這也不失為一種解決問題的方法。

以上就是我的建立,希望對你有幫助。

首先作為一個程序員,一個優秀的程序員最最最重要的能力就是解決問題的能力。這里解決問題的能力當然就包含了解決 bug 能力了

畢竟,程序員這一生,可能會寫無數個 bug ,沒有說哪個程序員敢保證自己寫的程序沒有 bug 。 所以,寫了 bug ,遇到 bug 並不可怕,可怕的是你沒有解決 bug 的能力 。

作為一個程序員,解決 bug 的途徑有哪些呢?我們來一起聊一聊!

其實,每個程序員在學習編程的時候,都會使用編程工具,而現在的開發工具,其實功能都很強大。如果你自己合理利用編程工具,都了解和懂得開發工具的一些技巧,其實不僅僅能夠提高開發效率,而且還能夠幫助你解決很多編程中的實際問題。

debug 調試,大部分你常用的開發工具,都會有調試模式的,簡而言之,就是你編程的時候,遇到了不是自己所想的結果的時候,你可以使用 debug 模式,來一步一步的調試,在調試模式下一般每一步都會顯示所執行的結果,你可以看看在哪一步出錯了,執行的結果與你預想的結果不對,那麼你就能夠找到問題所在了。

還有就是,開發工具的控制台,都會提示出報錯信息的,現在的開發工具,都會直接告訴你哪一行,報了什麼錯。其實,很容易定位到錯誤的。你只需要在編程的過程中積累經驗,知道報什麼錯,用什麼方法來解決就行啦。

可是,提示的報錯信息,我不知道用什麼方法來解決的時候,該怎麼辦呢?這就是你需要積累的,也是問題中所描述的,就是通過搜索引擎來找答案。

不對,這里不應該是合理使用搜索引擎,應該是學會正確使用搜索引擎。比如:網路,你就不要用了,搜出一堆重復的信息,而且廣告也多。作為程序員,建議你使用谷歌搜索。

其實,你在編程中所遇到的幾乎所有的問題和 bug ,別人也同樣遇到過,因為不管是經驗豐富的老程序員,他技術再牛逼,也是初學者過來的,也都踩過你踩的坑。所以,互聯網是個好地方,裡麵包含了你想要的問題的答案。

你只要把報錯信息往搜索引擎上一放,回車一下,很多關於這個 bug 的答案就出來很多,你只需要找到跟你一樣的 bug ,就能找到答案了。

在這里必須提一下這個網站,所有的程序員有必要學會使用這個網站,其實,你編程中所遇到的問題,這個網站上幾乎都是由解答的。

Stack Overflow 可以說是最好的軟體程序類問答網站了,給軟體開發人員工作和學習提供了非常大的便利,以至於像小白,離了 Stack Overflow 簡直都不會寫程序了。

所以,建議大家一定要學會使用這個網站,對你編程肯定會有非常大的幫助的。

通過上面的方法,幾乎應該能夠解決到你所遇到的問題,但是,實在找不到答案的話,你可以問經驗比你豐富的老程序員,實在解決不了,那就換種方法吧!

網路,谷歌,debug,斷點調試,業務上的bug就需要問下同事或者產品。如果能知道大致范圍,哪一部分錯了,就換一種方法唄,一般都不會只有一種方法。

1.reload

2.restart

3.rewrite and then goto 2 or 4

4.reboot

5.rm -rf /

6.原諒我編不下去了[捂臉][捂臉][捂臉][捂臉][捂臉][捂臉][捂臉]

找bug跟醫生看病的思路是一樣的,要對症下葯。得先把問題的根源找到,找到根源以後問題就容易處理了。搜索引擎找不到的問題,說明這個問題不是一個常見的問題,具有獨特性,那麼從bug出現的路徑上一步一步去排查。必要時可以用排除法,盡可能的縮小排查范圍。另外,當軟體的業務邏輯比較繁多復雜的時候,一個結構清晰的架構能為你節省不少找bug的時間。還有,充分的單元測試能夠幫你減少出bug的機會。以上均為個人看法,歡迎討論!

一般程序員能碰到的bug無外乎其他上遊程序員寫庫時手抖留下些不匹配或者容易溢出的問題,搜一下差不多能解決問題。如果是自己寫的,那無非就是時序錯誤類型錯誤之類的,用break point一行行的調就好了。

再復雜點的bug就是程序員拿高薪的根本了,只可意會,不可言傳~

僅僅靠搜索引擎、其他網站那必然無法解決大量問題,因為很多問題是跟業務邏輯相關的,是沒有直接答案的。比如 游戲 開發有個界面一直無法顯示,這個問題就不是網路可以解決的。問題需要調試分析,這和破案非常像,但在開發過程中更有利的是問題有機會可以重現。破案是逆向工程,需要反推。解決代碼問題不僅僅可以反推,也可以通過閱讀代碼正向分析。下面說說如何debug一個業務邏輯問題。回到剛剛的例子,有個界面一直出不來,我們如何快速去定位:

1.思考這個問題發生的可能性。比如 游戲 內大量界面都是正常的,那麼可以對比正常界面代碼和異常界面代碼的區別,這是對比法。

2.假設創建正常界面和這個異常界面的邏輯代碼是一樣的,那麼問題就落到了這兩個界面內部,繼續在內部重復上面的對比法進行判斷,直到鎖定最終位置。

上面說的方法基本上可以杜絕卡在一個簡單問題上,這是擺脫新手的一個過程。選擇使用對比法或者其他方法的前提都是基於觀察和對項目的認識,所以,搜集「案發現場」是最關鍵的。

其他的問題,不屬於邏輯的,像其他網友說的那樣,有些通過到github、stackoverflow等地方解決的。這些問題也不是直接就去查找的,它通常也有個分析過程。比如你使用了一個庫,但是目前它不支持你的模塊。對於新手,就是直接網路或者google了。實際上這樣的問題也是有「案發現場」的。對於作者提供的api介面的統一性和便捷程度去推斷作者在相關支持模塊的位置以及命名以及拓展,再嘗試在文件夾中搜索。如果都找不到,再去Google上獲取更多的信息。重復推斷、分析,決定如何拓展或者繞過。

綜合上面的幾種問題,可以看到的是都離不開對現場的觀察和推理分析。這種能力也被稱為經驗。但是一般情況下你看不到它們這個分析過程,你能做的就是在實際環境中反復逼迫自己去思考,去訓練。這個推理的培養,不僅僅是對事情,也是對人。

我在入行 游戲 開發的前期,也是類似的情況。卡在不同種類的問題上,有些在簡單邏輯,有些在別人的代碼支持上。後面解決的問題多了,就會發現裡面共通的思維方式。常用的一些方法如下:

1.對比法,比較正常與異常代碼區別

2.二分查找法。分段注釋找問題,也會用在很多方面。比如最近版本突然出了一個奇怪bug,可以通過svn還原來定位。這個還原不是一個一個版本還原,而是用二分法去還原。

3.增加信息。在懷疑的位置或者過程添加日誌或者打斷點輔助自己更好的推理。

4.相似推理。比如一個引擎在api、性能使用程度上都非常友好,那麼它在別的地方也有可能相對表現比較好。這時候如果有個功能我們的實現需要很復雜才能完成,那麼就有可能是我們用錯了。相似推理不一定都能正確,但會提供一些幫助。

以上。

Ⅳ 程序員學習的疑惑

潭浩強的<<C程序設計>>
清華大學出版的<<C++程序設計>>等 能了解一些基本語法 會編寫些簡單的程序

第二步:看<<C++ primer>>我絕對對贊同這是本好書,面也廣.<<The C++ programing Language>>這本書的名頭也是讓我如雷灌耳,上圖書館找了半天沒找到,唉傷心..它們能使你更全面的了解C++ 這時你對泛型編程.模版.容器.標准庫函數 等都會有一些了解,甚至會有一些自己的獨到見解了.以後看到這些代碼不至於會不知道是什麼東西 (當然這書可以結合第一步的書看)
瀏覽下<<The C++ Standard Library>>了解下函數標准函數 因為你可能以後會經常在書上或網上看到它們的身影.你首先應該知道那是標准庫里的函數.然後不明白可以再參考下這本書.我知道的有一本比較小一點的書<<C/C++標准函數查詢>>也可以做為參考.

第三步:這時候C++基本的東西你已經掌握了差不多了 學習windows的程序設計
兩本精典之作 <<windows程序設計>>
<<windows核心編程>>
(這兩本書至少看完一本後,如果想進一步學網路編程<<winsock網路程序設計>><<windows網路編程>>之類的書可以看看)
如果有興趣可以看些LINUX的編程書 <<自己動手寫操作系統>>
<<linux內核編程>>.......
還有這個期間要結合 <<計算機組成原理>>
<<編譯原理>>之類的書看
然後再看VC++類的書 <<深入淺出MFC>>
《VC++技術內幕》等
有空的話可以學點匯編 匯編的書我就不介紹了 因為不是了解很多

第四步:第三步完了,差不多能寫一些自己的小軟體了,這時候要進一步發展學些復雜的,效率的.
看 <<數據結構>> 學習演算法.
看 <<effective c++>>
《Exceptional C++中文版》
<<thinking in C++>> 這本書在國外有很高的評價,第一卷還簡單一點,第二卷我啃了半天沒啃下(標准庫不是很熟悉的結果), 所以最好要看完<<the C++ progarming language>>或<<C++primer>>(當然其他書大家自己發掘了)再看它
《C++ Templates全覽(簡體版)》,人民郵電出版社 模板是不是令你覺得很新穎,那去學他吧.
進一步提高自己,養成良好編寫習慣還有很多好書下面我會列出來(不是說要你們全看,當然看的越多越好)

學習C++心得與值得一看的書
結合一些我的學習經歷,希望對於想學C++的人有些幫助. 大家有什麼好想法望提出

我老師最初是從C語言教起的,用的是潭浩強的<<C程序設計>>這本書,那時候命令執行都是在CMD里實現,用的編譯器是turboc最經常用到的就是 printf cin 對於效率不是很在乎,只要能執行就好了,連warning都忽略(這個很不應該).後來又學了C++,是清華大學出版的<<C++程序設計>>,用的編譯器是VC6.0.這本書也是講了一些很基礎的東西.給我的感覺就是 "類"在這里是無處不在, 封裝,繼承,派生,多態,還有一個是泛型編程都在這本書被提到,相對於只學過C的人應該會覺得很新鮮.但我很多時候在做作業時都是C跟C++混合使用,想起來會覺得很好笑.並沒有把C++特性很好的發揮出來.
後來學過<<visual c++ 6從入門到精通>> 這裡面基本是講MFC了,類在此時才發揮它的魄力,這時基本都是用C++編寫代碼了.
但代碼寫的很爛,沒有想過要優化它.

暑假回家看了<<C++primer>> 如獲至寶,容器與泛型編程給我有一種耳目一新的感覺.此書是這樣被評價的:久負盛名的C++經典教程,結合兩位C++大師的精妙見解. 寫的挺細的,你會學到很多新東西 . 但我個人不建議以它做為最初的入門教材,可結合入門教材看.
還看了<<effective c++>> 如果你學過C++並且已經寫過很多覺得很滿意的作品,但是你說你沒看過甚至沒聽過這本書,我得跟你說你錯過了優化編程思想的機會,呵呵有點誇張. 給你們簡述下簡介:當你讀過這本書後,就獲得迅速提升自己C++功力的一個契機,幫助跨越C++的重重險阻,領略高處才有的壯美風光,做一個成功而快樂的C++程序員.
你也許會怦然心動,確是一本好書.效率,安全,在此淋漓盡現. 令人拍手稱快. 你會突然覺得自己以前寫的代碼是多麼的糟糕,這時你已經往前邁了一步了.
這本書建議看完<<c++primer>>後再看,因為裡面有涉及容器等一基本教材未提及或未深入的東西,如果感興趣還可以看看<<more effective c++>> <<effective stl>>

Ⅳ 程序員遇到解決不了的bug怎麼辦

Ⅵ 北大青鳥設計培訓:運維程序員如何快速處理線上問題

對於大多數運維程序員來說,時時刻刻都需要關注伺服器和系統程序可能出現的問題並提前解決。
今天我們就通過案例分析來了解一下,運維程序員如何快速處理線上問題。
任何一旦掉進坑裡,明智的做法一定是:跳坑_>填坑_>避坑,線上故障處理的過程也一樣,優先順序從高到低,線上故障處理的目標如下:跳坑『跳坑』——快速恢復線上服務,或者將對線上服務的影響降到低。
線上服務的可用性決定著服務者的客戶利益,影響著公司的收益。
一旦線上環境不可用,無法服務用戶,給公司/團隊帶來經濟利益損失的同時,更為嚴重的會給公司/團隊帶來惡劣的名聲。
所以一般公司都會對線上環境提出穩定性和可靠性的要求,這也是團隊乃至部門的kpi。
為此,遇到生產故障後的一要務是:恢復生產服務,即使不能完全恢復線上服務,也要想盡辦法將對線上服務的影響降到低。
填坑『填坑』——找到問題原因,根本上解決問題。
在恢復線上服務,盡大限度減掉對用戶/公司/團隊帶來的影響後,我們需要徹查問題,搞清楚故障發生的根本原因,從根本上解決問題。
通常情況下,『填坑』和『跳坑』是同步在做的,完成『填坑』也就意味中『跳坑』成功,但是也有一些緊急情況下的特別『跳坑』方法,比如重啟服務,或者服務降級/熔斷等等,實際並未在當時完成『填坑』,而是先採取非常規手段『跳坑』,之後再慢慢『填坑』。
避坑『避坑』——舉一反三,消滅隱患。
找到了根本原因,解決了問題之後,我們需要舉一反三,以此及彼,想想在這個故障排查和處理過程中,那些環節存在弱點?那些流程/規范/制度需要優化?這類問題是否在其他系統或者團隊中也存在?通過這樣的反思和自我批評,形成一份線上事故報告,不斷完善流程,避免再次踩坑,也在團隊中交流經驗,共同提高。
線上故障處理的思路依據線上故障處理的目標及目標的優先順序,線上排障的一目標是恢復線上服務或者降低對線上服務的影響,關鍵點在於快速二字,在『跳坑』-『填坑』之後,再行回溯總結,以便『避坑』。
因此,可以將線上故障處理的步驟分為:故障發現故障定位故障排除故障回溯其中前三步是『跳坑』行為,後面一步包含了『填坑』和『避坑』。
上述步驟並不是說要從上到下順序進行,建議在不亂陣腳的情況下,並行去做,因為通常線上故障後會緊急啟動故障處理程序,運維、開發、測試、產品各個角色都會參與進來,這時候分工下去,並行去做,不斷匯總消息,做出判斷,以求快速排障,恢復服務。
這個思路類似於操作系統的fork/join設計思想,目的在於提高效率。
在無法快速找到故障原因的時候,需要果斷跳過故障定位環節,直接進行故障排除,比如採用服務降級、伺服器擴容等手段,確保對線上服務降到低且可控。
南寧北大青鳥http://www.kmbdqn.cn/建議可以等到線上服務』撐』過去之後,我們再慢慢定位故障原因,根本上解決問題。

Ⅶ 程序員如何提高解決問題的能力

就和你編程一樣。決策樹演算法的邏輯,移植到實際問題的解決。甚至可以升級為,決策森林演算法,深度森林演算法。

遇到問題就開始分類。然後根據自己的現狀與實力,確定可行域,然後找最優解,最起碼也得是可行解中的效率較高的。

Ⅷ 程序員如何提高解決問題的能力

#技術分享# 程序員最重要的能力之解決問題的能力。上次說到程序員最重要的能力之自學能力。自學你總能找到這樣或者那樣的資料,然而當你遇到一個技術難題你可能在網路找不到任何有用得資料。

這個問題我分兩個層面去闡述,道與術。道是基礎知識儲備,術就是方法。

零散的知識是無用的,你聽到一句很有哲理的話,你看到一個深入你心的人生感悟,這些東西對你其實都是毫無作用的。真正有作用的知識一定是成體系的,系統性的。知識與知識直接是有關聯的。用分類的思想來說,知識點有兄弟關系,有父子關系。兄弟是有同有異的,父子是有傳承的,是從屬的。 另外,系統性的知識一定是強調完備性的,是有限元的。

抽象的東西很難理解,通俗的去說就是在學習的時候有要意識的去系統性的學習。就好像你聽到的人生感悟,各種雞湯,他們不是沒有道理,而是還得知道他們的背景與環境。了解了這些你就不會急著往你自己身上套。

術就分享幾個小方法。編程上遇到的問題一般都有錯誤信息,這些信息都會有堆棧。很多同學一看到錯誤提示是英文的就不管三七二十一復制去網路了。其實很多時候錯誤提示本身就是答案,因此學一些基礎的英文是有必要的。如果錯誤信息過於抽象,那跟著堆棧去調試也是一個很好的選擇。以上基本就能解決你遇到的90%的問題。從另外的角度也提示我們在編程的時候需要拋出友好的錯誤提示。

另外我們還會遇到一些莫名其妙的問題,沒有任何提示。這個時候我們要學會提取關鍵詞,利用搜索引擎找到答案。分享一個案例,我在用flutter開發app時有客戶反饋偶發性的白屏。提取關鍵詞flutter+白屏在網路幾乎沒有任何有用的信息。繼續細節化,白屏出現在啟動頁。換成谷歌 flutter+splash+blank順利找到解決方案。總結就是,盡量找一手資料,盡量用英文搜索,利用細節關鍵詞縮小搜索范圍。

當然,以上的兩個方面都不足以概論如何提升解決問題能力的問題。最重要的是經驗,有足夠解決問題的經驗是基礎。這種能力是有正向反饋的,你解決了第一個問題,你就有信心解決第二個問題。遇到問題不要著急去搜索,去技術群問答案。自己能解決問題會給你帶來良好的正向反饋。

廣告:泰升網路 科技 ,專業從事企業信息化服務,軟體定製開發,SAAS等。

Ⅸ 優秀的程序員是如何處理技術 Bug 的

從初入職場菜鳥到職場大咖,很多程序員在努力充實自己,有時候我們需要對自己進行一次能力定位,了解自己的優勢和沒有掌握的技術。芯學苑列出幾點作為初入職場的新手評估自己,明了前進學習的方向。
1、技術能力(解決問題的能力)
這是非常重要的事;過硬的技術能讓你得到面試機會,並在工作中游刃有餘。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等於其解決問題的能力。
如果拿一個尺度來衡量這個能力的話,一個程序員的能力可以用能完成任務的數量和難度來衡量。一個程序員能基本無誤的完成項目中的一個功能算是合格,但在此之前,他對項目的生產力為負,為他布置的任務,中間環節的溝通,修補bug的時間其實要多於自己直接完成該功能的時間的。能較好完成一個完整模塊的程序員才算是較好的程序員,也是項目中的主要開發者。能獨立完成整個項目才是優秀的程序員。
2、專業基礎(知識的積累)
一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背後的演算法將使你從人群中脫穎而出。
3、主流編程工具
今天,事實是,你不能成為一個樣樣都懂的人(雜而不精)。你必須選擇你要掌握的工具。有時這是由工作的環境決定的,但是按照下面說的去做也是一個很好的選擇:
構建工具:Maven或Gradle。
SCM:Git(不是GitHub。大不相同)。
構建自動化:Jenkins。
IDE:Netbeans或Eclipse——不僅用於編寫代碼,而且還從IDE中重構和調試代碼。我遇到了很多沒有如何從他們最喜歡的IDE調試的開發人員。
Bug跟蹤:Bugzilla或Jira。
4、JSF的知識
應用程序伺服器
所有Java開發人員應該知道如何在Apache Tomcat中部署。
當Glassfish開發停止時,下一個最好的事情是J Boss Wild Fly。
5、溝通的能力
溝通是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看並非如此。
從大的尺度(比如一個人的工作生涯)來看,一個程序員知識積累的多少只決定於其自學能力和他對編程本身的興趣。
在一個分工明確的項目中,程序員需要理解產品,和領導溝通理解自己的任務,和同事們溝通以正確的方式進行合作。無論哪一個方面溝通出了問題都不是小事情,同時,程序員還需要正確的傳達設計的實現難度,以及讓別人正確的理解自己設計模塊的介面。在不寫文檔時,正確的口頭溝通非常重要,需要寫文檔時,良好的編輯能力也算做是溝通能力的一部分。
6、自學能力
這是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從Java後端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。
7、良好的團隊合作精神
無論是部分編程還是大型項目,所有開發人員都是作為團隊的一部分在協同工作。你需要致力於團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種「我只要做好我的本職工作,下班就直接回家」的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。
就像拿破崙說的不想當元帥的士兵不是好士兵,追求參與一個大型軟體系統的開發,是每個程序員的夢想。在此之前,應該學習更多的專業知識,達到優秀程序師的標准。最後希望各位程序員閱讀本文後能夠得到一些裨益,在這條路上走得更好。

閱讀全文

與程序員是如何解決疑惑相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163