想要學習卻又無從下手,新手程序員如何自我提升?

低調的牛肉


大家好,我是有夢想的年輕ren

作為一個工作5年Java開發工程師,我講述自己看法。

1.1-2年能幹活就行,3-4年就是性能,源碼,在網上就是架構了。

2.學習可以從博客園,知乎,CSDN等專欄看別人的總結,都是別人的經驗,直接汲取對自己提升特別快。

3.可以多進一些技術交流群,看別的公司使用什麼技術,不至於自己落後。必要的時候多面試。

4.網上也有很多視頻資料,需要的話可以私信我,發給你。

5.還是要自律吧。

溫馨提示:程序員比較辛苦。

謝謝,希望我的回答對大家有幫助。


有夢想的年輕ren


先推薦幾本程序猿的書吧

《c語言從研發到脫髮》

《C++從入門到放棄》

《Java從跨平臺到跨行業》

《Ios開發從入門到下架》

《Android開發大全——從開始到轉行》

《PHP由初學至搬磚》

《Mysql從刪庫到跑路》

《服務器運維管理從網絡異常到硬盤全紅》

《服務器運維管理從網維到網管》

《Debug455個經典案例,讓電腦開機藍屏》

《零基礎學c語言,學完負基礎》

《Css從繪製框架到改行畫畫》

看過了這些如果你覺得程序猿太難,那再來試試信息安全吧!

程序猿與滲透測試攻城獅,本來也有相似相通之處,這裡你也可以參考信息安全行業的滲透測試工程師的一些學習要點!

瞭解以後,或許對你來說,做信息安全也是一條不錯的道路!

《黑客攻防:從入門到入 獄》

一、常見漏洞

1.SQL注入

SQL注入原理、聯合注入、注入類型、別名提升權限、讀取文件、html錨點、Mysql布爾注入、延時注入、

別名講解、MYSQL-BUG注入、MYSQL函數報錯、修復SQL注入、判斷網站是否存在注入、

寬字節注入、多語句注入、Values注入、Delete注入、UPdate型注入、注入常用函數、防火牆、其它數據庫注入。

2.XSS漏洞

XSS原理、ajax、儲存型XSS、反射型XSS、dom-xss、X-XSS-Protection、CRLF+XSS、XSS修復、閉合XSS

3.Csrf-XSS蠕蟲-SSrf-XXE 瞭解CSRF-CSRF攻擊、Csrf漏洞修復、XSS蠕蟲、XXE原理、XXE修復

4.文件上傳 空字節的理解、上傳流程、JS驗證、截斷上傳、黑名單驗證上傳、二次上傳、上傳分析、MiMe類型繞過、解析漏洞、雙文件上傳、上傳已知漏洞

5.Webshell PHP、asp、aspx一句話、大馬、小馬、後門、查殺

6.Mysql注入進階-DNS查詢 DNS的理解、Sql注入的利用、搭建測試環境、其它數據庫注入、修復

7.讀取及代碼執行命令 文件包包含修復、文件讀取、利用文件包含漏洞拿到權限、理解序列化、反序列化漏洞、Exp-Poc-Payload講解

8.邏輯漏洞 邏輯漏洞原理、挖掘密碼重置漏洞、驗證碼漏洞、未授權漏洞、越權

9.信息洩露 瞭解什麼是信息洩露、Google用法、網站路徑、判斷網站CMS、Robots.txt講解、各種找信息、預付信息洩露總結

二、工具介紹

Burp、Msf、APPScan、WVS、Sqlmap、Nmap、Nessus、Hydra…

熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相關工具的使用。

1.瞭解該類工具的用途和使用場景,先用軟件名字Google/SecWiki;

2.下載無後門版的這些軟件進行安裝;

3.學習並進行使用,具體教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

三、中間人攻擊與抓包

Arp原理、Wireshark、Bettercap介紹、嗅探、腳本、DNS劫持與預防、cain+NetFuke使用

四、正反向代理與端口轉發

原理講解、正反向代理搭建、windows_nc反彈、inux_nc安裝與反彈。LCX

五、權限提升

服務器安全配置、Windows、Linux提權講解

六、靶機實戰

