A. 新手如何學習編程
剛開始學習編程語言,要怎麼去做,動手編寫一個編譯器,學習一下較為底層的編程方式,是一種學習計算機到底是如何工作的非常有效方法。編譯器通常被看作是十分復雜的工程。事實上,編寫一個產品級的編譯器也確實是一個龐大的任務。但是寫一個小巧可用的編譯器卻不是這么困難。
這個秘密是,首先介紹編程入門教程,找到盡可能小的項目,然後想要的功能加入。這種方法也意味著在他那篇著名的文章中提到的「一個編譯器構造的快捷方式」阿卜杜勒阿齊茲Ghuloum說。但是這種方法確實工作。只需要按照第一步操作本文中,可以得到一個真正可用的編譯器。當然,它只能被編譯的編程語言是非常小的子集,但它確實是一個真正的編譯器可用。你可以自由地擴展這個編譯器,然後了解更多,更深的了解。
從某種意義上來說這比寫一個scheme的編譯器要困難一些(因為必須去解析C那復雜的語法),但是在某些方面又很便利(不需要去處理運行時類型)。要寫這樣一個編譯器,只需要從那個可用的最小的編譯器開始。沒有變數,沒有函數調用,沒有額外的依賴,甚至連if語句,循環語句都沒有,一切看起來是那麼簡單。
踏出了編程入門教程第一步,接下去怎麼做就全看自己了。可以按照文章所指導的全部做一遍,然後製作一個更加復雜的編譯器。需要去寫一個更加精巧的語法樹來生成匯編代碼。接下去的幾步分別是:(1)允許返回任意的值(比如,return3; 一些可執行代碼);(2)添加對「非」的支持(比如,return ~1; 一些可執行代碼)。每一個額外的特性都可以教你關於C語言的更多知識,編譯器到底是怎麼執行的,以及世界上其他編寫編譯器的人是如何想的。這是構建 babyc 的方法。Babyc 現在已經擁有了if語句,循環,變數以及最基礎的數據結構。
下面給大家展示一下國內最權威的.net訓練營學習路線圖:
B. 小白如何成為程序員
學唄。想成為程序員,無非就是學習計算機編程語言,學習編程唄,現在互聯網上的編程教程一搜一大把,編程應該如何學、怎麼學和資料都不是什麼秘密,任何人只要想學的都可以馬上開始了。
如果心裡沒譜,可以參照我寫的Java學到什麼程度可以找工作。
C. 小白,想入門程序員,應該從什麼開始學,順序是什麼
小白想要成為程序員,首選是選擇一門合適的語言,比如說:Python、Java、C、C++、GO語言等;其次,選擇合適的學習方式,比如培訓,周末班、脫產班還是網路班。
如果完全沒有編程基礎,建議大家學習Python,Python入門簡單、語法清晰、通俗易懂,非常適合零基礎人員。
D. 怎麼成為一名程序員,要從哪裡開始學起,先學什麼在學什麼
從hello wrod 開始學,下電子書邊看邊寫,一定要多練習,不然學的快忘得也快,同時學習C語言,C是所有其他高級語言的基礎,學會了C(不必學的太深,了解一些簡單的演算法和思想就可以) 再學起其他編程語言就會很容易上手的。
還有數據結構,雖然這是一門枯燥的學科,但它對與編程的思想拓展有很大幫助。 再看演算法與應用一類的書了,因為程序設計主要是寫演算法,這就免不了學習數據結構。
(4)怎麼才能開始寫程序擴展閱讀:
相關書籍
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
10、《活著》
E. 如何自學成為程序員
如何學習自學編程的方式最好的莫過於在網路上面查找資源。
目前,網路上電腦資源多不勝數。其中有很多都是基礎到精通的視頻教程。通過視頻講解。讓你明白重點知識。你通過查找一套適合自己的視頻。然後看完是基本。
這里推薦幾個可以在線學習的好網站:慕課、極客學院、傳智播客、如朋網、網易公開課等等做筆記在進行看視頻的過程中,一定注意要記筆記。
對視頻中重點的部分進行截圖,並加以文字解釋。就形成了自己的筆記。這些筆記對於你來說很重要。通過記筆記的形式,你就不需要重新觀看視頻了。只需要復習的時候查看筆記就夠了,這樣就大大的節約了時間。
下面介紹一個記筆記的好軟體:CherryTree多練習代碼在視頻中講解的代碼,我認為你至少需要自己寫三遍以上。在寫代碼的時候,就用到了上面寫的筆記了。通過看筆記截圖,即可自己慢慢摸索寫出來代碼。當然練習到一定程度,就需要你適當的做個項目。鞏固自己的知識。
程序員必備技能
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、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。