Ⅰ 程序員工作壓力大,身體也垮,可是為什麼還有那麼多人想做程序員呢
程序員的工作其實壓力非常大,經常都會有程序員因為壓力過大而患上抑鬱症,更有一些程序員因為長期高強度工作而導致猝死,但是每年還是很多人想要做程序員,在一些大公司,比如騰訊之類的大型公司,程序員的競爭也是非常激烈。壓力這么大,身體也很容易垮,但是為什麼還是有這么多人想做程序員呢?我覺得有幾個方面的原因。
第三,程序員的工作每天都是和機器打交道,很多時候不需要和太多的人溝通,這樣的工作對於比較內向或者不喜歡應酬的人來說還是非常不錯的。有一些人有社交恐懼症,而程序員的工作多數時候都是當碼農,所以他們在做這個工作的時候不需要和太多的人有牽扯覺得比較安心。
其實只要想把自己的生活過好,沒有一個人的工作是不辛苦的,只是在辛苦的同時能夠得到自己想要的東西我覺得就夠了。不過程序員的工作壓力大,所以日常生活當中也應該給自己找到合適的鍛煉身體的時間,找到適合自己發泄的途徑,這樣身體才能正常運行。
Ⅱ 我在編寫C語言代碼的時候,有時候代碼會有一些邏輯上的錯誤,就是代碼可以運行,但得不到正確的結果.
新手最郁悶的事情莫過於程序可以運行但是卻得不到自己的結果了吧。
老手最郁悶的事情莫過於新手問為什麼我的程序可以運行但是卻得不到自己的結果了吧。
比如:
你天天用操作系統。
如果你用過Windows98就應該知道那時候系統經常崩潰的。
但是微軟設計的時候,不會把它故意設計成每小時或者沒幾天崩潰幾次吧。
不崩潰的時候,程序不也是正常運行么。
為什麼得不到自己想要的結果:
那是因為你的程序根本就沒有寫對
比如:
老師讓你輸出:1
你寫個程序輸出:2
你的代碼當然編譯不會出錯。
而且可以很好的運行,但是結果就是2.
永遠都不會是1,因為你就讓他輸出的2,結果怎麼會是1呢。
開發人員都知道:
再也沒有比修改語法錯誤再簡單的了
直接看看編譯器報的錯,看看第幾行,修改。OK。。太簡單了
邏輯錯誤就得調試了
這個世界上只有調試不開發的。沒有開發不調試的。
不會debug。永遠都不是程序員。
你不可能一下子就得到自己想要的結果。
尤其是比較大的程序。
gdb..學習它,使用它,愛上它。
(gdb *nix平台的。如果,而且我猜你用的是Windows,Windows用vs不錯)
Ⅲ 為什麼程序員電腦的文本文檔可以編程而我的不行
應該說說來不管是什麼樣的文文檔都是可編程的?只不過是它的後綴名不一樣而已的他是安裝了不同的文件程序,所以說它的後綴名是可以更改的,是可以執行運行的,所以說如果你安裝了,那種需要。比如說vc這種的它是直接可運行的。
Ⅳ 為什麼程序員會有代碼能跑就不要動的觀點
原因如下:
任意一段代碼,從修改到發布,再到投產。中間勢必經過多次測試和驗證,要想做到萬無一失,每次改動的回歸測試必不可少。有自動化測試還好,純手工的話,測試罵娘的心都有了。
再者,生產環境與開發環境或多或少有差異。沒有十足把握,不要輕易改動,不然改一個問題,帶出其他問題的情況很正常。正常運行,業務可正常開展。看似簡單的問題,被改出更多問題,影響業務開展,責任重大。
簡介:
程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚。
Ⅳ 程序員到底是干什麼的
程序員是從事程序開發、程序維護的專業人員,一般常說的程序員就是前端開發工程師或後端開發工程師。
其中Web前端開發主要是針對互聯網應用系統Web前端產品的設計和開發,實現html/css,Javascript,以及JSP頁面的輸出;配合開發人員進行代碼的調試、bug修復、瀏覽器兼容性調優;實現網站頁面特效、JS效果;對網站的頁面進行優化。
前端開發的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,並配合後端做網頁的數據顯示和交互等可視方面的工作內容。
而後端開發工程師的日常工作為寫注釋文檔、和產品對接需求、設計方案、開發、修bug等等。其中開發和修bug是工作中最常乾的,所以程序員們也經常調侃自己就是碼代碼的。
程序員崗位職責
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
Ⅵ 為什麼程序員都偏愛Linux系統
1、強大的命令行
命令行有很多功能,如快速、自動化管理系統及處理業務,這消除了開發者對滑鼠或者觸控板的需求,使開發者能夠直接通過鍵盤輸入指令來管理系統。自動化管理系統及處理業務可以讓開發者專注於手頭更重要的任務從而節省下大量時間。作為Linux的核心組件之一,盡管Linux命令行並不完美但始終保持了終端的純度。
2、Linux非常安全
由於Linux是開源的由大型開發者社區開發和維護,所以安全漏洞被發現和修復的幾率更高。
3、對開發者非常友好
與Windows相比Linux在很大程度上對用戶更友好更容易被接受。如Linux有為開發者專門提供的工具,所以它在開發者中非常受歡迎。在Linux中,開發者能夠擁有編譯器、命令行編輯器、幾乎可以調整任何內容的能力、以及自己設置快捷方式的能力,並且這一切開箱即用。
4、定期更新
由於Linux是開源的隨著人們發現漏洞、安全緩存和錯誤腳本,開發者會定期得到大量的更新,這就是Linux用戶的主要優勢之一。
5、社區支持
Linux社區致力於服務所有的Linux用戶,因此它將提供長期的支持。Windows社區卻與Linux不同,Windows社區卻與Linux不同,Windows社區之前停止為Windows7用戶提供支持,因此如果開發者在Windows7中遇到任何問題或數據泄露的麻煩都將無法聯繫到幫助中心。但當Linux用戶遇到麻煩時,可以在許多地方尋求幫助,比如:Twitter、Linkedln、Forums或重要的Stack
Overflow。
6、功耗更低
Linux所消耗的計算機資源量非常少。如果你有一台規格較低而不能工作的老舊電腦,那麼在這台設備上安裝Linux,它就可以恢復運作且運作得很好。眾所周知使用Windows系統需要更強大的硬體。然而隨著操作系統的發展支持硬體的舊電腦可能會過時,因為它將不再支持舊硬體。
7、隱私性強
Linux不會收集與任何人分享用戶的信息。用戶甚至可以關閉收集數據的開發建議,如果打開,也只會提供給Linux的開發團隊。
8、完全免費使用
Linux已經發展成為世界上最可靠的計算機生態系統之一。當你把這種可靠性與免費使用的事實結合起來,你就擁有了理想的桌面平台。如果你想使用Windows,那你要麼去購買它,要麼使用破解版本,但Linux卻不需要你這么做。
Ⅶ 為什麼老程序員的效率如此高
程序員老師傅的解決問題能力要比初級甚至是普通的程序員都要高出很多倍,所以每個軟體公司都會在保留1,2個經驗豐富的資深級軟體工程師,這樣在遇到項目或者產品難點的時候能夠力挽狂瀾,這種水準的程序員也是很多公司追求的對象,而且和年齡沒有太直接的關系,編程最終的就是給出解決問題的方案,從解決問題的角度出發解決方案還是非常多,但是在不同的人會給出不同的解決方案,但是有經驗的程序員在解決問題的時候就會思考的比較多,不容易導致引入新的問題。
編程能力最直接的表現不是寫代碼的能力,因為隨著時間的推移時間積累夠了代碼能力自然就上去了,很多程序員在工作多年之後雖然代碼能力得到極大的提升,但是還是不具備獨立的框架或者功能復雜的模塊設計能力,所以很多人在工作多年之後工資一直不能得到上漲,這是主要原因編程的關鍵還是思路問題,關鍵點還是在於有正確的解決問題的思路,思路的切實性是需要經過項目實戰的積累。
所以優秀的程序員一定是身經百戰的經歷過項目的洗禮,只有經歷過項目才能真正意義上懂得編程是怎麼回事,而且每次經歷的項目都能夠獲取足夠多的營養出來,越是優秀的程序員經歷過項目之後知識體系構建越是完善,越是老程序員越是覺得程序深奧之初,所以老程序員輕易不動手都會思前想後把事情搞明白之後才去真正動手,所以講老程序員真正動手寫代碼的時間還是非常短,大部分的時間都是在構思其可行性,真正動手的時間會非常短所以大家看到老程序員大部分的時間都是在看代碼或者看一些資料,甚至有些人很少看到老程序員在大塊的時間寫代碼。
越是老程序員對於編程語法看的越是淡薄,編程語言到了一定層面就是工具般的存在,就是為了編程思想服務,如果還在為了編程功能實現代碼而煩惱證明了還在初級的學習階段,度過了這個階段之後就要考慮如何駕馭架構以及如何錘煉自己的編程思想了,編程的學習過程是需要循序漸進的不要覺得距離自己老程序員有非常遙遠的距離,從開始入行就要慢慢去積累不斷打磨自己的思想,希望能幫到你。
25年老程序員,20年CTO,來解答一下:
1、經驗、教訓使然,所謂虧吃多了,也就不吃虧了。
2、長久工作,養成了一定良好的習慣。
3、代碼量到一定程度,自然而然會更熟練。
4、一些非技術的經驗知識,還是需要時間來積累。
5、老程序員的思維經過多年的訓練,更有利於直達本質。
6、他們的方案可行性更高,這樣減少返工。
7、代碼質量高,測試通過率高,考慮的因素更周全。
8、代碼改起來更容易,找問題也相對容易。
9、對任務的理解更全面,能夠從更多的角度去設計程序,權衡效率、速度、性能、擴展性等各方面的因素。
10、也不是所有的老程序員都能這樣,這個還是跟這人的學習能力有關系,所以大家是能3年變成老程序員,還是10年,就看自己的個人努力了。
在IT編程開發的過程中,老程序員開發的效率會非常高。比如:一個網站模板,新程序員可能要花上一個星期的時間才可以完成,而老程序員卻可能只需要1-2天就可以做好。這是為什麼?莫非他們天生就有神相助。非也,這所以會這樣,據我分析,主要有以下幾點。
因為長期的編寫代碼,所以,會碰到非常多的問題,然後就會去解決這些問題,這就讓老程序員有了豐富的實戰經驗。反觀新程序員,碰到一個問題,因為以前沒碰到過,所以要花大量時間去解決。而老程序員碰到問題,因為以前解決過,所以,很快就會弄好。
在IT編程中,很多的代碼都是可以用來搬運的。因為長期的工作,老程序員會把一些功能代碼記錄或儲存下來,以備後期使用。也就是說,他們就像記筆記一樣,把一些功能代碼記下來,以備不時之需。所以,在新的編程中需要用到時,他們就可以直接拿來就用,自然效率就高,開發就快。
老程序員在編寫代碼時,一般都會對代碼的規范和格式比較重視,使用代碼清晰有條理,閱讀代碼時就不費力氣,而且還會做好每個功能代碼的注釋。這樣,不管是對現有開發,還是對後期維護,都是非常有利的。如有代碼出現bug,可以很容易地找到,這同樣節省了大量的時間。
老程序員在編寫代碼時,會先從大處著手,把大的框架給弄好,然後,再對整個編程的細節有針對性地編寫。這就好比開發一個高樓大廈,開發商會先把主體框架搭建好,然後,再一層一層地去弄每一層樓的細節。這樣,往往目標會更加清晰,只要按步就班地執行計劃,就可以很快完工。
熟能生巧
為什麼老程序員的效率如此高?
首先, 敲代碼的效率 != 工作效率
並不是老程序員效率就高,而是程序員要提高效率需要一些方法,這些 方法的學習和掌握需要一定的時間 ,結果就是老程序員的效率會相對要高一些。
所使用的編程語言的熟練程度我經常會看到一些新手程序員在寫代碼的時候需要頻繁的去查看文檔或者是網路搜索各種介面的用法,有時寫一個功能要查個幾十次,很多時間都浪費在了搜索上,真的寫代碼的時間很少。
而一個在這門語言浸淫了幾年甚至是十幾年的程序員,對這些介面瞭若指掌,使用的時候信手拈來,還知道介面裡面的實現機制,可能會碰到哪些坑也一清二楚,減少了很多bug的出現。
你是不是有把那些介面拿出來反復琢磨,去研究它的源碼,認真地了解它呢?
對編程工具的掌握程度工欲善其事,必先利其器。
一個好的編程工具有很多可以幫助程序員減少工作量的功能,比如代碼重構、自動格式化、語法檢查、代碼提示和補完等等,掌握這些也能大大提高開發效率。
隨著IDE的發展和進步,現在很多工具都不需要太復雜的學習就可以操作,所以這個是一個投入小而回報很高的事。
業務需求的熟悉程度代碼是為業務服務的,我們首先得理清楚業務邏輯,才能知道要怎麼寫代碼,而新手對業務不熟悉的時候,光是弄明白業務需求是什麼可能都需要不少時間,有時候還可能會錯誤理解需求,導致寫出的代碼文不對題,只能重寫。
所以多思考,多問,多討論,不會花太多時間卻會減少很多時間的浪費。
調試的效率寫出來的代碼還需要經過測試,如果有bug就需要調試了。
很多新手只重視寫代碼的工作,對於怎麼調試卻忽略了,有的人甚至只會使用列印功能一步步通過排查找bug,並且對寫出來的代碼沒有概念,連bug大概可能在什麼地方也不清楚。
老練的程序員不只是靠列印,有時候只看報錯信息就能知道bug大概在什麼位置,配合上列印還有斷點功能很快就可以找到bug的位置,更不要說他們很清楚怎麼寫出容易調試的代碼。他們會在寫代碼的時候就對可能出問題的邊界條件進行檢查,並且會利用自動化測試來減少工作量。
寫代碼之前的構思新手很容易犯的一個錯誤就是拿到功能需求馬上就開始寫代碼,可能寫到一半會發現前面的代碼有問題需要推翻重來,或者是寫錯了方向。
老程序員寫代碼之前會先進行構思,把功能需求拆解,分成不同的小模塊,甚至會在紙上把這些想法畫下來,基本上在這一步就把問題已經解決了,寫代碼只是把解決方案用代碼表達出來而已。
所以,如果你也想做一個十倍程序員,記得不要只是埋頭寫代碼,還要刻意去練習這些提高效率的好方法!
在寫代碼前,代碼差不多已經刻在腦子里了,寫代碼的時候,總覺得雙手敲鍵盤的速度趕不上腦子的速度,寫出的代碼幾乎不需要調試,你說效率高不高?
因為老程序員經歷多了,一些常規性的BUG基本不會出現,對用戶需求也能做到最大的完善,還有對需求增加和修改有個大概了解,會提前預留介面和模塊,還有對用戶的硬體有了解,在程序上會有相對優化。所以老程序員寫的程序不一定美觀,也不一定最簡化,但是可能是最合適的,可惜中國的程序員剛成熟就要面臨失業。年輕的程序員啥都不懂,片面追求性能,美觀簡潔的程序,在兼容性和實用性上大打折扣,不顧用戶的使用情況和硬體情況,項目一上線問題多。
老程序員分為兩種,一種是年紀老,常常被換做「老X」,一種是能力老,常被人換做「x老師」。
老程序員之所以效率高,離不開幾點:
程序員是一份高強度的腦力工作,能成為老程序員者,智力,體力無一不是同齡人中佼佼者。能夠更加效率的工作自然是理所應當,方符合家有一老,如有一寶的普世價值。
祝廣大碼農早日修煉成為這樣的老程序員。
老程序員,碼代碼速度並不見得比年輕人快。但老程序再面對需求時,能很快抓住技術關鍵點,難點,重點,如何突破都瞭然於胸。當出現問題,老程序員有經過實踐的診斷定位排錯的邏輯思路與手段 。其實這些熟能生巧是一方面,學習與實踐 領悟是另外的方面。年輕人觀察能力強 悟性高,也會青出於藍
老成員就是圖書館,硬碟存滿了各種經過調試且運行過的程序,只需要復制粘貼,效率肯定高
Ⅷ 為什麼程序員都喜歡Linux操作系統
著作權歸作者所有。
商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
作者:鍾宇騰
鏈接:
來源:知乎
是的,因為Linux目前為止,也沒有為「普通」用戶真正的優化過
要讓「普通」用戶接受Linux,除了弄一個像Windows或Mac OS一樣的圖形界面,沒有其它辦法
你不可能說服用戶去嘗試使用Terminal,普通用戶理你才怪呢。不使用Terminal,Linux系統的優勢為零,殘廢一樣的圖形界面根本無法獲得普通用戶的青睞,只能說是「可用」。
而作為程序員,學習和探索是一項最基本的能力
Linux的Terminal和開發環境、文件組織結構都可以大大的提高你的開發效率,尤其是Shell的命令、管道等等功能,把命令組合起來可以發揮讓人意想不到的效果,也大大地提高你的工作效率
而要程序員去掌握Linux的用法將是非常容易的,因為程序員本身就有讀懂文檔的能力,相對於普通用戶來說門檻太低了
但是你不能要求普通用戶去接受Linux,至少現在不可能,因為Linux沒有任何一處是為了普通用戶著想的,普通用戶去讀文檔將會讓他們感覺到非常地苦惱和沮喪
Linux本身沒有問題,因為它只是一個內核,普通用戶能不能接受它那是GUI的問題,和配套軟體的問題
同樣是UNIX系,Mac OS X從BSD走出來之後,在這之上構建了一個絢麗的圖形系統,但是其內核依然是BSD,也可以使用各種CLI工具,所以Mac OS X幾乎就是喜歡Linux的程序員們的最終歸宿
而Mac OS X的圖形界面使得普通用戶的使用門檻降低,普通用戶也會喜歡使用它的
所以Mac OS X不就是一個很好的例子么?Linux般的開發體驗+普通用戶喜愛的圖形界面的完美結合。其實Linux陣營目前也在努力,Ubuntu現在就是想讓Linux系統更親近用戶,希望它能成功吧