網站內置靶機題目,是按照闖關模式的,當然,您可以從文章中學習到技巧以及方法,來到我們的靶機上做滲透測試,瞭解漏洞危害,我們會根據文章,在文章底部設置靶機入口,您可直接聯繫!

熟悉Windows/Kali Linux

學習Windows/Kali Linux基本命令、常用工具;

1.熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

2.熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

3.熟悉Kali Linux系統下的常用工具,可以參考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

4.熟悉metasploit工具,可以參考SecWiki、《Metasploit滲透測試指南》

服務器安全配置

學習服務器環境配置,並能通過思考發現配置存在的安全問題。

1.Windows2003/2008環境下的IIS配置,特別注意配置安全和運行權限,可以參考:SecWiki-配置;

2.Linux環境下的LAMP的安全配置,主要考慮運行權限、跨目錄、文件夾權限等,可以參考:SecWiki-配置;

3.遠程系統加固,限制用戶名和口令登陸,通過iptables限制端口;

4.配置軟件Waf加強系統安全,在服務器配置mod_security等系統,參見SecWiki-ModSecurity;

5.通過Nessus軟件對配置環境進行安全檢測,發現未知安全威脅。

腳本編程學習

選擇腳本語言Perl/Python/PHP/Go/Java中的一種,對常用庫進行編程學習

1.搭建開發環境和選擇IDE,PHP環境推薦Wamp和XAMPP,IDE強烈推Sublime,一些Sublime的技巧:SecWiki-Sublime;

2.Python編程學習,學習內容包含:語法、正則、文件、網絡、多線程等常用庫,推薦《Python核心編程》,不要看完;

3.用Python編寫漏洞的exp,然後寫一個簡單的網絡爬蟲,可參見SecWiki-爬蟲、視頻;

4.PHP基本語法學習並書寫一個簡單的博客系統,參見《PHP與MySQL程序設計(第4版)》、視頻;

5.熟悉MVC架構,並試著學習一個PHP框架或者Python框架(可選);

6.瞭解Bootstrap的佈局或者CSS,可以參考:SecWiki-Bootstrap;

源碼審計與漏洞分析

能獨立分析腳本源碼程序並發現安全問題。

1.熟悉源碼審計的動態和靜態方法,並知道如何去分析程序,參見SecWiki-審計;

2.從Wooyun漏洞庫上尋找開源程序的漏洞進行分析並試著自己分析;

3.瞭解Web漏洞的形成原因,然後通過關鍵字進行查找分析,參見SecWiki-代碼審計、高級PHP應用程序漏洞審核技術;

4.研究Web漏洞形成原理和如何從源碼層面避免該類漏洞,並整理成checklist。

安全體系設計與開發

能建立自己的安全體系,並能提出一些安全建議或者系統架構。

1.開發一些實用的安全小工具並開源,體現個人實力;

2.建立自己的安全體系,對公司安全有自己的一些認識和見解;

3.提出或者加入大型安全系統的架構或者開發。


頭號黑客


對於新入職場的程序員而言,要提升自己的編程能力,我從一個老程序員的角度,給你以下幾個方面的建議:

1.養成良好的編程習慣。

萬丈高樓平地起,基本功很重要。新手一定要耐住性子,從註釋、縮進、變量命名這些最最基礎的做起,培養自己良好的編程習慣。

2.熟悉軟件工程的思想

軟件開發是一個團隊協作的工作,熟悉團隊開發的一些工具和思想,對於你未來在工作中與同事合作,會有很大的幫助。

3.提高自己的理論水平

軟件開發是用計算機語言表達自己思想的一個過程。軟件中常用的:分治、遞歸等基本思想要了解。設計模式的設計原則也要熟記。總之,多看書提升自己的理論水平。

4.廣泛涉獵

例如:對大數據、雲計算、物聯網、AI、區塊鏈等前衛到技術原理要懂。

5.多學習業務知識

這一點很重要,業務是技術的前提。這也是程序員進階架構師必須掌握的能力。對常見的電商系統、ERP系統、CRM系統、客服系統等有哪些大的業務模塊,模塊之間的關係是什麼,掌握的越多越好。

6.鍛鍊自己寫文檔的能力

