如何自學(xué)計(jì)算機(jī)編程
如何自學(xué)計(jì)算機(jī)編程
1.明確學(xué)習(xí)目的學(xué)習(xí)編程對(duì)大多數(shù)IT業(yè)人員來說都是非常有用的。學(xué)編程,做一名編程人員,從個(gè)人角度講,可以解決在軟件使用中所遇到的問題,改進(jìn)現(xiàn)有軟件,可以為自己找到一份理想的工作添加重要得砝碼,有利于在求職道路上謀得一個(gè)好的職位;從國(guó)家的角度,可以為中國(guó)的軟件產(chǎn)業(yè)做出應(yīng)有的貢獻(xiàn),一名優(yōu)秀的程序員永遠(yuǎn)是被爭(zhēng)奪的對(duì)象。學(xué)習(xí)編程還能鍛煉思維,使我們的邏輯思維更加嚴(yán)密;能夠不斷享受到創(chuàng)新的樂趣,將一直有機(jī)會(huì)走在高科技的前沿,因?yàn)槌绦蛟O(shè)計(jì)本身是一種創(chuàng)造性的工作。知識(shí)經(jīng)濟(jì)時(shí)代給我們帶來了無限的機(jī)會(huì),要想真正掌握計(jì)算機(jī)技術(shù),并在IT行業(yè)里干出一番事業(yè)來,有所作為,具有一定的編程能力是一個(gè)基本條件和要求。2.打好基礎(chǔ)學(xué)編程要具備一定的基礎(chǔ),總結(jié)之有以下幾方面:(1)數(shù)學(xué)基礎(chǔ)從計(jì)算機(jī)發(fā)展和應(yīng)用的歷史來看計(jì)算機(jī)的數(shù)學(xué)模型和體系結(jié)構(gòu)等都是有數(shù)學(xué)家提出的,最早的計(jì)算機(jī)也是為數(shù)值計(jì)算而設(shè)計(jì)的。因此,要學(xué)好計(jì)算機(jī)就要有一定的數(shù)學(xué)基礎(chǔ),出學(xué)者有高中水平就差不多了。
(2)邏輯思維能力的培養(yǎng)學(xué)程序設(shè)計(jì)要有一定的邏輯思維能力,“邏思力”的培養(yǎng)要長(zhǎng)時(shí)間的實(shí)踐鍛煉。要想成為一名優(yōu)秀的程序員,最重要的是掌握編程思想。要做到這一點(diǎn)必須在反復(fù)的實(shí)踐、觀察、分析、比較、總結(jié)中逐漸地積累。因此在學(xué)習(xí)編程過程中,我們不必等到什么都完全明白了才去動(dòng)手實(shí)踐,只要明白了大概,就要敢于自己動(dòng)手去體驗(yàn)。誰(shuí)都有第一次。有些問題只有通過實(shí)踐后才能明白,也只有實(shí)踐才能把老師和書上的知識(shí)變成自己的,高手都是這樣成材的。(3)選擇一種合適的入門語(yǔ)言面對(duì)各種各樣的語(yǔ)言,應(yīng)按什么樣的順序?qū)W呢?程序設(shè)計(jì)工具不外乎如下幾類:1)本地開發(fā)應(yīng)用軟件開發(fā)的工具有:VisualBasic、Delphi、VC++(C++Builder)等;數(shù)據(jù)庫(kù)開發(fā)工具有:VisualFoxpro、OracleDeveloper、PowerBuilder等。2)跨平臺(tái)開發(fā)開發(fā)工具如Java等。3)網(wǎng)絡(luò)開發(fā)對(duì)客戶端開發(fā)工具如:JavaScript等;對(duì)服務(wù)器開發(fā)工具如:PHP、ASP、JSP、ISAPI、NSAPI、CGI等。以上不同的環(huán)境下幾種開發(fā)工具中VB法簡(jiǎn)單并容易理解,界面設(shè)計(jì)是可設(shè)化的,易學(xué)、易用。選VB作為入門的方向?qū)Τ鰧W(xué)者是較為適合的。
3.注意理解一些重要概念一本程序設(shè)計(jì)的書看到的無非就是變量、函數(shù)、條件語(yǔ)句、循環(huán)語(yǔ)句等概念,但要真正能進(jìn)行編程應(yīng)用,需要深入理解這些概念,在理解的基礎(chǔ)上應(yīng)用,不要只簡(jiǎn)單地學(xué)習(xí)語(yǔ)法、結(jié)構(gòu),而要吃透針對(duì)這些語(yǔ)法、結(jié)構(gòu)的應(yīng)用例子,做到舉一反三,觸類旁通。
4.掌握編程思想學(xué)習(xí)一門語(yǔ)言或開發(fā)工具,語(yǔ)法結(jié)構(gòu)、功能調(diào)用是次要的,最主要是學(xué)習(xí)它的思想。例如學(xué)習(xí)VC就要學(xué)習(xí)Windows的內(nèi)在機(jī)理、什么是線程......;學(xué)習(xí)COM就要知道VTALBE、類廠、接口、idl......,關(guān)鍵是學(xué)一種思想,有了思想,那么我們就可以觸類旁通。聯(lián)系電話:400-6131-500咨詢qq:800032608具體信息可以登錄:或查詢
5.多實(shí)踐、多交流掌握編程思想必須在編程實(shí)際工作中去實(shí)踐和體會(huì)。編程起步階段要經(jīng)常自己動(dòng)手設(shè)計(jì)程序,具體設(shè)計(jì)時(shí)不要拘泥于固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長(zhǎng)處,豐富編程實(shí)踐,幫助自己提高水平。親自動(dòng)手進(jìn)行程序設(shè)計(jì)是創(chuàng)造性思維應(yīng)用的體現(xiàn),也是培養(yǎng)邏輯思維的好方法。6.養(yǎng)成良好的編程習(xí)慣編程入門不難,但入門后不斷學(xué)習(xí)是十分重要的,相對(duì)來說較為漫長(zhǎng)。在此期間要注意養(yǎng)成一些良好的編程習(xí)慣。編程風(fēng)格的好壞很大程度影響程序質(zhì)量。良好的編程風(fēng)格可以使程序結(jié)構(gòu)清晰合理,且使程序代碼便于維護(hù)。如代碼的縮進(jìn)編排、變量命令規(guī)則的一致性、代碼的注釋等。
7.上網(wǎng)學(xué)編程在網(wǎng)上可以學(xué)到很多不同的編程思想、方法、經(jīng)驗(yàn)和技巧,有大量的工具和作品及相關(guān)的輔導(dǎo)材料供下載。例如網(wǎng)站“編程課堂”主要以VB和Delph;教學(xué)和交流為主,提供大量實(shí)用技巧;
8.加強(qiáng)計(jì)算機(jī)理論知識(shí)的再學(xué)習(xí)學(xué)編程是符合“理論→實(shí)踐→再理論→再實(shí)踐”的一個(gè)認(rèn)識(shí)過程。一開始要具有一定的計(jì)算機(jī)理論基礎(chǔ)知識(shí),包括編程所需的數(shù)學(xué)基礎(chǔ)知識(shí),具備了入門的條件,就可以開始編程的實(shí)踐,從實(shí)踐中可以發(fā)現(xiàn)問題需要加強(qiáng)計(jì)算機(jī)理論知識(shí)的再學(xué)習(xí)。程序人人皆可編,但當(dāng)你發(fā)現(xiàn)編到一定程度很難再提高的時(shí)候,就要回頭來學(xué)習(xí)一些計(jì)算機(jī)科學(xué)和數(shù)學(xué)基礎(chǔ)理論。學(xué)過之后,很多以前遇到的問題都會(huì)迎刃而解,使人有豁然開朗之感。因此在學(xué)習(xí)編程的過程中要不斷地針對(duì)應(yīng)用中的困惑和問題深入學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、算法、計(jì)算機(jī)原理、編譯原理、操作系統(tǒng)原理、軟件工程等計(jì)算機(jī)科學(xué)的理論基礎(chǔ)和數(shù)理邏輯、代數(shù)系統(tǒng)、圖論、離散數(shù)學(xué)等數(shù)學(xué)理論基礎(chǔ)知識(shí)。這樣經(jīng)過不斷的學(xué)習(xí),再努力地實(shí)踐,編程水平一定會(huì)不斷提高到一個(gè)新高度。
3G夢(mèng)工場(chǎng)擁有科學(xué)的教學(xué)體系“六位一體全天候跟蹤式教學(xué)打造金牌職業(yè)人,由"班主任"項(xiàng)目經(jīng)理"“講師”“就業(yè)指導(dǎo)老師”“職業(yè)規(guī)劃師"協(xié)同“學(xué)員”共同建立六位一體全天候跟蹤式教學(xué)就業(yè)體系.我們最大的優(yōu)勢(shì)是高質(zhì)量教學(xué),由3G夢(mèng)工場(chǎng)項(xiàng)目經(jīng)理老師親自授課,保證學(xué)員學(xué)到最專業(yè)的知識(shí),教務(wù)經(jīng)理負(fù)責(zé)親自帶班,科學(xué)管理,確保班級(jí)良好氛圍。針對(duì)基礎(chǔ)相對(duì)較弱的學(xué)員,提供一對(duì)一的輔導(dǎo)避免學(xué)員掉隊(duì)。就業(yè)經(jīng)理親自負(fù)責(zé)學(xué)員職業(yè)素質(zhì)拓展和就業(yè)指導(dǎo)。確保學(xué)員順利進(jìn)入名企,實(shí)現(xiàn)高新就業(yè)!
擴(kuò)展閱讀:我是如何學(xué)習(xí)計(jì)算機(jī)編程的
我是如何學(xué)習(xí)計(jì)算機(jī)編程的
本文是從HowILearnedtoProgramComputers這篇文章翻譯而來。我在很小年紀(jì)的時(shí)候就開始學(xué)習(xí)編程,我學(xué)習(xí)編程的方法是創(chuàng)建大量的不同的網(wǎng)站。下面列出的是我創(chuàng)建的主要的網(wǎng)站,其中最早的一個(gè)是我11歲時(shí)開發(fā)的。我希望讀者能從我這些復(fù)述中獲得的信息是:如果你想學(xué)習(xí)編程,做大量的練習(xí)性的項(xiàng)目是非常必要的。
學(xué)習(xí)一種技術(shù)最好的方法就是練習(xí),練習(xí),練習(xí)。所有我知道的最優(yōu)秀的程序員都深深的享受編程編程是一件讓他們干起來無由的高興的事情。也因此他們大量的編程。經(jīng)常,那是一種不健康的廢寢忘食。學(xué)習(xí)如何編程以及如何編好程并不需要你具有超人的能力。你只需要去按照自己的意愿動(dòng)手去做,做出點(diǎn)什么東西。
做什么東西并不重要,重要的是你找到東西動(dòng)手去做。我所認(rèn)識(shí)的那些優(yōu)秀的程序員,他們都有各自不同的最初學(xué)習(xí)編程的動(dòng)機(jī)。有些人學(xué)習(xí)編程是為了開發(fā)動(dòng)畫游戲。有些人是為了解決他們?cè)谑褂糜?jì)算機(jī)時(shí)遇到的問題,或讓工作更有效率。有些人是為了開發(fā)產(chǎn)品來滿足人們的需求。有些人(真正的程序員)學(xué)習(xí)編程只是他們?yōu)榱松钊肓私庥?jì)算機(jī)工作原理的步驟之一;他們希望能搞清楚這種機(jī)器。有些程序員編程只是因?yàn)樗麄兿硎芙鉀Q難題的挑戰(zhàn)。
讓所有這些“優(yōu)秀程序員”統(tǒng)一起來的唯一因素就是,他們?nèi)驗(yàn)樯钪械哪承┰蚨鵀榫幊讨,繼而花大量的時(shí)間編程,做大量的,大量的用于練習(xí)的項(xiàng)目。
那么,我就不再羅嗦了,下面就是我如何學(xué)習(xí)編程的故事:我的第一個(gè)網(wǎng)站
在我大概十一二歲的時(shí)候,我感到需要給自己做一個(gè)網(wǎng)站。我已經(jīng)記不清為什么需要一個(gè)網(wǎng)站了,只記得那樣就開始做了。于是我就在網(wǎng)上搜索關(guān)于網(wǎng)頁(yè)、Web瀏覽器、HTML如何工作的信息。很多的信息我發(fā)現(xiàn)都已經(jīng)過時(shí)了,有些明顯是錯(cuò)誤的或給了錯(cuò)誤的向?qū)?例如為IE瀏覽器和Netscape瀏覽器分別做網(wǎng)站),但過程是非常的有趣的,我學(xué)到了很多新東西。
盡管在網(wǎng)上搜到了很多粗制濫造的的信息,我還是想辦法做了一個(gè)簡(jiǎn)單的網(wǎng)站,我叫它“Feross的網(wǎng)站”。開發(fā)它,我使用的是微軟的Frontpage,那是一個(gè)非常棒的所見即所得的HTML編輯器。我使用很常見的語(yǔ)法,例如粗體,斜體等對(duì)網(wǎng)站做修改,在編輯器里即時(shí)查看這些HTML標(biāo)記能達(dá)到的效果。這是很有效的學(xué)習(xí)方式。
下面是我的第一個(gè)網(wǎng)站的截屏。這個(gè)網(wǎng)站已經(jīng)不存在了。
你從上面的圖片上看不出來,這個(gè)網(wǎng)站上的每個(gè)元素都在動(dòng),閃爍的動(dòng)畫,還能出聲。我在網(wǎng)站的每個(gè)頁(yè)面上都放置了不同的MIDI格式的歌曲。而且都是自動(dòng)播放,你沒有辦法讓它們停下來,除非把電腦消音。哈,這就是當(dāng)年流行的網(wǎng)站設(shè)計(jì)風(fēng)格。
等再長(zhǎng)了幾年歲數(shù)后,我們重新設(shè)計(jì)這個(gè)網(wǎng)站,讓它變的漂亮些。我使用了在網(wǎng)上發(fā)現(xiàn)的一些免費(fèi)的網(wǎng)站模板,用微軟的畫圖工具修改了一些圖片。
經(jīng)管我大量的依賴于模板,但這不失為一個(gè)學(xué)習(xí)HTML和Web瀏覽器的好方法!癋eross的網(wǎng)站”除了用來收集我小時(shí)候的一些視頻外沒有其它用處,所以不久后我就對(duì)它失去了興趣。我的第一個(gè)真正的網(wǎng)站
當(dāng)我9年級(jí)(14歲)時(shí),我和我的朋友都非常著迷與觀看像Newgrounds和eBaumsWorld這樣的網(wǎng)站上的flash視頻和動(dòng)畫(這是201*年之前,還沒有
YouTube)。我在這種網(wǎng)站上花了大量的時(shí)間,所以我知道所有最好的視頻和游戲。我想,如果做一個(gè)網(wǎng)站來收集這些在網(wǎng)上發(fā)現(xiàn)的我喜歡的flash動(dòng)畫、視頻、游戲,會(huì)是一件很酷的事情。這就是我做出FreeTheFlash網(wǎng)站的初衷。它是這個(gè)樣子的:
我從開發(fā)“Feross的網(wǎng)站”的過程中學(xué)到了很多HTML知識(shí),這次我使用了Macromedia公司(現(xiàn)在的Adobe公司)的Dreamweaver編輯器,這個(gè)東西能讓我在網(wǎng)站里重復(fù)的頁(yè)面使用同一個(gè)模板。
一段時(shí)間后,我意識(shí)到,我應(yīng)該讓網(wǎng)站動(dòng)起來,聽說是應(yīng)該使用一種叫做PHP的編程語(yǔ)言來做網(wǎng)站,而不是只使用靜態(tài)的HTML。于是,我買了花了20美元從Amazon買了一本書,叫做《PHPandMySQLforDynamicWebsites》,使用PHP和MySQL對(duì)網(wǎng)站進(jìn)行了重新設(shè)計(jì)。我還給它進(jìn)行了新的美化:
在高中時(shí)期我對(duì)這個(gè)FreeTheFlash網(wǎng)站的開發(fā)持續(xù)了2年。它對(duì)于我的第一次嘗試做一個(gè)“真正”的網(wǎng)站來說是相當(dāng)成功的在201*年,它獲得了60萬人/次訪問,頁(yè)面瀏覽量達(dá)3百萬。FreeTheFlash讓我知道了做出一個(gè)產(chǎn)品、讓它杰出、看大量的人使用它,是一件多么自豪的事情。它讓我想做出更大的網(wǎng)站。
我的第二個(gè)網(wǎng)站
在中學(xué),我在上計(jì)算機(jī)課程時(shí)做了大量的筆記。于是,在11年級(jí)時(shí),我覺得應(yīng)該把這些筆記放到網(wǎng)上,讓那些不喜歡看課本的學(xué)生使用。我做了一個(gè)網(wǎng)站,叫做StudyNotes,使用的是PHP和一個(gè)叫做Joomla的內(nèi)容管理系統(tǒng)。我也嘗試過使用Drupal,但發(fā)現(xiàn)它太復(fù)雜了。
同年,我為我的學(xué)校Key俱樂部分部做了一個(gè)網(wǎng)站,如今也不用了。這段時(shí)間,我花了大量的時(shí)間泡在WebmasterWorld里,這是一個(gè)論壇,主要關(guān)于網(wǎng)站站長(zhǎng)和SEO專家推測(cè)Google算法,討論AdSense技巧,調(diào)試網(wǎng)站問題等。
大量的學(xué)習(xí)和閱讀
等我進(jìn)入了斯坦福大學(xué)后,我學(xué)習(xí)了大量的計(jì)算機(jī)課程,諸如CS106X和CS107,我還超前學(xué)習(xí)了部分CS106課程。
所有的課余時(shí)間我?guī)缀醵荚陂喿x關(guān)于設(shè)計(jì)、編程、瀏覽器和JavaScript等方面的資料。一般每天4-5個(gè)小時(shí)。
如果你要問我都讀什么?亂七八糟的。但大部分都是我敬仰的設(shè)計(jì)師和程序員寫的博客。你可以從這篇博客的右側(cè)看到我列出的部分博客鏈接。
關(guān)鍵一擊
之后,在201*年夏天,當(dāng)我在Facebook實(shí)習(xí)時(shí),因?yàn)楦粋(gè)朋友打賭,我開發(fā)了YouTubeInstant,它是一個(gè)用來實(shí)時(shí)搜索YouTube視頻的網(wǎng)站。這個(gè)網(wǎng)站在建成之后的10天里獲得了1百萬用戶的訪問量,YouTube的CEO甚至給我發(fā)消息說提供一個(gè)職位給我,你可以從這里看到這些媒體的躁動(dòng)。
我知道YouTubeInstant的成功歸功于當(dāng)前的好時(shí)機(jī)和一點(diǎn)幸運(yùn)。我想,我們很多人不知道自己能做出什么。
繼續(xù)前行
我注意到很多人使用YouTubeInstant來聽音樂視頻,這讓我想到了另外一種使用YouTubeAPI的好方法。于是,我的朋友JakeBecker和我在201*年的
頭3個(gè)月里開發(fā)了Instant.fm,它能讓你輕松的向朋友分享音樂播放列表。通過這個(gè)項(xiàng)目我們都學(xué)到了很多新的東西。
在這個(gè)工程中我掌握的技術(shù):jQuery
CSS(和Modernizr以及YepNope,用來解決跨瀏覽器問題的)Python
Tornado(webframework/server)Git(版本控制)&GitHubLast.fmAPIYouTubeAPI團(tuán)隊(duì)合作
以及其它一些我們學(xué)會(huì)使用的東西:Nginx(webserver)
Supervisor(todaemonizeTornado)SQLAlchemy(ORM)
ApacheAnt(tobuildanddeploythesiteafterapush)動(dòng)手去做!
我把從11歲就開始做的東西都不厭其煩的曝出來,目的就是要說,如果你想學(xué)習(xí)編程,你需要?jiǎng)邮秩プ鰱|西!現(xiàn)在就去。不要找任何借口。做東西是最好的學(xué)習(xí)方法。
從頭到尾讀一遍編程語(yǔ)言書籍是一件很無聊的事,讀到一半你就讀不下去了。但,如果你想做一個(gè)項(xiàng)目,你在做的過程中會(huì)知道你該學(xué)習(xí)哪些知識(shí),這是認(rèn)識(shí)和掌握知識(shí)更有效的途徑。計(jì)算機(jī)課程
大學(xué)里的計(jì)算機(jī)課程是學(xué)習(xí)編程的另外一種十分有效的方法。大多數(shù)好的計(jì)算機(jī)課程都十分強(qiáng)調(diào)學(xué)習(xí)計(jì)算機(jī)科學(xué)領(lǐng)域里的重要概念和范式,而不是教你某個(gè)特定的語(yǔ)言。這能讓那些從來沒有接受過正規(guī)教育的人在自學(xué)時(shí)開闊眼界。記得在斯坦福大學(xué)上第一堂計(jì)算機(jī)課程時(shí)(那是教授C++的課程),我在想“怎么可能變量前不帶$符號(hào)呢?”當(dāng)時(shí)我只使用過PHP!
我用了好長(zhǎng)一段時(shí)間才改掉在變量前加$符號(hào)的習(xí)慣!
在軟件公司工作
另外一個(gè)提高編程水平的方法就是到軟件公司實(shí)習(xí),比如Facebook或
Quora,最近的兩個(gè)夏天我就是在這些公司里度過的。你會(huì)從那些優(yōu)秀的人那里學(xué)會(huì)如何更好的編程,如何閱讀和理解他人的代碼,如何在大項(xiàng)目中進(jìn)行團(tuán)隊(duì)合作。
還是那句話比什么方法都管用學(xué)習(xí)編程最好的方法就是做項(xiàng)目練習(xí)。我是不是重復(fù)這句話無數(shù)次了?
如何學(xué)會(huì)編程:做練習(xí)性項(xiàng)目?淳幊虝。做項(xiàng)目練習(xí)。上計(jì)算機(jī)課程。做練習(xí)性項(xiàng)目。讀編程類博客。做項(xiàng)目練習(xí)。
這就是我能給出的最好的建議。祝編程愉快!
友情提示:本文中關(guān)于《如何自學(xué)計(jì)算機(jī)編程》給出的范例僅供您參考拓展思維使用,如何自學(xué)計(jì)算機(jī)編程:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。