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小時 每天不停這個是我的進度。
㈡ 程序員應具備怎樣得數學基礎
看你要做什麼樣的程序員。
如果就是一般的做計算機軟體的程序員,幾乎不需要什麼數學基礎,當然,如果你有一些離散數學的基礎是最好不過了。
但如果你要做計算機特殊領域的程序員,比如,人工智慧,模式識別,數據加密,數據壓縮,數字圖像等等,那就需要相關的數學基礎了,包括微積分、線性代數、概率論、統計學、數論等等。
蓋茨曾經說過,不要過分誇大數學對軟體的重要性。
㈢ 作為一名合格的程序員,請問需要掌握哪些數學知識,學到什麼樣的水平
程序員的知識是多方面的, 數學方面至少高等數學大專以上文化程度,概率統計,數字邏輯運算方面的知識,主要就是做哪一方面的程序設計,有些學過的可能長期也不用,搞科學研究的、游戲、智能軟體開發、安全方面的要求就高一些,沒有一定數學基礎有些演算法書就讀不懂,搞社會一般應用的要求相對較低一些,這些只是常識,程序員關鍵一點把一門課及相關知識精通,可以把用戶提出的問題很快的自己能夠理解,轉換成計算機處理方式,成為軟體或網站,而且和用戶的需求基本一致。當然有些人的數學水平並不高,設計出的軟體人人愛用,水平很高,程序員的知識包括數學方面的知識也在不斷充實更新中。
㈣ 作為一個程序員,什麼最重要數學基礎資料庫基礎
一個項目開發過程中沒有什麼最重要,也沒有什麼不重要。你若數學差了點,一個簡單的模擬演算法就可以累你三天三夜;你若資料庫設計的不好,一條簡單是數據插入都可能費你上百行代碼。
這些都是一個程序員應所具備的基本知識。
現在的程序員不是僅僅會寫代碼就可以的。
最高境界:精通整個項目的開發流程,集編碼、資料庫設計、測試等等為一身的全能性程序員。
(這不僅僅是人才,更是天才)
合格的程序員:至少精通項目開發中的某一塊。或編程、或資料庫設計、或測試。。。。。。
其他方面能做到一點便通。
你若是一個初級程序員或是嚮往程序員這個職業,給你一個忠實的建議,學哪塊就把它學通學精
㈤ 《程序員的數學》pdf下載在線閱讀,求百度網盤雲資源
《程序員的數學(第2版)》([日]結城浩)電子書網盤下載免費在線閱讀
鏈接:
書名:程序員的數學(第2版)
作者:[日]結城浩
譯者:管傑
豆瓣評分:8.7
出版社:人民郵電出版社
出版年份:2020-4-1
頁數:262
內容簡介:
《程序員的數學 第2版》面向程序員介紹了編程中常用的數學知識,藉以培養初級程序員的數學思維。讀者無須精通編程,也無須精通數學,只要具備四則運算和乘方等基礎知識,即可閱讀本書。
《程序員的數學 第2版》講解了二進制計數法、邏輯、余數、排列組合、遞歸、指數爆炸、不可解問題等許多與編程密切相關的數學方法,分析了哥尼斯堡七橋問題、高斯求和、漢諾塔、斐波那契數列等經典問題和演算法。引導讀者深入理解編程中的數學方法和思路。
《程序員的數學 第2版》新增一個附錄來介紹機器學習的基礎知識,內容涉及感知器、損失函數、梯度下降法和神經網路,旨在帶領讀者走進機器學習的世界。
作者簡介:
結城浩(作者)
生於1963年,日本知名技術作家和程序員。在編程語言、設計模式、數學、加密技術等領域,編寫了很多深受歡迎的入門書。代表作有《數學女孩》系列、《程序員的數學》《圖解密碼技術》等。
管傑(譯者)
畢業於復旦大學日語系,現為對日軟體工程師,具有多年日語技術文檔編寫經驗。愛好日漢翻譯和日本文化史,譯有《明解C語言:入門篇》等。
盧曉南(譯者)
本科就讀於西安交通大學少年班、數學系。名古屋大學博士(信息科學)。現於山梨大學計算機系任助理教授。主要研究方向包括組合數學(離散數學)及其在信息科學、計算機科學、統計學中的應用。譯著有《程序員的數學3:線性代數》。
㈥ 程序員需要怎樣的數學基礎
離散數學對程序員來說非常重要,還有組合數學、線性代數、概率論、數論等等,即使你將來不做研究,這些基礎知識也能極大地提高你的水平。計算機科學對離散數學的要求很高,建議你先學習前面提到的這些課程,然後學習計算機演算法和數據結構,再配合到網上的在線題庫做題,過程很艱辛,但是對你的幫助會很大。
推薦書目:
《具體數學》(先學完前面的數學課程,在水平有一定進步以後再看)
《演算法導論》(應該人手一本的好書)
簡單來說,學數學的目的,一方面是活躍你的思維;另一方面是為了深入學習演算法打基礎,設想一下,同樣的問題,普通人的程序要幾十分鍾甚至幾小時幾天才能解決出來,甚至根本無法解決,而你精心設計的程序卻能在1秒內解決出來,這就是數學的魅力、演算法的魅力。
其實,一切取決於你是否想做一個高級程序員。如果你做體力活(其實一般編程別人都認為是體力活),那你可以不學,因為你用不到,但是,你要是做技術上的創新,做個很強的程序員,沒有數學的支持,很難。
你既然學習了C,c++,你也知道演算法的重要性,同樣一個問題,我用13行程序解決了,我的同學居然用了33行,因為他不懂的用數學。你要達到什麼高等,取決於你的數學修養。當然,要做一個普通的程序員就不用學習了。要挑戰自己,做個好的,優秀的,學習數學吧!
㈦ 極客時間《程序員的數學基礎課》怎麼樣
就目前的IT職場環境來說,但凡想再往上走一步、做任何一點帶有創新性的技術,往往都逃不開數學。不論是數據結構與演算法還是程序設計,底層原理和思路都源於數學,在大數據和智能化的時代學好數學更是門檻本身。市面上數學資料看了不少,但不是太難就是太抽象,能深入淺出的不多,《程序員的數學基礎課》就是一個。跟著學下來,讓我把演算法和數學模型都串聯起來,還清理了之前的一些盲點,有時間一定二三刷。
㈧ 要做程序員需要學會什麼
其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:
使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,Java、JavaScript、Python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。
2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。
3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。
㈨ 要做程序員需要具備哪些基礎才能開始學習程序員課程的
程序設計語言C
數據結構
這兩個最基礎的,一般是基礎中的基礎
然後是操作系統、組成原理、 這兩個也是計算機基礎,對於做硬體的必須學習
做軟體的話需最好學學離散數學
㈩ 程序員數學基礎不好怎樣彌補有什麼方案推薦
我覺得程序員不需要太多的數學基礎。真正需要數學的都是在具體領域里。
跟編程結合最緊的,推薦Knuth的具體數學,大概是離散數學和組合數學的內容。這一類數學跟程序員的思維密切相關,算跟工作結合比較緊密的。
另外,數值分析可以算連接了連續的數學表達和計算機中的離散實現,也算應用較廣的。
而更多的數學則根你所在的領域有關:
做圖形學,以線性代數、射影幾何為基礎;
做圖像處理,也包括其他的多媒體類,關於信號處理方面會多一點;
做數據挖掘或者統計學習的,更涉及統計學習理論和最優化的部分;……再往深處就到做研究,有點跑題了。
從具體的問題入手,缺啥補啥;學習時要遇到困難的地方,說明你的這一部分基礎有問題,就再進棧,回溯式地學習。