㈠ 程序員需要學習什麼
需要先學習一門計算機語言
要不怎麼編程呢?
㈡ 程序員應具備怎樣得數學基礎
看你要做什麼樣的程序員。
如果就是一般的做計算機軟體的程序員,幾乎不需要什麼數學基礎,當然,如果你有一些離散數學的基礎是最好不過了。
但如果你要做計算機特殊領域的程序員,比如,人工智慧,模式識別,數據加密,數據壓縮,數字圖像等等,那就需要相關的數學基礎了,包括微積分、線性代數、概率論、統計學、數論等等。
蓋茨曾經說過,不要過分誇大數學對軟體的重要性。
㈢ 要成為一般的程序員數學要求如何
思維的方法要求比較高。另外對數學的基本常識理論要懂,比如
計算2010年是否閏年,則要對閏年的判斷方法用數學建模來表示。
比如水仙數等,這些基本的數學方法。
另外寫個程序得出某個事件處理的結果,首先就要求你了解這個事件的整個過程(這樣才可以知道原理並建立數學模型),其次是這個事件的處理方法(就是如何得出該結論),最後就是反復調試直到沒有漏洞。
㈣ 高級程序員需要具備的數學知識有哪些
最開始我也不知道有啥關系,直到大三的時候看一些圖像處理的書
卧槽!矩陣是干這個用的啊
㈤ 學編程需要哪些數學知識
1.學習方法:本人認為這比什麼都重要如果這個沒掌握的話,可能直接影響你的成敗。眾所周知。。計算機知識 尤其是編程涉及到的知識可以說浩如煙海---那麼面對這么多的知識該怎麼去學呢?
---重點:1重實踐,不要去想,把一個知識點完全徹底的掌握,那將是非常恐怖的,有編程經驗的朋友都知道,編程里每個知識點深糾起來的話是非常困難的,更不要說是新手了。。那麼知識點該掌握到什麼程度呢? 個人認為:1-知道它是做什麼 2-知道怎麼使用。 這就足夠了。。。。不要去管他的原理是什麼,能把東西做出來才是王道。。。
---重點:2多寫, 這個在編程界可以說是真理了,真正寫程序的人都知道,一段程序你理解了並不代表你就會寫了,那麼怎麼樣才能提高「寫」的能力呢? 本人認為要注意一下幾點 1- 練習多做是必然的。 2- 做練習時不要因為覺得代碼簡單就只看不敲,哪怕多敲一遍HelloWorld 都是有好處的。 3- 相似的代碼不要復制,我見過很多朋友,遇到兩段程序類似,就懶的敲直接粘貼過去修改。。。請記住這是軟體開發人員的做法,而你不是,目前你還只是一個學習者而已。所以 原則就是 能敲的就不要復制。
---重點:3把精力用在理解上而不要用在背上 寫程序的朋友都知道,函數---關鍵字---常用類什麼的,都非常的熟悉,為什麼我們背過嗎?沒有 寫的多了自然就記的牢了, 所以建議新手不要去死背什麼概念,或語法 一定要理解它的作用。。。
---重點:4 筆記,我認為這點很重要,我自學時全是看書,和視頻教程,然後總結對自己有用的東西。記在本上,而將來如果印象不深刻了由於是自己用自己理解的方式寫的,簡單翻一翻就能回憶起來,而如果,你忘了再去翻視頻 或 翻書的話。。那麼即使你曾經學過,也可能一時想不起來。。。
1.關於數學。。。這個問題,我覺得是目前爭論最多的話題,我見過N多人說 學編程要學XX數學---什麼微積分---什麼離散---嚇的新手連想都不敢想,我只想對這些人說一句,如果你懂,請你們幫助新手,如果你們不懂 請你們閉嘴 謝謝不要 誤人子弟。。。那麼下面我來 具體回答一下數學方面的問題。。。
1- 編程用數學嗎? 用! 回答是肯定的,但要看你是做哪方面的程序。 懂編程的都知道,現在編程基本分B/C構架,即:客戶端/瀏覽器端 與 C/S構架 即:客戶端/伺服器端 前者基本上就是JAVA PHP ASP.NET 等等。。。其中有多少地方用到了數學,如果還堅持沒數學學不了編程的朋友請站出來回答下我的問題。。。
至於C/S 如果不是做系統級的程序員 或 大型3D圖象處理 或者是音頻處理的軟體我請問又有多少地方用到了數學?如果你覺得x/y=z 這也算高等數學的話,我無話可說。。。。總結--除了3D等圖象處理編程 或 音頻處理編程 或系統級編程以外 其他編程對數學要求並不很高。。。。
2.關於英語, 我認為這個是個不可迴避的話題,學編程一點英語不懂我覺得不太現實,畢竟有很多文檔也是用英文寫的,而且程序員都知道,編程時經常要用簡單的英文,哪怕是定義個變數名,也要用英文起名, 沒見過哪個程序員定義的變數叫什麼aaa或bbb的。 那麼新手該怎麼面對英語呢, 我覺得很容易,按照書上或教程上去做就足夠了,1 編寫程序時 按規范要求去做,首先變數名,用見名知意思的英文單詞, 寫注釋時 也用英文短句。。。 拋異常時 也用英文來標注等等。。。。慢慢積累,時間久了你就會發現其實計算機里的英語 就只有那麼幾句而已。。。
3.關於學校 這個我也想提一下,有很多想以程序員為工作的朋友可能都考慮過找個培訓班---但我的建議是。不要去---起碼一般的不要去,為什麼?效果不好,就這么簡單,我親自到XXX著名編程培訓學校試聽過。。。結果很遺憾 一周才那麼幾天課,我3天閱讀的知識點比他們1個興趣 教的還多。。。而且上機和理論還是分開,新學的知識不能立刻上機實踐等等。。我覺得都是很嚴重的弊病。。。跟嚴重的那些所謂的學校給學生們造成了一種假象。。。只要在學校里考試合格了,出去就能做程序員,甚至軟體工程師了。。。最後他們將發現,原來他們在學校里學的 只是基礎中的基礎而已 - -
4. 自學的資料,我個人認為,自學第一重要的是 視頻教程,懂的人都知道,編程學習時重點並不完全是知識點,而是如何運用那些知識點,這也是項目經驗今天被人們這么看中的主要原因。。。所以視頻教程絕對是不二的選擇,現在網上的視頻教程非常之多 各種各樣的都有 具體怎麼找相信不用我教了 google 電驢 迅雷--我就是靠他們活過來的 。。。而且視頻教程還有一點是學校比不了的,那就是 你可以隨時看 重復看,一個知識點沒明白 你可以反復的聽10遍 20遍都沒問題, 學校恐怕就不行了吧。 另一個優點是可以在你狀態好時看, 大家都有狀態不好的時候,累了-困了 很正常,可在學校,誰管你? 老師講完了 聽不懂你自己的問題,而視頻呢,好辦 累了 先休息一會 有精神了 想怎麼看就怎麼看。。。我覺得 找到好的視頻教程。。比任何老師都重要。。至於出現問題不懂怎麼辦? 相信能來到著找到我這篇文章的朋友 都有辦法解決的。。
5.書 --- 我非常喜歡看視頻教程,但我堅決反對只看視頻不看書,為什麼?很簡單視頻傳授的是 寫程序的經驗 而書則是細膩的為你講解其中的原理。。所以我的建議是 先把一個知識的視頻看一遍,然後再把書翻一遍 然後自己再寫2遍 量變必然引起質變 我相信這是放之四海 而皆準的道理(指編程行業)
6.時間+態度 我認為這也很重要,很多人經常這樣問我,我1個月能學會編程么? 我半年能成為編程高手么? 我覺得有這樣心理的人比適合學編程。。。 學編程最忌心浮,一個知識點還沒弄明白 就想寫個項目出來 這是不可能的,這樣最後只能導致你自己喪失信心,編程要一步一步的來,相信我哪怕用一天時間才掌握了一個知識點,起碼比你用一天的時間 看完整本書強。。因為前者起碼你還是有點收獲的(指新手,老手兩天一本書很正常有經驗了嗎 - -) 這里我可以給大家一我的學習時間大家可做為參考。。。我是從0基礎開始一直到現在掌握j2ee基本所有的基礎開發技能 用時一年半,本人覺得不算慢 每天最少看書+練習5小時 每天不停這個是我的進度。
此文獻給想學編程卻又礙於各個方面左右不定的人,和正在學的初學者!
參考文獻:http://hi..com/vigorlin/profile!
㈥ 要想成為一名頂尖的程序員,要學習高等數學嗎
肯定需要,數學很重要,邏輯性也得很強
㈦ 程序員需要數學很厲害嗎
程序員不需要數學特別優秀,但需要有一定的數學基礎。
程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚。
數學是人類對事物的抽象結構與模式進行嚴格描述的一種通用手段,可以應用於現實世界的任何問題,所有的數學對象本質上都是人為定義的。從這個意義上,數學屬於形式科學,而不是自然科學。不同的數學家和哲學家對數學的確切范圍和定義有一系列的看法。
程序員崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
㈧ 作為一名合格的程序員,請問需要掌握哪些數學知識,學到什麼樣的水平
程序員的知識是多方面的, 數學方面至少高等數學大專以上文化程度,概率統計,數字邏輯運算方面的知識,主要就是做哪一方面的程序設計,有些學過的可能長期也不用,搞科學研究的、游戲、智能軟體開發、安全方面的要求就高一些,沒有一定數學基礎有些演算法書就讀不懂,搞社會一般應用的要求相對較低一些,這些只是常識,程序員關鍵一點把一門課及相關知識精通,可以把用戶提出的問題很快的自己能夠理解,轉換成計算機處理方式,成為軟體或網站,而且和用戶的需求基本一致。當然有些人的數學水平並不高,設計出的軟體人人愛用,水平很高,程序員的知識包括數學方面的知識也在不斷充實更新中。
㈨ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。
但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。
11月22日下午,清華大學經管學院互聯網發展與治理研究中心與領英聯合發布《中國經濟的數字化轉型:人才與就業》,揭示我國數字人才現狀與趨勢。
報告顯示我國數字經濟發展面臨人才短缺的挑戰,但這種短缺主要體現在擁有中高級專業技能數字人才的比例不高,擁有人工智慧、智能製造等前沿技術的人才更是少之又少。
與美國、英國、加拿大等國家相比,中國的數字人才儲備尚有很大差距。
此外,報告根據對人才需求的數據分析,結果顯示我國數字人才的技能需求不再強調單一編程技能,更加看重技術、管理和領導力等綜合技能。
2015年,我國從事信息傳輸、軟體和信息技術服務相關工作的人數約350萬,但其中中高端人才,特別是前沿技術的數字人才並不多。根據領英中國智庫的研究,在人工智慧領域,美國的從業者數量在85萬人以上,印度15萬,英國14萬,中國只有5萬多人。
報告負責人、清華大學經濟管理學院副院長陳煜波教授表示,我國目前在大數據與人工智慧領域人才缺口明顯。
他解釋說,目前中國85%以上的數字人才分布在產品研發類,而深度分析、先進製造、數字營銷等職能的人才加起來只有不到5%,存在較大缺口,新興技術人才和創新型人才培養方面存在滯後和不足。
這份研究報告的基礎數據來自領英在中國的3600萬個人用戶,這些用戶畢業於1.5萬多所國內外院校,分布在36.4萬家企業,擁有超過2.3萬項技能。
陳煜波研究團隊從中篩選了72萬數字人才,多維度提取用戶畫像並跟蹤其職業軌跡,以此預測不同地區的人才流向、僱傭率、受僱主歡迎的技能等人才趨勢層面的信息。
陳煜波說,根據數據分析結果,整體來看,雖然編程技能和數據分析技能需求占據主導,然而隨著數字產業走向成熟,企業除了強調編程技能,也逐步更加看重人才的技術、管理和領導力等綜合技能。
近年間,項目管理、產品運營等「技術+管理」類技能的需求呈現出明顯的上升趨勢,懂技術、懂管理的人才被認為是「一將難求」。
領英中國代理總裁曾志恆也提醒,如果你有興趣向數字職能轉型,不能僅僅專注於自己的技術能力,溝通和領導力等軟性技能將成為你脫穎而出的關鍵。
陳煜波希望這些研究結果能為教育行業和政府部門提供借鑒。他說,教育行業可根據職位的供需趨勢更好地規劃人才培養的方向,政府也可更好地了解人才流動方向、技術缺口等,以此制定有針對性的引才策略。
程序員崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
相關書籍:
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
10、《活著》
㈩ 當一個程序員需要多好的數學
任何面向工作的功利的學習行為都可以視為一種投資,必須考慮成本和收益的tradeoff;總體來看,個人認為計算機系本科不教的數學對於絕大多數程序員來說都是沒有必要熟練掌握的數學。
數學不包括演算法。演算法一直是屬於計算機科學領域的。數據結構演算法能力是程序員的核心能力之一,而且永不過時。
當程序員做開發工作,有些方向不太需要數學,有些方向需要特定類型的數學(比如游戲開發、圖形學會用到大量數值工具等);解決特定問題需要學習特定類型的數學;專門做特定領域的計算機科學研究需要用到大量特定領域的數學;既然如此,那就在碰到相應問題的需求去學習對應的知識就好了,沒有必要非要計較到底哪個重要(前提是你應當知道你這個方向需要什麼樣的知識),也沒有必要僅僅是為了提高「數學基礎」而盲目不加選擇的去學習所有種類的數學。