軟件開發前面的階段是設計階段,重視自己的文檔能力,對於複雜的業務問題轉化為計算機問題,是至關重要的。

最後,祝你在編程的道路上,一帆風順。





雲峰互聯網


程序員如何正確的自我提升

首先啊兄弟們,我只是分享一下我的一些學習方法,你可能有自己更好的方法,我只說適合於我的,並且確實有效果的

在開始這個話題之前,可能有些兄弟覺得自我提升嘛.學習,使勁學,這不就是自我提升麼

你說的對,學習就是自我提升,但是如何正確的學習,會直接影響你提升的速度,學習的紮實度等

前言

在接觸計算機有一段時間之後,接觸到越來越多的新知識新概念,

我就像劉姥姥進大觀園,什麼都想學,但是總感覺力不從心,學習效率低下,

不管是複雜的算法還是簡單的案例demo,我都感覺學的費勁

剛開始我覺得是不是我這腦子不好使,學啥都費勁,後面慢慢的意識到可能是我的學習方法有一些問題

最開始的改變

我開始反思,我當時的學習是如何進行的,我舉個栗子

可能上一秒我在看設計模式,看到其中的某一個未知的概念,我就跑去看這個概念,又從這個概念中看到另一個未知的東西.又跑去看這個…週而復始,導致一個晚上的時候,啥都沒看明白

反思之後,我開始定製有規劃的學習目標

比如 學習設計模式,看到不懂的概念先記錄到便籤中,把設計模式研究明白再去看當時不懂的概念,其實這個時候你只需簡單瞭解下,結合你之前學習的知識點,一點即通

序章

光有規劃的學習還是遠遠不夠的

你需要定製自身的知識體系

比如你是一位java開發工程師,那麼你的知識體系要先從java開始

當java的體系到達一定程度後,

你想轉型,大數據or高併發

此時你仍然需要定製你的知識體系

如果你要轉型大數據,那麼你需要了解大數據知識體系,並且結合有規劃的學習目標進行

而不是今天看看spark明天看看python

序章二

學習適量的深度

目標規劃,知識體系構建你都有了,那在學習的過程中也是會遇到很多問題的

比如今天看某個知識點,完全看懵了,或者一知半解

那這種情況其實很好解釋

因為你學習的這個新知識完全超出了你的認知範圍

這就是從低往高爬經常會遇到的問題

那其實我的建議是對於完全懵逼或者一知半解的這種知識點到即可

因為你再研究下去你依然不懂,不如先學習其他的

等到你的知識體系到達某一個高度之後,你再回頭看你當時的那個問題,就會恍然大悟

當然有人會說你這個邏輯有問題啊,你都不會深層次的東西,怎麼構造高度的知識體系啊

高層次的知識都是把底層的問題抽象化了,可能有些是衍生的新概念,我們看著有些懵逼,

但是大部分的知識還是基於我們最開始學習的知識構建的,你可以先從這方面入手

這就好比你上六年級,讓你做一年級的題一樣,就算當年你一年級學的很爛,你也一樣可以,因為你的知識體系在一個相對較高的水平,前提是六年級的你不是倒數第一[捂臉]

序章三

努力,這個感覺說的就是廢話了

因為你想要提升,想要進步,不是躺著一邊玩著遊戲一邊想著我要變成大牛

當然也不是說每天除了工作,剩下的時間都用來提升自我,

如果真這樣的話,我看你不是提升,你是要昇天了

學習的時間也是要有規劃的,剩下的時間可以健身運動運動

我不提倡以身體換取金錢的學習方式,要適量適當的

比如你是剛開始學習計算機的學生

那你一定要壓榨自己所有的時間進行學習

如果你已經從事這個行業,那麼就可以適當的留一些個人的時間,剩下的時間用來提升自我

序章四

再補充一些

我覺得開發人員無需每天沉迷於學習某個某個框架,

開源框架的社區開發者有上百上千人,你的學習速度是 永遠比不過框架的更新速度的

但是強調 我不是說不需要學,而是沒必要沉迷於學習框架

框架無非就是我們開發中的一個工具,一個輪子而已

最最重要的還是計算機的底層原理

世界上只有兩種人,一種是懂二進制的人,一種是有女朋友的人 --哈哈

