美女程式設計師觀點:程式設計師最重要的非程式設計技巧

banq發表於2018-10-24

這是來自一位美女程式設計師Ali Spittel的觀點,至少可以看看美女喜歡和怎樣的男程式猿打交道:
當我想與我希望的程式設計師合作時,我更多地考慮非技術技能,而不是技術技能,是什麼非技術技能使得某人成為一名優秀的同事的。實際上,本文中的所有技能都有助於促進程式碼優秀化。大多數對程式設計之外的職業也非常有幫助,但我將專注於為什麼它們對程式設計師特別有用。

同理心
要打造一款出色的產品,你必須把自己放在使用者的腳下(從使用者角度思考)。設想他們將如何使用你的產品?哪些功能對他們有幫助?您的計劃如何幫助他們或改善他們的生活?如果- 相反 - 你的產品是如何傷害他們或對他們的生活產生負面影響?您的追求的道德含義是什麼?
同理心對於您的許多程式至關重要 - 如果產品不安全,那麼使用者資訊可能被第三方使用。如果無法訪問它們,那麼將限制使用人數。如果它們執行緩慢或需要大量頻寬來執行,那麼使用者將離開,並且具有較慢網際網路或移動使用者的區域中的人將無法執行它們。似乎每天都有一篇文章公佈了自己公司已經實施的一些有害演算法,比如YouTube演算法激進alt-right亞馬遜建立性別歧視招聘演算法(他們最終沒有使用),或AI誤導黑人女性。請在編寫程式碼時想想每個人!
此外,同理心有助於成為團隊成員和導師。把自己放在經理或其他開發人員的角度。他們為什麼要做出決定?你能做些什麼來幫助他們?擁有同理心肯定會提高你成為有效隊友的能力。如果您是僱主,您可以保留您的員工更長時間,如果您表現出同理心,他們將是更有效的工作者。
對其他程式設計師有耐心,特別是那些正在學習新事物的程式設計師。提醒自己一些真正難以學習的東西以及感受到的東西。他們可能感覺相似。對他們粗魯會減少他們的進步,或迂腐只會是有害的,並使他們更難應付這個學習過程。
你的言行都會有真正的後果 - 你可以用它來制定積極的變化或傷害某人。不只是面對面的溝通- 線上溝通也很重要。你可能認為自己很有趣或只是放鬆一下,但實際上你可能會對某人的生活造成非常不利的影響。由你來決定如何採取行動,以及如果你傷害某人就要透過道歉消除某些傷害。

解決問題
當我教人們編寫程式碼時,我發現有很多人在解決問題時比程式碼本身更難。能夠將問題分解為較小的問題然後解決,所有這些較小的問題需要大量的練習。善於解決問題可以幫助你成為一個更強大的程式設計師。
此外,對於大多數問題會有多個解決方案。我們作為軟體開發人員的大部分工作是思考這些不同的解決方案並選擇最好的解決方案。實施起來更快嗎?或者它執行效率更高?還是會更便宜?所有這些都是重要的問題(演算法或模式是兩個角度思考方向),選擇正確的解決方案是軟體開發中具有挑戰性但重要的部分。

合作
你作為程式設計師與其他人合作的機會非常高。即使您是自由職業者或企業家,您也必須與其他開發人員,業務人員,經理,開源貢獻者,利益相關者以及無數其他人合作。學習如何與不同的人和他們的個性很好地合作是至關重要的。
有很多東西可以促進良好的合作。首先是要知道一個人不能做所有事情,或者至少做好一件事。不同的人擁有不同的技能,觀點和生活經驗,這些經驗在組合起來比單獨的更強大。不要覺得你總是需要“把團隊利益放在你的心上”,或者成為每個人的一切。如果你允許其他人也做出貢獻,你可以做得更好。
向其他人尋求幫助,並願意幫助別人。你不需要成為一切的專家,不同的人將成為不同領域的專家。依靠其他人,如果你遇到困難,請務必尋求幫助,這樣你就不會長時間陷入困境。有人請你幫忙時,願意幫助他們。透過很好地解釋,您可以學到很多東西,並且您將能夠加強您對該主題的瞭解。如果您處於管理職位,請確保為人們提供指導和有效協作的時間!
同樣,不要與人交談時立即駁回他們的觀點。如果他們的意見沒有被重視或考慮在內,他們將來可能不太可能做出貢獻。當人們分享他們的想法時積極傾聽 - 而不是考慮你自己的回答或為什麼你自己的想法在這次會談時更好,試著想一想為什麼他們的方法也很好或者如何實施。
然後,一旦你實施了他們很棒的想法,就要對這些想法給予讚揚。這樣才不會讓員工的效率變得低效,因為我的團隊中我的想法被我的團隊中的其他人超越了,或價值不足和不值得采用。

