0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一位IT工程師的經(jīng)歷分享

工程師人生 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:工程師吳畏 ? 2018-07-04 14:03 ? 次閱讀

多年前我在做技術(shù)支持。因?yàn)檫@些C/C++編譯成的二進(jìn)制文件出的問(wèn)題都很復(fù)雜, 所以當(dāng)年維護(hù)的時(shí)候特別艱難。你們年輕的一代可能并沒(méi)有意識(shí)到這些,不像在VMs中運(yùn)行的現(xiàn)代語(yǔ)言,這些庫(kù)可以完全訪問(wèn)原始的系統(tǒng)內(nèi)存,并且可以用與根本原因相距千里的恐怖的內(nèi)存段異常將整個(gè)服務(wù)器輕易地搞垮,幾乎不給你留下一絲線索。

由于這種復(fù)雜性,我們支持技術(shù)的一個(gè)常見(jiàn)活動(dòng)是集中批評(píng)代碼的缺點(diǎn),不波及代碼的開(kāi)發(fā)者。我當(dāng)然感受到過(guò)沮喪。我的意思是,真的很沮喪。

我花了一段時(shí)間明白了正是這些困難的問(wèn)題促使我學(xué)到了相當(dāng)難的東西。我曾經(jīng)深入的研究過(guò) Microsoft C++的運(yùn)行時(shí)的堆模型,搞明白了緩沖區(qū)越界是如何造成安全漏洞的。我想出多種方法通過(guò)使用調(diào)試器功能去復(fù)制悄悄進(jìn)行的多線程競(jìng)態(tài)條件,并且教自己程序習(xí)語(yǔ)以避免出現(xiàn)這些問(wèn)題。只是沒(méi)有其他的方法可以追捕到生產(chǎn)問(wèn)題。并且我在不就之后很擅長(zhǎng)這些。

既然我回顧了那個(gè)時(shí)候,我想做的只有感謝那些馬虎或者臨時(shí)失效為借口(或者諸如此類的事情)的開(kāi)發(fā)人員,他們給了我去學(xué)習(xí)所有問(wèn)題的機(jī)會(huì)。這是一次很好的經(jīng)歷。不過(guò)還有一個(gè)沒(méi)什么用的,當(dāng)我回顧作為軟件工程師的早年生活覺(jué)得后悔的一件事時(shí),我希望我能夠更樂(lè)在其中。

這是一次很好的經(jīng)歷。不過(guò)還有一個(gè)沒(méi)什么用的,當(dāng)我回顧作為軟件工程師的早年生活覺(jué)得后悔的一件事時(shí),我希望我能夠更樂(lè)在其中。

這也是我如今想知道的事情——我是否仍然漏掉了一些事情?是否有一個(gè)讓軟件工程師生活更好的法測(cè)(最好是一個(gè)算法)?

TDD 和 JUnit的創(chuàng)造者,做了一個(gè)叫做「輕松工作」的不同尋常的演講,在演講中他談?wù)摿俗约憾嗄陙?lái)作為軟件工程師的生活和他一路上學(xué)到的東西。我對(duì)這些很感興趣,因?yàn)槲矣X(jué)得我可能會(huì)為自己作為一個(gè)程序員對(duì)個(gè)人幸福的追求找到一些線索,并且我沒(méi)有失望。

很棒的引言。繼續(xù)讀下去!

什么是放松地工作,它和軟件工程師的生活有什么關(guān)系?

放松地工作就像函數(shù)程序設(shè)計(jì)里的monads :它很難定義,多方面的,無(wú)形的,卻是不可否認(rèn)的真實(shí)的。當(dāng)我們有“我在這可以的,我是誰(shuí),做我在做的事情”的想法時(shí),Beck說(shuō)?!坝刑嗍虑橐?,但是我不可能完成所有的事情”的想法可以免于擔(dān)心、痛苦和躁動(dòng)。這是對(duì)我們自己和同事的信任。平靜的基本意識(shí)是讓我們完全集中注意力在工作上并達(dá)到我們最大的潛能。

我突然想到?jīng)]有優(yōu)秀的管理能力是不能實(shí)現(xiàn)這些事情的。當(dāng)你有合理的截止日期、有用的資源和明確的目標(biāo)你會(huì)覺(jué)得放松。對(duì)此我很感激——Conductor已經(jīng)將它作用在一起。

