Ⅰ 做一個「獨立」程序員需要那幾種知識
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,永遠不能固步自封。本人在工作期間曾看見過很多程序員只要有閑暇時間就瀏覽一些沒有太大作用的網頁,在網上聊天,打游戲,浪費了大量的時間,十分不可取。而另外一種情況是,IT技術的日新月異使很多程序員眼花繚亂,什麼都想學,卻又不知從何學起,今天看看這個,明天學學那個,貪多不熟。
雖然IT技術發展迅速,但很多技術都是有規律可循,一些基本的概念、原理和方法還很通用,可以舉一反三。本人根據自己的體會和經驗,向那些剛剛踏入IT行業的新程序員們或正在迷茫的程序員們推薦程序員必須掌握的七種武器,有了這七種武器,雖不敢說笑傲江湖,但將自己立於不敗之地還是可以的。
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和java是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的「網路即計算機」的概念相當欣賞,並相信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
現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。
第七種武器:強烈的好奇心
什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
Ⅱ 程序員怎麼厲害為什麼不自己在網路上創業開發什麼的
厲害的程序員都會成立自己的工作室,接一些外包。然後厲害的程序員工資都很高,企業都是供起來的,分個期權,股份什麼的。不缺錢,所以對創業沒什麼想法,為什麼創業又耗精力又耗錢,不缺錢的人為什麼要創業。
Ⅲ 看完百戰程序員的視頻就能獨立開發項目嗎
百戰程序員的全部視頻完成後,就會有基礎的項目實戰能力,但是能不能開發出來就看自己掌握的怎麼樣了。
Ⅳ 程序員獨立開發項目中遇到急手問題你們是怎麼解決的
1、先問身邊比較牛逼的同事
2、網路 google還是挺強大的,就是你搜索關鍵字得情緒點更加容易找到你要的答案。
3、換一種方法達同樣的效果
4、先做別的模塊
Ⅳ 程序員如何才能成為獨立開發者
當你有了知識體系之後,遇到和你知識體系對應的場景相關的問題,就可以快速找到相關的知識,系統的分析問題,最終解決問題。
你看,是否擁有知識體系,導致了熟練開發者和普通開發者的一個非常重要的區別:熟練開發者能夠獨立負責一個模塊或子系統的設計和開發工作,擁有分析問題、解決問題的能力和任務分解的能力,可以分配任務給普通開發者。
進階修煉方向
好啦,從技術水平的角度講,普通開發者和熟練開發者的區別就在於:普通開發者的知識不成體系,而熟練開發者構建了與某個應用場景相關的知識體系。
這樣看來,普通開發者要想進階,方向就非常明確了:構建自己的知識體系。
那麼,怎麼構建知識體系呢?先參考我的另一篇文章:構建知識圖譜,讓自己更值錢。如果後續有機會,我會重構一篇新的文章,再聊聊構建知識體系這個話題。
Ⅵ 程序員四十歲以後該怎麼辦
這個問題,適合我回答。我是99年畢業的計算機系本科生,所以同學基本上都是40歲上下做it的人士。我就撿著幾個年輕時做過程序員的同學例子給你們說說,看看這些程序員40歲以後幹啥去了。
同學A,2000年去了某大公司H做開發,因為善溝通有親和力,後來逐漸脫離技術崗,做項目經理,售前,現在負責對外投資。
同學B,2000年去了某大公司H做開發,因為天賦好,技術崗位一路上升,做到中層領導職位,後來看好某新技術,毅然離職創業任ceo,堅持寫代碼至今。如今一邊經營公司,一邊寫代碼,一邊組織小樂隊吹拉彈唱,等著風口到來好起飛。
同學C,進入對日外包行業做程序員,現在自己組建軟體開發公司做老闆,時不常的還會弄弄代碼啥的。
同學D,進入對日外包行業做程序員被外派日本,後來定居日本,目前仍然是做維護代碼工作。
同學E,進入通訊領域做程序員,在換過多家公司之後,依然以資深專家身份玩弄著代碼,並以此為樂。
同學F,經歷了北漂創業,身體健康亮紅燈後,再次回到軟體外包行業打工。如今作為資深程序員堅持在代碼第一線,還經常加班。
同學G,畢業之後不久就炒了公司,做了軟體開發個體戶。從共享軟體到如今的APP開發,總能弄出名堂在排行榜中佔有一席之地。十幾年如一日,一邊瀟灑生活,一邊弄弄代碼保持排行名次。現在生活無憂,不停生孩子玩兒。
同學H,畢業後進了某大公司Z,做程序員。如今在Z司的下屬公司做某項目負責人。
所以說,各個行業呢,都是有深度的,不僅僅是寫代碼那麼簡單。只要你願意做下去,多年的行業經驗積累會幫到你。
軟體開發,或者說程序員工作,說到底就是一種工作。跟其他工作一樣,都是用來養家糊口的。喜歡呢,就做得開心些;不喜歡呢,早點轉行也好,或者繼續靠這個賺錢同時,培養點其他愛好也好,都行。
Ⅶ 程序員如何才能有獨立開發項目能力
難!我本身是軟體工程師,我從業都十多年了,就拿網站來說吧,比如你獨立開發一套PHP或者是Java的網站,通常,美工+WEB前端+後端開發+需求分析,設計的能力,相當於,你一個人,頂一個團隊的工作量,連項目經理都兼任,維護客戶都兼任!因為你得分析需求啊。
如果Java更難了,相當於美工(1人)+WEB前端(1人)+後端開發(3-7個),如果是APP的,還得加安卓+IOS工程師+項目經理。
如果是C++,巨難,雖然我也可以獨立開發。問題是,太耗費精力了。特別是嵌入式,其實C語言都有幾種,Java也有幾種,其他人,半桶水,不專業的。
最終,你要給客戶看到的效果!如果你美工 不行,後端不得,只要有一個嚴重的短板,你就不勝任真實的項目獨立開發的能力,自娛自樂可以。
寫驅動,談何容易,全世界,不超過1000人會寫底層的驅動。
第二個,我看到你說,做嵌入式的是學c++還是java ,我java比c++好一些,說明,你基礎不行,雖然是科班出生,科班難出人才,除非自學成才的天才例外!如果天才,你這個年紀的,或者大一點的,都能獨立開發了。特別是美工,需要天賦的!編程也是。需要悟性的,才有創造力,如果死讀書的書獃子,沒什麼創造力的。少數例外。
Ⅷ 程序員在轉行的時候,大部分選擇什麼行業
年度招聘市場經濟不好,很多公司不再招聘新員工。尤其是在It行業更是雪上加霜。很多程序員想轉行。那麼程序員可以轉行的職業是什麼呢。今天我們來介紹一下。最適合程序員轉業的十大職業是什麼。我國的編程教育是一個廣闊的市場,每年都有數十萬名新成員加入這個行業,因此,如果你經驗豐富,你可以成為編程講師,獲得不錯的收入。很多程序員技術太強,被公司淘汰後也不擔心落後。成為it自由職業者,可以在網路上接受外包開發工作,獲得收入。
因為程序員的性格一般都很內向。但是如果積極鍛煉自己,銷售也是一個不錯的選擇。因為銷售畢竟是公司的核心。考公務員進入事業編制是程序員的好選擇。程序員本身技術太強,思維能力強,所以如果能考上有技術需求的國企或事業單位,可以說是穩定的鐵飯碗。對於程序員來說,這可能是最好的出路。
Ⅸ 程序員獨立研發的時候,遇到問題了你們都怎麼解決啊
1.技術問題:網路,bing,SCDN,請教前輩
先網路,網路是個好老師。
網路解決不了的再bing搜索一下,我遇到很多次都是在bing上找到的。
當搜索引擎搞不定的時候,這時候需要論壇了,去CSDN找找相關的技術貼,總會有點思路。
最後就是找公司的同事,這個有些時候需要花一些代價,畢竟大家都很忙。
2.邏輯問題:有些時候會遇到很惡心的邏輯
當想不明白或者想不通的時候,我會試著一步一步把邏輯寫在紙上,這樣就會很清晰,如果在某一步被卡住了,那麼問題的關鍵也找到了。當然有些時候或許一開始就走入了一個誤區,從而導致了一個錯誤的思路,這個時候我一般會睡上一會,或者做些完全和開發不相關的事,目的是忘記剛剛所有的東西,然後從新審視問題,換個角度去考慮。
(個人經驗,純手打!)
Ⅹ 什麼是有獨立開發能力的程序員
1、為了做出的東西符合用戶要求,需要和用戶溝通,並寫出大概的項目計劃讓用戶確認;
2、需要根據項目計劃和功能結構設計資料庫表結構;
3、採用最熟悉的技術迅速的搭建程序框架;
4、開發的每一個階段都需要和用戶溝通,聽取改進意見,並針對意見做有效的修改,修改的工作量要控制在有限時間內的同時還需要符合用戶要求;
5、整個程序開發完成需要給用戶演示整個程序的使用方法,並可以給用戶其他相關人員培訓。
(10)程序員獨立開發擴展閱讀:
職業要求
一般的程序員都有四年的在專業領域的學習,需要一個在程序領域的學士學位獲得者,不論是數學方面的還是工程方面的都是可以的。
對於職業程序員,另外一個重要的方面就是,程序員需要不斷提升自己的業務技術,技術必須一直保持在一個較高的水平,並且要不斷發展,程序員也要尋找貿易的機會,要參加研討會,在周刊上發表文章和接受職業教育,這些使程序員在自己的領域中分級或者不斷並排前進。