溝通
當您與其他人合作時,無論這些人是同事,客戶,使用您的專案的人員,經理還是您管理的人員,良好的溝通都至關重要。提供有關事情進展的正確最新資訊,目前專案所處的位置,以及您對事情的誠實和善意的看法。如果你粗魯或沒有建設性,人們將不太願意接受反饋。但是,如果你不誠實或用謊言掩蓋真相,那麼你可能看不到積極的變化。這裡肯定有一個很好的路線。
我生命中的一個現實生活中的例子:我有一個人讀過我的一篇博文,寫了一封很長的信,講的是因為我的語氣,我聽起來有多愚蠢。我通常會使用很多驚歎號,並試著在我的帖子中發出令人興奮的聲音 - 這是在釋出一個可能令人生畏或無聊更有趣的主題時的非常有意的嘗試。這個人在這封電子郵件中從性別歧視角度說了一些非常有害的事情。話雖這麼說,我可能可以縮小感嘆號的使用,也可仍然讓人們對程式設計感到興奮。如果這個人更具建設性地進行批評,那麼我會更容易接受這一點。
如果事情進展不順利,請務必這樣:要誠實地說需要推遲截止日期,或者工作中的某些事情不順利。如果你說出來,你將有更好的機會改變它併為自己創造更好的環境。

包容性
我曾經在夏令營擔任攀巖教練和輔導員,我和大多數人一起工作的年齡組是中學女生。他們是我曾經和我一起工作過的最喜歡的人,但是,據說,中學生通常不是最接受差異的人,也不是那種集體不團結的人。我們曾經在一個大圈子裡開始遊戲,然後一個顧問告訴這個圈子的人們他們“不在圈子裡”,他們將不得不根據他們沒有被告知的一些特徵離開遊戲。並且無法控制。仍然在圈內的人會玩遊戲,圈外的人被排除在外,只需從遠處觀看。
這項活動非常有效地向這些女孩展示了由於你無法控制的原因被遺棄的感覺,我仍然在回想它。作為成年人,我們仍然將人們排除在外,並根據他們無法控制的某些特徵將他們排除在外,但如果我們讓他們回到圈子並讓他們做出貢獻,那麼我們的產品會吸收更多樣化的體驗並且更好。有很多關於更多不同團隊表現更好的研究,但從個人的角度來看,想一想被遺棄在圈子裡並試圖讓你的圈子更大而不是更小的感覺。很可能,你的很多使用者可能是傳統上被排除在技術圈子之外的人。我可以從我自己的經驗告訴你,作為一個團隊中唯一一個與另一個女人在一起的團隊,在我的程式設計生涯中約佔5%的人,真的很難成為像你這樣的人。
這也與同理心聯絡在一起 - 確保您為各種各樣的使用者製作程式。不只是健全的人或具有尖端網際網路或技術的人。您將能夠吸引更多人。