但是放松地工作的最后是關(guān)于我們:程序員。這些年來(lái),我們養(yǎng)成了習(xí)慣——和我們的同事相互合作的方法,我們?cè)鯓诱J(rèn)識(shí)自己工作等等。有一些比起其他的更有益于放松地工作。例如,Beck呼吁我們保持信任:與我們的經(jīng)理和同事溝通切實(shí)的期望,有責(zé)任感——我們都會(huì)好的;

Beck談?wù)摰疆?dāng)他沒(méi)有得到交流計(jì)劃的延誤和其他問(wèn)題的提示時(shí)會(huì)產(chǎn)生焦慮,而他獲得安逸是當(dāng)他對(duì)于問(wèn)題更開(kāi)放時(shí)。從我個(gè)人經(jīng)驗(yàn)看來(lái),好的開(kāi)發(fā)者傾向于這種有預(yù)見(jiàn)性態(tài)度。

他們能夠傳達(dá)壞消息并且承認(rèn)錯(cuò)誤。這是成熟開(kāi)發(fā)者的標(biāo)志。說(shuō)的好,Kent!

好的開(kāi)發(fā)者應(yīng)該有這種即將到來(lái)的態(tài)度。他們能夠傳達(dá)壞消息并且承認(rèn)錯(cuò)誤。

放松地工作是快樂(lè)的

我們的Conductor有很多有趣的東西:舉幾個(gè)例子,這里有Nerf槍,Bieber-Buscemi(長(zhǎng)篇故事)和可以隨時(shí)取用的桶裝啤酒。這些東西確實(shí)讓Conductor成為工作中古怪有趣的地方。(而且這里真的很棒。)Beck還說(shuō),有比這些更深刻的東西——快樂(lè)。他指出,并不像有趣,是一種短暫感覺(jué),快樂(lè)是一種深層的感情——持久并且非常令人滿足。愉快的工作促成生產(chǎn)效率的提高,更好的形象,當(dāng)然還有快樂(lè)本身。

發(fā)現(xiàn)快樂(lè)是作為程序員旅程的一部分(除了享受快樂(lè),咄?。?。并且它會(huì)在你對(duì)它期待最小時(shí)發(fā)生。Kent Beck說(shuō)你可以和其他人有一個(gè)真正嚴(yán)肅的、充滿沖突的激烈的討論,并且從中得到快樂(lè),即使討論本身并不有趣。Seth, 我們的CEO,可以證明這件事——當(dāng)你加入Conductor,你會(huì)免費(fèi)獲贈(zèng)Fierce Conversations,并且你新的招聘計(jì)劃會(huì)鼓勵(lì)你去練習(xí)使用它們。

Kent Beck說(shuō)你可以和其他人有一個(gè)真正嚴(yán)肅的、充滿沖突的激烈的討論,并且從中得到快樂(lè),即使討論本身并不有趣。

一個(gè)發(fā)現(xiàn)快樂(lè)的很棒的方法是在一個(gè)你可以做自己的地方工作。我曾經(jīng)在一個(gè)公開(kāi)表示不喜歡敏捷方法的公司工作,這使我懊惱不已。當(dāng)時(shí)我的經(jīng)理明確指出不允許工程師和潛在用戶談話,試圖消除“分心”。所有我被允許做的事情只有根據(jù)說(shuō)明書完成特性,他說(shuō)。不能與任何工程外的人談話。這讓我很不開(kāi)心。

因此我們不能為用戶反饋得到任何的官方支持,但是我們圍繞這個(gè)找到很多方法。我們小組和一對(duì)售前和一個(gè)專業(yè)服務(wù)人員交了朋友。我們有頻繁的討論和即興演示。很多好主意出現(xiàn)。浪費(fèi)被消滅在萌芽狀態(tài),精益的風(fēng)格。和一小群未來(lái)的用戶一起工作,我們搭建一些我們知道他們會(huì)發(fā)現(xiàn)有用的東西。我們最后創(chuàng)造出來(lái)的東西看起來(lái)一點(diǎn)也不像最初的說(shuō)明書(充滿感激)。但是,當(dāng)知道我們有多少努力不被認(rèn)可,這仍然是一件苦憂參半的勝利。

最終我要另尋他處,于是我到了Conductor。這真是一個(gè)挑戰(zhàn)。我做的第一件事是上了公司贊助的TDD課程(竟然來(lái)自一個(gè)Kent Beck的前同事)。我有沒(méi)有提到是因?yàn)槲业那耙粋€(gè)工作對(duì)測(cè)試感到氣餒的?沒(méi)錯(cuò)——根據(jù)一些數(shù)學(xué)運(yùn)算,如果你做了較少的測(cè)試相同數(shù)目的鍵入能給你更多特征。讓我重復(fù)一下:我看見(jiàn)了管理人員積極地鼓勵(lì)開(kāi)發(fā)者寫測(cè)試!

