編譯開發人員
① 項目開發經驗談:如何成為出色的開發人員
前言:之所以有此一文,不是空穴來風,也不是故意的嘩眾取寵,而是最近的一些所見,所感。在本文中總結出來,希望對大家有幫助。 因為一些工作原因,其他的系列文章沒有接著寫下去,還望大家見諒。 不要成為代碼的機器 開發人員的事情就是coding,沒日沒夜的coding,而且大家都是這樣在coding,但是效果和結局就不一樣:有人coding了N多年,技術還是原地踏步,編寫出來的代碼還是bug連連;有人coding就變成了技術骨幹,甚至有人成為了CTO, 架構師等。 首先從一個小的故事說起:一個項目,分配給了項目組的人開發。於是大家就熱火朝天的幹了起來。當時,就發現了一個現象:任務已分配完成之後,有人就開始coding了,噼里啪啦的開始敲代碼,不久之後又開始噼里啪啦的改代碼,然後又開始不斷的調試,找出bug,然後修改bug。很快,這個迭代的期限就到了,原計劃要完成的功能很多沒有實現,有的人也確實做完了,問題也一大堆,有人也確實完成了,沒有bug,但是在審查他的代碼的時候,就是看不懂。 這里想起了自己剛剛步入IT開發行業時候的情景。總是希望盡快的把事情搞完,因為只要沒有做完,就拖了項目的後腿,很可能被leader訓導,甚至可能被認為沒有能力而被開除。在寫代碼的過程中,發現一點:盡管寫代碼的速度是快了,但是在寫完了之後,每次編譯,都發現錯誤,編譯通過了吧,邏輯又有錯誤,然後就這樣不斷的縫縫補補,功能是完成了,但是心裡有一種想法:以後千萬不要讓我來看和來改這段代碼。因為代碼寫的很爛,爛的連自己都不想看,而且很多實現的方式也是很詭異。反正結果是:功能完成了。其實自己心裡也很清楚,在寫代碼的時候,腦子有點糊,而且寫著寫著就不知道寫什麼了。 後來慢慢的發現:如果再這樣下去,對自己的發展是沒有好處的,而且原本認為很有技術含量的編程活動也變成了一種沒有技術含量體力活,有時候甚至不用腦子。 就如軟體開發中的需求一樣:變化。 人也要:改變。 所以在之後的項目開發過程中,就給自己定了一個目標:寫完一個小功能的代碼,確保一次就編譯通過(當然,在寫代碼的時候肯定得注意邏輯,但是偏重在使得編譯通過),於是,在開發的時候,就開始用心了,或者說是更加的細心了。 一段時間的磨練之後,這個目標達到了,而且還超出了期望的值:寫完一個大的功能代碼之後,編譯也沒有錯誤。 所以這里悟出了一點:同樣是做事情,做的也是同一件事,目標不同,結果就不一樣。 這樣之後,寫的代碼質量確實是提高了,但是另外的問題又出來了:寫出來的代碼總是在縫縫補補,總是這里差一點,那裡差一點。很多地方很欠考慮。 寫代碼也是一樣的,不要走一步算一步。在寫代碼之前,首先從業務上,要把這個功能的流程搞清楚,然後再考慮:如果實現這個流程,要怎麼寫代碼。然後在開始寫代碼,於是帶著這個思想,發現自己寫出的代碼邏輯錯誤就少了,起碼在總體的流程上是對的,可能在有些地方缺少一些考慮,如驗證等。這樣bug也少了,開發的速度自然快了。 說白了,就是在實現一個功能之前,先要設計,或者專業一點,畫畫流程圖,其實流程圖也不一定非得用UML畫的那麼標准,很多時候,就是拿一支筆和一個練習本開始畫了,只要自己認識就行了。 採用這種方式之後,發現不僅自己的設計能力提高了,而且對開發出來的功能也是很有信心的。 其實很大的程度上就反映了設計的問題。 其實當我們在估算項目的時候,很多的時候我們沒有一個准確的估算,或者說只有一個大概的估算。其實這就是設計做的不夠。 如果設計做的充分的好,最後的結果就是:整個類,流程都基本敲定,只是填充方法的實現而已,這樣項目是否按照計劃進行就一目瞭然。 當然,這里不是閑著沒事專門的說教,也不是說些大話,空談,大談。 其實,編程終究是需要動腦的,多多的思考。 其上是自己的一些經驗,希望對大家有點作用,也希望大家多多的交流。
② 請問,編譯軟體最早是由誰發明出來的
Grave of Grace
後記
Grace Hopper是個非常amazing的人 (常被稱為Amazing Grace),崇拜她的人相當多。雖然她的事跡很多,但是還有很多有類似事跡的人並沒有像她這樣受到眾人的崇拜。由其中一點我們可以看出來:從1947年開始 (二戰結束後第二年),她獲得了第一個榮譽博士學位 (賓州大學),從那以後,她先後被40多所大學授予榮譽博士學位,其中包括芝加哥大學、華盛頓大學、馬里蘭大學等知名學府。各種婦女社會團體和學術組織都曾授予Grace各種稱號和獎勵。1991年,布希總統在白宮授予她的「美國國家技術獎」 (National Medal of Technology) 是其中的最高獎項,她也是至今惟一獲此殊榮的美國女性。她的名言有很多,她自己最喜歡的,也是她最喜歡對所謂的「年輕人」說的 (在她年老時,她所謂的年輕人就是「年齡不到我的一半的人就叫做年輕人」),這句話是:
「A ship in port is safe, but that is not what ships are built for.」
語錄
下面Grace的語錄中有幾句比較有意思的話。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, 「We』ve always done it this way.」
Humans are allergic to change. They love to say, 「We』ve always done it this way.」 I try to fight that. That』s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one』s superiors; care for one』s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, 「Information」; For in most cases, the information is more valuable than the hardware which processes it.
We』re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We』ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn』t budge a log, they didn』t try to grow a larger ox. We shouldn』t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, 「What are you?」
參考
維基網路:
http://en.wikipedia.org/wiki/Grace_Hopper
國立中央大學數學系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶魯大學計算機系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
計算機先驅:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in網路3Cand taggedcompiler,debug,Grace Murray Hopper,傳記,發明,編譯器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.
③ oracle資料庫開發人員說『需要重新編譯一下』是什麼意思 是說要重新跑某個過程嗎
重新編譯,就是某個過程或者函數哪裡做了修改 需要重新編譯成可以執行的文件,並不是說重新跑某個過程。編譯完成之後,把編譯好了的過程再重新運行。
④ 在國內從事C/C++編譯器的開發有發展前景嗎
我給你講講我的經歷。 我大概十年工作經驗,大概五年c++編譯器前端經驗(在兩家500強做靜態分析),四五年項目管理和品質過程改善經驗。其他主流語言都會用,實現的大概方式也明白。 前一段時間找工作,投了二十幾個c++職位一個電話都沒有。唯一的面試是朋友內推的阿里的項目管理專家。跑去面試,悲催,直接換崗成p5-p6的測試來面試,問了幾個測試問題直接讓我回家了(順便吐槽一下,他們對於測試過程感覺還沒問到點上) 最後的結局就是,沒人要,轉行去製造加工業了。我總結一下為什麼找不到工作(可能只是我偏頗的認識:一是這行需求太少,二是hr根本不知道你是幹嘛的,三是做這行的根本不好意思寫精通c++。
⑤ C開發人員和java開發人員哪個多大概的百分比,還有兩種開發語言的最大區別。
從我身邊的朋友來看 java:c 是20:1的樣子 兩種語言方向不一樣 做的東西不一樣
⑥ 想成為一名游戲開發程序員應該具備哪些條件
首先陝西優就業的老師給你講一下:
游戲開發中的程序開發主要由圖形引擎、聲音引擎、物理引擎、游戲引擎、人工智慧或游戲邏輯、游戲GUI界面(菜單)、游戲開發工具、支持區域網對戰的網路引擎開發、支持互聯網對戰的網路引擎開發九部分組成。
其次一名開發人員所具備的要求是熟練掌握計算機本科專業所學的知識,主要包括C或C++語言、數據結構、編譯原理、演算法等,另外線性代數、微積分、牛頓力學在圖形和物理引擎開發方面用途也很廣泛,如果要提高的話還有必要了解硬體相關的知識如計算機體系結構、匯編語言,這些對學習一個新的硬體平台、編寫最優化代碼、提高自己游戲的競爭力都是非常有益的。如果你可以保持有恆心、不怕苦的心態和對游戲的熱情也是很重要的。
⑦ 程序員是做什麼的什麼是程序
程序員:
程序員是從事程序開發、程序維護的專業人員。程序員一般需要會做:確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。安排項目要求在編程序列分析要求;准備工作流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖等。
通常情況下將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。
軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
程序:
程序是香港和台灣對英文procere的中文翻譯,是在大陸於計算機科學、電腦工程、電子工程、電機工程、機器人工程學、機械工程領域中的英文術語program的中文譯名。
一個程序即是特定的一系列動作、行動或操作,而這些活動、動作或操作必須被執行於相同方式以為了在相同環境下恆常得出相同的結果。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用於指導懂漢語和烹飪手法的人(體系結構)來做這個菜。
(7)編譯開發人員擴展閱讀:
1.一般的程序員都有四年的在專業領域的學習,需要獲得在程序領域的學士學位,不論是數學方面的還是工程方面的都是可以的。不同分類方式程序員分為:
(1)按照所使用的編程語言來分,程序員分為:c/c++程序員、php程序員、java程序員、delphi程序員、net程序員、asp程序員等;
(2)按照面向的開發平台來劃分,程序員可以分為web程序員、移動開發程序員;
(3)對進行移動設備程序開發的人員來說,針對的操作系統不同,還可以分為針對蘋果ios程序員以及針對安卓程序員。
2.服務於計算機科學的程序稱為計算機程序,也稱為軟體,是指一組指示計算機或其他具有信息處理能力裝置執行動作或做出判斷的指令,通常用某種程序設計語言編寫,運行於某種目標體系結構上。
在大多數計算機中,操作系統例如Windows等,載入並且執行很多程序。在這種情況下,一個計算機程序是指一個單獨的可執行的映射,而不是當前在這個計算機上運行的全部程序。
網路-程序員
網路-程序
⑧ 開發人員一般會犯那些邏輯錯誤
邏輯錯誤是相對於編譯錯誤來說的,例如程序代碼的語法有問題,編譯時就會出錯。而邏輯錯誤在語法上是正確的,程序能夠編譯並運行,但是運行的結果與預想的不同。
比如你想判斷一個人的名字是不是叫Jill,但編寫程序時卻少寫了一個l,變成了Jil,在運行時就會發生邏輯錯誤。
更隱蔽的邏輯錯誤的例子還有很多,比如變數由於忘記初始化而包含垃圾數據、忘記判斷結束條件或結束條件不正確使得循環提前或延後結束,甚至成為死循環等等。
編譯錯誤由於會被編譯器發現,所以並不會帶來嚴重的後果,相反很多邏輯錯誤很難發現,從而導致程序出現BUG
⑨ 軟體工程師是干什麼的
cs201 全棧軟體工程師免費下載
鏈接:https://pan..com/s/1uvC9DjwH3O3qemDwhmO_OA
全棧工程師是指掌握多種技能,勝任前端與後端,能利用多種技能獨立完成產品的人。