導航:首頁 > 程序命令 > 程序員如何顯示實力

程序員如何顯示實力

發布時間:2023-09-12 12:43:24

『壹』 作為剛入職的java程序員,一年時間內如何提升自己的實力,更有競爭力

可以從以下幾個方面入手:
第一:學習Java虛擬機知識。要想系統深入的了解Java語言中的各種概念就需要了解JVM(Java虛擬機)的體系結構和設計模式,JVM是Java語言的容器,Java語言的所有特性都是由JVM所提供的,所以系統的學習JVM對於理解Java語言具有重要的意義,尤其在未來面對一些系統級問題時會更加自信。
第二:提升代碼量。對於初級程序員來說,要想提升自己的編程能力,一個最為有效直接的方式就是提升代碼量。一方面可以通過崗位任務來完成,另一方面可以通過自主實驗來完成。提升代碼量的過程不僅能夠加強自己的編程能力,也能提升自己調試程序的能力。
第三:圍繞主攻方向展開學習。Java程序員往往都有一個自己的主攻方向,比如Web開發、大數據開發等等。對於Web開發來說應該圍繞Web組件的開發來逐漸展開自己的知識面,包括Web容器的理解、框架的理解、前端處理過程的理解(JavaScript)等。對於大數據方向來說,應該從理解大數據平台開始(Hadoop、Spark),進而掌握平台提供的Java API。
Java中可以系統學習的內容非常多,比如並發機制、事務處理機制、安全機制、消息傳遞機制、分布式處理機制、資源管理機制等等,這些內容都需要進行深入的了解。

『貳』 程序員怎麼提升自己

第一,技術不能落伍。

技術的更新迭代非常快,所以要學習的東西很多,所以說,做程序員挺不容易的。但作為這個時代的弄潮兒,我們必須提高對自己的要求,否則很容易落伍,被拍死在沙灘上。

一線城市的程序員可能還好,因為公司的產品迭代升級很快,所以技術棧的更新換舊也快。但二三線城市的程序員可能就沒那麼幸運了,往往一個產品都做到沒客戶了,技術還是最初用的那些。

以至於有些程序員回到二三線城市後再去一線會比較難,並不是生活節奏不適應,而是技術跟不上了。

怎麼才能保證技術不落伍呢?並不是說外面流行什麼技術,就一味的跟風,而是有選擇性的,你比如說,Spring Boot 是肯定要跟的,但 Hadoop、Spark 就不一定要跟,要量力而行,看公司的業務規模是否需要。如果不需要,把更多的時間花費到 JDK 源碼、性能優化陵戚上,是更消祥佳的選擇。

第二,熱愛這個行業。

就目前來說,程序員的確是比較高薪的職業,所以很多人都在往這個行業里擠,再加上「狼性文化」、「996」盛行,搞得很內卷。

在這種情況下,在這種壓力下,你有沒有問過自己,內心是否還熱愛著這個行業?

我曾有一個讀者,她問我,「請問你能不能做 C++ 課外輔導啊,孩子上大學,軟體工程專業,之前不懂計算機,現在學習壓力很大,想放棄,認為自己不適合學這個,不開竅,我是看了你的文章開始關注你的,現在因為孩子的事沒辦法了,就想問問,能給付費輔導嗎?」

從這位母親的話中,我感受到了她對孩子滿滿的愛,也感受了學弟學妹們身上背負的壓力。程序員的確要學習很多很多知識,除了編程語言,計算機基礎知識,還尺橋陵有各種框架和工具,時間根本就不夠用。

但有一句俗話叫做「干一行愛一行」,既然入了行,就只有風雨兼程。否則,心裡不愛了,學習的熱忱和動力又從哪裡來?

當你累了的時候,適當地給自己放個假,打一場籃球、打一個小時游戲、唱一首歌,甚至談個戀愛,讓緊綳的神經放鬆下來,心裡的那股熱愛也許就悄無聲息地回來了。

第三,樂於分享自己。

分享的方式多種多樣,並不局限於寫博客,你可以在公司的團隊內部做一次培訓,甚至小到站立會的時候發表一些對技術的想法,或者大到在技術大會上做一次演講。

分享會收獲別人的認可、稱贊,崇拜的小眼神,這些點點滴滴的榮譽感會讓你鼓足勇氣,在前行的道路上充滿干勁,進而精益求精,要求自己做得更好。

『叄』 根據做項目的多少判斷程序員的水準合理嗎為什麼呢

根據做項目的多少判斷程序員的水準合理嗎?為什麼呢?程序員的水平,不是通過語言或外部表現就能看到的,不是看有多少技術,參與了多少項目,他會寫多少博客,而是看他在實際業務場景中解決問題的能力,尤其是面對一些特殊復雜的問題,或在高強度和高壓工作條件下解決問題的能力和態度。能夠編寫滿足需求的代碼不再是評判程序員的標准。

