導航:首頁 > 程序命令 > 如何和程序員思考

如何和程序員思考

發布時間:2023-06-04 02:45:54

Ⅰ 關於程序員在30歲,35歲之後怎麼辦的新思考

今年一直在深度加班,最近感覺自己身體確實不如五年前了,不如20歲的時候了。那時候學習到2、3點才睡覺,第二天早上繼續開工,沒有問題。最近感覺熬不動了,晚上十一、二點就困的不行了,早上也起不來,起來的話,上午就有點精力不夠。
我給自己的定位就是技術,我對純的管理也不感冒,技術經理,架構師,首席架構師,技術總監,如果有機會的話,可能是這個發展路線。目前來說,就是個技術經理,正在向架構師轉變,發現需要學習的東西更多了,精力還真是不太夠用的。還有就是思考的角度要轉變,不能以程序員的角度思考軟體,要站的高一點,要全面,自己還要看過(最好是做過)很多這方面的東西。首先從整體來思考系統,然後分解,逐步分解、細化,最細的就是程序員的代碼了,那個由他們來按照規范編寫,要去把握整體的結構,整體的設計,整體的模式。
另外一個我認為較為重要的就是,需要對團隊的開發人員做培訓。最近我也發現了,雖然我們用的都是面向對象的語言。但是代碼一點都不面向對象,除了寫了class,因為不寫class也沒有辦法編程啊。但是很多時候大家對於類的設計都沒有認真的思考,而且大家的認識也不夠深入,有必要在這方面提高大家的水平。封裝、繼承、多態,不是簡單的類、繼承、寫個介面,就真的是那麼回事了,很多時候我們還需要深入一點,越是基礎越重要。還是那句話:出來混,遲早要還的。
公司每天都在抱怨進度為什麼慢,我也在思考為什麼慢呢?每天都在加班,周末也在加班,就是快不起來,都很努力了,沒有人偷懶,為什麼沒有產出呢?我覺得就是這個面向對象的能力沒有提高,寫代碼的時候卡住了,業務清楚了,流程清楚了,覺得代碼也就是兩天,為什麼5天了,還是差一點呢?我決定就是代碼功力不夠造成的,如何提升呢?一是要靠自己多思考,下班多花點功夫練習,不是單純的練習手敲代碼的速度,而是對自己的代碼重構,模式,思考怎麼提高代碼復用性,怎麼才能讓自己寫的代碼不是改來改去呢,要做之前先想一想,設計一下。只有在這方面下工夫了,才能真正的提高開發效率,減少加班的頻率。二就是公司要組織這方面的訓練,抽出一半天的時間,來個面向對象的頭腦風暴,出幾個小題目,大家一起討論,在完成的過程中學習,鍛煉思考能力,設計能力。三就是專事由專人來做。我不推薦讓程序員參與業務討論和定位,因為做業務和開發是兩種不同的思維方式。做開發是很嚴謹的,業務則是很靈活的。四就是不要外行領導內行,會很慘的,至少進度會拖後很多。
難道這就是大家說的30歲之後要轉型嗎?在國內30歲之後真的寫不動了嗎?於是這幾天順便就做了一個思考。發現了一個驚天大秘密(哈哈)。發現了為什麼30歲就寫不動了呢?為什麼國外的程序員,很多都是40、50還可以繼續寫呢?而且寫的很享受的樣子,我們就需要轉型到管理呢?但是管理就像是金字塔,越往上越小,需要的人越少,不是每個人都可以做到管理的位置,況且不是每個人都適合做管理的。難道寫程序沒有出路嗎?不是的,這純屬是有些人的謬論,誤導了不知道多少人啊,至少我是這么認為的。
大家也許會說是環境因素、社會問題。是的,這些因素是影響到了我們程序員的生涯,但是他們不是主要因素,而且這些不是一天兩天可以改變的,也不是我們一個兩個就可以改變的,就像革命一樣,需要時間,需要人來犧牲,需要前赴後繼,積累到一定程度才可以變革。
我覺得我們可以控制的,又是主要因素的就是我們自己。至於30歲以後寫程序沒有前途的論調,可以用一句話解釋。
30(35)歲寫20歲的程序。
怎麼解釋呢?就是說30歲寫的程序還是20歲的時候寫出來的樣子,沒有發展,沒有變化。那肯定干不過20的小夥子了,他們可以加班、熬夜,但是我們怎麼辦,身體根本不允許你那麼幹了,肯定就不行了。老闆就覺得要30歲的還不如要20歲的呢?20歲的還可以更少的工資,更好忽悠,30歲的老油條,不好忽悠,而且產出也不行了,那就辭掉吧。
其實是我們自己斷了自己的後路,是我們自己沒有成長,還在寫20歲時候寫的代碼,沒有長進。在代碼的設計(且不說架構設計)方面沒有長進,所以寫出來的還是較為混亂的,牽一發而動全身的代碼。如果讓年輕人改,他可以熬夜該,但是我們就不行了,所以都說30歲就不能寫程序了。其實決定權在我們自己,要在20-30歲之間,提升自己,就算不想做架構,只想寫程序,也要越寫越精煉,要有自己的一套,要提升代碼的功力。要學習設計模式,重構,要思考代碼的結構,不是一上來就寫一大丟,然後推到重新來過,那樣肯定干不過年輕人的,哪有那個精力啊,是不是呢?
只想寫程序也可以,但是一定要想辦法,在30歲的時候不要在寫20歲的代碼,否則就真的沒有前途了,甚至要早點回家了,因為你干不過20歲的小夥子啊。
希望大家不要在30歲的感慨,希望大家作出改變。改變這個潛規則。