但是我在Conductor這里,在XP刷新后,我發(fā)現(xiàn)Conductor是個(gè)你不僅允許并且被鼓勵(lì)去和客戶通話并和你的用戶變得熟悉的地方。這是一個(gè)地方我們經(jīng)常重做并且演示我們工作的地方。我們理所當(dāng)然地得到定期反饋。這里充滿活力,使人振作,讓人精力充沛?,F(xiàn)在這是一個(gè)令人愉快的形勢(shì)變化。工作場(chǎng)所的選擇有很大影響。

這里充滿活力,使人振作,讓人精力充沛。現(xiàn)在這是一個(gè)令人愉快的形勢(shì)變化。工作場(chǎng)所的選擇有很大影響。

放松地工作是隨和的

我提到了在早期當(dāng)我還是一個(gè)支持工程師時(shí)頗受開(kāi)發(fā)者的阻撓。你可以責(zé)備我嗎?當(dāng)他們舒服地坐在他們的椅子上寫代碼的時(shí)候,我查找并修復(fù)他們的漏洞到深夜。他們把東西弄亂而我是那個(gè)走進(jìn)并清理混亂的英雄。戲劇性的。我無(wú)數(shù)次拯救了世界。我認(rèn)為。

Kent Beck記得在他年輕時(shí)有相似的看法。他的建議是避免浪費(fèi)精力在無(wú)根據(jù)的裝腔作勢(shì)。你覺(jué)得編程讓你像一個(gè)英雄和編程讓你有一個(gè)程序是完全不同的,Beck建議。與其把時(shí)間浪費(fèi)在這種滑稽事情上,我們可以做更酷的事情:比如執(zhí)行代碼重構(gòu),寫博客帖子和實(shí)現(xiàn)新的好工具。讓時(shí)間輕松且愉快。“我們喝咖啡吧”Beck建議。有的人把這個(gè)標(biāo)語(yǔ)放在保險(xiǎn)桿貼紙上。

你覺(jué)得編程讓你像一個(gè)英雄和編程讓你有一個(gè)程序是完全不同的,Beck建議。

撿起眾所周知的罐子

“如果你在沙漠里并且看見(jiàn)一個(gè)小罐頭在地上將會(huì)怎么樣?”——beck說(shuō),當(dāng)我們遇到其他人以我們不認(rèn)同的方式工作時(shí)會(huì)回想起這些例子。我們可能會(huì)說(shuō),或許處于失意,或許純粹出于習(xí)慣,“誰(shuí)對(duì)自然這么不尊重把小罐子扔在這……(含糊地嘟囔)”我又有年輕時(shí)我自己做技術(shù)支持時(shí)的畫面。多年來(lái)我見(jiàn)過(guò)了很多眾所周知的小罐子在源代碼中,在那時(shí)我真的是一個(gè)環(huán)保主義者。我沒(méi)有意識(shí)到的是我身上的負(fù)面影響。

由于知道我們想讓事情變得更好,Beck說(shuō)這是我們不伴隨“戲劇性”地?fù)炱鸸拮拥娜说耐昝赖刈匀坏谋磉_(dá)。我們傾向于評(píng)價(jià)別人的工作,他主張,要平等地評(píng)價(jià)我們自己。對(duì)其他人更寬容,相比之下,將會(huì)引導(dǎo)我們變得更能自我寬容,反過(guò)來(lái)開(kāi)啟我們接受更多有挑戰(zhàn)性工作的能力。