一個經驗豐富的程序員能夠承受來自各個方面的壓力,在復雜條件下找到核心問題,通過深入分析找到問題的原因,並迅速處理。經過及時的回顧和總結,減少出現類似問題的概率。隨著互聯網的發展,越來越多的人湧向程序員的軌道,競爭越來越激烈,新技術層出不窮,更新和迭代速度很快,程序員使用的語言、框架和模式將發生巨大的變化。

如果你不主動學習,你可能很快就會過時。在日常工作中,程序員往往希望將業務、產品、運營,甚至老闆作為對接交換需求和技術項目來連接和配合內部交換等,而流暢的溝通可以使事情推得更加順暢高效,溝通或信息不對稱,可能會導致項目啟動時出現相反的情況(不要相信,這種事情真的發生過)。判斷一個程序員的水平,核心是他解決問題的能力,而解決問題的能力需要堅實的基礎支撐,要綜合代碼質量、項目經驗、框架能力、邏輯思維等方面,而不僅僅是一個方面。

『肆』 女程序員被質疑代碼能力,該如何證明自己

有什麼好證明的,自己的能力強不強,自己在平時的工作中就展現出來了。

『伍』 程序員積累什麼東西才是真正的實力

姚冬回答的非常好,我狗尾續貂的說幾句。

我們都知道學習能力很重要,那麼學習能力從何而來,除了去看書上課這種,如何在實踐工作中學習成長?
我之前微博說了一個籠統的概念,什麼是能力? 對待問題的態度,以及處理問題的思路和方法。

先說態度

你伺服器偶爾出501錯誤,也許比例不高(知乎也出現過很多次),很多程序員,沒錯,是很多,假裝看不見,不在乎,或者歸咎於人品問題。 這就是態度問題。
再往後,負載高了或者其他什麼原因,突然頻繁出現501錯誤,不去追尋深入的原因,而是找各種借口, 什麼IDC服務商不好,伺服器品牌不好,操作系統不好,資料庫不好,CDN不好,網路狀況不好,web server不好,甚至,直接對Boss說我們被DDOS啦!(遇到過,幫他Boss找過多個安全專家會診,最後發現根本不是DDOS,是程序員太爛。)

這就是態度,觸目驚心,如果能對問題有敏感性,能知道對任何小的,輕微的問題有足夠的敏銳度,你就有了一個快速成長的基礎。對問題的敏銳度是非常重要的。很多性能或程序邏輯上非致命的bug,在不夠敏銳的時候是發現不了的,但是一旦進入特殊場景就會驟然爆發,你多一點敏銳度,就會減少這種危機的風險。

第二個態度是解決問題的態度,有人對自己的解決方案信心滿滿,認為萬無一失,但有的人就會多留一條後路;就好比你說我伺服器要不要做安全加固,肯定要做對不對,要做到盡可能嚴謹和周全,但是你資料庫保存密碼的時候是不是還要加密?而且要隨機salt,不就是防止萬一依然有漏洞被人拿庫怎麼辦么。程序也一樣,以前寫的一些服務端守護進程,有bug,會莫名其妙的終止,這個bug當然要定位,要修復,但是同時,寫一個cron檢查這個守護進程狀態,一旦遇到終止給予自動恢復,這就是第二手准備,即便你多麼不希望他執行,這個准備還是要做的。對問題 做兩手甚至三手准備,也是優秀程序員,架構師的關鍵素質。

第三個態度是基於溝通與理解的態度,產品或運營提了一個不靠譜需求,一句話打回去當然很爽很威風,但是有沒有仔細溝通分析過,這個需求基於怎樣的實際訴求,這個實際訴求有沒有更合理的實現途徑,一句話「這個沒法做,這個實現成本太高」,不是正確的溝通態度,而且,最優秀的產品,往往是實現了那些原本人們認為無法實現的訴求。

這樣的態度,才有了一個持續進步的基礎,下面說思路和方法。

優秀 的程序員和平庸的程序員,如果只看敲打代碼的速度,我覺得是分不出來的,也許每人都可以一天寫很多行代碼,但是遇到問題後,平庸的程序員的解決效率,和優秀程序員相比就會有天壤之別。 所謂解決效率,不外乎對bug的分析、定位,以及 思考。

最基本的一條,看執行日誌,看各種日誌,web server的日誌,資料庫 的日誌,慢查詢日誌,binlog日誌,php的錯誤日誌,等等等等,線上出問題瞎猜連日誌都不看的大有人在。看日誌不仔細不完整的也大有人在,你能去認真研究日誌已經超越很多人了。