Ⅱ 怎樣才能鍛煉出程序員的思維

要鍛煉出程序員的思維 首先要做到下面幾點
多家練習 才可熟能生巧
1、扎實的基礎

數據結構、離散數學、編譯原理,這些是所有計算機科學的基礎,如果不掌握它們,很難寫出高水平的程序。程序人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學OOP,即使你再精通OOP,遇到一些基本演算法的時候可能也會束手無策。因此多讀一些計算機基礎理論方面的書籍是非常有必要的。

2、豐富的想像力

不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想像力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。開闊的思維對程序員來說很重要。

3、最簡單的是最好的

這也許是所有科學都遵循的一條准則,復雜的質能轉換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮復雜的方案。

4、不鑽牛角尖

當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當我遇到難題的時候會去玩游戲,當負責游戲的那部分大腦細胞極度亢奮的時候,負責編程的那部分大腦細胞就得到了充分的休息。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。

5、對答案的渴求

人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。

6、多與別人交流

三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。

7、良好的編程風格

注意養成良好的習慣,代碼的縮進編排,變數的命名規則要始終保持一致。大家都知道如何排除代碼中錯誤,卻往往忽視了對注釋的排錯。注釋是程序的一個重要組成部分,它可以使你的代碼更容易理解,而如果代碼已經清楚地表達了你的思想,就不必再加註釋了,如果注釋和代碼不一致,那就更加糟糕。

8、韌性和毅力

這也許是「高手」和一般程序員最大的區別。高手們並不是天才,他們是在無數個日日夜夜中磨煉出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。

Ⅲ 為什麼程序員的思維很難理解

1、程序員的思維比普通人要嚴謹。
對編程有一定了解的人都能理解這一點,一是一二是二,電腦不認模稜兩可的回答,因為「模稜兩可意味著更多的可能答案」,所以你跟程序員交談的時候,如果你問他「為什麼要這樣問」或「你為什麼聽不懂」,你就會知道你自己的描述有多麼的不嚴謹了。
最簡單的例子,你媽媽讓你去市場買水果,如果看到有蘋果就買一個蘋果,看到梨就買兩個。你看到市場有蘋果和梨,你會買什麼回家?
首先給出一個大前提,在程序上不存在「潛台詞」或者「潛規則」這種東西,唯一起作用的只有「字面意思」。
一般人肯定是買一個蘋果和兩個梨。當然程序員也不是腦子有坑,以一個正常人的思維考慮也會買一個蘋果和兩個梨,但是看到這問題的第一個瞬間的直覺反應,卻是「如果看到梨就買兩個蘋果」。這個問題不存在潛台詞,所以所有人都會直接從字面理解老媽的意圖。
按照程序的邏輯分析,這句話共分為兩個部分,代表兩個程序任務。「如果看到有蘋果就買兩個蘋果」為任務一,條件是「看到有蘋果」,目標對象「買蘋果」,數量「一個」;「如果看到有梨就買兩個」為任務二,條件是「看到有梨」,數量「兩個」,沒有給出新的目標對象。
因此按照程序邏輯來講,第二句話將繼承上一個目標對象,也就是「買蘋果」,所以這句話被看起來像職業病一樣的思維直接翻譯成了「如果看到有蘋果就買一個蘋果,如果看到有梨就買兩個蘋果。」