當然框架也有很多我們可以學習的地方,比如它的設計模式,它的代碼規劃等等

但第一重點還是底層原理以及你學習的語言的底層原理,

比如我最近最近在看的計算機編譯與jvm,jdk源碼解析等

保持自己的對編程的熱情,不要說自己從事編程行業是為了錢,沒有能力誰會給你錢呢?


魚蛋兒影視


新手程序員如何自我提升呢,學習是必然的,想要學習無從下手,小編建議先根據自己的實際情況設定一個學習計劃,學習週期,然後開始查找相關資料進行篩選,找到適合自己的學習資料,可以看書也可以看視頻教程,不過比較建議看教程資料,畢竟看書的話,書不一定是什麼時候出版的,不一定會適合提升學習,

不管你是從事哪一個崗位的程序員,提升最主要的就是技術能力,一定要找一些最新的技術視頻學習,可以參考培訓機構的課程大綱來學習,畢竟思路,學習路線都有了,學習起來也會有計劃,如果條件允許,可以考慮購買線上課程,這樣學習起來會更好,堅持學習是最主要的,不能三天打魚兩天曬網,有點成績就驕傲,一定要堅持學習,給自己設定好學習目標,祝好


千鋒哈爾濱


  互聯網公司本身結構比較扁平,管理崗位較少,程序員只學到技術就可以了嗎?你想過自己的未來規劃嗎?那麼我們該如何進行職業規劃和技能儲備,才能從激烈的競爭當中脫穎而出實現自我提升。

  一、拓寬業務場景

  這裡的業務場景分為大業務場景,也分為小業務場景。大業務場景即不同的細分行業,如電商、內容、視頻、共享平臺等等。千鋒建議程序員們在進行工作選擇的時候不要被自己原先所屬的細分領域太過限制,認為自己原來在電商公司以後也必須在電商公司。事實上,多去嘗試不同領域的公司,去了解不同領域的公司在技術實現上有什麼異同,對於程序員更深入地理解技術是很有幫助的。

  二、把握職場節奏

  在職場上有一個時間標準:3 年。 3 年時間,一定要在工作內容和職級上有一個質的變化,這個變化可以靠升職得到,也可以靠跳槽達成目標。

  初入職場的 3 年,主要的工作內容就是夯實基礎,此時基本處於「完成上級交付的任務」這樣的階段。但在這個過程中,員工不能僅僅完成任務了事,而是要不斷思考為什麼上級要佈置這個任務,這個需求是怎麼來的,用於解決什麼問題,有沒有更好的解決方案等等。

  之後的 3 年,也就是職業生涯的 3-5 年,作為程序員,需要達到一個小 leader 的層級,即帶領一個小團隊(可以僅僅有幾個人)負責某一個某塊或是功能的研發,此時在上個階段積累的經驗和關於解決方案的各種想法的作用便凸顯出來。而此時作為小團隊負責人的角色,程序員更多地需要關注上下游的邏輯,能夠形成完整的邏輯鏈條。

  工作經驗的 5-8 年,此時程序員已經進階成了技術負責人,可以獨立負責某一個產品的研發,可以成功地推動產品從 0-1 的階段,此時更多需要關注的便是跨部門之間的合作與溝通,確保研發行程的按時交付。與此同時,更多地關注一些產品設計方面的內容,會對進一步的晉升很有幫助。

  末後一個階段,即工作 10 年以上,此時達到研發總監或是更高的職位會是一個比較理想的狀態,而對於這個層次的要求,是對於整個行業能有比較清晰深入的判斷,能夠感知未來技術發展的方向併為公司提前佈局。

  三、訓練複合技能

  除了編程之外,程序員要儘量培養一些其他方面的技能,例如演講、寫作等等。這樣做一方面可以為程序員提供一些兼職機會,如主講技術相關的直播課程、參考文章或書籍的撰寫等。類似的機會在提供報酬的同時也會增加員工的知名度和行業影響力,更有甚者,在社交媒體上發表了相關文章之後,吸引了一批志同道合的同行,開始合夥創業,有了更大的機遇。

  就算沒有這些額外的收益,複合技能的人才在公司內部也會受到青睞。

  四、保持緊密溝通

  有些程序員認為自己做的是技術性工作,只要寫好代碼就可以了。這是錯誤的認知。根據以往服務候選人的經驗來看,那些有意識在工作之餘關注行業動態,積攢人脈資源,並且樂於與同行溝通的程序員,往往在職業發展的路上走得更遠。

  大數據程序員除了專業的技術外,還需要一份合格的職業規劃。