第二條,模塊測試和斷點分析,程序員一個壞習慣就是上來就寫很大一坨代碼然後再執行,不知道一個模塊一個模塊來寫來測試,執行出了問題不知道設置斷點,縮小范圍逐步分析。斷點分析非常簡單,將整個代碼中插幾個中間輸出,觀察哪個環節出了問題,或者觀察每個環節的系統開銷,對調錯和性能優化都非常重要,高手們大概認為這是ABC的東西,但是就這玩意我看到的大部分程序員都沒有這個習慣。

第三條,錯誤信息 的理解和搜索,搜索引擎上有各種豐富的技術資料和技術問答,你所遇到的錯誤信息和錯誤提示,通常都能在網上搜索到,當然,搜索到後要結合你的場景認真思考,並理解透徹,而不是照貓畫虎的去處理,否則可能這次運氣好就蒙對了,下次運氣不好又不知道怎麼回事了。

第四條,不斷總結歸納,對一個問題,一類問題,以及不同類型的問題,善於歸納整理,不斷反思自己的問題,即便是不出bug的代碼,你經過一段時間去回頭看,也有很多思考不正確不合理的地方,有很多優化點,如果你覺得自己的代碼一向牛逼,毫無破綻,那你一定是原地踏步,毫無進展。

關於 歸納總結,我說個案例
以前我們有個系統,請求量非常大,負載非常高,有個不錯的技術經理來處理,他列了幾個升級計劃,都很靠譜,去執行了,效果非常好,然後我們跟進匯報的時候他來講,做了幾項升級,整體效果如何,然後我就批評了他。
我批評了什麼呢?他是一起做的升級,然後一起觀測的效果,那麼這幾個方案里,具體每個方案的實際效果怎樣,對提升的幫助多大,他沒有任何數據。所以對具體每個升級方案的價值和重要性,他沒有任何概念。你正確的解決了問題,卻沒有認真的去歸納整理,你的收獲是有限的。一起做升級不能說是錯的,但是效果評估需要單獨去做,而這個數據是非常有價值的,知識積累,不是你處理過的就一定有積累,而是整理過的。

大概就這些

最後重述一遍
什麼是能力?

遇到問題的態度
處理問題的思路和方法

這就是能力

點贊的那麼多,答謝各位,補充幾條思路吧,是上面幾個方法的具體擴充

補充1:善於提問,你能得到怎樣的答案,取決於你提出怎樣的問題。
你遇到問題,你應該知道,從哪裡去問,去問什麼。
我常見的一個測試題是這樣的。
資料庫目前掛了,我就是伺服器,我不知道為什麼掛了,你是一個優秀的分析師,現在我來做響應,你問我問題,你問一個問題,我回答一個指標,然後看你能不能定位問題。(當然,我會根據所假設的問題回答所有數據指標),比如你問我資料庫連接數多少,問我系統i/o壓力多少,或者問我慢查詢日誌里有什麼,等等,善於提問的人就可以快速得到答案,而不善於提問的人,就會猜測一堆可能,最終卻一無所獲。
有個真實好玩的案例,有個兄弟公司(前段時間新聞出來,賣了好像十個億的樣子),開始的時候服務端資料庫不夠強壯,負載起來的時候會出現一些問題,就請我去把脈,我一看windows伺服器,SQLserver (不要猜了,那是幾年前,現在應該改了),我說這個我不會啊,然後人家那麼熱忱當我是專家,只好硬著頭皮上,我連基本操作都不會怎麼辦,我就坐在那裡問問題,開始他們說是不是這樣,是不是那樣,我說你們不要盲目下結論,你們要是知道結論就別來問我了,我問什麼指標,什麼日誌你們就給我查什麼,我就一樣樣的問,他們現場操作去查數據,我問一個他們查一個給我看,查著查著,他們的工程師說,知道原因了!果然和他們開始的假設完全不同。其實關鍵就是問問題的思路,他們一開始沒有提出正確的問題。提出了正確的問題,他們很快自己就找到了原因。

補充2:善於劃定范圍,縮小問題區間。
前面提到的斷點分析是一個非常常見的分析方法,但是很多場景,你甚至不知道是哪個程序出的問題,善於將問題范圍化,也是一種歸納和分類的能力。

我曾在某個技術群出過一個經典測試,還記得以前微博上提到的一個經典面試題么。「從瀏覽器輸入url到打開網頁,中間經歷了什麼」,這是一個經典的綜合認知的題目,基於這個題目,出一個更實戰的場景測試是(這個場景其實90%的網站站長和游戲運營商都遇到過),」目前有用戶反映網站或游戲卡,請問如何分析原因,以及當前優先順序步驟。「。結果在這個群里,只有我徒弟說出了完全正確的答案(09年帶過的)。優先順序第一步是看在線用戶數和當前訪問數,對比歷史,得到該問題目前的影響程度,來決定後續的優先順序,以及減少分析范圍。(這是意識問題)分析思路,分成三大塊,前端,網路層,服務端。當然這三塊可以繼續延伸下去非常多細節,但是至少,能先把問題分成三大塊,然後基於一些顯見的分析方式快速排除其中幾個部分,再逐步細化問題,而大部分人只是從一個局部去思考,講了很多局部細節卻沒有完整的綱領,所以這就是差距。