————————————————————

2、程序員看問題比一般人透徹。
這是職業特性導致的,因為電腦編程的嚴謹性,因此程序員面對一個問題、一個需要實現的目標或者一個bug時,他會思考更底層的問題,並且會習慣性採用歸納法來盡量避免以後可能遇到同樣的問題。
比如用輸入法輸入中文的詞句,有的時候打出了一串拼音,然後按下數字2選取發現不是自己想要的詞,然後發覺數字1對應的才是自己想要的,刪掉,重新輸入拼音,這次按下數字1的瞬間卻發現兩個詞的位置調換了,於是又刪掉重新鍵入,這次認真地看了看,終於選對了想要的詞的序號。
這個時候你會說,啊,我下次應該更小心一點,不要馬虎大意想當然,看清楚了再點。
程序員不這么想,他會想,導致這個問題的看來是輸入法的「詞語順序自動調整」功能,他會自動監測使用者輸入的各種詞語的頻率,來自動調整詞語的順序,底層代碼實現的邏輯很簡單,每個不同的詞對應一個從輸入法安裝到現在的輸入次數的計數器,直接按計數器排列順序就好了;也有的輸入法會監測你輸入後是否會將其刪掉,那麼這時候會被智能識別為打錯字,計數器不會加一。
然後再一思考,這種功能一般都是可以開關的,如果我想要靠記憶記住順序使用而不用輸入法自動調整的話,比如對漢字輸入的速度有一定要求需要考記憶記住漢字序號,我只需要進入輸入法設置將其關掉即可;如果我想要它幫助我調整詞句位置,但是又不需要頻繁地調整,那麼在我有工作需要的時候我會提前關掉,平時開啟即可;而如果我想單純依賴這一功能,那就不用管它,下次看清楚再選就好了。

Ⅳ 初級程序員應該如何鍛煉自己的邏輯思維和思考能力

對於初級程序員要想提高這兩方面的能力,最好的辦法就是解剖麻雀——向前人的經典案例學習。
初級程序員還不需要完成高難度的突破,需要做的是掌握基礎知識,了解前人遇到了哪些問題,他們是如何思考和解決的,
多看多思考,經常動手做,就會大幅度提高自己這兩方面的能力的。

Ⅳ 該怎麼和程序員聊天

程序員話題廣泛:美食、旅遊、電影、政治、軍事、歷史、時事熱點都可以聊,但不要在他敲代碼的時候聊天……
程序員適合一些比較有邏輯性的話題。思考問題往往很中立,理性的有些不近人情。

程序員是網路最前沿的生物,聊天的時候多准備些表情包總是沒錯的。

當實在找不到話題的時候,就去網上找一個空酒瓶和瓶蓋一起換酒那種問題,讓他先算著,然後再崇拜的問怎麼算出來的,估計創造七八百字的聊天記錄沒有問題。這個時間也足以緩沖出下個話題了。

如果他給你展示他寫的代碼,看不懂沒關系,只要括弧能對齊,直接誇格式漂亮就好。什麼?連括弧都沒對齊?F**K,表理他了,他根本不是個合格的程序員……

Ⅵ 男朋友是個程序員,我該如何和他交流呢

