1. 編程人員的成長歷程或者發展方向有哪些
想學編程——>學習編程——>熱愛編程——完結此生 <————|
| | |< ————— |
| |——>為編程事業作出貢獻— |
| | |
痛恨編程 只是 普通的程序員——————>|
|
放棄編程,同樣完結此生
2. c程序員的成長之路
編程語言基本是相通的,你做了兩年java程序員,相信演算法不成問題吧。
就C語言來說,還要看你在什麼環境下編程了,是windows還是linux,兩個環境用的C語言,數據結構和基本語法是一樣的,但別的方面還是有些不同的。看你自己選擇了。
3. 程序員如何能快速的成長跟學習
我記得剛剛跨入大三的時候,當時對於NLP、IR、ML等知識,真的了解很少,那個時候做項目特別的痛苦,不知道從哪兒入手,很多時候為了解決一些問題,就開始花時間去做調研,開始學會在ACL等頂級的期刊上面去找論文,在Google文獻裡面去找論文來讀,那個時候真的是每一天保持抽時間讀至少一篇論文,讀完就開始總結;最後發現讀了六七十篇論文,才剛剛開始入門NLP這個領域,才知道有那麼多人在研究那麼多有意思的問題。
那段時間特別的充實,但是進步真的很快,從一個小白慢慢的編程了一個入門者,最起碼別人跟我講樸素貝葉斯還有邏輯回歸等我開始懂了,我開始制定如何去訓練一個模型,如何去選擇特徵,如果去抽取特徵;而這些都是來至於讀的那六七十篇paper,這六七十篇paper有的很經典,有的很垃圾,但是他們就像一張網一樣,在擴展我的知識面。
那段時間特別的充實,但是進步真的很快,從一個小白慢慢的編程了一個入門者,最起碼別人跟我講樸素貝葉斯還有邏輯回歸等我開始懂了,我開始制定如何去訓練一個模型,如何去選擇特徵,如果去抽取特徵;而這些都是來至於讀的那六七十篇paper,這六七十篇paper有的很經典,有的很垃圾,但是他們就像一張網一樣,在擴展我的知識面。
可以參考:http://acl2017.org/
可以參考:http://acl2017.org/
4、多和同行交流
不懂就要問,多和行業的牛人去交流;其實很多人都很願意和你交流,多問問別人是怎麼做的,那些技術問題有沒有什麼新的方法去解決等等,把你的問題准備好,可以請人家吃個飯,邊吃邊聊,或者直接向人家請教;請教完了做自己的總結,該補充知識的時候就要學會去找資料,慢慢的一步一步的進步,成長。不要想著一步登天,更別想著「速成」
4. 程序員成長過程
序員是一種技術工作,在IT的發展中有相當重要的地位,從底層硬體通訊協議的建立, 到數據傳輸層的處理,到操作系統的建設,到資料庫平台的建設,一直到應用層上各種數 據營銷平台的搭建,程序員在裡面都扮演著舉足輕重的角色並為IT事業的發展做出了巨大 的貢獻。
中國有很多精於編碼的人,但是中國軟體行業,尤其是網路應用開發方面誤區很大,很難形成有規模的軟體開發力量和產品能力,不但比美國差距甚遠,和印度相比也是頗有不如。這些問題不是在於中國程序員的智商和工作努力狀況,也不是在於國家和民間對開發的投入程度,而是很大程度上,有一些對技術,對程序開發,對項目設計方面的思想誤區,這些誤區,導致了軟體行業的產品化能力不足,缺乏規模化和大型復用系統研發能力,可以說,改變認識誤區,是解決軟體行業小作坊模式和個體英雄模式所帶來的局限性 的重要工作。
中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少代碼,他們有的代碼寫的很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程序的整體理解能力,這些人,一個網上的朋友說得很好,他們實際 上只是一些Coding fans,壓根沒有資格稱為程序員,但是據我所知,不少小網路公司的 CTO就是這樣的coding fans,拿著嚇人的工資,做著嚇人的項目,項目的結局通常也很嚇 人。
5. java程序員成長之路
自製力如果高、自學學習能力強,又能夠耐得下心學習,可以考慮自學。如果沒有前面的這些條件,要是有人要帶你也可以。 真正都沒符合上面的條件的話,考慮培訓
培訓時間大概在4個月左右
6. 程序員畢業第一年如何快速成長
程序員在畢業第1年想要快速的成長,我覺得首先這個時候你就應該找一份比較踏實的工作,千萬不要管這份工作能拿多少錢,盡量有一個人能夠多帶帶,你這樣就能夠快速掌握一些編程的技巧,而且也能夠學以致用。
7. 一個java程序員如何從新手慢慢成長
一、首先初識語法的階段,必須要學會怎麼操作對象,操作if和for,操作list set
map,然後是線程、IO和jdbc什麼的,其餘的,若是一時不理解,可以後邊需要時再學。
這階段完了,你可以寫些能在控制台列印出來的小程序,鍛煉下邏輯思維。也就是號稱JAVASE畢業了,其實不過是入門而已,如果要往WEB方向發展,這些倒是基本足夠了。
二、接下來要學HTML JSP SERVLET 資料庫 JAVASCRIPT
TOMCAT,目標,寫出第一個動態網站,也許只是個登陸功能,只能展示下個人資料,但這是很重要的一步,你要弄清楚的是,一個用戶的點擊產生的請求,是從哪裡發起,哪裡接收,哪裡處理,哪裡返回,你得理解瀏覽器和伺服器的關系和分工,cookie和session,request和response。這個是個WEB開發的學習初級階段,這都是些JAVA誕生以來最原始的最官方的WEB開發技術,當然現在真正的項目很少直接採用這些技術了,為了不斷提高技術的易用性、開發效率和可維護性、可擴展性,無數開源項目都是在這些原始技術的基礎上封裝、改進。所以這個階段不要盲目樂觀地跑去找工作或者對實習挑三揀四,你會被打擊到的。
三、初始階段完成,開始進入WEB開發的正題,首先是傳說中的三大框架,struts hibernate
spring成為熟練的增刪改查程序員是必須的,在這個階段你還要理解為什麼要用這仨而不是那些JSP SERVLET
JDBC,你要體會到寫MVC、三層架構的好處。這個階段不要輕易質疑三大框架的價值,也許剛開始你會覺得麻煩,覺得他們有時候是多此一舉,一兩年後回過頭來你會覺得少了這些框架你已經很難幹活了。這個階段還要避免的心態是能熟練地增刪改查了,就認為寫程序不過如此,然後往簡歷上填個精通,這也是新手面試被批得體無完膚的原因之一。如果你學得好,這會應該能熟練地寫個博客啊,小論壇啊之類的WEB項目了,也就是達到了就業的基本要求。
接下來就沒有固定模式了,你的第一家企業對你的影響會很大,在這頭一年裡,定個標准吧,你應該能做到的有:
1、把一些常用的瑣碎技術學會了,比如xml的作用和實際運用,如何操作文件,如何運用日誌,如何簡化封裝常用的工具類,比如日期操作、編碼處理、分頁模塊等等,這些小東西會佔用你大量的時間去處理摸索。
2、把資料庫用好。資料庫不是會增刪改查就可以了的,你要關注事務設置是否合理,是否有可能產生臟數據,是否要動用樂觀鎖悲觀鎖等等,重要數據出了錯,無論是技術上還是業務上都是很麻煩的事。
3、懂得什麼是集群,什麼是分布式,懂得怎麼向別的系統發請求,交換數據,webservice。
4、如果你也寫頁面,你要會用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無刷新的頁面操作以及AJAX請求。
第一年能達到這個程度,你絕對已經在平均水準之上了。
下一個階段,你應該考慮你的代碼質量了。
1、多線程和非同步、並發的概念會忽然變得很重要,因為在一個對性能有要求的系統里,是不會允許你把各種瑣事都排著隊一件件去辦的,你不能老寫些a方法調b方法再調c方法再調d方法然後返回的代碼。
2、你會發現資料庫性能實在不行,出於不甘現狀,或者趕時髦,你該去了解nosql了,memcached redis
mongodb,眼花繚亂,沒關系,試著用用,能很好地緩解mysql之類關系資料庫的壓力。
3、出於公司某些業務需要,你可能會鑽研一個特定技術領域,比如全文搜索技術,lucene\solr,比如工作流jbpm,比如許可權系統,單點登陸之類的,又或者某些特定業務領域的演算法研究,這些是你的加分項。
4、你開始發現你的代碼很亂,久了以後自己都看不懂,重復的,難以重用的代碼堆積如山,不想維護,BUG百出。於是你要開始重視設計模式,合理地改造下自己的代碼習慣,不再被僵化的SSH,MVC三層架構束縛住。
5、Google和各種資料是你進步的動力,極少再遇到必須請教別人才能解決的問題,如果你這個階段還老是問別人,你的技術生涯也就快到頭了。
這個階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領水平,至少接近了。
接下來又是個全新的階段。
1、你要讀讀優秀開源項目的源碼,你要搞懂一些當年不懂的基礎知識,你開始理解thinking in
java的精髓,你能寫一些底層的代碼,有時還會覺得自己封裝的比某些開源工具更好用更簡單。
2、WEB的難點和重點永遠都在於性能、負載能力上,而現在網路的發達造成了數據量和操作密度的大大上升,硬體卻沒有相應的進步,你得試著更好地運用更多的伺服器來協同工作,從WEB端到服務端到資料庫,全都需要集群,需要分布式,需要合理的控制數據的流向,掌握好網站上下,一大堆機器的平衡,找出性能的瓶頸,找出穩定性和安全性的瓶頸,硬體出現故障,第三方技術出現錯誤,將被當成家常便飯融入到你的系統和代碼里仔細考慮。
3、開始覺得方案無比地重要,一將無能累死千軍將不斷應驗,一個不好的設計,一個不好的方案,會讓一群優秀的程序員工作成果大打折扣。你要關注架構知識,不能再滿足於SSH三層架構到底。領域驅動設計,面向事件開發,敏捷開發等等一系列的思想在關鍵時刻能決定你項目的生死,這個階段不再有標准範例讓你照抄,你只知道思想和原理,實踐卻需要自己不斷嘗試和改進。
4、多關注各種雜七雜八的開源技術,有些你可能前面已經接觸過了,和通信有關的,和集成開發環境有關的,和架構有關的,各個領域你都應該能信口說上幾個主流技術,雖然你可能只是聽說過,了解,但關鍵時刻你得知道如何去選擇技術,並快速掌握它。你還會去考慮嘗試下別的語言,這里不是說轉向什麼C++
C#之類的,那和JAVA程序員不相干,我說的是一些運行於JVM之上的語言,比如scala和groovy,初識他們時你會覺得java真的老了。但當你回到一個綜合性的大型項目中,又會覺得java積累下來的整個體系技術是如此完善,就像一個工業化標准一樣。
你能把這個階段實踐好,勝任項目經理,乃至中小公司的技術總監都是可以的。
8. 網站程序員的程序員成長之路大概分幾個階段 和未來的發展
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,如何才能成為一名合格的程序員,一名合格的程序員需要掌握哪些技能呢?為此天天招生網采訪到幾位孳生的程序工作人員,就如何做好一名成功的程序員談出了自己的經驗。
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C和JAVA是重點推薦的開發工具,C/C以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知資料庫
為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。
對操作系統有一定的了解
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。
懂得網路協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
明白DCOM/CORBA/XML/WEB Services存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。
不要將軟體工程與CMM分開
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
擁有強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
如果您正為如何成為一名合格的程序員而發愁的話,希望以上文字能為您排除一些顧慮和問題。如果您想獲得更多有關程序員的信息,那麼請隨時關注天天招生網,我們將在最短的時間內提供最
真實,最准確的相關信息。
9. IT行業大多數技術人員的成長階段大致分為哪幾個呢
第一階段:學徒階段
這個階段有些人是在學校里完成,有些是通過自學完成,有些人是半路出家通過各種教育平台完成。這個階段,剛接觸代碼不久,有些問題變如同霧里看花,但終究是開始行動了,所以這個階段過得很快,心態上可能還是覺得前路不清晰但已經逐漸有了成就感。
第二階段:初級程序員
這個階段的人通過學習已經掌握了一部分的技能,比如知道如何團隊協作、項目版本如何控制、如何使用項目管理工具、如何讓代碼順利運行上線等等,這個階段也許做了一些小的項目便開始覺得自己會得東西不少,其實只是算個半吊子程序員,這個時期的程序員很容易覺得其他程序員也不過如此。
第三階段:中級程序員
這個階段的程序員已經掌握了進階的技能,並逐步確立了自己的專長,在職場中開始能夠獨立承擔項目,並會有意識地去學習。這個階段像一個分水嶺,有些程序員除了工作不研究其他的技術,雖然在工作中很容易完成任務,但很容易就被更加年輕的程序員所代替;有些人則是不斷的提升自己,熱衷於研究各種技術實現細節,多和他人討論,多看了很多書籍文獻,這些人有著自己的規劃,在工作幾年後就是項目組中不可或缺的人。這個時期他們的薪資暫時沒有太大的差距體現,也是在程序員平均水平。
第四階段:高級程序員
這個階段對各種編程已經有了自己的認識,一些程序員脫穎而出開始帶領團隊。這個階段的程序員基本上在公司擔任CTO、技術專家、首席架構師等非常關鍵的職位。隨著自己知識的深度和廣度的提高,反而會覺得自己需要學習的東西更多了,在這個階段,他們對於團隊在工作中遇到的問題,基本都能解決,因為很多知識都自成體系了,站在更高的角度宏觀的看待問題。
第五階段:自我創業
這個階段的程序員已經有了自己的資本和人脈,很多人開始選擇自我創業,哪怕不想自己成為老闆也會選擇與人合作創辦公司,他們有些是為了實現自己的理想,有些是為了能夠獲得更高的生活,這個階段的程序員已經不是單純只考慮編程本身了,還會開始接觸很多商業知識。
以上就是我的回答,希望對你有所幫助
10. 如何成長為一個真正合格的程序員
優秀程序員都是很努力的
一個真正合格的程序員,除了要有扎實的理論基礎和代碼能力,還要有諸多的綜合素質。除非你只是一個純粹的碼農,除非你只是想做一點平淡的代碼工作,否則如果你想有更好的發展,那就必須「學習」。從我自己的發展經歷來講,其實我只是一個半路出家的程序員,我沒上過高中,只是師范畢業,學的還不是計算機,而是美術專業,從參加工作那天起開始自學計算機,花了半年學會了VB程序設計,寫了第一個vb程序,一個校園的自動播音系統,實現了校園鈴聲、升旗、課間操等定時音樂的自動播放,免費提供給學校使用,給學校帶來極大方便,從此我愛上了編程。後來為了宣傳單位的形象開始自學ASP腳本語言,一個月時間寫出了第一個ASP網站,在這個過程中學習了網頁前端布局,知道了前端可以有JS控制,知道了域名是什麼,知道了http協議,知道了WEB服務的發布。從那時起,我覺得網站建設就是一個商機,從此開啟了我的網站建設之路。其實也就是程序員發展之路,至此,我在這條路上一發不可收拾。
在這期間我開始接一些網站建設的活兒,一開始,在網上搜索一些開源的代碼進行修改,滿足客戶需求,但是很快發現一些問題,大多數代碼都是預先掛了一些廣告在裡面,如果對程序不熟悉,等你網站發布出來,你就只能看到滿山的網站,客戶當然就不滿意了,最後你還不知道這些廣告從哪裡冒出來的,甚至有些網站留了很多漏洞和後門,讓你防不勝防。所以,想想還是自己寫一套CMS系統,我只自己使用,只放在自己的伺服器上,這樣的話安全性高了很多,至少被攻擊的幾率少了多,也不擔心莫名其妙冒出來的廣告。於是,我開發了第一套產品,屬於我自己的CMS,期間我可以說學到了更多的知識,累積了不少的產品開發經驗。所以這里我總結一條,要成為一個合格程序員,最好完整的做一個項目吧。哪怕是項目的前端不懂,資料庫不懂,逼迫自己去學習,去了解,最終產品雖然不夠完善,至少你了解一個項目需要什麼,和什麼技術有關聯,這樣對你自己所擅長的東西就很有幫助。
不斷學習,與時俱進。我喜歡一句話叫萬變不離其宗。雖然程序語言有很多,但是基本原理還是相通的。我做了第一個ASP的CMS以後,很快發現ASP的程序網站已經不能適應項目開發的需求,需要更加高效的腳本語言來實現更多的功能。這個時候php就成了我首先研究的語言,因為我發現很多第三方開放的APi提供的都是PHP的,這讓我們使用更多其他第三方功能的時候開發會更加方便快捷,所以我花了一個周,學習了基本語法和函數,我發現從ASP遷移到PHP其實是很簡單的事情,只是語法不同,程序結構也是一樣的,條件格式、邏輯判斷、條件分支、循環處理也都差不多。經過學習很快掌握了這個語言,開始了項目開發之路。可見不斷的學習,也就是自我成長的一個重要的過程。
良好的思維能力,這是一個程序員必須具備的技能。思維能力就是一個能夠讓代碼在你頭腦中執行一遍的能力,也就是說你在寫代碼的時候你的腦海里就能呈現出代碼運行以後的結果,呈現給用戶的界面,把抽象的邏輯代碼轉成具體形象的能力。良好的思維還體現在,一個程序的處理其實都離不開計算機運行的本質,那就是數據輸入(數據從哪裡來),到數據處理(獲取的數據需要怎麼加工處理或者轉換為另一種形式),最後到數據輸出(給用戶呈現一個結果,圖像的、文字的、視頻的、聲音的或者是多媒體的)。程序整體是這個理念,分解到很多細小的模塊也是這樣,所以只要有這些核心理念,你的思維能力就不會有問題。
通過我的學習和發展,我總結了,要讓自己成長為合格程序員,離不開學習,離不開項目實踐,離不開思維的創新,更離不開努力勤奮和汗水,願有志青年都想有所成,學有所收,成就自我!