色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

易語(yǔ)言編程游戲,有哪些適合新手學(xué)編程的書推薦

老白2年前31瀏覽0評(píng)論
易語(yǔ)言編程游戲,在游戲開(kāi)發(fā)中,你可能會(huì)遇到有哪些適合新手學(xué)編程的書推薦類似的問(wèn)題,可以參考如下:

易語(yǔ)言編程游戲,有哪些適合新手學(xué)編程的書推薦?

本文從以下幾個(gè)方面給大家分享幾本高價(jià)值書單,并不一定全面,歡迎讀者補(bǔ)充,希望能對(duì)你有幫助。

1 關(guān)于編碼與重構(gòu)

1.1 代碼整潔之道

英文名《Clean code》,該書出自 Robert C Martin 之手,又被稱為 Bob 大叔,是一位美國(guó)著名的軟件工程師和作家,他已經(jīng)寫了有關(guān)敏捷軟件開(kāi)發(fā)的書籍。書中提到眾多有名的編程原則:比如 SOLID 原則、 Law of Demeter(LoD,又被稱為最少知識(shí)原則)。

推薦理由:

每個(gè)程序員都必須擁有本書并閱讀它。這是一本非常著名的書,它將完全改變您的編程風(fēng)格,書中介紹的規(guī)則均來(lái)自作者多年的實(shí)踐經(jīng)驗(yàn),涵蓋從命名、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蟮脑O(shè)計(jì)原理到重構(gòu)的多個(gè)編程方面,雖為一“家”之言,然誠(chéng)有可資借鑒的價(jià)值。或許,真正整潔的代碼真能讓同行讀起來(lái)像詩(shī)一樣。

任何傻瓜都可以編寫計(jì)算機(jī)可以理解的代碼。優(yōu)秀的程序員編寫人類可以理解的代碼?!?馬丁·福勒

如果只能讀一本書,我就推薦這本。最后,基于本書,眾多開(kāi)發(fā)者還推出了各種語(yǔ)言的整潔之道:

? Javascript 整潔之道

? PHP 整潔之道

? ABAP 整潔之道

? Java 整潔之道

? .NET 整潔之道

還有各大科技公司的代碼風(fēng)格指南:

? Google 風(fēng)格指南

? Uber Go 語(yǔ)言風(fēng)格指南

Bob 大叔的《架構(gòu)整潔之道》也值得推薦,這本書是在架構(gòu)領(lǐng)域的登峰之作,圍繞“架構(gòu)整潔”這一重要導(dǎo)向,系統(tǒng)地剖析其緣起、內(nèi)涵及應(yīng)用場(chǎng)景,涵蓋軟件研發(fā)完整過(guò)程及所有核心架構(gòu)模式。

還有《程序員的職業(yè)素養(yǎng)》,作者以自己以及身邊的同事走過(guò)的彎路、犯過(guò)的錯(cuò)誤為例,意在為后來(lái)人引路,助其職業(yè)生涯邁上更高臺(tái)階。

1.2 重構(gòu)(第2版)

英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本書是理論和實(shí)踐最佳組合的罕見(jiàn)書籍之一。重構(gòu)是一個(gè)使您的工作代碼更加美麗的過(guò)程,這本書可以利用已經(jīng)嘗試和測(cè)試的軟件開(kāi)發(fā)世界的模式來(lái)為您提供幫助。

推薦理由:

重構(gòu)一詞經(jīng)常在各種大會(huì)上被提及,那就是這本書帶來(lái)的影響。重構(gòu)也就是重寫軟件的過(guò)程,而無(wú)需更改其功能,以提高其可讀性,可檢驗(yàn)性或可維護(hù)性。重構(gòu)是使工作代碼美觀的過(guò)程,重構(gòu)有助于改進(jìn)工作代碼的設(shè)計(jì)。這也是優(yōu)秀程序員的必備技巧之一,通常優(yōu)秀的程序員也擅長(zhǎng)重構(gòu)。

本書將教你重構(gòu)代碼的藝術(shù)和科學(xué)。無(wú)論您是 Java 程序員、C++ 開(kāi)發(fā)人員還是 Python 開(kāi)發(fā)人員,每個(gè)程序員都可以從本書中受益。

與《重構(gòu)》經(jīng)常被提及的書就是大名鼎鼎的《代碼大全》,書中解釋的也是久經(jīng)考驗(yàn)的技術(shù)和策略,能有效幫助程序員和軟件開(kāi)發(fā)人員。筆者也曾在大學(xué)的時(shí)候把這本書圖書館借出來(lái),發(fā)現(xiàn)這本書太厚,啃不動(dòng),到期就立馬歸還了。

1.3 代碼之美

英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。

推薦理由:

大牛前輩的博客合集,同時(shí)也是提高編碼技能的好書之一,因?yàn)樗鼮槟峁┝艘粋€(gè)機(jī)會(huì),讓您了解專業(yè)程序員如何處理問(wèn)題、編寫的代碼以及他們?nèi)绾谓鉀Q問(wèn)題,并且仍然能夠保持他們的代碼美觀。

這本書是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型網(wǎng)站架構(gòu)秘密,講述了那些專家程序員,包括布萊恩·克尼原,喬恩·本特利(Jon Bentley)(編程珠璣的作者),蒂姆·布雷(Tim Bray),卡爾·福格爾(Karl Fogel),邁克爾·菲瑟斯(Michael Feathers)(有效地使用舊版代碼的作者),以及許多更多偉大的作者和程序員。關(guān)于二分查找,在書中數(shù)次被不同作者提及,了解不同作者的觀點(diǎn)。無(wú)論您使用哪種編碼語(yǔ)言,例如 Java,C#,Python 或 Ruby,都會(huì)在本書中找到有趣的東西。

代碼之美調(diào)查了一項(xiàng)努力的人類發(fā)明和創(chuàng)造力的范圍:計(jì)算機(jī)系統(tǒng)的開(kāi)發(fā)。每章中的美觀來(lái)自發(fā)現(xiàn)獨(dú)特的解決方案,這是作者的力量超越界限,識(shí)別他人所忽略的需求,并找到令人驚訝的解決方案,以解決令人困擾的問(wèn)題。

2 關(guān)于職業(yè)成長(zhǎng)

2.1 程序員修煉之道(第2版)

英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的譯者是大名鼎鼎的云風(fēng),副標(biāo)題是:通向務(wù)實(shí)的最高境界。

推薦理由:

本書是時(shí)隔 20 年的新版,覆蓋哲學(xué)、方法、工具、設(shè)計(jì)、解耦、并發(fā)、重構(gòu)、需求、團(tuán)隊(duì)等務(wù)實(shí)話題的最佳實(shí)踐及重大陷阱,以及易于改造、復(fù)用的架構(gòu)技術(shù)。

剛出來(lái)的時(shí)候博文出版社舉辦了一個(gè)推廣活動(dòng),在云風(fēng)和皓子叔聯(lián)袂推薦下,毫不猶豫的入手了本書。程序員往往最難得就是務(wù)實(shí)主義,總想追求新技術(shù),炒新概念。工作后才逐漸明白,編程的本質(zhì),均不依賴于特定語(yǔ)言、框架和方法,技術(shù)改變世界在于能夠有效解決用戶的真實(shí)需求。

本書本質(zhì)上是程序員的自助指南。它探索了良好的軟件開(kāi)發(fā)實(shí)踐,并為您提供了出色的建議、提示和技巧,以更有效地編程。正是對(duì)經(jīng)典和現(xiàn)代軼事、引人入勝的類比和發(fā)人深省的例子的創(chuàng)造性使用,使每個(gè)部分的學(xué)習(xí)都變得有趣而有趣。如果說(shuō)大學(xué)期間讀的都是類似于 C 語(yǔ)言圣經(jīng)和 Head First 系統(tǒng)書籍的話,工作后的人才會(huì)真正懂得為什么這本書籍不厚,讀起來(lái)拍案叫好,這大概就是大道至簡(jiǎn)。

作者另一著作:《程序員修煉之道: 從小工到專家》也是值得推薦的

2.2 卓有成效的程序員

英文名:《The Productive Programmer》,作者:Neal Ford。

推薦理由:

本書就是講述如何在開(kāi)發(fā)軟件的過(guò)程中變得更加高效。同時(shí),《卓有成效的程序員》的講述將會(huì)跨語(yǔ)言和操作系統(tǒng):很多技巧的講述都會(huì)伴隨多種程序語(yǔ)言的例子,并且會(huì)跨越三種主要的操作系統(tǒng),Windows(多個(gè)版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。

貫穿全文的思想大概就是盡量讓機(jī)器做機(jī)器該做的事情,讓程序和程序打交道,發(fā)揮程序員在這方面的先天優(yōu)勢(shì)。學(xué)會(huì)善用工具,命令行、學(xué)會(huì)寫腳本,學(xué)會(huì)宏。提供效率,不去做重復(fù)單調(diào)的工作。

最終的目的:成為一個(gè)“慵懶”的程序員。

2.3 軟技能:代碼之外的生存指南

英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez

推薦理由:

研究生期間讀過(guò)最受益的一本非技術(shù)書。程序員都知道編碼很重要,這是我們吃飯的硬技能。

可是實(shí)際工作上才發(fā)現(xiàn)不止寫代碼,代碼之外的軟技能也很重要:比如面臨著與客戶溝通、與產(chǎn)品打交道的溝通問(wèn)題;比如應(yīng)該關(guān)注自身發(fā)展,書中也介紹了怎么做職業(yè)突圍;還有更多章節(jié)介紹了作者如何學(xué)習(xí)、如何理財(cái)、健身、自我營(yíng)銷等等。

分享書中有趣讓我印象深刻的點(diǎn)是作者去面試,面試官瀏覽過(guò)他的博客文章,兩人因此相談甚歡。 最后也想給閱讀的朋友聲明一下:這本書涉獵了很多方面,但是并不是沒(méi)一點(diǎn)都是一套可以照抄的完美答案,畢竟作者也是從當(dāng)時(shí)的環(huán)境和自己經(jīng)歷出發(fā)介紹這些內(nèi)容,每個(gè)讀者應(yīng)該都有自己的選擇,

綜合而言,這本書挺適合各個(gè)階段的人閱讀的,尤其大學(xué)生和初入職場(chǎng)的朋友。

作者也出了《軟技能2:軟件開(kāi)發(fā)者職業(yè)生涯指南》,如果說(shuō)軟技能關(guān)注于生活,那軟技能 2 則更加關(guān)注于了軟件開(kāi)發(fā)職業(yè)。

3 關(guān)于黑客與開(kāi)源

3.1 Unix 編程藝術(shù)

書籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》從 1982 年開(kāi)始就是 UNIX 開(kāi)發(fā)者。

推薦理由:

本書涉及 Unix 系統(tǒng)領(lǐng)域中的設(shè)計(jì)和開(kāi)發(fā)哲學(xué)、思想文化體系、原則與經(jīng)驗(yàn),由公認(rèn)的 Unix 編程大師、開(kāi)源運(yùn)動(dòng)領(lǐng)袖人物之一 Eric S.Raymond 傾力多年寫作而成。

程序會(huì)過(guò)時(shí),編程語(yǔ)言會(huì)更新,代碼會(huì)跟隨業(yè)務(wù)不斷改動(dòng),但編程思想的生命力會(huì)長(zhǎng)盛不衰,好的編程藝術(shù)也是具有穿透力的,盡管書中的案例已經(jīng)偏老,但貫穿始終的 KISS 原則、思想文化體系、設(shè)計(jì)與開(kāi)發(fā)哲學(xué)一定能夠給你帶來(lái)醍醐灌頂?shù)母杏X(jué)。

Keep it simple stupid,簡(jiǎn)稱 KISS 原則。在做軟件設(shè)計(jì)的工作中,很多時(shí)候都不要想得過(guò)于復(fù)雜,也不要過(guò)度設(shè)計(jì)和過(guò)早優(yōu)化,用最簡(jiǎn)單且行之有效的方案也就避免了復(fù)雜方案帶來(lái)的各種額外成本。這樣既有利與后續(xù)的維護(hù),也有利于進(jìn)一步的擴(kuò)展。

另外,本書還可以與“左耳朵耗子”ef="">皓子叔推薦 過(guò)的《UNIX傳奇:歷史與回憶》結(jié)合著一起看,了解 UNIX 的誕生記與發(fā)展史,貝爾實(shí)驗(yàn)室的幕后故事!本書不但書寫 Unix 的歷史,而且記錄作者的回憶,一探 Unix 的起源,試圖解釋什么是 Unix,Unix 是如何產(chǎn)生的,以及 Unix 為何如此重要。

3.2 大教堂與集市

英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix編程藝術(shù)》作者 Eric S. Raymond 的另一封神之作,副標(biāo)題是《對(duì) Linux 和開(kāi)源革命的沉思》。

推薦理由:

大家都知道程序員熱衷于開(kāi)源文化,都在說(shuō)不要重復(fù)造輪子。開(kāi)源時(shí)代下的軟件開(kāi)發(fā)可能只需要三個(gè)鍵盤按鈕:CTRL + C + V,開(kāi)個(gè)玩笑。

說(shuō)到開(kāi)源文化,那么本書《大教堂與集市》是開(kāi)源運(yùn)動(dòng)的《圣經(jīng)》,顛覆了傳統(tǒng)的軟件開(kāi)發(fā)思路,影響了整個(gè)軟件開(kāi)發(fā)領(lǐng)域。作者把軟件開(kāi)發(fā)思路類比于古代的大教堂文化和集市文化,講述了集市如何變成大教堂,書中系統(tǒng)解釋了開(kāi)源軟件是如何生產(chǎn)的,開(kāi)源開(kāi)發(fā)的優(yōu)勢(shì)在哪,開(kāi)源軟件的傳承是如何做到的。

3.3 黑客與畫家

英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本書的譯者是大名鼎鼎的阮一峰大佬。

推薦理由:

說(shuō)到黑客文化,就不得不提到硅谷創(chuàng)業(yè)之父Paul Graham 的這本書,本書主要介紹黑客 Hacker,即優(yōu)秀程序員的愛(ài)好和動(dòng)機(jī),討論黑客成長(zhǎng)、黑客對(duì)世界的貢獻(xiàn)以及編程語(yǔ)言和黑客工作方法等所有對(duì)計(jì)算機(jī)時(shí)代感興趣的人的一些話題。

本書是一本為黑客正名的技術(shù)散文集,看完書后第一次將我從電影中的黑客形象顛覆過(guò)來(lái),才了解到并不是入侵系統(tǒng)、制作病毒、各種解密的人就是黑客,Hacker 是專家級(jí)程序員,是一群與畫家有著極大的相似性,他們都是在創(chuàng)造,而不是完成某個(gè)任務(wù),“黑客”象征著第一流的能力,以及求解問(wèn)題過(guò)程中產(chǎn)生的精神愉悅或享受。他們崇尚分享、開(kāi)放、民主、計(jì)算機(jī)的自由使用和進(jìn)步。而那些惡意入侵計(jì)算機(jī)系統(tǒng)的人更應(yīng)該被稱為 cracker(駭客)。

4 關(guān)于算法與設(shè)計(jì)模式

4.1 算法設(shè)計(jì)手冊(cè)

英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena

推薦理由:

關(guān)于算法的重要性大家都知道,大家肯定都知道另外兩本著名的《算法導(dǎo)論》和《算法4》:《算法導(dǎo)論》側(cè)重與算法的數(shù)學(xué)推導(dǎo),適合研究,而《算法4》側(cè)重于算法的代碼實(shí)現(xiàn),適合入門。

而這次推薦的《算法設(shè)計(jì)手冊(cè)(第2版)》卻沒(méi)有那么有名氣,但也不失為設(shè)計(jì)實(shí)用且高效算法的最全面指導(dǎo)書。該書揭密了算法的設(shè)計(jì)與分析,以簡(jiǎn)單易懂的寫作風(fēng)格,介紹了各種算法技術(shù),著重強(qiáng)調(diào)了算法分析。

目前市場(chǎng)上算法書層出不窮,但是經(jīng)典的算法卻一直在那里,不曾走遠(yuǎn)。

4.2 Head First 設(shè)計(jì)模式

英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson

推薦理由:

這本書完整地涵蓋了 GoF 版本全部23個(gè)設(shè)計(jì)模式,毫不費(fèi)力地解釋了世界各地熟練的軟件開(kāi)發(fā)人員和程序員用來(lái)構(gòu)建優(yōu)雅、功能齊全、靈活和可重用的軟件的幾種軟件設(shè)計(jì)模式。。圖文并茂,配有大量說(shuō)明性和啟發(fā)性的示例,它們將使學(xué)習(xí)同時(shí)變得高效和有趣。與其他文本繁重的編程書籍不同,這本書具有引人深思、視覺(jué)豐富的格式。

Head First 系統(tǒng)書籍充滿了幽默感,選題和編輯都很用心,值得一讀。相信讀完的讀者逐步邁向?qū)浖O(shè)計(jì)模式的深入了解。再來(lái)讀 GoF 不失為一個(gè)不錯(cuò)的選擇。

4.3 設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)

英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被簡(jiǎn)稱為計(jì)算機(jī)領(lǐng)域的 GoF ,因?yàn)楸緯淖髡呤撬膫€(gè)人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。

推薦理由:

本書是任何使用面向?qū)ο蟠a的開(kāi)發(fā)人員的必備入門讀物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 項(xiàng)目、Visual Studio、Azure 和 Office 365 的幕后推手。

如果您沒(méi)有很好地掌握 UML,您可能會(huì)發(fā)現(xiàn)很難吸收編程書中匯編的一些信息和示例。然而,這不會(huì)阻止您欣賞設(shè)計(jì)模式書中敘述的美妙之處,它既簡(jiǎn)單又內(nèi)容豐富。

《設(shè)計(jì)模式》一書詳盡地解釋了 23 種軟件設(shè)計(jì)模式,可幫助軟件開(kāi)發(fā)人員和設(shè)計(jì)人員制作更好、更優(yōu)雅、更靈活的軟件。這本書討論了針對(duì)常見(jiàn)軟件設(shè)計(jì)問(wèn)題的大量簡(jiǎn)潔明了的解決方案。

如果說(shuō) GoF 太難讀下去,那么就推薦程杰的《大話設(shè)計(jì)模式》,這本書通過(guò)對(duì)話的形式帶領(lǐng)大家入門設(shè)計(jì)模式,人人都可以是好學(xué)的小菜和經(jīng)驗(yàn)豐富的大鳥(niǎo)。

4.4 編程珠璣(第2版?修訂版)

英文名:《More Programming Pearls,Second Edition》,作者:John Bentley

推薦理由:

這是一本帶你真正領(lǐng)略計(jì)算機(jī)科學(xué)之美,融深邃思想、實(shí)戰(zhàn)技術(shù)與趣味軼事于一爐的奇書。與大多數(shù)其他編程書籍不同,這本書側(cè)重于基本問(wèn)題和一般問(wèn)題。它討論了可以提高性能或減少內(nèi)存需求的各種算法和技術(shù)。

作者選取許多具有典型意義的復(fù)雜編程和算法問(wèn)題,生動(dòng)描繪了歷史上眾大師們?cè)谔剿鹘鉀Q方案中發(fā)生的軼事、走過(guò)的彎路和不斷精益求精的歷程。

就如書名一樣,大浪淘沙,計(jì)算機(jī)科學(xué)中的智慧正如自然界里珍珠出自細(xì)沙對(duì)牡蠣的磨礪,留下一個(gè)個(gè)編程“珠肌”。

題外話:

上面的書都是本人曾經(jīng)閱讀過(guò),或者說(shuō)在圖書館中有借閱翻過(guò)的書。也是計(jì)算機(jī)領(lǐng)域評(píng)分很高、有口皆碑的書籍。但計(jì)算機(jī)行業(yè)的經(jīng)典書籍太多,本人能推薦的也只是其中一部分,想要推薦的內(nèi)容也不想針對(duì)某個(gè)特定編程語(yǔ)言和領(lǐng)域,所以像《C++編程思想》和《On Java8》這類書籍沒(méi)有進(jìn)行推薦,推薦理由也不一定完全正確,歡迎大家批評(píng)指正。另外,看完上述的書并不能說(shuō)自己就能在工作中就能運(yùn)用到,看完就能成為一個(gè)頂尖的程序員。何況看書也不能完全接收前輩們的這些大智慧,但如果在某個(gè)瞬間(看書過(guò)程或者實(shí)踐過(guò)程中)對(duì)自己有一種醍醐灌頂?shù)母杏X(jué),就已足夠。

參考鏈接:

? UNIX傳奇(上篇)

? 假期好讀書

? Top 5 Books to Improve Coding and Programming Skills

? http://www.osnews.com/images/comics/wtfm.jpg

本文分享自華為云社區(qū)《【云駐共創(chuàng)】對(duì)于編程思想和能力有重大提升的書有哪些》,作者:宇宙之一粟 。

女生適合編程嗎?

前言

現(xiàn)在已經(jīng)是新世紀(jì)了,不存在哪個(gè)職業(yè)有性別差異,性別不再是職業(yè)發(fā)展阻礙。商界有格力的董明珠,老干媽的創(chuàng)始人陶華碧,政界的原外交部發(fā)言人華春瑩…,巾幗英雄很多很多!

女性程序員占比問(wèn)題

以下內(nèi)容來(lái)自:

2003 年,卡耐基梅隆大學(xué)的計(jì)算機(jī)科學(xué)家 Allan Fisher 和社會(huì)學(xué)家 Jane Margolis 發(fā)表了一篇研究

據(jù)統(tǒng)計(jì),自 1960 年到 2013 年

在法律行業(yè),女性律師的占比,從 3% 提高到了 33%;對(duì)于醫(yī)師和外科手術(shù)師,女性占比則從 7% 上升至 36%;在生物學(xué)領(lǐng)域,女性占比從 28%,上升到 53%;在化學(xué)領(lǐng)域,女性占比從 8%,上升到 39%。計(jì)算機(jī)行業(yè)呢?

在 1960 年,女性在計(jì)算機(jī)行業(yè)從業(yè)占比是 27%;到了 2013 年,這一數(shù)字是 26%。其他行業(yè)的女性從業(yè)者占比大幅上升,計(jì)算機(jī)行業(yè)反而略微下降。

現(xiàn)在這一數(shù)字是多少呢?不同的統(tǒng)計(jì)渠道,不同的統(tǒng)計(jì)方法,對(duì)術(shù)語(yǔ)的不同定義(比如什么叫“程序員”),可能得到的結(jié)果不同。但這里有一個(gè)數(shù)字可以參考:

Statista 在 2020 年初給出的統(tǒng)計(jì),女性開(kāi)發(fā)者占比大概是 8%。

這一現(xiàn)象的解釋

相較男性,女性在邏輯思維上差一些,所以在編程學(xué)習(xí)上不如男性

但實(shí)際上,對(duì)于這一論斷,在認(rèn)知神經(jīng)科學(xué)領(lǐng)域有過(guò)很多相關(guān)的實(shí)驗(yàn)和研究,至今都沒(méi)有靠譜的證據(jù)來(lái)證明這一結(jié)論。(所以說(shuō)要有自信)

換句話說(shuō),目前的科學(xué)研究更支撐的結(jié)論是:在邏輯思維能力上,女性和男性是沒(méi)有差異的。

但是,社會(huì)對(duì)“女性邏輯思維能力較差”這一刻板印象,卻真實(shí)影響了女性的信心。

2004 年,斯坦福大學(xué) Lilly Irani 的一份簡(jiǎn)單的研究,驗(yàn)證了這一點(diǎn)。這個(gè)研究,最終發(fā)表在了 ACM SIG Computer Science Education 上。

Irani 教授的實(shí)驗(yàn)非常簡(jiǎn)單,她找來(lái)一組計(jì)算機(jī)科學(xué)系的學(xué)生,他們?cè)趯W(xué)習(xí)成績(jī)上是一個(gè)水平的。

但是當(dāng)被問(wèn)到,在使用計(jì)算機(jī)科學(xué)的知識(shí)解決問(wèn)題的能力上,你們認(rèn)為自己的水平是如何的時(shí)候,男同學(xué)給自己打出的平均分是 8.4 分;而女同學(xué)卻只有 7.7 分。

也就是雖然大家在學(xué)校的表現(xiàn)是一樣的,但是整體,男性卻普遍認(rèn)為自己使用計(jì)算機(jī)解決問(wèn)題的能力更強(qiáng)。

而當(dāng)問(wèn)到,你是否有信心成為一個(gè)比平均水平更好的程序員的時(shí)候(比 50% 的程序員更好),有 60% 的男性有這個(gè)信心;相較而言,只有 10% 的女性有這個(gè)信心。

L. Irani. 2004. Understanding gender and confidence in CS course culture in Proceedings of ACM SIG Computer Science Education 2004.

如果我們?nèi)プ肪浚谟?jì)算機(jī)科學(xué)領(lǐng)域,男性的信心是從哪里來(lái)的?或者女性的不自信源于哪里?很顯然,社會(huì)的刻板印象是很重要的一個(gè)原因。

在美國(guó)的 70 年代末,80 年代初,小型家用電腦開(kāi)始流行起來(lái)。

比如 1977 年蘋果公司發(fā)布的 8 比特家用電腦 Apple II:

再比如 1981 年,IBM 發(fā)布的 IBM Personal Computer 5150.

當(dāng)個(gè)人電腦開(kāi)始走進(jìn)家庭的時(shí)候,青少年有了更早的機(jī)會(huì),可以隨時(shí)隨地接觸電腦,開(kāi)始計(jì)算機(jī)啟蒙。

在 80 年代中期,一些美國(guó)青少年已經(jīng)在大學(xué)前有了對(duì)編程的基礎(chǔ)認(rèn)識(shí),比如什么是 if 語(yǔ)句,什么是循環(huán)邏輯。

毫不出人意料地,來(lái)自大學(xué)的統(tǒng)計(jì)數(shù)據(jù)表明:有這些對(duì)計(jì)算機(jī)基礎(chǔ)認(rèn)識(shí)的學(xué)生,大多數(shù)是男生。

Allan Fisher 和 Jane Margolis 深入走訪了很多家庭,發(fā)現(xiàn)了很多原因。

比如,相較女生,男生有高出兩倍多的機(jī)會(huì),獲得一臺(tái)屬于自己的個(gè)人電腦,當(dāng)做圣誕節(jié)或者生日的禮物。

而如果一個(gè)家庭購(gòu)買了一臺(tái)計(jì)算機(jī)公用的話,這臺(tái)計(jì)算機(jī)將有更大的概率被放置到兒子的房間中,而非女兒的房間中。

更重要的是,在教育上,如果父親從事和編程相關(guān)的工作的話,父親和兒子之間更有可能建立起“師徒”的關(guān)系。

父親會(huì)手把手教自己的兒子寫 BASIC 程序,查看相關(guān)的文檔,甚至鼓勵(lì)他們做出一個(gè)屬于自己的游戲。

而女兒能獲得這樣的機(jī)會(huì)很少,即使自己父親的工作和編程相關(guān)。

不僅在家庭教育上存在這樣的“偏見(jiàn)”,在學(xué)校,也存在這樣的“偏見(jiàn)”。

Allan Fisher 和 Jane Margolis 的研究提到了一個(gè)很有意思的結(jié)論,那就是,社會(huì)對(duì)男性和女性的“要求”,可能并不僅僅是學(xué)習(xí)什么專業(yè),從事什么工作這么簡(jiǎn)單。

他們的研究顯示,整個(gè)社會(huì)似乎更能容忍男性是一個(gè)“專才”,而對(duì)女性的要求,更多的,是要成為一名“全才”。

結(jié)論:

兩位教授的解釋是:雖然那些男孩子從小就接觸計(jì)算機(jī),從小就接觸編程,但是,那是一種“業(yè)余”的接觸。

相較于在大學(xué)里體系化,嚴(yán)格,并且極高密度的學(xué)習(xí)和訓(xùn)練,大多數(shù)男孩子那些早期對(duì)計(jì)算機(jī)的學(xué)習(xí)和接觸,在大學(xué)課程面前,簡(jiǎn)直是皮毛,不值一提。

通過(guò)專業(yè)的學(xué)習(xí)和訓(xùn)練,這些早期的優(yōu)勢(shì),很快就會(huì)被追趕上,哪怕是零基礎(chǔ)。

他們的研究表示,“是否在少兒時(shí)期就接觸過(guò)計(jì)算機(jī)”這一因素,完全不能成為預(yù)測(cè)“日后在計(jì)算機(jī)領(lǐng)域的成績(jī)”的指標(biāo)。

至此,在我看來(lái),這個(gè)研究已經(jīng)超越了對(duì)“計(jì)算機(jī)領(lǐng)域的性別差異”的研究范疇,而有了更加普世的意義,對(duì)所有人都成立。

早,并不是一個(gè)不可取代的優(yōu)勢(shì);

相較而言;成體系,持續(xù),高密度的訓(xùn)練,才是更重要的因素。

只有有這些因素作為前提,早,才可能是一種優(yōu)勢(shì);

而如果沒(méi)有這些因素,早,是很容易被超越。

自學(xué)編程學(xué)哪些語(yǔ)言比較好?

初學(xué)者如何選擇編程語(yǔ)言和開(kāi)發(fā)方向全世界的編程語(yǔ)言有 600 多種,TIOBE 統(tǒng)計(jì)的有 100 種,參與排名的有 50 種,前 20 種是常用的,它們目前正在流行,或者曾經(jīng)非常流行。

圖1:2021 年 11 月份編程語(yǔ)言排名 TOP 20

要想選擇編程語(yǔ)言,首先得確定開(kāi)發(fā)方向,比如網(wǎng)站開(kāi)發(fā)、APP 開(kāi)發(fā)、機(jī)器學(xué)習(xí)、大數(shù)據(jù)、嵌入式、GUI 軟件、算法設(shè)計(jì)等。編程語(yǔ)言不是萬(wàn)能的,一門編程語(yǔ)言只能勝任一個(gè)或者幾個(gè)開(kāi)發(fā)方向,一個(gè)開(kāi)發(fā)方向往往也有多種編程語(yǔ)言可以選擇。

我們首先談一下開(kāi)發(fā)方向的選擇,然后再說(shuō)編程語(yǔ)言的選擇。

1. 選擇開(kāi)發(fā)方向

選擇大于努力,只有切入一個(gè)適合自己的開(kāi)發(fā)方向,才能持續(xù)進(jìn)步。關(guān)于開(kāi)發(fā)方向,我有以下兩個(gè)選擇標(biāo)準(zhǔn)。

(1) 興趣

學(xué)習(xí)編程是一個(gè)非??菰锏倪^(guò)程,內(nèi)容多,時(shí)間長(zhǎng),成本高,就算參加全職培訓(xùn)班,至少也得學(xué)習(xí)半年才能入門,做出一點(diǎn)小玩意來(lái)。要想成為別人眼中的大神,或者編程專家,沒(méi)有三五年的功夫肯定是不行的。

學(xué)習(xí)編程的過(guò)程是比較艱苦的,沒(méi)有興趣很難硬抗下來(lái),即使報(bào)名了培訓(xùn)班也學(xué)不會(huì),所以,我們首先要選擇自己感興趣的一個(gè)開(kāi)發(fā)方向,這樣不但能快速學(xué)習(xí),以后還能持續(xù)進(jìn)步。

比如我就對(duì)網(wǎng)站感興趣,高中階段我就想開(kāi)發(fā)一個(gè)屬于自己的網(wǎng)站,感覺(jué)非常炫酷,所以大學(xué)我毫不猶豫地選擇了網(wǎng)站開(kāi)發(fā)這個(gè)方向。我在選擇開(kāi)發(fā)方向的時(shí)候沒(méi)有任何糾結(jié),我知道自己必須選擇網(wǎng)站開(kāi)發(fā)。

興趣是最好的老師,沒(méi)有之一。遺憾的是,對(duì)某個(gè)事物有強(qiáng)烈興趣的人很少,大部分人都是被動(dòng)選擇。

此處我說(shuō)的興趣,是指別人無(wú)法撼動(dòng)的熱愛(ài),是工作之余讓你放松的事情。如果你只是有過(guò)某種想法,別人告訴你這個(gè)想法不靠譜,你就放棄了,這頂多是一時(shí)的雞血。

(2) 未來(lái)發(fā)展

如果你學(xué)習(xí)編程不是因?yàn)榕d趣,只是想選擇一份職業(yè),那我希望你切入一個(gè)有發(fā)展?jié)摿Φ拈_(kāi)發(fā)方向。

每個(gè)產(chǎn)業(yè)的發(fā)展規(guī)律都是類似的,都要經(jīng)歷以下幾個(gè)周期:

拓荒期 -> 發(fā)展期 -> 成熟期 -> 衰落期

我希望你在發(fā)展期切入一個(gè)產(chǎn)業(yè),然后持續(xù)努力和積累,讓產(chǎn)業(yè)的發(fā)展帶著你起飛。站在風(fēng)口上,豬都能飛起來(lái)。

你應(yīng)該聽(tīng)說(shuō)過(guò)很多沒(méi)啥背景的人,突然之間一夜暴富了,惹得別人羨慕嫉妒恨吧,這些人,大都是在一個(gè)爆發(fā)式增長(zhǎng)的行業(yè)里面翻了身,比如十年前的包工頭、持續(xù)火熱的程序員。

注意,最好不要在拓荒期切入一個(gè)產(chǎn)業(yè),你很有可能堅(jiān)持不到曙光到來(lái)之時(shí)就已經(jīng)轉(zhuǎn)行或者年老色衰了,成為了別人談笑中的“烈士”。

對(duì)于軟件開(kāi)發(fā)產(chǎn)業(yè)來(lái)說(shuō),GUI 桌面軟件已經(jīng)是過(guò)去式了,APP 和網(wǎng)站也已經(jīng)進(jìn)入成熟期,我推薦機(jī)器學(xué)習(xí)(人工智能)和大數(shù)據(jù)兩個(gè)方向,它們都是國(guó)家重點(diǎn)扶植的細(xì)分產(chǎn)業(yè),而且寫入了十四五規(guī)劃,未來(lái)至少還有十年的發(fā)展時(shí)間。

機(jī)器學(xué)習(xí)需要大數(shù)據(jù)提供原料,反過(guò)來(lái),大數(shù)據(jù)分析也依賴機(jī)器學(xué)習(xí)模型,它們是相輔相成的,很難隔離開(kāi)。

另外,選擇產(chǎn)業(yè)方向也是有風(fēng)險(xiǎn)的,也是一次命運(yùn)賭博,誰(shuí)也不能確定這個(gè)產(chǎn)業(yè)能不能發(fā)展起來(lái),就算發(fā)展起來(lái),又需要多少年呢?又有多大的產(chǎn)值呢?

比如人們一直談?wù)摰娜斯ぶ悄芤呀?jīng)發(fā)展了幾十年了,到現(xiàn)在還是“人工智障”,底層理論并沒(méi)有本質(zhì)的突破。雖然國(guó)家把人工智能選為重點(diǎn)產(chǎn)業(yè),注入了海量資金和人才,各家大公司也跟風(fēng)進(jìn)入,但是底層理論如果不突破,十年以后沒(méi)準(zhǔn)還是智障,只不過(guò)應(yīng)用場(chǎng)景多了。誰(shuí)也不能穿越到未來(lái),誰(shuí)也不能告訴你確定的答案。

就算一個(gè)國(guó)家,也會(huì)點(diǎn)錯(cuò)科技樹(shù),比如:

美國(guó)認(rèn)為自己無(wú)人能敵,發(fā)展了朱姆沃爾特級(jí)驅(qū)逐艦,打算近岸攻擊,想不到中國(guó)突然崛起,海軍開(kāi)始下餃子,美國(guó)不得不轉(zhuǎn)為遠(yuǎn)洋作戰(zhàn),廢掉朱姆沃爾特級(jí)。日本押寶混動(dòng)汽車和氫能汽車,積累了大量專利,但是中國(guó)卻切換了賽道,傾力發(fā)展純電動(dòng)汽車,并且積累了一定的優(yōu)勢(shì),日本想逆襲非常困難,汽車產(chǎn)業(yè)岌岌可危。在產(chǎn)業(yè)發(fā)展過(guò)程中,會(huì)有很多不確定因素,我們只能盡力選擇一個(gè)有前景的產(chǎn)業(yè)。

其實(shí)吧,很多“暴發(fā)戶”也不懂得什么產(chǎn)業(yè)發(fā)展規(guī)律,他們只是陰差陽(yáng)錯(cuò)地進(jìn)入了某個(gè)產(chǎn)業(yè),恰好趕上產(chǎn)業(yè)崛起而已。我自己當(dāng)初也不懂互聯(lián)網(wǎng),只是對(duì)網(wǎng)站感興趣,就進(jìn)入了互聯(lián)網(wǎng)產(chǎn)業(yè),抓住了 PC 互聯(lián)網(wǎng)的尾巴,所有才比其他行業(yè)的同學(xué)混得好點(diǎn)。

也就是說(shuō),我混的好,不是因?yàn)槲易銐騼?yōu)秀,而是因?yàn)槲疫M(jìn)入了互聯(lián)網(wǎng)產(chǎn)業(yè),搭上了產(chǎn)業(yè)的便車,我只是比我的同學(xué)更加幸運(yùn)而已。

2. 選擇編程語(yǔ)言

確定了開(kāi)發(fā)方向,接下來(lái)就可以選擇編程語(yǔ)言了。有的開(kāi)發(fā)方向比較純粹,只有一兩種編程語(yǔ)言,有的開(kāi)發(fā)方向魚龍混雜,有五六種編程語(yǔ)言,選擇編程語(yǔ)言也是一個(gè)讓人糾結(jié)的過(guò)程。

以下是部分開(kāi)發(fā)方向可以選擇的編程語(yǔ)言:

1) GUI 桌面軟件

能開(kāi)發(fā) GUI 軟件的編程語(yǔ)言眾多,既有傳統(tǒng)的 C++、C#、VB、Delphi、Java,也有新晉選手 Python、Node.js(JavaScript),還有小眾的易語(yǔ)言(中文編程語(yǔ)言)。

如果你只是想玩玩,那么你隨意,適合自己的就行,其中 Python 上手比較簡(jiǎn)單。

如果你想找一份工作,建議學(xué)習(xí) C++ 或者 C#。C# 雖然比 C++ 簡(jiǎn)單一點(diǎn),但是它只適用于 Windows 平臺(tái);而 C++ 是一種通用語(yǔ)言,它可以應(yīng)用于 Windows、Linux 以及嵌入式平臺(tái),就業(yè)選擇較多。

2) 網(wǎng)站開(kāi)發(fā)

網(wǎng)站開(kāi)發(fā)分為前端和后臺(tái),前端就是用戶在瀏覽器中看到的界面,后臺(tái)就是放在服務(wù)器上的程序。

前端開(kāi)發(fā)需要學(xué)習(xí) HTML、CSS 和 JavaScript,沒(méi)得選,而且必須都學(xué)習(xí)。

后臺(tái)發(fā)開(kāi)語(yǔ)言則多如牛毛,有走進(jìn)墳?zāi)沟?ASP、Ruby on Rails,也有常用的 PHP、Java(JSP)、C#(ASP.NET),還有新晉選手 Python、Node.js(JavaScript)、Go 語(yǔ)言。

如果你想自己玩玩或者創(chuàng)業(yè),建議選擇 PHP,上手非常簡(jiǎn)單。我使用的也是 PHP,因?yàn)楫?dāng)時(shí)學(xué)不會(huì) ASP.NET 和 JSP,所以選擇了簡(jiǎn)單的 PHP。

如果你想找一份工作,那么已經(jīng)走近墳?zāi)沟?ASP、Ruby on Rails 就不要選了,沒(méi)人用了。C# 也不要選了,只適用于 Windows 平臺(tái),而大量的服務(wù)器都是 Linux。Python 也不要選,實(shí)際應(yīng)用場(chǎng)景不多。Go 語(yǔ)言主要用作 Web 底層開(kāi)發(fā),而不是應(yīng)用層開(kāi)發(fā)。

剩下的 PHP、Java、Node.js 你自己看著辦吧,沒(méi)法說(shuō)哪種語(yǔ)言一定有優(yōu)勢(shì),它們只是適用于不同的場(chǎng)景。

值得一提的是,這里我們將 Node.js 和 JavaScript 看做是等價(jià)的,如果你選擇了 JavaScript,那么你既能開(kāi)發(fā)網(wǎng)站前端,也能開(kāi)發(fā)網(wǎng)站后臺(tái),就不用學(xué)習(xí)多種編程語(yǔ)言了。

3) APP 開(kāi)發(fā)

這個(gè)開(kāi)發(fā)方向比較簡(jiǎn)單,Android APP 開(kāi)發(fā)使用 Java 或者 Kotlin,iOS APP 開(kāi)發(fā)使用 Objective-C 或者 Swift。

每種操作系統(tǒng)都有兩種編程語(yǔ)言,一種是傳統(tǒng)的,一種是新晉的,選擇好了操作系統(tǒng),把兩種語(yǔ)言都學(xué)了吧。

4) 嵌入式開(kāi)發(fā)

一般使用匯編、C語(yǔ)言和 C++,近年來(lái)也有開(kāi)發(fā)板支持 JavaScript 和 Python。

自己玩的話,可以選擇 Python,上手簡(jiǎn)單。

想找工作的話,還是走傳統(tǒng)路線吧,把匯編、C語(yǔ)言和 C++ 都學(xué)了吧。

只有那些有 Web 開(kāi)發(fā)基礎(chǔ)的程序員才會(huì)選擇 JavaScript。

5) 機(jī)器學(xué)習(xí)

這是一個(gè)比較綜合的開(kāi)發(fā)方向,初學(xué)者一般從 Python、MATLAB 開(kāi)始搭建模型,實(shí)際工程應(yīng)用中可能需要使用 C++、Java 等其它語(yǔ)言去實(shí)現(xiàn)。

Python 是必學(xué)的,MATLAB 最好也要掌握,C++ 和 Java 視情況而定。

6) 大數(shù)據(jù)

這也是一個(gè)比較綜合的開(kāi)發(fā)方向,相關(guān)語(yǔ)言有 Python、R語(yǔ)言、Java、Scala。把 Python 和R語(yǔ)言學(xué)習(xí)一下,剩下的看情況吧。

由于我的能力所限,我無(wú)法對(duì)所有開(kāi)發(fā)方向做深入的分析,有說(shuō)的不到位的地方,請(qǐng)大家留言,或者在公眾號(hào)聊天框中反饋給我。

以上說(shuō)的僅僅是編程語(yǔ)言,除了編程語(yǔ)言,大家還需要學(xué)習(xí)某些框架或者庫(kù),比如:

Java 網(wǎng)站開(kāi)發(fā)需要掌握 Servlet、JSP 技術(shù),以及 Spring、Spring MVC、Spring Boot、Spring Cloud、Mybatis、Hibernate 框架;Python 機(jī)器學(xué)習(xí)需要掌握 PyTorch、TensorFlow、Caffe 等框架,以及 sklearn、NumPy 等模塊。除了編程語(yǔ)言和框架/庫(kù),你當(dāng)然還要掌握一兩種數(shù)據(jù)庫(kù),常用的有 MySQL、Oracle、MongoDB、Redis、Sqlite 等,這里不再展開(kāi)討論。

總結(jié)

軟件開(kāi)發(fā)是一個(gè)大產(chǎn)業(yè),其中有很多細(xì)分方向,每個(gè)方向使用的技術(shù)棧都不一樣,而且要經(jīng)過(guò)長(zhǎng)期學(xué)習(xí)才能掌握,所以大部分程序員都只擅長(zhǎng)某個(gè)開(kāi)發(fā)方向,那些多面手,要么是學(xué)藝不精,要么是技術(shù)大咖。

人們之所以迷茫,就是不知道如何選擇,這篇文章雖然不一定能讓你做出最終的決定,但是可以給你一種不同的視角和標(biāo)準(zhǔn),幫助你打開(kāi)思路。

以上就是關(guān)于易語(yǔ)言編程游戲和有哪些適合新手學(xué)編程的書推薦的相關(guān)問(wèn)題解答,希望對(duì)你有所幫助。