你是否適合編程?學(xué)習(xí)編程后能做什么?如何選擇編程語言?有哪些免費(fèi)的線上學(xué)習(xí)網(wǎng)站推薦?今天這篇好文將那些自學(xué)編程前需要了解和思考的問題都記錄下來,希望能給那些剛剛開始或正準(zhǔn)備自學(xué)編程的朋友們帶去一些啟發(fā)。
你是否適合自學(xué)編程
自學(xué)編程會(huì)是一個(gè)漫長(zhǎng)而艱辛的過程,在你信心滿滿地準(zhǔn)備開始之前,不妨先問問自己下面這幾個(gè)問題,來判斷你是否真的適合自學(xué)編程呢?
你是一個(gè)邏輯和抽象思維能力比較強(qiáng)的人嗎?
你是否愿意不斷地去學(xué)習(xí)那些新的東西,而在大多數(shù)時(shí)間內(nèi)你都需要去自學(xué)。
當(dāng)你遇到一些問題和困難的時(shí)候,你是否有足夠的耐心和毅力去獨(dú)自解決這些問題?
你是否有很強(qiáng)的好奇心去研究和探索那些未知的領(lǐng)域?
如果上面這四個(gè)問題中,至少有兩到三個(gè)你的答案是Yes的話,那相信你是適合自學(xué)編程的,相反,你可能需要考慮選擇更適合自己的學(xué)習(xí)方式,比如參加一些培訓(xùn)班,由導(dǎo)師帶著進(jìn)行系統(tǒng)地學(xué)習(xí)。
學(xué)習(xí)編程后你能做什么,不能做什么
很多人只是將編程作為一項(xiàng)技能去學(xué)習(xí),而他們并不清楚學(xué)習(xí)編程之后能做些什么。這就和孩子在學(xué)校學(xué)習(xí)英語一樣,由于缺乏目的性和應(yīng)用的場(chǎng)景,而使得效果大打折扣。帶有目的性地去學(xué)習(xí),并不斷地實(shí)踐是學(xué)習(xí)編程的最佳方式。
學(xué)習(xí)編程以后,你可以:
獨(dú)立地設(shè)計(jì)、開發(fā)一個(gè)軟件,然后通過測(cè)試將它發(fā)布出去給更多的人使用。并不斷地去維護(hù)與改進(jìn)它。
可以參與到開發(fā)團(tuán)隊(duì)中,去開發(fā)一些更復(fù)雜應(yīng)用,滿足你客戶的需求。
但你不能:
維修電腦,或解決Inernet連接問題。
像黑客一樣去黑其他人的電腦。(黑客也都是程序員,但他們需要更多其他方面的知識(shí)和技能,我可以在后面談?wù)勎艺J(rèn)識(shí)的那些黑客們是如何修煉的)
選擇你的第一門編程語言
編程語言有幾十種,你該如何選擇你的第一門編程語言呢?我的建議是根據(jù)你學(xué)習(xí)編程的目的去進(jìn)行合理的選擇。
希望找到一份程序員工作
下面是那些大型企業(yè)最普遍采用的開發(fā)技術(shù),你可以根據(jù)自己的喜好,選擇不同領(lǐng)域的開發(fā)語言。
Web前端開發(fā)(開發(fā)網(wǎng)站,基于Html5的手機(jī)APP等):JavaScript
后端開發(fā)(企業(yè)應(yīng)用,后端服務(wù)):Java(跨平臺(tái)), C#(Windows平臺(tái))
移動(dòng)開發(fā):Swift(iOS平臺(tái)),Java(Android平臺(tái))
3D或游戲開發(fā):C++
大數(shù)據(jù)或人工智能:Python,Java
如果你已經(jīng)有一個(gè)很好的點(diǎn)子,并希望實(shí)現(xiàn)它
搭建網(wǎng)站:JavaScript + HTML5
做一個(gè)APP: Swift(iOS平臺(tái)),Java(Android平臺(tái))
如果你希望為那些初創(chuàng)公司工作
可以選擇JavaScript,因?yàn)樵絹碓蕉嗟某鮿?chuàng)公司直接使用JavaScript來構(gòu)建他們的前端和后端應(yīng)用(比如使用基于JavaScript的NodeJs來開發(fā)后端服務(wù)等)。
如果你希望教孩子編程
可以先讓孩子嘗試Scratch或類似的游戲類編程學(xué)習(xí)軟件,當(dāng)孩子對(duì)那些基本編程知識(shí)有所了解,并具備一定邏輯思能力后,可以轉(zhuǎn)而學(xué)習(xí)Python。
如果你只是想建一個(gè)個(gè)人博客或搭一個(gè)論壇或企業(yè)服務(wù)站點(diǎn)
你可以學(xué)習(xí)PHP,因?yàn)閹缀跛心切﹥?yōu)秀的基于CMS的建站平臺(tái)都是用php寫的,包括Wordpress,Drupal,Joomla等等。
從語言的難易程度方面選擇
選擇從最簡(jiǎn)單的編程語言開始:選擇Python
稍微難度高一些,但使用場(chǎng)景更廣的語言:選擇Java
完全沒有任何想法
如果你暫時(shí)對(duì)學(xué)習(xí)哪門編程語言沒有任何想法,或只是為了提高自己想學(xué)習(xí)一門編程語言,那么我的建議是 Python
可以幫助你免費(fèi)學(xué)習(xí)編程的在線網(wǎng)站
慕課網(wǎng)
慕課網(wǎng)是國內(nèi)我比較喜歡的IT在線教育平臺(tái),包含了大量的視頻教程,我上面提到的那些編程語言幾乎都能在慕課網(wǎng)上找到相應(yīng)教學(xué)視頻。另外,它也根據(jù)不同的學(xué)習(xí)目的,比如制定了針對(duì) 前端工程師,Java工程師,PHP工程師 的學(xué)習(xí)計(jì)劃。可以根據(jù)它的學(xué)習(xí)計(jì)劃,由淺入深進(jìn)行學(xué)習(xí)。
Codecademy
Codecademy創(chuàng)建于2011年,它是一種基于網(wǎng)絡(luò)的互動(dòng)編程教程。每一節(jié)課你都會(huì)被要求完成一些練習(xí),幫助你鞏固學(xué)習(xí)的編程知識(shí)。
網(wǎng)易云課堂
網(wǎng)易云課堂也包含了大量的優(yōu)秀IT課程,其中有不少編程基礎(chǔ)課程,它們大部分也是免費(fèi)的,非常適合初學(xué)者進(jìn)行學(xué)習(xí)。
推薦幾本教孩子學(xué)編程的書
最后,回答部分家長(zhǎng)的問題,推薦幾本我覺得寫得不錯(cuò),適合家長(zhǎng)或孩子一起學(xué)習(xí)的編程書籍。
Scratch少兒趣味編程
Scratch 是麻省理工學(xué)院設(shè)計(jì)開發(fā)的一款編程工具,是適合少兒學(xué)習(xí)編程和交流的工具和平臺(tái),有中文版且完全免費(fèi)。這本書結(jié)合孩子們學(xué)習(xí)的語文、數(shù)學(xué)、科學(xué)、社會(huì)、音樂、體育等科目,手把手地教大家如何用Scratch 設(shè)計(jì)程序(如設(shè)計(jì)一個(gè)自動(dòng)寫作文的程序),配合各式卡通形象,通俗易懂,寓教于樂。
趣學(xué)JavaScript
JavaScript可能是目前最流行的的開發(fā)語言,這本書用輕松愉快的方式,通過耐心的、按部就班的示例,以及充滿樂趣的圖示,幫助你輕松地學(xué)習(xí)編程知識(shí)。
父與子的編程之旅:與小卡特一起學(xué)Python
這本書得到了很多人包括教育專家的推薦,經(jīng)過了孩子們的親身檢驗(yàn)。這本書同樣適合大人閱讀,如果你想自己學(xué)習(xí)編程,就趕緊拿起本書,探索看似神秘的編程世界吧!
自學(xué)編程絕不是一件容易的事,需要極大的耐心和克服一切困難的毅力,希望這篇文章能給每一位編程自學(xué)者一些幫助和啟發(fā)。
作者微信公眾號(hào):