❶ 程序員遇到很難的技術問題是怎樣的感覺
昨天剛領一個線上P0級重大事故,持續時間1小時,影響范圍全站 !准確的時間點是下午17點開始,具體問題定位且聽我下文細細道來。
先說感覺,那感覺真是太刺激了,本來下午五點,昏昏沉沉的,瞬間一個激靈就清醒了(想像一下高中課堂,你在打瞌睡,突然老師走到你面前給你一下子的感覺),原本准備再過一小時吃晚飯了,吃完晚飯再摸魚到21點就可以下班了呀,別問我為啥到21點,問你就不是程序員!
帶著無比緊張且顫抖的心情開始定位問題,先來個錯誤日誌嘗嘗鮮:
1、下午五點開始有少量的慢sql報警,沒有人當回事,因為這種事情總發生,雖然大家都知道在實際開發中如何避免慢sql,但是整個團隊要想完全避免慢sql卻很難;
2、五點十分左右,開始零星有用戶反饋指定功能不可用,SLB開始報警,技術開始介入排查;
3、十五分左右,客服部門電話開始爆炸,用戶密集反饋指定功能不可用,技術部開始重視;
4、二十分左右,所有服務大面積出現介面無法響應,整體服務不可用;
5、我們一開始定位覺得是MySQL的問題,因為前面有mycat的慢SQL報警,後來定位並不是MySQL,因為MySQL的內存、連接數、流量這些指標都很平穩;
6、最終在五點三十分的時候我們定位到是ES出問題了,因為所有的Java服務不可用最終都指向上面的錯誤日誌,bbo提供的服務線程池滿了,再有請求進來直接拒絕了,查看這個服務的代碼,最終查詢的是ES,此時的ES進程已經處於假死狀態。
那接下來大家說怎麼辦?如何快速的恢復線上服務?
重啟!
是的,只有重啟大法此時是最快的解決辦法,你不可能說保留ES事故現場,讓我用arthas之類的工具來現場分析jvm內存情況。
然而重啟之後服務依舊是不可用,介面還是無法響應, 大家知道這個時候是什麼原因嗎?為什麼重啟了ES服務還是不行?
後續繼續重啟報錯bbo日誌的相應服務,當這些服務全部重啟完畢後,我們的服務終於恢復訪問了,這個過程持續了十幾分鍾,確切的說,直到17點五十多分,我們的所有服務才恢復了訪問。
接下來就是事故總結、相關責任人、產生問題的原因、接下來的優化方案,全公司郵件通報!
你說這個難不難?本身並不難,難的是事情緊急且重要,這個時候你慌了啊,亂手亂腳的,大家你一言我一語的,如何冷靜提取有效信息然後盡可能快的解決生產的重大故障才是最難的!
最後,當一切都恢復平靜的時候,你會發現:「卧槽,好累啊!」。
虛脫的感覺!
最後祝大家程序員節日快樂,今年可是程序員的本命年哦
2020 = 1024 + 996 = 404 + 404 + 404 + 404
這種感覺能難受,很壓抑。
技術難題,對於程序員來說,是經常有的事,關鍵是如何面對吧。
說下我的事情,雖然也會寫點代碼,但並不是以此為正業,所以對於真正的程序員來說,可能說法會有點偏頗。
遇到難題時,一般都在網上搜索解決方法,一般來說,都有很優秀的程序員分享他的勞動成果,所以一般都能解決問題。但也真正碰到難的問題,一個就是循環的問題,無限極菜單問題,當時都是找了很久,看了很多遍才明白過來,當時自己是幾天都不太開心,也不太想說話,總是在測試著程序。挺煩也挺不開心的。只是最後做出來了,心情就好多了。
這是我的一些經歷,當然,如果全職程序員,可能壓力就更大了。
如何形容這種感覺呢?焦躁,緊張,失落,無助,亞歷山大...
再多詞可能都描述不清楚。本人在工作中經常遇到難題,有些問題一兩個月都搞不定。遇到這種問題,估計只有下面這張圖的表情能描述此時此刻的心態了。
程序員遇到的難題其實分為兩種,一種是沒有辦法定位清除的問題,另外一種是定位清除了,但是沒辦法,或者很難解決的問題。
難定位的問題所謂難定位的問題,其實就是你根本不知道這個問題是什麼。比如系統突然掛掉了,你從現有的信息根本不能確定問題在哪。這個時候你剩下的可能只有滿腦子的問號了。
如果系統只掛了一次,後面不再出問題,那就很難找出問題的根源了。不過這樣也有好處,那就是問題的影響的程度相對較輕,畢竟不容易出現。所以在軟體開發中通常不是什麼問題都解決的,因為不是所有問題都能搞清楚是什麼問題,談何解決呢!
難解決的問題難解決的問題是問題搞清楚了,但是基於現有架構很難,或者沒法搞定。遇到這種情況,通常先是很高興,興奮,然後就只剩下無奈了。
當然,從技術層面來說並不是完全解決不掉。只是如果要解決需要涉及架構調整或者其它方面的改動,修改調整的內容太多。這種情況下就要考慮利弊得失了。
如果改動太大,可能會引入很多新的問題,可能得不償失。因此,遇到此類問題可能會採取一些規避方案。
當然,在開發和運營當中遇到各種問題是很正常的,關鍵是遇到不同的問題採用不同的策略。首先保證的是業務的正常運行,然後是考慮是否需要徹底解決。這樣慢慢調整,心理壓力會小一些。
作為一個工作多年的老碼農,在工作也遇到過一些艱難的技術問題,就以切身體會談談對這個問題的看法。
首先需要明確一下,問題是否困難除了取決於問題本身之外,還在於解決問題的人的水平,也許對你很難的問題,在別人看來不過是小菜一碟。明白了這一點,那麼這些技術問題也就成了考察程序員水平的試金石,有些人可能會因此氣餒,甚至放棄;而有些人則通過解決問題學到了很多新的技術,也讓自己進一步成長。
記得多年前看工作中要用到一款開源庫,那時候剛學完C++不久,自以為對面向對象了解甚深,然而學習這個庫時卻是一頭霧水,最後在經過泡論壇,然後又認真的學習了面向對象設計模式,後來不但能使用那個庫,更重要的是對面向對象編程有了更深的認識!
後來還有很多類似的事情,剛開始時感覺無比困難,但是通過自己的努力,或求助他人、或查閱資料,當最終問題解決時,你會發現自己又牛逼了一些,然後再遇到一些新的問題,如此循環……
其實編程也是一個學習的過程,就如同爬山一樣,每一階段都會有一些山頭,只有當你爬上山頭才能欣賞美麗的風景,但是當你爬上一座山頭的時候,就會發現更高山峰!只有當你爬上最高峰,才能「一覽眾山小」,可是到那時,你可能會嚮往地球之外的天地!
很難解決一般就是遇到某些瓶頸了,不同瓶頸的感覺是不一樣的,但無非可以歸結為下面幾類。
成本原因
不讓馬兒吃草,還想讓馬跑。這個是有些不太理解互聯網的一些領導的錯誤觀念,他們會給你安排一個老舊台式機,想要讓你承載幾萬、幾十萬並發的秒殺系統,你當然很難解決。
外界的評論可能是,「這幫程序員是吃干飯的么?這系統也太垃圾了!」
老闆的評論是,「我這台式機也不少錢呢。」
程序員的評論是,「這摳門老闆不會是個傻子吧。哎,再優化優化吧。」
當然,有些情況也是能夠理解的,公司明白需要更好的設備,但是由於成本控制,不得不在某些方面節省。但換句話說,設備成本是占不了一個大頭的,可能有其他方面的成本更加需要收緊。
如果是因為成本原因,我們的心情可能是無奈,又有些不能施展拳腳的束縛感。
歷史 原因
舉個例子,系統用了5年了,迭代了N個版本,在面對新的需求的時候,就會出現需求限制於系統的情況,常常會有程序員說,這個實現不了,那個不符合現在系統規則。其中很大一部分是這些年的積累,欠下的技術債造成的。俗話說,大船難調頭。
這種情況更多的出現在剛創業之後的幾年,由於一開始的快速迭代,追求先把業務流程跑通,先生存再規范,會讓一開始的軟體開發流程並不那麼規范,如果在1-2年內沒有進行重構,那麼積攢的3-5年的技術債就會慢慢把你壓得喘不過氣來。
解決這種情況,一是需要時機,給出足夠的空間和時間讓技術團隊重構,二是需要魄力,你得有成功的把握,不能幹著干著說不行了,咱們還是回到原來吧。
如果是因為 歷史 原因,我們的心情可能是期待和渴望,又有些對現狀的無奈。
能力原因
雖然說專家很厲害,但說白了,大部分企業需要的研發人員,還到不了需要專家的級別。所以,一般而言,沒有什麼技術是攻克不了的。如果真的遇上了,那就說明你的公司已經到達了一個新的層次,從而需要那個層次的人員來解決,可以通過外聘或者顧問的方式,引進新的技術。
如果是因為能力原因,我們的心情雖然有些力不從心,但又為公司在新的台階而高興。
不管怎樣,程序員是一群追求美好的人,不管是外部限制還是內部限制,不能解決的難題對於技術人員來說總是很憋屈的。
不能著急,慢慢分析,找到問題點,沒有解決不了的問題
程序員的技術問題,排除架構師技術選型錯誤以外,都是程序員的功夫不到家所致。
1,面向網路的程序員會第一時間問度娘,各大社區求助大神。
2,面向源碼的程序員會第一時間查看源碼實現,查找api文檔,思考解決方案。
3,不管技術如何發展,架構如何延伸,不變的是基本功,再先進的組件都是由基礎語法書寫出來的 。
練武不練功,到老一場空,共勉!
首先說下這個很難的技術定義,個人認為在你知道之外的知識都是很難的,一旦你深入了解其使用方式,原理,甚至閱讀了他的源碼,你會覺得有的時候會恍然大悟。程序員是一個不斷要學習的崗位,就要面臨很多從未知到已知技術的時候,每當遇到這樣的情況時候,總有種不解決了這個問題,睡不著覺的感覺,心裡不踏實,總是想盡各種辦法去解決這個問題。甚至可以一直追查這個問題。也許這就是一種執拗吧
我老公最近就遇到一個大石頭需要敲碎,我作為一個旁觀者,都挺心疼他。
他還在讀博,最近遇到的問題是他一個項目上的問題,也跟他的畢業設計相關。他剛讀博的時候確定了一個方向,去年開題的時候他覺得這個方向沒有什麼前景,真的是考慮了好久要不要換,如果不換,就是安穩的畢業,換的話接下來的一年多時間他會很艱難,很多新的問題需要一一克服,最後他決定換了,他說他讀博就是為了提高自己,還是想挑戰一下。
年前,系統板設計好了,然後最近做好回來了,開始調試,說這個板子跟個石頭一樣,不工作。本來就是禮拜一到禮拜六待在學校不回來,周日是休息的。現在放假回來都是在啃變壓器的東西,早上起的很早,晚上又很晚。真的挺心疼的,他還安慰我說,他又要進步了。挺擔心他的身體的,我特別希望時間能快點過去,能順利畢業。他卻不希望,總覺得時間過的太快,沒有時間搞研究。
今年的生日願望,希望他科研順利,身體 健康 。
以我的從業經歷,說說遇到很難的技術問題是什麼感覺吧: 興奮、充滿挑戰性 。尤其是在開發中遇到了技術難題,很多情況下真有種可遇不可求的感覺。
我認為能遇到技術難題,至少證明這個工作是有價值的。 這種價值體現了兩個方面,一是你的工作在整個產品開發中占據重要地位,甚至是核心地位。二是你的認知和經驗,仍然有成長的空間。如果你的工作一直沒有遇到難題,輕而易舉地就解決了一切,那麼很可能是你沒有機會深入重要的核心部分,或者你的工作性質可替代性很高,簡單重復性很高。
分解法。 把技術難題拆分,盡量的單元化、模塊化,這樣有利於逐步攻破,逐步解決。主要是降低技術難度,尋找真正的難點所在。如果問題無法拆分,就是那麼一個點,那麼需要逆向思維,可以先把問題擴大,看看涉及面有哪些,然後再縮小范圍,鎖定關鍵之處。
刨根法。 把技術難題抽象化,理論化,從根本的源頭去解決。很多技術問題,從基礎理論的角度去看,其實真的不難,只要你能定位到相關的技術點,困難點,知識點,就很容易進行快速解決。解決的終極辦法就是從理論上徹底解決,做到知行統一。
討論法。 三人行,必有我師。很多情況下,所謂的技術難題,在別人的眼中,也許並不是難題。很多情況下,小組討論,交換意見,方案互補,就可以解決難題。有些情況下,還需要和供應商一起討論,主要是補充信息的錯漏。經常出現的晶元問題,很多情況下供應商都更加有經驗。因為供應商有更多的使用客戶,有很多解決問題的經驗。最主要的是,晶元是他們設計的,他們更加清楚緣由。
沒有絕對的技術難題,有的只是尚未解決的技術難題。
❷ 瘋狂的程序員勵志語錄
程序員,他們想的是什麼?他們想的永遠都是技術,他們崇尚的也永遠都是技術。下面是我給大家整理的瘋狂的程序員勵志語錄,供大家參閱!
瘋狂的程序員勵志語錄(一)
1. IT人表示屁股上還得紋一個,要不中間來個helloworld!
2. 知道一點東西,並不能說明你會寫腳本,腳本是需要經驗積累的。
3. 學腳本並不難,JSP、ASP、PHP等等也不過如此--難的是長期堅持實踐和不遺餘力的博覽群書。
4. 保存好你做過的所有的源文件----那是你最好的積累之一。
5. 把學到的東西教給別人,無論是口口相授還是文以載道,你都會發現自己也能從這個過程中收獲良多。
6. 找到旁人寫的這樣一些代碼——它們實現了重要的功能,但寫得並不夠聰明。重寫它們,然後告訴自己永遠不要犯相同的錯誤。
7. 經理往往認為“程序員A=程序員B”,因為他們工作的年頭差不多。但實際上,他們的效率可能相差十倍甚至百倍。
8. 軟體開發的時間通常是這樣的:一開始的90%開發工作用掉了整個計劃90%的時間,剩下的10%同樣需要整個計劃90%的時間,而最終發布前的修改也是如此。
9. 設計軟體有兩種方法:一種是簡單到明顯沒有缺陷,另一種復雜到缺陷不那麼明顯。
10. 一門技術必須多用才能掌握,最好的辦法是在項目中運用。如果你在真實的項目中使用了某一項技術,那麼印象就會非常深刻。即使忘記,也能很快撿起來。
11. 不要看到別人的回復第一句話就說:給個代碼吧!你應該想想為什麼。當你自己想出來再參考別人的提示,你就知道自己和別人思路的差異。
12. A:你在哪自習?B:教南404。A:好的,我來了。B:……A:你怎麼還沒來?要這么久么?B:404notfound!
13. 真正的程序員喜歡兼賣爆米花,他們利用CPU散發出的熱量做爆米花,可以根據米花爆裂的速度聽出正在運行什麼程序。
14. 十年生死兩茫茫,寫程序,到天亮。千行代碼,Bug何處藏。縱使上線又怎樣,朝令改,夕斷腸。領導每天新想法,天天改,日日忙。相顧無言,惟有淚千行。每晚燈火闌珊處,夜難寐,又加班。
15. 老婆給當程序員的老公打電話:“下班順路買三個包子帶回來,如果看到賣西瓜的,買一個。”當晚,程序員老公手捧一個包子進了家門……老婆怒道:“你怎麼就買了一個包子?!”老公答曰:“因為看到了賣西瓜的。”
16. 程序員愛情觀:愛情就是死循環,一旦執行就陷進去了;愛上一個人,就是內存泄漏–你永遠釋放不了;真正愛上一個人的時候,那就是常量限定,永遠不會改變;女朋友就是私有變數,只有我這個類才能調用;情人就是指針用的時候一定要注意,要不然就帶來巨大的災難。
17. A:借我1000塊。B:拿去,1024,我給你湊了個整兒。
18. 程序員對測試人員說:"在我機器上沒問題啊!""我測試了一下,確實在我機器上沒問題啊"
19. 少壯不努力,老大寫程序。
20. 世界上只有兩句真理:1。人一定會死。2。程序一定有Bug。
瘋狂的程序員勵志語錄(二)
1、程序員可以讓步,卻不可以退縮,可以羞澀,卻不可以軟弱,總之,程序員必須是勇敢的。
2、調試完一個動態連接函數,固然值得興奮,但真正的成功遠還在無數個函數之後。
3、如果你喜歡底層開發,千萬不要勉強自己去搞VC,找到你最真實的想法,程序員最不能忍受的就是萬精油。
4、非優秀的程序員常常把空間和時間消耗殆盡,優秀的程序員則總是有足夠的空間和時間去完成編程任務,而且配合近乎完美。
5、程序員是值得尊敬的,程序員的雙手是魔術師的雙手,他們把枯燥無味的代碼變成了豐富多彩的軟體。
6、一個人靜靜坐在電腦面前寫代碼的感覺,那是什麼感覺?那是武林高手閉關修煉的感覺。
7、硬的怕橫的,橫的怕不要命的,瘋子都是不要命的,所以瘋子力量大,程序員只有一種,瘋狂的程序員。
8、“設計是一個發現問題、而不是發現解決方案的過程”
9、“功能說明書里不存在可操作性”
10、“過去的代碼都是未經測試的代碼”
11、“任何傻瓜都能寫出計算機可以理解的代碼。好的程序員能寫出人能讀懂的代碼”
12、“測試是來表明bug的存在而不是不存在”
13、“簡單不先於復雜,而是在復雜之後”
14、“Real developers ship”
15、“沒有絕世神功”
16、“過去的33年裡,我每天早上看著鏡子問自己:“今天是我生命的最後一天嗎?我是否要去做今天該做的事?”一天一天太多次是“不是”,我知道這需要改變…所有的事情——所有身外的期望,所有的驕傲,所有的對困難和失敗的恐懼——這些東西在死亡面前立刻消失的無影無蹤,只剩下真正重要的東西。想著自己即將死去,這是讓我避免落入擔心失去什麼的陷阱里的最好的方法。”
瘋狂的程序員勵志語錄(三)
1、作為一個真正的程序員,首先應該尊重編程,熱愛你所寫下的程序,他是你的夥伴,而不是工具。
2、程序員可以讓步,卻不可以退縮,可以羞澀,卻不可以軟弱,總之,程序員必須是勇敢的。
3、編程是一種單調的生活,因此程序員比普通人需要更多的關懷,更多的友情。
4、程序不是年輕的專利,但是,他屬於年輕。
5、沒有情調,不懂浪漫,也許這是程序員的一面,但擁有朴實無華的愛是他們的另一面。
6、一個好漢三個幫,程序員同樣如此。
7、一個100行的代碼調試都可能會讓程序員遇到很多挫折,所以,面對挫折,我們永遠不能低頭。
8、調試完一個動態連接函數,固然值得興奮,但真正的成功遠還在無數個函數之後。
9、程序是我的生命,但我相信愛她甚過愛我的生命。
10、信念和目標,必須永遠洋溢在程序員內心。
11、就算我們站在群山之顛,也別忘記雄鷹依舊能從我們頭頂飛過。驕傲是比用JAVA進行底層開發更可笑的東西。
12、這句話不是很文雅,徹底鄙視那些害怕別人超越自己而拒絕回答別人問題的程序員。
13、如果調試一個程序讓你很苦惱,千萬不要放棄,成功永遠在拐角之後,除非你走到拐角,否則你永遠不知道你離他多遠,所以,請記住,堅持不懈,直到成功。
14、最累的時候,家人是你最好的歸宿。
15、退一步海闊天空,這是一種應有的心境。
16、如果你喜歡底層開發,千萬不要勉強自己去搞VC,找到你最真實的想法,程序員最不能忍受的就是萬精油。
17、IF(BOOL 學習= =FALSE)BOOL 落後=TRUE;不斷的學習,我們才能不斷的前進。
18、你的一個程序有時正常有時不正常,而你已經完全遵循編程的規則,為什麼?事實上我認為相信只要遵循別人所說就能得到想當然的結果的人其實是個傻瓜。
19、編程中我們會遇到多少挫折?表放棄,沙漠盡頭必是綠洲。
20、非優秀的程序員常常把空間和時間消耗殆盡,優秀的程序員則總是有足夠的空間和時間去完成編程任務,而且配合近乎完美。
21、我們應該重視團隊的精神,一個人作用再大,也不過是一碗水中比較大的一粒水珠而已。
22、無私奉獻不是天方夜譚,有時候,我們也可以做到。
❸ 程序員喜歡你的9大表現是什麼
程序員愛上一個女生,相對來說他們在這方面會表現的雖然遲鈍一些,但你仔細觀察會發現一些細節上會有一定的不同。
程序員男生喜歡你的表現如下:
1、主動跟你聯系。
一個男人喜歡一個女生的時候,他會找任何的方法跟你去見面,因為男人不想閑聊,他喜歡的是見面在一起的感覺。所以喜歡你的男生會主動聯系你,會找借口約你出來。如果你有事,那他可能還會堅持說請你吃飯,或者去看電影什麼的。
2、他的眼睛會告訴你。
喜歡你的話,他一定會找辦法跟你對視,跟你有眼神接觸,如果不喜歡你的話,會避免跟你有眼神接觸。
3、主動問與你有關的事。
他對你好奇,如果他自己一直在吹牛。而且也不表明他喜歡你,這就說明他是一個自戀人。真的喜歡你的話,會對你的世界感興趣,所以他會適度真正的了解你,並且會時不時的會問很多問題。
4、他稍微會適度的接觸你。
可能就是跟聊天的的時候碰你的胳膊,或者過馬路的時候,他會試圖讓你摟著他的胳膊,或者你頭發上有東西他會主動去幫你拿掉,反正如果他喜歡你,他會試圖跟你有一種身體方面的接觸。
5、會把空餘時間留給你。
這個是非常重要的,因為有女生都會反映到一個問題,就是說他很忙,平時沒有時間跟我聊天,也很少跟我見面。
6、主動跟你聯系。
一個男人喜歡一個女生的時候,他會找任何的方法跟你去見面,因為男人不想閑聊,他喜歡的是見面在一起的感覺。
所以喜歡你的男生會主動聯系你,會找借口約你出來。如果你有事,那他可能還會堅持說請你吃飯,或者去看電影什麼的。他主動聯系你,因為想跟你見面,更是因為他喜歡你。
7、他的眼睛會告訴你。
喜歡你的話,他一定會找辦法跟你對視,跟你有眼神接觸,如果不喜歡你的話,會避免跟你有眼神接觸。這里我們指的是視覺動物。所以他看到一個喜歡的東西或者人就會忍不住地去看,比如說有一個跑車或者一個美女喜歡的話,但是他跟你聊天的時候會看你的眼睛。
8、當他開始跟你吹牛。
因為男人很理性,所以他會想通過說出來自己的條件來征服你,比如會說他在學習或者工作的成就,剛才在公司開會,然後開我的法拉里送朋友到機場。男生這種情況是非常容易見到的。
9、主動問與你有關的事。
他對你好奇,如果他自己一直在吹牛。而且也不表明他喜歡你,這就說明他是一個自戀人。真的喜歡你的話,會對你的世界感興趣,所以他會適度真正的了解你,並且會時不時的會問很多問題。
❹ 看看80萬程序員怎麼評論:前端程序員會不會失業
前端程序員不會失業。
前端後端怎麼分,簡單來說,你能看得到的,就是前端,你看不到的,就是後端。
前端在某種程度上,包括PC,手機,Pad,以及各種硬體設備,大屏/手錶等。
設備會變,編程語言也會變,但是前端程序員是不會消失的。
也許未來就是音頻視頻和VR的世界,也許做動畫可能更多。
他是會一直發展,並不會完全消失。
從某種程度上來說,之前的Flex程序員都餓死了么?
並沒有,大部分都轉成了JS,Android,IOS等。
一個程序員,本來要懂的就不應該只是一種語言。
就像一個寫手,他的價值並不只是在用哪種語言來寫作,而是在於他想要表達的是什麼,以及用什麼樣的方式表達出來。
❺ 脈脈、知乎評論區留言「m」是什麼意思是罵人的話嗎
如果你經常玩脈脈、知乎等這些人脈、知識社區會發現一個問題,評論區很多留言會只留一個“m”,小編一開始完全不知道m是什麼意思,以為M代表的是“沒”的意思,然後延伸出來是罵樓主”沒雞雞“或者延伸出”沒真相“之類的含義,後來經過仔細研究才知道m的真實含義!❻ 為什麼很多女生都想嫁給程序員
女生為什麼想嫁給程序員肯定是現在的程序員比較吃香,不然女生也不會,選擇他們了,畢竟現在的女生多麼的現實,多麼的識時務,所以可想而知了