其實我覺得男朋友是程序員也沒有關系,因為兩個人在一起不僅僅是聊工作上的問題,更多的是生活上的問題,你可以不和他聊工作,了其他方面的,比如對方的興趣愛好,平時打不打游戲,可以從這方面入手,有的男生還不願意和自己的女朋友聊工作上的問題,因為不想下班後還在聊工作,這個時間應該是屬於自己的,用來聊工作太破壞自己的美好心情了,所以我覺得自己的男朋友是程序員也沒有關系,兩個人在一起還是有其他的事情可以聊的。我覺得即使我們不懂他們的工作,但是我們也可以帶著自己的好奇去詢問他,去嘗試著了解他的工作,這樣還可以增加自己對他的崇拜感,就會越來越喜歡他,還可以增進兩個人的感情,所以我覺得這樣的好處還是比較多的,所以不要怕,兩個人在一起沒有話題可以創造話題,多聊聊,就會讓兩個人有話可說了,都是從那個階段走過來的,剛開始對彼此不熟悉就不知道該去說什麼,慢慢的就了解對方的興趣和喜好,就知道該和對方怎麼聊天了,所以不用去擔心該怎麼和對方聊天。

Ⅶ 程序員職業生涯的若干問題思考

關於程序員職業生涯的若干問題思考

一群還相信世界是美好的程序員。在探求匠心的過程中尋找自己存在的價值。下面是關於程序員職業生涯的若干問題思考,歡迎閱讀。

身體的問題

有很大一部分程序員最終離開這個舞台就是因為自己的身體問題。也有很多人認為搞IT需要一個鐵打的身體。其實再鐵打的身體也扛不住天天的加班和高強度的工作。這是一個產出和產能平衡的問題,身體差最根本的原因還是因為自己沒有足夠的重視。

以下是一些個人建議:

-每天30分鍾的有氧運動

-每天2個水果,上午下午各一個

-馬步

-跳繩

-番茄工作法

不要總是以加班,沒時間為借口。就算你沒法做到一天30分鍾,一周一2次還是可以的,時間是自己安排出來的。也許你真的沒有時間鍛煉,但是每天吃2個水果和做25分鍾稍微起來走一下,休息一會這個 肯定 是可以的。

對有氧運動的2個建議

PM大於100的時候不要出去跑步,運動的時候注意自己的身體,不要超出強度了,累了就休息,你不是要去當運動員。

上班的問題

一家公司給你機會上班,不管怎麼樣,只要你在職,就請盡力多站在老闆的角度看問題,不要總是以打工的心態,會給你不少意外的收獲。

跳槽的問題

這幾年流行著一類故事如:

一些人在跟著一個老闆做多年,最後公司上市,一下變成百萬千萬的富翁。

還有一些人跳來跳去,後來還只是在底層混著但這些都是極端的例子,不能用來說明到底能不能跳槽,首先可以肯定的是可以跳槽,但是要根據自身的情況來分析也不要輕易跳槽,每一次的跳槽都要當成是最後一次來處理。

如果你的離職只是因為一些個人情緒問題,那還是先不要做決定 ,比如你認為老闆只會忽悠,不給你加薪,提升能力不如自己的人,出差多,加班多等一些導致你心情不爽的因素 。這些外界的條件不應該做為你跳槽的理由。一般在自己不冷靜的情況下做出的決定經常是錯的。

你需要考慮的是公司所在的行業發展前景怎麼樣?公司的老闆能力怎麼樣?團隊夠不夠拼,團隊的氛圍,協作效率如何?我自己是不是已經是最厲害了,能不能學到我需要的新東西等等因素 。有些公司雖然目前不贏利,但是老闆有能力,行業發展前景又好,那還是有很大的機會的。也許下一個網上流行的典故就出在你們公司了。不管怎麼樣,不要相信靠運氣來呆多年之後,一夜之間成為富翁。

如果確定要跳,請當成最後一次來跳,做好相關的評估工作

* 你要跳到哪個行業去,那個行業前景怎麼樣。

* 新的公司實力怎麼樣?團隊協作怎麼樣?能不能再幫我提高一個層次。

另外很多人跳槽還有一個原因是業余時間的問題:

覺得公司的安排讓自己沒有業余時間,也沒法學習新東西和進步。

