JAVA開發(fā)了好幾年,不知道自己是不是一個(gè)合格的程序員,姑且說下!

怎樣才算是一個(gè)合格的程序員?

業(yè)務(wù)方面:

1,業(yè)務(wù)代碼要很nb:有些所謂"大牛"認(rèn)為,業(yè)務(wù)代碼總是那些方式方法,不能促使一個(gè)人持續(xù)成長,我個(gè)人認(rèn)為這是謬論,技術(shù)本就是為業(yè)務(wù)做實(shí)現(xiàn)的,而業(yè)務(wù)也是靈活多變的,如果不能根據(jù)業(yè)務(wù)變化,提升代碼的可擴(kuò)展性,兼容性,那么代碼就不是好代碼!

2,要熟悉全流程:我一開始在公司做的時(shí)候,只是把主管交代的任務(wù)做完就沒事了,然后對(duì)整個(gè)業(yè)務(wù)線沒有基本認(rèn)識(shí),導(dǎo)致寫出了一些不符合業(yè)務(wù)邏輯的代碼,主管很是不滿,所以你要掌握的比別人交代你的更多,熟悉整條業(yè)務(wù)線!

如果你只掌握分配給你的業(yè)務(wù),你可能成為你系統(tǒng)的負(fù)責(zé)人,但是你永遠(yuǎn)成不了總負(fù)責(zé)人!

態(tài)度方面:

1,孜孜不倦:一入開發(fā)深似海,程序員一職,伴隨著互聯(lián)網(wǎng)技術(shù)的不停迭代更新,技術(shù)層出不窮,只有不斷的學(xué)習(xí)才能不被淘汰并成長!

2,學(xué)以致用:一般學(xué)習(xí)一門技能可以通過官網(wǎng),社區(qū)等渠道,但是要想掌握,只能是靠自己,把你學(xué)習(xí)的技能用無數(shù)個(gè)demo的形式,掌握它!然后在實(shí)際開發(fā)中使用!

3,三省己身:把自己的所用所學(xué)不斷的總結(jié)歸納,形成一個(gè)系統(tǒng)的完善的知識(shí)體系,才能不斷的開枝散葉!

怎樣才算是一個(gè)合格的程序員?

實(shí)際技能方面:

程序員不是固定的職業(yè),有大數(shù)據(jù)的,web服務(wù)的,應(yīng)用開發(fā)的,根據(jù)自己的技術(shù)范疇選定自己最應(yīng)該掌握的!以web開發(fā)為例,起碼需要包括:

前端:

CSS樣式表,HTML布局,頁面渲染方式,瀏覽器兼容性,原生js,前端框架諸如react,vue等,前后端分離技術(shù)之node.js!

后端:

接口開發(fā),接口文檔書寫,文件處理(bio.nio),算法和數(shù)據(jù)結(jié)構(gòu)(排序,查找,各種樹結(jié)構(gòu),堆,隊(duì)列等),緩存(redis,memcache,ehcache等),中間件(消息中間件:xxmq,kafka等,數(shù)據(jù)庫中間件:mycat,cobar,sharding-jdbc等),nosql(mongodb,redis等),微服務(wù)架構(gòu)(dubbo,springcloud等)!

前后端都需要:

通信:熟悉通信方面的知識(shí),了解并掌握TCP/IP,HTTP等通信協(xié)議,了解"握手揮手"方式和連接原理!

數(shù)據(jù)庫操作,包括增刪改查和相應(yīng)的數(shù)據(jù)傳輸!

數(shù)據(jù)加密傳輸,解密使用!

解決字符編碼亂碼問題!

防止重復(fù)提交,防止數(shù)據(jù)格式,數(shù)據(jù)類型等錯(cuò)誤!

防止惡意攻擊!