對(duì)其他人的不足之處抱有同情心讓我們有更大可能從自己的失敗中學(xué)習(xí),幫助我們成為更好的程序員。下一次在代碼中遇到鐵罐時(shí),“把它撿起來(lái)”,Beck說(shuō)。不要緊。就像這樣。

我們傾向于評(píng)價(jià)別人的工作,他主張,要平等地評(píng)價(jià)我們自己。對(duì)其他人更寬容,相比之下,將會(huì)引導(dǎo)我們變得更能自我寬容,反過(guò)來(lái)開(kāi)啟我們接受更多有挑戰(zhàn)性工作的能力。

在工作上更放松

過(guò)了很長(zhǎng)一段時(shí)間我才認(rèn)識(shí)到作為支持工程師對(duì)我的事業(yè)如何有益,因此我對(duì)Kent Beck放松地工作中的東西很熟悉。我也發(fā)現(xiàn)這個(gè)演講很激勵(lì)人心。

首要的是,可以肯定的是另一個(gè)程序員(我長(zhǎng)時(shí)間的行為榜樣)在他生活中作為軟件工程師有過(guò)類似的經(jīng)歷并且得到類似的結(jié)論。第二,從陷于大部分的機(jī)器和他們沒(méi)感情的語(yǔ)言的忙碌高壓的工作中休息一下是很好的,然后停下片刻去探索人文科學(xué),即使對(duì)我們大部分是內(nèi)向且靦腆的極客,這也是一個(gè)禮物。讀完所有Kent Beck的科技書以后,我為涉及到他是人類并且有人類的想法方面感到開(kāi)心。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1571

    瀏覽量

    68574
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    953

    瀏覽量

    29825
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    笑死,掌握眼識(shí)別資深硬件工程師的訣竅了!# #電路知識(shí) #電工 #硬核拆解

    硬件工程師
    MDD辰達(dá)半導(dǎo)體
    發(fā)布于 :2024年12月20日 17:48:17

    尋求專業(yè)工程師幫助設(shè)計(jì)USB多口充電器

    嗨, 我正在開(kāi)發(fā)款USB多口充電器,現(xiàn)尋求一位專業(yè)工程師或產(chǎn)品設(shè)計(jì)的幫助。希望能夠與有經(jīng)驗(yàn)的工程師合作,共同完成產(chǎn)品設(shè)計(jì)。以下是我們的需
    發(fā)表于 08-05 12:03

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    嵌入式軟件工程師如何提升自己?

    ,可以為自己的職業(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ),并實(shí)現(xiàn)個(gè)人的職業(yè)目標(biāo)。愿每一位嵌入式軟件工程師都能在這個(gè)充滿挑戰(zhàn)和機(jī)遇的領(lǐng)域中取得成功!
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開(kāi)發(fā)領(lǐng)域中的種專業(yè)工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見(jiàn)面試題#電子工程師 #硬件工程師 #電路知識(shí) #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    為何國(guó)外工程師偏愛(ài)使用for(;;)來(lái)實(shí)現(xiàn)MCU死循環(huán)?

    一位工程師發(fā)現(xiàn),國(guó)外工程師在給demo在做死循環(huán)時(shí)用的是for(;;),而不是常用的while(1)。這僅僅是個(gè)人習(xí)慣的問(wèn)題,還是有更深層次的含義?
    發(fā)表于 04-01 11:26 ?686次閱讀
    為何國(guó)外<b class='flag-5'>工程師</b>偏愛(ài)使用for(;;)來(lái)實(shí)現(xiàn)MCU死循環(huán)?

    一位硬件工程師的歷練之路:從入門學(xué)習(xí)理論到... #搞笑 #硬件工程師 #電子工程師 #揚(yáng)興科技

    硬件工程師揚(yáng)興科技
    揚(yáng)興科技
    發(fā)布于 :2024年03月13日 17:50:21

    如何搞崩個(gè)硬件工程師心態(tài)?試試對(duì)ta說(shuō)這幾句

    硬件工程師
    揚(yáng)興科技
    發(fā)布于 :2024年02月20日 18:05:49