我覺得這個也不應該變成一個跳槽該考慮的因素,中國的IT大環境就是這樣,你得學會以在工作中學習,如果一個東西你做的慢,那很大一部分可能的原因是你相關的基礎不扎實,或者沒做好相關的規劃,先停下來想好怎麼做,查看下相關的資料再開展,這也是一種學習,而且記憶更深刻。

最後不管你做出什麼選擇,都不要後悔,關注自身的發展,繼續前行 。

交際能力的問題

程序員經常會鑽牛角尖,把一個問題理解成非此即彼。這些都是缺少溝通造成的。你可能不需要學會圓滑但是至少要能流利表達自己的想法。

有些人去面試,經常不是因為能力問題,而是沒法表達出自己想的東西。對HR來說,你連基本的表達都有問題,他們怎麼會相信你。

轉行的問題

在一些年頭後,一些人因為一些原因想轉行。這是一個泛泛的問題,沒有標准答案 。你可能有多個選擇,繼續當前的路、產品經理 、管理者、架構師、甚至自己創業 等。但是不管怎麼樣,請根據自身的情況來判斷,還有不管轉做什麼,請提前做好准備。比如你要轉管理,先可能需要先加強你的交際能力; 自己創業,你可能需要了解項目,公司運營,吸引投資等。機會是給准備好的.人的,貿然進去只會死得很慘。

路越走越窄的問題

很多人做到最後,發現只有回老家 ,找個單位混著這條路,或者因為家庭,孩子等因素,感覺沒什麼選擇的空間。

造成這個的原因有多方面,有些可能是個人能力問題,也有些是個人環境因素 。但是有一個基礎的問題是相同的:交際圈不夠大,認識的同行的人不夠多。

我相信做程序這行的人還是很熱心的,大家能相互幫忙,關鍵是要對外展示你的才能、見解,多與人交流,多幫助別人寫博客會是個良好的開端。

長遠規劃的問題

要做出長遠的職業規劃,你需要了解各行業的相關動態,關注相關技術的發展動態與其他同行交流,參考或聽取其他人的建議這些是你做出規劃的基礎 。

衡量成功的標准問題

既然是做技術,成功當然是以你的技術能力為成功標准。比爾*蓋茨是一個成功的商人,不是技術員。所以在看到誰誰做生意發財時,要淡定 。不要以金錢來衡量自己的成功。

新技術的學習問題

雖然這些年新的技術,解決方案,構架,類庫等層出不窮,但是基礎的東西和最終要解決的問題其實是不怎麼變的,抓住這些不變的東西,你才能更好、更快地去理解和掌握這些新的東西還有興趣能為你打開IT業的大門,但是專注和持之以恆才能讓你出類拔萃,所以要堅持學習。


;

Ⅷ 如何程序員提高自己的邏輯思維

1、 學習一門腳本語言
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…<</p>
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了,學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁,網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試<</p>
在一台機器上配置Apache 或 Nginx
學習PHP,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程,不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。

閱讀全文

與如何和程序員思考相關的資料

熱點內容
推薦解壓好游戲 瀏覽:275
cpu伺服器過載怎麼辦 瀏覽:618
zip內存壓縮 瀏覽:311
阿里雲99元伺服器不可以退款 瀏覽:337
linux下安裝vnc 瀏覽:656
微信圖片加密編輯可見 瀏覽:704
江恩操盤術pdf 瀏覽:929
本機構所屬的伺服器是什麼意思 瀏覽:783
c編譯器有哪些段 瀏覽:862
qq原創表情在哪個文件夾 瀏覽:624
點點賺app現在怎麼不能用了 瀏覽:363
網紅阿里程序員事件 瀏覽:203
演算法設計心得體會 瀏覽:118
java修改ip 瀏覽:151
php不需要編譯嗎 瀏覽:136
特斯拉新車如何用app控制 瀏覽:187
文檔拖到文件夾就不見了 瀏覽:815
標致308壓縮比是多少 瀏覽:751
伺服器和備用伺服器地址 瀏覽:928
程序員加班跳槽 瀏覽:708