先想到這些,咳咳。

轉自知乎 曹政

『陸』 請問,如何才能做一個優秀的程序員

1、養成良好的書寫代碼的習慣,該加註釋的時候一定要加註釋,該大寫的地方一定要大寫,變數命名不能模糊不清。這是基礎,是為了讓別人能看明白你所寫的代碼,不能你寫的代碼只有你自己才看的明白。

2、注意所寫軟體的版本控制。

3、勤奮學習最新的技術,計算機技術日新月異,這點我不說相信你也知道。

4、養成寫開發文檔的好習慣,再接到一個項目時,第一件事情是進行需求分析,然後寫開發文檔,把你每一步要做什麼都先寫清楚,再動手做。

5、不要怕技術難題,在計算機領域,只有不能解決難題的人,沒有人解決不了的難題。

6、虛心象他人學習,即使技術實力比你差很多的人,也肯定會知道一些你所不知道的技術點。

第一種武器:開發工具

至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C和JAVA是我重點推薦的開發工具,C/C以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的「網路即計算機」的概念相當欣賞,並相信JAVA即其相關的技術集JAVAOne會成為未來的主流開發工具之一。其次,如果能掌握一種簡便的可視化開發工具,如VB,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。

第二種武器:資料庫

為什麼資料庫是如此重要?很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會中慶塌接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。

第三種武器:操作系統

當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機差慧制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。

第四種武器:網路協議TCP/IP

在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

第五種武器:DCOM/CORBA/XML/WEBServices

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間件平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。

第六種武器:軟體工程與CMM

現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色賣圓的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。

第七種武器:強烈的好奇心

什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。

『柒』 從哪些點上可以體現一個程序員的實力

對於一個程序員來說,剛上任的新手,如果能夠將工作任務高效地處理,證明其工作能力還是具備一定的基礎的,企業大可繼續留任試用。如果這個程序員不僅能夠在短時間內高效處理工作內容,且對於工作的細節也十分地考究,充分全面地考慮,必然也代表其工作思維和普通員工不同。一個程序員如果對於工作只是在應付差事,那麼必然其能力也不會好到哪裡去,因此,一定要觀察期對待工作態度是否認真,然後進行其能力的初步判斷。

『捌』 有哪些老程序員都知道對新手很有用的經驗

一說到程序員,想必大家的第一印象就是頭發少,很大程度上就是因為壓力大導致的,有生活壓力,也有工作壓力。

今天說說工作方面的壓力,想必看到這個問題的小夥伴都有一個認知,就是一個項目往往比預期的要長,說不定從哪天開始就加班了,一出現BUG真的要人命。此時,考研新老選手心態的時候和經驗的時候了,老程序員或許能從容應對,新手可能完全不知錯所。

七、個人信息一定要保管好

這些信息包括戶口檔案、社保、公積金等信息,程序員新手可能跳槽比較頻繁,有人甚至還換個城市工作。除了戶口可能其他的信息都亂了,可能當時覺得不那麼重要,但是十年、二十年後,可能會非常重要。

八、幾條名言

·工作日誌可以提升腦容量;

·不要先寫框架再寫實現,要反過來;

·重構/優化/修復Bug,不要同時做;

·簡化開發流程,加快迭代速度;

·紙筆是最好的工具,其次是markdown;

·畫出結果,一目瞭然。

·首選明文文本,二進制、加密、壓縮等到時候再加;

·要學會進行清晰的命名;

·問問題前先調查,要問到點上。

·不要小看程序員

閱讀全文

與程序員如何顯示實力相關的資料

熱點內容
如何讓軟體在多個安卓系統上運行 瀏覽:573
java判斷半形 瀏覽:880
java判斷正負 瀏覽:320
刷頭條程序員的日常 瀏覽:102
吉林程序員吐槽 瀏覽:243
單片機溫度范圍 瀏覽:419
程序員為什麼素質低 瀏覽:897
可愛的程序員小姐姐 瀏覽:145
伺服器上網站的地址 瀏覽:798
蘋果平板如何找到app資源庫 瀏覽:321
阿里雲可以雲伺服器地址 瀏覽:249
熊貓繪畫app如何導入圖片 瀏覽:555
如何自己編輯手機app 瀏覽:924
程序員那麼可愛帶的項鏈 瀏覽:532
安卓系統導航mic什麼意思 瀏覽:192
編譯sdk如何輸出bin文件 瀏覽:679
如何用html5開發app 瀏覽:143
怎麼隱藏蘋果的app 瀏覽:328
上海捷豹空氣壓縮機 瀏覽:459
51單片機換行 瀏覽:739