耐心
在程式設計時,你需要耐心等待的第一個人就是你自己。程式設計很難,有時你會遇到錯誤或難以克服的問題。如果它總是很容易,那麼你就不會挑戰自己,而且你並沒有成長為程式設計師。有韌性繼續解決問題而不是在困難時放棄。但是,也知道你可以休息一下,然後在一段時間內回到這個問題。也許休息可以幫助您更有效地解決問題,或者在您回到它時以不同的方式看待問題。
另外,請耐心等待其他人。事情可能需要一段時間才能學習,人們並不完美。犯錯誤和失敗可能是學習過程中最重要的一些經歷,所以要考慮到這一點,而不是創造一個風險或正變為不安全的環境。瞭解不同的東西可以更輕鬆地為不同的人點選,並且知道學習可能需要一段時間。

創造力
作為一名程式設計師,我最喜歡的是我可以利用自己的創造力來構建其他人可以從中受益的東西。你可以在盒子外面思考,創造出非常酷的東西。
擁有創意對於提出新功能,介面和應用程式非常重要。有人因為創意介面而購買我為公司建造的產品的許可證,而且我的投資組合網站因其創造力而備受關注。
除此之外,許多問題需要創造力來解決。幾乎每個程式設計問題都有不止一個解決方案,並且提出解決這些問題的創新方法通常可以帶來最佳化的解決方案。

謙遜
你可以從其他程式設計師那裡學到很多東西 - 一個人在程式碼世界中無法知道一切或接近它的任何東西。接受建設性的批評而不是防禦性的批評。您可以從反饋中改進程式碼與自己,否則陷入困境就不會從中得到成長。你並不總是對的,你應該接受別人的想法。

信心度
另一方面,也要有信心。我承認這對我來說可能是最困難的一個,在我職業生涯中每次表現評估都是我的第一件事。我可以(也可能會)單獨撰寫關於這個主題的完整部落格文章,但相信自己並對自己的能力充滿信心是非常重要的。
首先,請相信您可以參與專案。當你被分配困難時,不要把自己放在更容易的專案上或懷疑自己。嘗試儘可能多地解決它,然後尋求幫助來解決最困難的部分。
此外,不要覺得有必要研究一切作為第一手段。在谷歌搜尋答案之前,請相信自己嘗試一些事情。或谷歌部分問題而不是整個事情。透過在開發過程中嘗試一些事情並檢視它們是否有效,如果您無所畏懼。您可能會對您知道這麼多感到驚訝。
我做的另一件事是跟蹤我的勝利。我的計算機上有一個檔案,裡面有我做過的很酷的東西,以及人們對我說的非常好的事情。當我度過艱難的一天或懷疑自己的時候,我會回到它並且通常對我正在做的事情感到更自信。(獎勵自己的多巴胺)

適應性
程式設計仍然是一個新世界,它正在以超快的速度發展。能夠在事情發生變化時適應變得至關重要。當一個新的框架,庫包或語言接管時,重要的是能夠學習它(理所當然)。如果我們仍然在Fortran中編寫程式碼,我們的行業將會有很大的不同; 當事情發生變化時,我們需要能夠進化和適應。
此外,專案的目標職位和功能通常會發生變化,尤其是客戶工作時。當發生這種情況時,我們必須調整併合並這些請求(再次,在合理範圍內)。

參與社群
社群對於程式設計非常重要 - 會議,部落格文章,社交媒體和聚會對於學習和成長非常重要。此外,開源軟體及其周圍的社群是該行業的命脈。能夠與人們建立聯絡並建立聯絡對於教育,關聯您的經歷和尋找新的機會非常重要。
即使你是一個內向或不喜歡親自社交的人,也有很多令人敬畏的線上社群,你可以從中學到很多東西。而且,即使在公司內部,擁有一支有強大紐帶的團隊也會幫助人們更好地共同工作。

結論
這些技能通常被稱為“軟技能”,但我覺得這是簡化的。這些技能對於編寫程式碼和成為一名優秀的同事非常有幫助。它們比了解特定的語言,庫包或框架要重要得多,甚至遠遠超出了技術。
所有這些技能對於作為程式設計師和人員來說非常重要。話雖如此 - 沒有人是完美的,每個人都有成長的空間。所以繼續成長,並嘗試採取小步驟,以更好地利用這些非程式設計技能,我也會這樣做!

相關文章