高级工程师必须精通的七种武器(摘录)
?注:黑體是從?jiangjiayi的csdn博客中摘錄,灰色字體是我同意,不懂或不同意的。
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中c/c++和java是我重點推薦的開發工具,c/c++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用c/c++編寫。而java的跨平臺和與web很好的結合是java的優勢所在,而本人對sun公司的“網絡即計算機”的概念相當欣賞,并相信java及其相關的技術集java one會成為未來的主流開發工具之一。其次,如果能掌握一種簡單的可視化開發工具,如VB,PowerBuilder,Delphi,C++Builder,則更好,這些工具減小了開發難度,并能夠強化程序員對對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
上面說至少熟練掌握兩到三種開發工具,可能是對于高級工程師的標準;對于初中級工程師,可能熟練掌握一種并能完成工作任務就夠了。我現在剛入職兩天,能簡單運用vs2012,用過一段時間的Eclipse。先精通自己必須用的。由于自己接觸比較多的是C#,簡單了解java。所以對c/c++,java發言權不大,但一直想學習,相信在把C#搞精通以后會學習相關的內容。我認為,學習技術毅力固然重要,但要循序漸進,切記急功近利。沒人學個兩年技術就成為高手的! 腳本語言自己暫時沒有接觸過,工作之余會找相關知識學習。 還有一個疑問,上面沒有提到C#,最近看了一篇關于編程語言的爭論,說現在在一些很厲害的程序員(能進google,微軟)中間形成了類似于教派之間的都成,有些人信奉c++,有些人信奉java。 我認為,程序員可能有自己的偏好,或者熟悉的領域,會有意無意對自己不熟悉的語言有點小恐懼和排斥(我自己有這種感覺,需要改!!) ?雖然我人微言輕,但我相信,壓根就沒有什么計算機語言孰強孰劣,而是擅長的地方不一樣(有句我認為是大牛的人的比喻很恰當,暫時記不得,回頭補上)。
?
第二種武器: 數據庫
為什么數據庫如此重要?很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關系型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業數據庫系統,可以使用免費的數據庫產品是一個不錯的選擇,如mySQL,Postgres等
我自己最常用的數據庫是Sql server 2008,由于在做的項目是用mvc,基本不用寫sql語句,而且自己的sql功底只能說一般,只能勉強應付工作需要,這方面需要加強。數據庫確實非常重要。不管什么樣的應用程序都是數據的交互。 自己以前做過幾個小項目,其實把外衣脫去以后,說到底就是數據的增刪改查。 加強!
?
第三種武器:操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的變成高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平臺,Linux幾乎具備了所有現代操作系統的特征。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲得不少資料。只有對操作系統有一定的了解后,你會發現自己上了一個新的臺階。
以前考研復習的時候,認真的看過操作系統,現在想來并沒有對操作系統有多少理解,腦子里殘留的是對其中概念的生搬,得改進!Linux心里雖說一直要學,但始終沒有行動!move!!!!!
?
第四種武器:網絡協議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支持的規范。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即為什么需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。
第六種武器:軟件工程與CMM
現代大型軟件系統的開發中,工程化的開發控制取代個人英雄主義,成為軟件系統成功的保證,一個編程高手并不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話可以概括我的看法:“創意無限,流程保證”
第七種武器:強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在!
?
總結:嚴格來說,自己沒有一項合格,作為一個初入職場的菜鳥級程序員,自己要走的路還有很長,很長......馬上要開始三個月封閉開發,努力,希望有長足進步。一年后再回顧,看自己技術是否長進,心態是什么樣。好奇心還需要培養,自己很缺乏好奇心。
?
---------------謝謝csdn的jiangjiayi? , 以上內容是他博客的摘錄,覺得很有用,暫時可以當做一面鏡子,檢驗自己的能力!!
2013.03.05 于公司 ?
鄭州?
posted on 2013-03-05 15:38 Evoque 閱讀(...) 評論(...) 編輯 收藏
轉載于:https://www.cnblogs.com/evoque/archive/2013/03/05/Evoque.html
總結
以上是生活随笔為你收集整理的高级工程师必须精通的七种武器(摘录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c/c++头文件函数一览表
- 下一篇: linux 下mysql命令 (授权用户