上海千鋒教育


1、找一種你喜歡用到工作中的語言

要成為一個更優秀的程序員,需要經常性的練習編程並用不同的語言和技術擴寬你的經驗,但是語言是如此之多,很多時候你不知道從哪裡開始,也不知道該選擇什麼語言才最適合你要解決的問題風格。

如果你還沒有想好具體的語言,並且想要先試驗下的話,建議你搜索求職網站,看看是什麼語言最搶手。你可以牢牢掌握一些特定的語言,然後開始研究和試驗。

2、發現問題或任何讓你覺得生氣的事情

和一種語言一起成長和點燃學習激情的最好辦法是,使用你學到的知識來幫助解決令你感到苦惱的問題。不僅要學習語言本身,也要學習語言可以如何應用到實際生活中的問題。

3、公開發布到公共代碼平臺上

即使你不認為有人會使用它,喜歡它,或者甚至看上一眼,還是要發佈你的代碼,一旦你覺得它達到生產標準的話。你的項目可能不會改變世界,但它可以讓你脫穎而出,讓你可以坦然對待別人查看和批評你的工作。此外,它可以讓你的簡歷增色不少。

4、學會如何簡明扼要地解釋給技術和非技術人員聽

要真正掌握高效的溝通,你需要對實際工作中你需要工作於什麼有一個基本的瞭解並彼此交互。寫博客,並與編程社區互動有助於有效地提高溝通能力。

如果你能掌握簡練,實事求是,通俗易懂的溝通方式,並將複雜的問題和解決方案分解為可理解的小塊,那麼你就能在軟件開發領域立於不敗之地。你會發現項目經理,其他的程序員,以及執行主管等都會爭奪你去他們的團隊。

5、知道自己會陷入困境

毫無疑問,就是在編程中我終於接受了我是人這個事實——我也有犯迷糊,笨手笨腳,錯誤頻出的時候。沒錯,你也是如此。你會錯過最後期限,太多次點擊“全部回覆”,滑動捕捉一些嚴重的錯誤,或者在應用程序架構中輕易放過一個令人難以置信的bug。

要想保持快樂和健康,那就得讓自己去分析錯誤,然後從中學習,還要應用所學的東西以便於下次完成得更好。


莫非8125


可以看看我的文章哦,看看你要學什麼,我是Python開發的,網上度盤裡面有很多相關的視頻資料的,找一個搜網盤的軟件,一搜都是的,一大把。



大鬍子網絡


興趣是最好的老師。

比如最常見的爬蟲,如果只是一味的爬蟲那麼比較枯燥。

那如果我想爬微博上女生最喜歡什麼樣的男生。這個是不是會有意思一點,

隨著你編寫爬蟲,勢必會遇到正則,xpath,以及py常見的網絡框架,

微博也有相應的人機驗證機制,

不得已,你會接觸到一些反爬技術,以及繞過驗證碼,

相關技術比如無頭瀏覽器,機器學習識別驗證。

等你繞過網站之後,成功獲取數據,

隨之而來的是統計學的相關知識,以及自然語言處理。

如何分析,如何做用戶畫像,

如何做可視化等等。

所以建議從一個你感興趣的領域開始,不斷拆解並實現他,

你會發現你學到的東西有很多。


知識每一天


如果在工作就按照要求直接開幹,不懂就網上搜索,一般別輕易問同事,畢竟大家都挺忙的,遇到語言不會就看網上的入門教程,框架不會就看官網的tutorial什麼的。

如果還在自學階段,給自己定一些目標吧,比如做一個簡單的博客系統,按照自己的設想找目前搜索的人多熱門的語言開寫,遇到問題同上解決,一開始你會發現舉步維艱,到處都是不會不懂的,後面就慢慢的有點自信了,就算不會也可以學,有了這個信心你就入門了。


分享到:


相關文章: