200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 易语言编程游戏 有哪些适合新手学编程的书推荐 – 游戏开发 – 前端

易语言编程游戏 有哪些适合新手学编程的书推荐 – 游戏开发 – 前端

时间:2021-09-25 10:38:46

相关推荐

易语言编程游戏 有哪些适合新手学编程的书推荐 – 游戏开发 – 前端

1 关于编码与重构

1.1 代码整洁之道

英文名《Clean code》,该书出自 Robert C Martin 之手,又被称为 Bob 大叔,是一位美国著名的软件工程师和作家,他已经写了有关敏捷软件开发的书籍。书中提到众多有名的编程原则:比如 SOLID 原则、 Law of Demeter(LoD,又被称为最少知识原则)。推荐理由:每个程序员都必须拥有本书并阅读它。这是一本非常著名的书,它将完全改变您的编程风格,书中介绍的规则均来自作者多年的实践经验,涵盖从命名、数据结构、面向对象的设计原理到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。或许,真正整洁的代码真能让同行读起来像诗一样。任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。— 马丁·福勒如果只能读一本书,偶就推荐这本。最后,基于本书,众多开发者还推出了各种语言的整洁之道:• Javascript 整洁之道• PHP 整洁之道• ABAP 整洁之道• Java 整洁之道• .NET 整洁之道还有各大科技公司的代码风格指南:• Google 风格指南• Uber Go 语言风格指南Bob 大叔的《架构整洁之道》也值得推荐,这本书是在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。还有《程序员的职业素养》,作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

1.2 重构(第2版)

英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本书是理论和实践最佳组合的罕见书籍之一。重构是一个使您的工作代码更加美丽的过程,这本书可以利用已经尝试和测试的软件开发世界的模式来为您提供帮助。推荐理由:重构一词经常在各种大会上被提及,那就是这本书带来的影响。重构也就是重写软件的过程,而无需更改其功能,以提高其可读性,可检验性或可维护性。重构是使工作代码美观的过程,重构有助于改进工作代码的设计。这也是优秀程序员的必备技巧之一,通常优秀的程序员也擅长重构。本书将教你重构代码的艺术和科学。无论您是 Java 程序员、C++ 开发人员还是 Python 开发人员,每个程序员都可以从本书中受益。与《重构》经常被提及的书就是大名鼎鼎的《代码大全》,书中解释的也是久经考验的技术和策略,能有效帮助程序员和软件开发人员。笔者也曾在大学的时候把这本书图书馆借出来,发现这本书太厚,啃不动,到期就立马归还了。

1.3 代码之美

英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。推荐理由:大牛前辈的博客合集,同时也是提高编码技能的好书之一,因为它为您提供了一个机会,让您了解专业程序员如何处理问题、编写的代码以及他们如何解决问题,并且仍然能够保持他们的代码美观。这本书是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型网站架构秘密,讲述了那些专家程序员,包括布莱恩·克尼原,乔恩·本特利(Jon Bentley)(编程珠玑的作者),蒂姆·布雷(Tim Bray),卡尔·福格尔(Karl Fogel),迈克尔·菲瑟斯(Michael Feathers)(有效地使用旧版代码的作者),以及许多更多伟大的作者和程序员。关于二分查找,在书中数次被不同作者提及,了解不同作者的观点。无论您使用哪种编码语言,例如 Java,C#,Python 或 Ruby,都会在本书中找到有趣的东西。代码之美调查了一项努力的人类发明和创造力的范围:计算机系统的开发。每章中的美观来自发现独特的解决方案,这是作者的力量超越界限,识别他人所忽略的需求,并找到令人惊讶的解决方案,以解决令人困扰的问题。

2 关于职业成长

2.1 程序员修炼之道(第2版)

英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的译者是大名鼎鼎的云风,副标题是:通向务实的最高境界。推荐理由:本书是时隔 20 年的新版,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。刚出来的时候博文出版社举办了一个推广活动,在云风和皓子叔联袂推荐下,毫不犹豫的入手了本书。程序员往往最难得就是务实主义,总想追求新技术,炒新概念。工作后才逐渐明白,编程的本质,均不依赖于特定语言、框架和方法,技术改变世界在于能够有效解决用户的真实需求。本书本质上是程序员的自助指南。它探索了良好的软件开发实践,并为您提供了出色的建议、提示和技巧,以更有效地编程。正是对经典和现代轶事、引人入胜的类比和发人深省的例子的创造性使用,使每个部分的学习都变得有趣而有趣。如果说大学期间读的都是类似于 C 语言圣经和 Head First 系统书籍的话,工作后的人才会真正懂得为什么这本书籍不厚,读起来拍案叫好,这大概就是大道至简。作者另一著作:《程序员修炼之道: 从小工到专家》也是值得推荐的

2.2 卓有成效的程序员

英文名:《The Productive Programmer》,作者:Neal Ford。推荐理由:本书就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。贯穿全文的思想大概就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势。学会善用工具,命令行、学会写脚本,学会宏。提供效率,不去做重复单调的工作。最终的目的:成为一个“慵懒”的程序员。

2.3 软技能:代码之外的生存指南

英文名:《Soft Skills: The software developer’s life manual》,作者:John Z. Sonmez推荐理由:研究生期间读过最受益的一本非技术书。程序员都知道编码很重要,这是大家吃饭的硬技能。可是实际工作上才发现不止写代码,代码之外的软技能也很重要:比如面临着与客户沟通、与产品打交道的沟通问题;比如应该关注自身发展,书中也介绍了怎么做职业突围;还有更多章节介绍了作者如何学习、如何理财、健身、自偶营销等等。分享书中有趣让偶印象深刻的点是作者去面试,面试官浏览过他的博客文章,两人因此相谈甚欢。 最后也想给阅读的朋友声明一下:这本书涉猎了很多方面,但是并不是没一点都是一套可以照抄的完美答案,毕竟作者也是从当时的环境和自己经历出发介绍这些内容,每个读者应该都有自己的选择,综合而言,这本书挺适合各个阶段的人阅读的,尤其大学生和初入职场的朋友。作者也出了《软技能2:软件开发者职业生涯指南》,如果说软技能关注于生活,那软技能 2 则更加关注于了软件开发职业。

3 关于黑客与开源

3.1 Unix 编程艺术

书籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》从 1982 年开始就是 UNIX 开发者。推荐理由:本书涉及 Unix 系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的 Unix 编程大师、开源运动领袖人物之一 Eric S.Raymond 倾力多年写作而成。程序会过时,编程语言会更新,代码会跟随业务不断改动,但编程思想的生命力会长盛不衰,好的编程艺术也是具有穿透力的,尽管书中的案例已经偏老,但贯穿始终的 KISS 原则、思想文化体系、设计与开发哲学一定能够给你带来醍醐灌顶的感觉。Keep it simple stupid,简称 KISS 原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早优化,用最简单且行之有效的方案也就避免了复杂方案带来的各种额外成本。这样既有利与后续的维护,也有利于进一步的扩展。另外,本书还可以与“左耳朵耗子”ef=””>皓子叔推荐 过的《UNIX传奇:历史与回忆》结合着一起看,了解 UNIX 的诞生记与发展史,贝尔实验室的幕后故事!本书不但书写 Unix 的历史,而且记录作者的回忆,一探 Unix 的起源,试图解释什么是 Unix,Unix 是如何产生的,以及 Unix 为何如此重要。

3.2 大教堂与集市

英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix编程艺术》作者 Eric S. Raymond 的另一封神之作,副标题是《对 Linux 和开源革命的沉思》。推荐理由:大家都知道程序员热衷于开源文化,都在说不要重复造轮子。开源时代下的软件开发可能只需要三个键盘按钮:CTRL + C + V,开个玩笑。说到开源文化,那么本书《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者把软件开发思路类比于古代的大教堂文化和集市文化,讲述了集市如何变成大教堂,书中系统解释了开源软件是如何生产的,开源开发的优势在哪,开源软件的传承是如何做到的。

3.3 黑客与画家

英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本书的译者是大名鼎鼎的阮一峰大佬。推荐理由:说到黑客文化,就不得不提到硅谷创业之父Paul Graham 的这本书,本书主要介绍黑客 Hacker,即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。本书是一本为黑客正名的技术散文集,看完书后第一次将偶从电影中的黑客形象颠覆过来,才了解到并不是入侵系统、制作病毒、各种解密的人就是黑客,Hacker 是专家级程序员,是一群与画家有着极大的相似性,他们都是在创造,而不是完成某个任务,“黑客”象征着第一流的能力,以及求解问题过程中产生的精神愉悦或享受。他们崇尚分享、开放、民主、计算机的自由使用和进步。而那些恶意入侵计算机系统的人更应该被称为 cracker(骇客)。

4 关于算法与设计模式

4.1 算法设计手册

英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena推荐理由:关于算法的重要性大家都知道,大家肯定都知道另外两本著名的《算法导论》和《算法4》:《算法导论》侧重与算法的数学推导,适合研究,而《算法4》侧重于算法的代码实现,适合入门。而这次推荐的《算法设计手册(第2版)》却没有那么有名气,但也不失为设计实用且高效算法的最全面指导书。该书揭密了算法的设计与分析,以简单易懂的写作风格,介绍了各种算法技术,着重强调了算法分析。目前市场上算法书层出不穷,但是经典的算法却一直在那里,不曾走远。

4.2 Head First 设计模式

英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson推荐理由:这本书完整地涵盖了 GoF 版本全部23个设计模式,毫不费力地解释了世界各地熟练的软件开发人员和程序员用来构建优雅、功能齐全、灵活和可重用的软件的几种软件设计模式。。图文并茂,配有大量说明性和启发性的示例,它们将使学习同时变得高效和有趣。与其他文本繁重的编程书籍不同,这本书具有引人深思、视觉丰富的格式。Head First 系统书籍充满了幽默感,选题和编辑都很用心,值得一读。相信读完的读者逐步迈向对软件设计模式的深入了解。再来读 GoF 不失为一个不错的选择。

4.3 设计模式:可复用面向对象软件的基础

英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被简称为计算机领域的 GoF ,因为本书的作者是四个人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。推荐理由:本书是任何使用面向对象代码的开发人员的必备入门读物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 项目、Visual Studio、Azure 和 Office 365 的幕后推手。如果您没有很好地掌握 UML,您可能会发现很难吸收编程书中汇编的一些信息和示例。然而,这不会阻止您欣赏设计模式书中叙述的美妙之处,它既简单又内容丰富。《设计模式》一书详尽地解释了 23 种软件设计模式,可帮助软件开发人员和设计人员制作更好、更优雅、更灵活的软件。这本书讨论了针对常见软件设计问题的大量简洁明了的解决方案。如果说 GoF 太难读下去,那么就推荐程杰的《大话设计模式》,这本书通过对话的形式带领大家入门设计模式,人人都可以是好学的小菜和经验丰富的大鸟。

4.4 编程珠玑(第2版•修订版)

英文名:《More Programming Pearls,Second Edition》,作者:John Bentley推荐理由:这是一本带你真正领略计算机科学之美,融深邃思想、实战技术与趣味轶事于一炉的奇书。与大多数其他编程书籍不同,这本书侧重于基本问题和一般问题。它讨论了可以提高性能或减少内存需求的各种算法和技术。作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。就如书名一样,大浪淘沙,计算机科学中的智慧正如自然界里珍珠出自细沙对牡蛎的磨砺,留下一个个编程“珠肌”。

题外话:

上面的书都是本人曾经阅读过,或者说在图书馆中有借阅翻过的书。也是计算机领域评分很高、有口皆碑的书籍。但计算机行业的经典书籍太多,本人能推荐的也只是其中一部分,想要推荐的内容也不想针对某个特定编程语言和领域,所以像《C++编程思想》和《On Java8》这类书籍没有进行推荐,推荐理由也不一定完全正确,欢迎大家批评指正。另外,看完上述的书并不能说自己就能在工作中就能运用到,看完就能成为一个顶尖的程序员。何况看书也不能完全接收前辈们的这些大智慧,但如果在某个瞬间(看书过程或者实践过程中)对自己有一种醍醐灌顶的感觉,就已足够。

参考链接:

• UNIX传奇(上篇)• 假期好读书• Top 5 Books to Improve Coding and Programming Skills• /images/comics/wtfm.jpg

本文分享自华为云社区《【云驻共创】对于编程思想和能力有重大提升的书有哪些》,作者:宇宙之一粟 。

女生适合编程吗?

前言

现在已经是新世纪了,不存在哪个职业有性别差异,性别不再是职业发展阻碍。商界有格力的董明珠,老干妈的创始人陶华碧,政界的原外交部发言人华春莹…,巾帼英雄很多很多!

女性程序员占比问题

以下内容来自:

年,卡耐基梅隆大学的计算机科学家 Allan Fisher 和社会学家 Jane Margolis 发表了一篇研究

据统计,自 1960 年到 年

在法律行业,女性律师的占比,从 3% 提高到了 33%;对于医师和外科手术师,女性占比则从 7% 上升至 36%;在生物学领域,女性占比从 28%,上升到 53%;在化学领域,女性占比从 8%,上升到 39%。计算机行业呢?

在 1960 年,女性在计算机行业从业占比是 27%;到了 年,这一数字是 26%。其他行业的女性从业者占比大幅上升,计算机行业反而略微下降。

现在这一数字是多少呢?不同的统计渠道,不同的统计方法,对术语的不同定义(比如什么叫“程序员”),可能得到的结果不同。但这里有一个数字可以参考:

Statista 在 年初给出的统计,女性开发者占比大概是 8%。

这一现象的解释

相较男性,女性在逻辑思维上差一些,所以在编程学习上不如男性

但实际上,对于这一论断,在认知神经科学领域有过很多相关的实验和研究,至今都没有靠谱的证据来证明这一结论。(所以说要有自信)

换句话说,目前的科学研究更支撑的结论是:在逻辑思维能力上,女性和男性是没有差异的。

但是,社会对“女性逻辑思维能力较差”这一刻板印象,却真实影响了女性的信心。

年,斯坦福大学 Lilly Irani 的一份简单的研究,验证了这一点。这个研究,最终发表在了 ACM SIG Computer Science Education 上。

Irani 教授的实验非常简单,她找来一组计算机科学系的学生,他们在学习成绩上是一个水平的。

但是当被问到,在使用计算机科学的知识解决问题的能力上,你们认为自己的水平是如何的时候,男同学给自己打出的平均分是 8.4 分;而女同学却只有 7.7 分。

也就是虽然大家在学校的表现是一样的,但是整体,男性却普遍认为自己使用计算机解决问题的能力更强。

而当问到,你是否有信心成为一个比平均水平更好的程序员的时候(比 50% 的程序员更好),有 60% 的男性有这个信心;相较而言,只有 10% 的女性有这个信心。

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

如果大家去追究,在计算机科学领域,男性的信心是从哪里来的?或者女性的不自信源于哪里?很显然,社会的刻板印象是很重要的一个原因。

在美国的 70 年代末,80 年代初,小型家用电脑开始流行起来。

比如 1977 年苹果公司发布的 8 比特家用电脑 Apple II:

再比如 1981 年,IBM 发布的 IBM Personal Computer 5150.

当个人电脑开始走进家庭的时候,青少年有了更早的机会,可以随时随地接触电脑,开始计算机启蒙。

在 80 年代中期,一些美国青少年已经在大学前有了对编程的基础认识,比如什么是 if 语句,什么是循环逻辑。

毫不出人意料地,来自大学的统计数据表明:有这些对计算机基础认识的学生,大多数是男生。

Allan Fisher 和 Jane Margolis 深入走访了很多家庭,发现了很多原因。

比如,相较女生,男生有高出两倍多的机会,获得一台属于自己的个人电脑,当做圣诞节或者生日的礼物。

而如果一个家庭购买了一台计算机公用的话,这台计算机将有更大的概率被放置到儿子的房间中,而非女儿的房间中。

更重要的是,在教育上,如果父亲从事和编程相关的工作的话,父亲和儿子之间更有可能建立起“师徒”的关系。

父亲会手把手教自己的儿子写 BASIC 程序,查看相关的文档,甚至鼓励他们做出一个属于自己的游戏。

而女儿能获得这样的机会很少,即使自己父亲的工作和编程相关。

不仅在家庭教育上存在这样的“偏见”,在学校,也存在这样的“偏见”。

Allan Fisher 和 Jane Margolis 的研究提到了一个很有意思的结论,那就是,社会对男性和女性的“要求”,可能并不仅仅是学习什么专业,从事什么工作这么简单。

他们的研究显示,整个社会似乎更能容忍男性是一个“专才”,而对女性的要求,更多的,是要成为一名“全才”。

结论:

两位教授的解释是:虽然那些男孩子从小就接触计算机,从小就接触编程,但是,那是一种“业余”的接触。

相较于在大学里体系化,严格,并且极高密度的学习和训练,大多数男孩子那些早期对计算机的学习和接触,在大学课程面前,简直是皮毛,不值一提。

通过专业的学习和训练,这些早期的优势,很快就会被追赶上,哪怕是零基础。

他们的研究表示,“是否在少儿时期就接触过计算机”这一因素,完全不能成为预测“日后在计算机领域的成绩”的指标。

至此,在偶看来,这个研究已经超越了对“计算机领域的性别差异”的研究范畴,而有了更加普世的意义,对所有人都成立。

早,并不是一个不可取代的优势;

相较而言;成体系,持续,高密度的训练,才是更重要的因素。

只有有这些因素作为前提,早,才可能是一种优势;

而如果没有这些因素,早,是很容易被超越。

自学编程学哪些语言比较好?

初学者如何选择编程语言和开发方向全世界的编程语言有 600 多种,TIOBE 统计的有 100 种,参与排名的有 50 种,前 20 种是常用的,它们目前正在流行,或者曾经非常流行。

图1: 年 11 月份编程语言排名 TOP 20要想选择编程语言,首先得确定开发方向,比如网站开发、APP 开发、机器学习、大数据、嵌入式、GUI 软件、算法设计等。编程语言不是万能的,一门编程语言只能胜任一个或者几个开发方向,一个开发方向往往也有多种编程语言可以选择。大家首先谈一下开发方向的选择,然后再说编程语言的选择。

1. 选择开发方向

选择大于努力,只有切入一个适合自己的开发方向,才能持续进步。关于开发方向,偶有以下两个选择标准。(1) 兴趣学习编程是一个非常枯燥的过程,内容多,时间长,成本高,就算参加全职培训班,至少也得学习半年才能入门,做出一点小玩意来。要想成为别人眼中的大神,或者编程专家,没有三五年的功夫肯定是不行的。学习编程的过程是比较艰苦的,没有兴趣很难硬抗下来,即使报名了培训班也学不会,所以,大家首先要选择自己感兴趣的一个开发方向,这样不但能快速学习,以后还能持续进步。比如偶就对网站感兴趣,高中阶段偶就想开发一个属于自己的网站,感觉非常炫酷,所以大学偶毫不犹豫地选择了网站开发这个方向。偶在选择开发方向的时候没有任何纠结,偶知道自己必须选择网站开发。兴趣是最好的老师,没有之一。遗憾的是,对某个事物有强烈兴趣的人很少,大部分人都是被动选择。此处偶说的兴趣,是指别人无法撼动的热爱,是工作之余让你放松的事情。如果你只是有过某种想法,别人告诉你这个想法不靠谱,你就放弃了,这顶多是一时的鸡血。

(2) 未来发展

如果你学习编程不是因为兴趣,只是想选择一份职业,那偶希望你切入一个有发展潜力的开发方向。每个产业的发展规律都是类似的,都要经历以下几个周期:拓荒期 -> 发展期 -> 成熟期 -> 衰落期偶希望你在发展期切入一个产业,然后持续努力和积累,让产业的发展带着你起飞。站在风口上,猪都能飞起来。你应该听说过很多没啥背景的人,突然之间一夜暴富了,惹得别人羡慕嫉妒恨吧,这些人,大都是在一个爆发式增长的行业里面翻了身,比如十年前的包工头、持续火热的程序员。注意,最好不要在拓荒期切入一个产业,你很有可能坚持不到曙光到来之时就已经转行或者年老色衰了,成为了别人谈笑中的“烈士”。对于软件开发产业来说,GUI 桌面软件已经是过去式了,APP 和网站也已经进入成熟期,偶推荐机器学习(人工智能)和大数据两个方向,它们都是国家重点扶植的细分产业,而且写入了十四五规划,未来至少还有十年的发展时间。机器学习需要大数据提供原料,反过来,大数据分析也依赖机器学习模型,它们是相辅相成的,很难隔离开。另外,选择产业方向也是有风险的,也是一次命运赌博,谁也不能确定这个产业能不能发展起来,就算发展起来,又需要多少年呢?又有多大的产值呢?比如人们一直谈论的人工智能已经发展了几十年了,到现在还是“人工智障”,底层理论并没有本质的突破。虽然国家把人工智能选为重点产业,注入了海量资金和人才,各家大公司也跟风进入,但是底层理论如果不突破,十年以后没准还是智障,只不过应用场景多了。谁也不能穿越到未来,谁也不能告诉你确定的答案。就算一个国家,也会点错科技树,比如:美国认为自己无人能敌,发展了朱姆沃尔特级驱逐舰,打算近岸攻击,想不到中国突然崛起,海军开始下饺子,美国不得不转为远洋作战,废掉朱姆沃尔特级。日本押宝混动汽车和氢能汽车,积累了大量专利,但是中国却切换了赛道,倾力发展纯电动汽车,并且积累了一定的优势,日本想逆袭非常困难,汽车产业岌岌可危。在产业发展过程中,会有很多不确定因素,大家只能尽力选择一个有前景的产业。其实吧,很多“暴发户”也不懂得什么产业发展规律,他们只是阴差阳错地进入了某个产业,恰好赶上产业崛起而已。偶自己当初也不懂互联网,只是对网站感兴趣,就进入了互联网产业,抓住了 PC 互联网的尾巴,所有才比其他行业的同学混得好点。也就是说,偶混的好,不是因为偶足够优秀,而是因为偶进入了互联网产业,搭上了产业的便车,偶只是比偶的同学更加幸运而已。

2. 选择编程语言

确定了开发方向,接下来就可以选择编程语言了。有的开发方向比较纯粹,只有一两种编程语言,有的开发方向鱼龙混杂,有五六种编程语言,选择编程语言也是一个让人纠结的过程。以下是部分开发方向可以选择的编程语言:

1) GUI 桌面软件

能开发 GUI 软件的编程语言众多,既有传统的 C++、C#、VB、Delphi、Java,也有新晋选手 Python、Node.js(JavaScript),还有小众的易语言(中文编程语言)。如果你只是想玩玩,那么你随意,适合自己的就行,其中 Python 上手比较简单。如果你想找一份工作,建议学习 C++ 或者 C#。C# 虽然比 C++ 简单一点,但是它只适用于 Windows 平台;而 C++ 是一种通用语言,它可以应用于 Windows、Linux 以及嵌入式平台,就业选择较多。

2) 网站开发

网站开发分为前端和后台,前端就是用户在浏览器中看到的界面,后台就是放在服务器上的程序。前端开发需要学习 HTML、CSS 和 JavaScript,没得选,而且必须都学习。后台发开语言则多如牛毛,有走进坟墓的 ASP、Ruby on Rails,也有常用的 PHP、Java(JSP)、C#,还有新晋选手 Python、Node.js(JavaScript)、Go 语言。如果你想自己玩玩或者创业,建议选择 PHP,上手非常简单。偶使用的也是 PHP,因为当时学不会 和 JSP,所以选择了简单的 PHP。如果你想找一份工作,那么已经走近坟墓的 ASP、Ruby on Rails 就不要选了,没人用了。C# 也不要选了,只适用于 Windows 平台,而大量的服务器都是 Linux。Python 也不要选,实际应用场景不多。Go 语言主要用作 Web 底层开发,而不是应用层开发。剩下的 PHP、Java、Node.js 你自己看着办吧,没法说哪种语言一定有优势,它们只是适用于不同的场景。值得一提的是,这里大家将 Node.js 和 JavaScript 看做是等价的,如果你选择了 JavaScript,那么你既能开发网站前端,也能开发网站后台,就不用学习多种编程语言了。

3) APP 开发

这个开发方向比较简单,Android APP 开发使用 Java 或者 Kotlin,iOS APP 开发使用 Objective-C 或者 Swift。每种操作系统都有两种编程语言,一种是传统的,一种是新晋的,选择好了操作系统,把两种语言都学了吧。

4) 嵌入式开发

一般使用汇编、C语言和 C++,近年来也有开发板支持 JavaScript 和 Python。自己玩的话,可以选择 Python,上手简单。想找工作的话,还是走传统路线吧,把汇编、C语言和 C++ 都学了吧。只有那些有 Web 开发基础的程序员才会选择 JavaScript。

5) 机器学习

这是一个比较综合的开发方向,初学者一般从 Python、MATLAB 开始搭建模型,实际工程应用中可能需要使用 C++、Java 等其它语言去实现。Python 是必学的,MATLAB 最好也要掌握,C++ 和 Java 视情况而定。

6) 大数据

这也是一个比较综合的开发方向,相关语言有 Python、R语言、Java、Scala。把 Python 和R语言学习一下,剩下的看情况吧。由于偶的能力所限,偶无法对所有开发方向做深入的分析,有说的不到位的地方,请大家留言,或者在公众号聊天框中反馈给偶。以上说的仅仅是编程语言,除了编程语言,大家还需要学习某些框架或者库,比如:Java 网站开发需要掌握 Servlet、JSP 技术,以及 Spring、Spring MVC、Spring Boot、Spring Cloud、Mybatis、Hibernate 框架;Python 机器学习需要掌握 PyTorch、TensorFlow、Caffe 等框架,以及 sklearn、NumPy 等模块。除了编程语言和框架/库,你当然还要掌握一两种数据库,常用的有 MySQL、Oracle、MongoDB、Redis、Sqlite 等,这里不再展开讨论。

总结

软件开发是一个大产业,其中有很多细分方向,每个方向使用的技术栈都不一样,而且要经过长期学习才能掌握,所以大部分程序员都只擅长某个开发方向,那些多面手,要么是学艺不精,要么是技术大咖。人们之所以迷茫,就是不知道如何选择,这篇文章虽然不一定能让你做出最终的决定,但是可以给你一种不同的视角和标准,帮助你打开思路。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。