• 关于

    c#语言编程书籍

    的搜索结果

问题

【教程免费下载】面向对象的思考过程(原书第4版)

前言   正如书名所述,本书讲述了面向对象思考的过程。选择一本书的主题和书名是个很重要的决定,但如果主题概念性很强,决定就没那么容易了。大部分书籍都只涉及了编程及面向对象设计的某个方面。一些主流...
玄学酱 2019-12-01 22:07:49 1278 浏览量 回答数 1

回答

书有很多,而且对于初学者来说任何一本都值得去学习。主要的问题在于快速选择一本,认真读完,敲完书中的每行代码。这样就算是认真学习了。 市面上优秀的Go相关书籍:《Go程序设计语言》,《Go Web编程》,《Go并发编程实战》,《Go语言核心编程》以上是我在学习和使用Go以及准备Go的教程时看过的书籍。 但我还是那句话:快速选择一本,认真读完,敲完书中的每行代码。别在选择上浪费太多时间。
问问小秘 2019-12-27 10:42:59 0 浏览量 回答数 0

回答

没有一个初步的战略 大多数没有计算机科学或数据分析背景的工程师想要在数据科学中开始一个新的职业生涯,他们没有一个明确的战略,没有成为数据科学家、分析师或工程师的明确步骤。他们试图尽可能快地用信息填满自己的脑袋,而不是真正深入到特定的主题;他们倾向于一次注册多个在线课程,从不同的网站下载几个备忘单,阅读许多作者的文章,但没有一个结构化的计划。在开始这段旅程之前,我强烈建议你制定一个学习计划,并列出一些日常习惯,以实现你的目标,增强你的分析和编程技能。对你想从事的行业使用的最流行的编程语言和软件进行自己的研究,搜索最广泛使用的库和包,并根据你的目标选择最适合你的编程语言和软件。坚持和练习会使你成为大师。 尝试同时学习几种编程语言和软件 新程序员常常会受到诱惑,想要同时学习几种编程语言和软件,把它们作为技术技能写进简历。虽然你可能认为这是一种营销自己的策略,但它往往会适得其反。拥有数据科学、数据分析师和数据工程职位的公司和组织更有可能要求应聘者具备一种或两种或最多三种编程语言和软件的坚实背景。很少有职位要求你同时精通Python, R, SQL, C, c , c#, Matlab, Java, Ruby。相反,你应该研究一下你更可能在某个特定行业或公司使用的编程语言和软件;掌握你的编程和分析技能,并成为真正的专家。你将认识到,所有编程语言之间共享一个公共逻辑和类似的函数,在此之后,从一种语言到另一种语言的转换只需要学习一种不同的语法,而不需要学习它背后的整个逻辑。 没有在代码上写注释 尽管这听起来很明显,而且是一个无关紧要的任务,但它代表了一种很好的策略,可以跟踪每一行或每一块代码执行的操作,以便返回到暂停的项目。在最初的代码编写过程中,程序员对项目的目的和目标有了清晰而清晰的认识;他们知道自己想要编写的程序背后的逻辑步骤和追求的结果。然而,由于多种原因(经济约束、信息缺失、优先级的改变),所有的项目都很容易暂停,这将迫使程序员切换到不同的任务,而让先前的任务保持不变。一个中断的项目需要的时间越长,就越不容易记住它的位置和缺失的点。这里是注释发挥作用的地方。试着在你认为有必要的地方使用它们;记住要足够清晰,并记住它们应该允许代码程序员和执行者理解代码背后的逻辑步骤。 在代码编写过程中不要求反馈 在你的经理要求你做什么,他/她希望你做什么,客户要求什么,和你实际做什么之间总是有很大的差距。当你在开发一个程序或新代码时,试着把它分成几个阶段,并在进入下一个阶段之前征求反馈。在每个阶段结束后得到反馈,这将让你知道你是否正确,或者是否需要根据客户的要求进行更改。这并不意味着你无法理解其他人的要求,而是将其视为利益相关者之间的想法和期望的统一。如果在偏离正轨的情况下,你收到反馈的频率越高,你需要进行的修改就越少。请记住,持续的沟通对于每一个项目的成功实施都是至关重要的。 没有测试你当前的知识 你可能已经看了很多逐步编程教程。你可能也读过许多数据科学书籍和编程书。你可能已经完成了许多编程训练营的练习。下一步是什么?测试你目前的知识。这种训练营和课程的真正价值不在于证书本身,而在于你学到的知识,并能成功地应用于解决某个问题。老实说,每个人都可以通过参加在线课程来获得证书,只要跳过大部分的课程就可以了;公司和组织都非常清楚这一点。尝试把自己推向新的极限,在网上寻找编程挑战,尝试头脑风暴,在没有太多帮助资源的情况下编写代码。这并不意味着你在实际工作中不会用到它们,但它会让你感觉更舒服,更安全,更少依赖它们。 没有充分利用优缺点 在某种程度上,你可能会觉得使用一种特定的编程语言和软件是很舒服的,而你可能会发现学习一种新的语言和软件是没有用的。我曾多次听到数据分析师争论哪种编程语言在能力、可用库和包、在线资源和流行程度方面是最好的。但是,你必须足够谦虚,认识到总有从另一种语言、库、包或软件中学习新东西的空间。每种编程语言和软件都有其优点和缺点,但是我们的目标是充分利用它们,并具有足够的灵活性,以确定最适合用于特定任务以解决特定问题的语言和软件。 假设你什么都知道 相信我,没有人什么都知道。数据科学领域非常广泛,每天都要学习新东西。库、包、函数、方法和算法的总数非常多。永远保持好奇,保持谦虚,如果你认为你知道的很多,你实际知道的就很少。 原文链接: https://blog.csdn.net/fendouaini/article/details/103252444
茶什i 2020-01-15 11:57:21 0 浏览量 回答数 0

回答

没有一个初步的战略 大多数没有计算机科学或数据分析背景的工程师想要在数据科学中开始一个新的职业生涯,他们没有一个明确的战略,没有成为数据科学家、分析师或工程师的明确步骤。他们试图尽可能快地用信息填满自己的脑袋,而不是真正深入到特定的主题;他们倾向于一次注册多个在线课程,从不同的网站下载几个备忘单,阅读许多作者的文章,但没有一个结构化的计划。在开始这段旅程之前,我强烈建议你制定一个学习计划,并列出一些日常习惯,以实现你的目标,增强你的分析和编程技能。对你想从事的行业使用的最流行的编程语言和软件进行自己的研究,搜索最广泛使用的库和包,并根据你的目标选择最适合你的编程语言和软件。坚持和练习会使你成为大师。 尝试同时学习几种编程语言和软件 新程序员常常会受到诱惑,想要同时学习几种编程语言和软件,把它们作为技术技能写进简历。虽然你可能认为这是一种营销自己的策略,但它往往会适得其反。拥有数据科学、数据分析师和数据工程职位的公司和组织更有可能要求应聘者具备一种或两种或最多三种编程语言和软件的坚实背景。很少有职位要求你同时精通Python, R, SQL, C, c , c#, Matlab, Java, Ruby。相反,你应该研究一下你更可能在某个特定行业或公司使用的编程语言和软件;掌握你的编程和分析技能,并成为真正的专家。你将认识到,所有编程语言之间共享一个公共逻辑和类似的函数,在此之后,从一种语言到另一种语言的转换只需要学习一种不同的语法,而不需要学习它背后的整个逻辑。 3.没有在代码上写注释 尽管这听起来很明显,而且是一个无关紧要的任务,但它代表了一种很好的策略,可以跟踪每一行或每一块代码执行的操作,以便返回到暂停的项目。在最初的代码编写过程中,程序员对项目的目的和目标有了清晰而清晰的认识;他们知道自己想要编写的程序背后的逻辑步骤和追求的结果。然而,由于多种原因(经济约束、信息缺失、优先级的改变),所有的项目都很容易暂停,这将迫使程序员切换到不同的任务,而让先前的任务保持不变。一个中断的项目需要的时间越长,就越不容易记住它的位置和缺失的点。这里是注释发挥作用的地方。试着在你认为有必要的地方使用它们;记住要足够清晰,并记住它们应该允许代码程序员和执行者理解代码背后的逻辑步骤。 在代码编写过程中不要求反馈 在你的经理要求你做什么,他/她希望你做什么,客户要求什么,和你实际做什么之间总是有很大的差距。当你在开发一个程序或新代码时,试着把它分成几个阶段,并在进入下一个阶段之前征求反馈。在每个阶段结束后得到反馈,这将让你知道你是否正确,或者是否需要根据客户的要求进行更改。这并不意味着你无法理解其他人的要求,而是将其视为利益相关者之间的想法和期望的统一。如果在偏离正轨的情况下,你收到反馈的频率越高,你需要进行的修改就越少。请记住,持续的沟通对于每一个项目的成功实施都是至关重要的。 没有测试你当前的知识 你可能已经看了很多逐步编程教程。你可能也读过许多数据科学书籍和编程书。你可能已经完成了许多编程训练营的练习。下一步是什么?测试你目前的知识。这种训练营和课程的真正价值不在于证书本身,而在于你学到的知识,并能成功地应用于解决某个问题。老实说,每个人都可以通过参加在线课程来获得证书,只要跳过大部分的课程就可以了;公司和组织都非常清楚这一点。尝试把自己推向新的极限,在网上寻找编程挑战,尝试头脑风暴,在没有太多帮助资源的情况下编写代码。这并不意味着你在实际工作中不会用到它们,但它会让你感觉更舒服,更安全,更少依赖它们。 没有充分利用优缺点 在某种程度上,你可能会觉得使用一种特定的编程语言和软件是很舒服的,而你可能会发现学习一种新的语言和软件是没有用的。我曾多次听到数据分析师争论哪种编程语言在能力、可用库和包、在线资源和流行程度方面是最好的。但是,你必须足够谦虚,认识到总有从另一种语言、库、包或软件中学习新东西的空间。每种编程语言和软件都有其优点和缺点,但是我们的目标是充分利用它们,并具有足够的灵活性,以确定最适合用于特定任务以解决特定问题的语言和软件。 假设你什么都知道 相信我,没有人什么都知道。数据科学领域非常广泛,每天都要学习新东西。库、包、函数、方法和算法的总数非常多。永远保持好奇,保持谦虚,如果你认为你知道的很多,你实际知道的就很少。 ———————————————— 版权声明:本文为CSDN博主「磐创 AI」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/fendouaini/article/details/103252444
jiewuyu 2020-01-15 10:01:22 0 浏览量 回答数 0

回答

21天过得非常快,在这个寒假中除了过年的那几天我也是坚持学习打卡了21天,我目前还是一名在校学生,在阿里云开发社区举办的这个21天打卡活动学到了挺多知识。 1、评价一下这个21天打卡活动 优点的话首先说下这21天的安排我觉得是十分合理的,从基础到慢慢深入,课程安排的十分合理,十分适合一位初学者跟着打卡的课程去由浅到深去学习相关的知识点,特别是《Java编程入门》和《Java面向对象编程》这两门课讲的是Java的基础的东西,老师讲课也挺风趣挺不错的,《数据库MySql》课程讲的也比较基础,如果有介绍更加底层的一些东西可能会更好,不过后面的JSP课程我个人感觉不是太必要,感觉现在JSP使用的也是比较少了,基本上都是前后端分离。Spring Boot、Dubbo、Spring Cloud框架课程都讲的挺好的,后面的阿里云服务体验课程也十分不错。 2. Java的最大优势 Java也是我接触的第一门编程语言,我觉得Java相较于其他语言是有它自己的优势,无论是跨平台还是面向对象编程方面来看都是十分优秀的一门语言,而且最大的一个优势我觉得是开源做的是比较好的,各种各样的框架不断的简化了编程的难度及能够为我们更容易的去实现各种功能,企业也通常在框架的基础上再次开源,更加适合与自身的业务。 书籍推荐 初学者入门书籍方面我觉得《Head First Java》这本书是十分不错的,进阶深入学习Java底层的话《深入理解Java虚拟机》这本书是必看的,我个人现在也在学习当中。
方曾霖 2021-03-04 11:15:51 0 浏览量 回答数 0

回答

JavaScript (ECMAScript) :JavaScript 是脚本语言。JavaScript和ECMAScript通常被人用来表达相同的含义,但是JavaScript并不是这么一点含义,它是由ECMAScript 核心. DOM 文档对象模型. BOM 浏览器对象模型 这三部分组成。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。 组成部分包括语法,类型,语句,关键字,保留字,操作符,对象。 其中,文档对象模型(DOM , Document Object Model)是针对XML但是经过拓展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构,开发人员借助DOM Api对节点进行操作。可以通过浏览器F12进入开发者模式,查看层级关系。当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。 功能大致上: · JavaScript 能够改变页面中的所有 HTML 元素 · JavaScript 能够改变页面中的所有 HTML 属性 · JavaScript 能够改变页面中的所有 CSS 样式 · JavaScript 能够对页面中的所有事件做出反应 同时,浏览器对象模型(Browser Object Model)使用BOM控制浏览器显示页面意外的部分。 javaScript脚本加载方式 1 通过在网页中加入标记JavaScript的开始和结束,将JavaScript代码放到之间 2 也可以引入一个外部的JavaScript文件,这个JavaScript文件一般以.js作为扩展名 3 原则上,放在之间。但视情况可以放在网页的任何部分 4 一个页面可以有几个,不同部分的方法和变量,可以共享。 javaScript语句开发 (1)对大小写敏感 (2)自动忽略多余的空格 (3)在文本字符串中使用反斜杠对代码行进行换行 (4)单行注释(//)多行注释(/* */) JavaScript 是一个程序语言。语法规则定义了语言结构。 JavaScript 字面量 在编程语言中,一般固定值称为字面量,如 3.14。 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。 字符串(String)字面量 可以使用单引号或双引号: 数组(Array)字面量 定义一个数组: [40, 100, 1, 5, 25, 10] 对象(Object)字面量 定义一个对象: {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} 函数(Function)字面量 定义一个函数: function myFunction(a, b) { return a * b;} **JavaScript 变量 ** 在编程语言中,变量用于存储数据值。 JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值: var x, length x = 5 length = 6 JavaScript 操作符 JavaScript使用 算术运算符 来计算值: (5 + 6) * 10 JavaScript使用赋值运算符给变量赋值: x = 5 y = 6 z = (x + y) * 10 JavaScript语言有多种类型的运算符: JavaScript 语句 在 HTML 中,JavaScript 语句向浏览器发出的命令。 语句是用分号分隔: x = 5 + 6; y = x * 10; JavaScript 关键字 JavaScript 关键字用于标识要执行的操作。 和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。 var 关键字告诉浏览器创建一个新的变量: var x = 5 + 6; var y = x * 10; JavaScript 同样保留了一些关键字,这些关键字在当前的语言版本中并没有使用,但在以后 JavaScript 扩展中会用到。 以下是 JavaScript 中最重要的保留字(按字母顺序): JavaScript 注释 不是所有的 JavaScript 语句都是"命令"。双斜杠 // 后的内容将会被浏览器忽略: // 我不会执行 JavaScript 数据类型 JavaScript 有多种数据类型:数字,字符串,数组,对象等等: var length = 16; // Number 通过数字字面量赋值 var points = x * 10; // Number 通过表达式字面量赋值 var lastName = "Johnson"; // String 通过字符串字面量赋值 var cars = ["Saab", "Volvo", "BMW"]; // Array 通过数组字面量赋值 var person = {firstName:"John", lastName:"Doe"}; // Object 通过对象字面量赋值 数据类型的概念 编程语言中,数据类型是一个非常重要的内容。 为了可以操作变量,了解数据类型的概念非常重要。 如果没有使用数据类型,以下实例将无法执行: 16 + "Volvo" 16 加上 "Volvo" 是如何计算呢? 以上会产生一个错误还是输出以下结果呢? "16Volvo" 你可以在浏览器尝试执行以上代码查看效果。 在接下来的章节中你将学到更多关于数据类型的知识。 JavaScript 函数 JavaScript 语句可以写在函数内,函数可以重复引用: 引用一个函数 = 调用函数(执行函数内的语句)。 function myFunction(a, b) { return a * b; // 返回 a 乘以 b 的结果 } JavaScript 字母大小写 JavaScript 对大小写是敏感的。 当编写 JavaScript 语句时,请留意是否关闭大小写切换键。 函数 getElementById 与 getElementbyID 是不同的。 同样,变量 myVariable 与 MyVariable 也是不同的。 JavaScript 字符集 JavaScript 使用 Unicode 字符集。 Unicode 覆盖了所有的字符,包含标点等字符。 三 推荐学习网站 JS具体的语法内容还有很多,可以参考官方API或者学习网站完成掌握,简单易学,推荐网站 菜鸟教程:https://www.runoob.com/js/js-tutorial.html w3cschool:https://www.w3school.com.cn/js/index.asp 四 推荐学习书籍 引用自 https://www.cnblogs.com/xhqq/p/7561384.html 个人觉得不错的,没事可以翻翻的。书籍如下: 《javascript设计模式》,张容铭写的,可能不太适合零基础的,是非常不错的进阶书籍。 《javascript面向对象编程指南》,风格轻松易懂,比较适合初学者,原型那块儿讲得透彻,12种继承方式呢。 《js权威指南》、《js高级程序设计》,这两本书经典是经典,但是太厚,适合把其中任意一章都当成一本书来读。洋洋洒洒,很难一口气看完。比较适合当做参考书。 《你不知道的javascript》狙击js核心细节,闭包、原型、this讲得都还清楚。 《js设计模式与开发实践》js设计模式也是要学的,此书把js的设计模式讲得非常清晰,一点不晦涩,看起来没多少难度。 《正则指引》,分析源码时,如果正则表达式不懂,没法进行下去的。此书相对来说讲得比较清晰。 《基于MVC的JavaScript Web富应用开发》,看完后,基本能写出自己的mvc框架了。是本好书。 《javascript函数式编程》,js是一门函数式语言,此书是函数式编程一个入门,函数是一等公民那是非常重要的。 《js忍者秘籍》,jq作者写的,没有传说中的那么难读,话说就算你看完并理解所有知识点,也不会达到世界高手级别的。因为你还没有做到随心所欲。 《javascript框架设计》,如果初看此书,会觉得此书有罗列代码之嫌。在我看来,此书讲究的是框架的全局观。以上书籍是我认为是成就高手之路上必须看的,也需要反复看。 css相关的书籍,说实话我看得比较少,总共有六七本吧。有两本必须推荐一下: 《css权威指南》,css基础知识点那是讲得非常清楚的。什么层叠优先级、line-height啥的。不是随便一本书都敢叫“权威指南”的。 《css揭秘》,此书我也是不断的看,此书才不屑于全面讲css3各属性呢。css规范文档能讲的,它只会讲你最不在意的。此书解决的47问题,解决思路和解决方案同等重要,很有启发性。以上各书你都可以不买,至少买本此书吧
问问小秘 2020-03-03 09:32:57 0 浏览量 回答数 0

问题

【教程免费下载】跟老男孩学Linux运维: Shell编程实战

前言 为什么要写这本书 目前全球正处于互联网+的时代,越来越多的传统企业都在通过互联网提供产品和服务,比如,互联网+教育、互联网+金融、互联网+电商、互联网...
知与谁同 2019-12-01 22:07:43 1702 浏览量 回答数 0

回答

上面各位都已经回答的很好了,再补充一个人,国内go语言方面的大神:郝林。 郝林是 GoHackers 技术社群发起人,畅销榜书籍《Go并发编程实战》的作者,前轻松筹大数据负责人。13年软件开发从业经验,做过银行、电信软件和互联网社交产品。从2012年底开始关注Go语言,对Go语言和 Docker 技术都情有独钟,是Go语言的忠实拥护者。 不过,郝林一直活跃在 GoHackers 微信群和知识星球,如果你需要进入 GoHackers 技术群,你可以加我,我征询一下大佬,看能不能把你加进去,微群是免费的,知识星球可能是收费的,我没太关注过。
Joyven 2019-12-02 03:13:57 0 浏览量 回答数 0

回答

工作很多年了,这次看到阿里开发者社区举办的这次打卡学习活动后,果断报名参加。有人说这次的课程太多,21天肯定学不完,其实官网宣传的资料里已经说明了这次活动举办的意义,打卡只是一种督促学习的形式,奖励只是学习之外提供的一点小甜点,不要为了奖品而打卡,真正昂贵的奖品,是课程里的知识,通过打卡活动学习的知识是无价的,是任何奖品都无法比拟的,为了学习知识而打卡,这才是这次活动的真正目的,至于21天内学不完所有课程,这也是情理之中,课程内容不少,一时难以全部学完,但21天只是一个开始,21天之后我们仍然可以学习,不仅可以学习这次活动的课程,阿里开发者社区的其他课程我们都可以学习,要知道学习是一辈子的事情,持续不断的学习能力才是一个技术人员真正核心的竞争力所在。 此次学习《Alibaba Java技术图谱》,最大的收获是对以往知识的整理与沉淀,使自己的知识体系更加的牢固。 有些人认为,这些课程讲授的知识普遍都比较简单,其中大部分都已经掌握了,没必要再学了,打个卡拿到奖品就好。其实这种观点是有待商榷的。文无第一,写程序就像写作文,没有人可以称得上自己的程序天下无双,不会再有后人突破了。技术会迭代,世界会发展,在技术分工越来越细化的时代背景下,就算是资深技术人员,也不一定懂得所有的技术细节,一些底层的技术边角地带,是鲜有人探索领略过的。我们应该重视基础,挖掘基础更深的内涵。其实基础知识的简单性只是表象,了解基础技术封装的内部复杂性,才是我们学习基础的目标,冰山模型能够很好的说明基础与复杂性的这种关系,基础就像冰山上面贴近地面的那部分,而水面下的巨大冰层,才是影响水面上可见部分的重要因素。System.out.print("Hello World"),是所有Java程序员熟知的方法,但有多少人把它研究透彻了呢,简单的表象下是巨大复杂性的封装,背后的编译器,解释器,计算机 I/O行为,CPU,寄存器,内存这些硬件背后到底都产生了哪些行为?这背后的复杂性超乎我们想象。所以说我们只是站在前人的肩膀上,简单是相对的,在应用层面的抽象层级中,一句简单的屏幕输出语句看似没有什么更多的可挖掘性,但是只要我们打破应用抽象层的界限,进入更深的抽象层次之后,就会发现另一个我们从没有探索过的天地。 以上只是通过一个简单示例说明重学基础的重要性,对于Java语言的其他特性例如,继承,接口,Lambda表达式,泛型,反射,Annotation等等,巩固并深挖这些已经学过的其他基础知识,重视基础的学习方式是仍然适用开的。仔细思考的话可以发现,学习技术知识其实有两个方向,一个是向上增加自己的应用开发知识,记住更多的函数,学会更多的框架技术,而另一个方向则是向下解构程序,学习前人的编程思想与思路。两个方向相互对立又相互统一,学习底层是为了更好的扩展自身高层应用的知识,而高层的技术需求导致已有高层技术不能满足所需要求,这就会促使底层技术的更新迭代,这也是所有技术生态的进化规律。Java 的生态体系,很好的契合了上述特点,Java 的底层构建哲学有极其深厚的理论基础,这使得 Java 技术生态的向上生长与底层扩展都有良好的支撑,实践是最好的证明,Java 这么多年也曾有过挑战者,但为什么最终被大多数企业选用的还是Java,这就是对Java 语言在企业级开发当中具有优越性的最好证明,Java 不仅是一门编程语言,还是多年来真实世界的企业领域中积累下来的经验与成果。如果有过脚本语言开发经验的开发者,就能够深刻的体会到,其他语言体系看上去似乎是东拼西凑的把多个技术与工具拼凑在一起来解决实际问题,但Java体系内的技术就和其他语言不同,Java 生态体系具有高度的一致性,从底层设计到高层构建,都依赖于这种一致性的传承,如今百花齐放的Java 生态也是依赖于此。这背后其实具有非常坚深的哲学思想,值得我们反复揣摩。 对于如此纷繁绚丽的Java技术世界,只有打好技术基础,才能逐步踏入Java的技术世界,领略五彩缤纷的技术魅力。除了这次活动的课程,还要跟大家推荐一本Java方面的书籍,就是很多人都知道的《Java 核心技术》两卷本,人们常常把这套书和《Java 编程思想》拿来对比,大家都喜欢争论到底那本书更好,对于此大家心里要有一个基本的前提,就是看书是为了提高自己的能力,而不是拿出去和其他人辩论,从而显示自己的博学。从这一点来看,什么书是好书的结论也就很明显了,能使自己提高的书就是好书。如果你是开发大牛,那么TAOCP,SCI 这样高深的经典书籍就是属于你的好书,如果你是一名刚毕业的学生,那么《七天入门XXX》这样的书籍就是你的好书,大牛也是从新手成长过来的,没有入门没有基础,就不可能成为大牛。可以看出,并不是越深越难的书就是好书,要时刻记得看书是为了提高自己这个核心目的。《Java 核心技术》与《Java 编程思想》这两本书我也全都看过,对比了一下,还是觉得《Java 核心技术》最适合想要夯实基础的人们。《Java 核心技术》的定位很明确,就是给想要了解Java 特性的开发者来阅读。而《Java 编程思想》虽然其中的代码实现语言是Java,但实际上书中所体现的代码背后的东西才是这本书想要表达的重点,这些背后的东西用C++,C# 等其他语言,也是可以描述的,所以《Java 编程思想》这本书要等到对 Java 能够熟练运用,想要继续探索更深层次的普适性编程内容的时候,读起来才会有很多的收获,否则会浪费很多的时间与精力,但却收效甚微。所以对于想要夯实基础的开发同学,用《Java 核心技术》来入门,构建好自己的基础,之后再去阅读其他的经典书籍,就不会那么困难了。 明白了这些,作为一名开发者,我们不仅应该站在巨人的肩膀上,享受前人的技术成果,也应该追本溯源,了解技术的前世今生与来龙去脉。有了这种学习方式,通过多年的工作经历,我们的技术将有极大的提升,技术视角也将进入一个质变的层次。这次活动只是一个开始,通过这个活动能够加固自身知识体系,增强自己理论学习能力,养成终身学习习惯的开发者,今后必将受用终生。 最后要提一句,如果这篇评论有幸被选中15个评论留言的其中之一,那么我想要开发者背包 ~~ 那个带logo的背包太酷啦,在网上商城搜了一下都没有卖的,所以如果可能恳请一个背包奖品名额 ~~ 最后的最后,祝大家学有所成,共享美好人生!
王冰新 2021-03-04 13:37:53 0 浏览量 回答数 0

问题

【教程免费下载】深入理解计算机系统(英文版第3版)

前言 本书(简称CS:APP)的主要读者是计算机科学家、计算机工程师,以及那些想通过学习计算机系统的内在运作而能够写出更好程序的人。 我们的目的是解释所有计算机系统的本质概念,...
玄学酱 2019-12-01 22:08:27 3332 浏览量 回答数 1

回答

我的 php 水平,还不到写博客代码的程度。所以只能和你聊一聊。等等会有好建议的。 "自己敲代码", 就是实践。没有实践哪能学会?看一集,敲一集,整理好一集,再往下一集走。建议找些现成的博客代码,仔细研究。敲好的代码,要分别放到各节课程的文件夹。这样,讲到后面,如果忘了以前敲的代码,也有地方可查。######我暑假花了40天看整套视频,从早上7,8点看到晚上12点,就除了吃饭,不然都不出房门,终于领悟到php的开发了。######还是你们学生好,有充足的时间学习######学php我只相信phpDesigner 8.######最蠢的学习方式就是看这种视频了……######为什么?看类似的书 但写得不完整 有些看不懂。看别人写好的源码 没有注释 也比较费劲,你有更好的学习方法吗?######看完一集,先想想这集教了什么,然后自己根据教的内容动手写个demo,不要跟着视频里面一模一样的敲代码,这样没用。要举一反三######建议不要完全依赖视频,最好慢慢转向看文字教程、书籍######有没php写项目的书籍啊?######看书边看边敲代码练习是最好的学习方法。######看书好,视频只是简述某些部分而已。书才是打基础。######不得不说,看视频是学习编程的最低效的方法,没有之一。 我的建议: php手册是最佳的入门教程。 1. 如果你没有其它语言的使用或学习经验,那就认真看一下“语言参考”部分,如果有学过其它,那就先粗看一下,了解php跟其它的在语言层面有什么不一样(简单来说就是变量、函数、类、条件和循环这些)。如果是纯新手,那就多动手练习一下(手册后面的评论很多不错的例子) 2. 了解了基本语法后,熟识php的函数库(array和string是两个很有用的库) 3. 数据库操作(建议以mysql),学习建表、索引优化,然后用php连接和基本增删改查练习。 4. 基本的东西懂了,那就尝试去做一个完整的项目,这里推荐“todo list”,比博客简单多了。 等你掌握以上这些,做其它系统就不是语言层面的东西了,而且需求分析和系统分析,比如博客要有什么模块什么功能等等。。。
kun坤 2020-06-09 19:22:08 0 浏览量 回答数 0

回答

结业啦 先引一句前人话做开场: Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning. 《图谱》更大的意义上,是一个地图。至于个人能得到多少宝藏,就看自己的“探索”了,向着心中的“one piece”出发吧。 我是偶然看到这个活动,但是很庆幸能参与进来并持续的走到了现在。通过这近一个月的打卡学习,看着每天的进度增加,还是有点小小的成就感的。 我觉得《图谱》给我的最大作用是,为我拉起了一个网,而且是大牛们整理提炼的。这个网上包括了java基础,关联技术,以及(重要的)java热门框架等节点,也包含了像云化这些高端的概念。 结合这个网,我可以查漏补缺:看看基础部分,哪些概念是自己生疏的;基础的sql和JDBC开发是不是都掌握了;热门框架,自己能说出来多少,又知道多少实现细节。。。 按图索骥一点点的补充、加强网内节点,扩展网外节点。 《图谱》中大量的视频教程,对新手来说是个不错的接受介质。 不过对于有一定基础的人来说,我更建议能有一些文字版的资料,比如《Java工程师成神之路》这样的pdf。不仅片断时间学习更方便,效率也比视频资料更高。(个人建议,不敢代表大多数_) 再一个建议增加些“设计模式”类的专题课程。 最后就是“作业”少了,建议增加点实操题,完了要求大家分享下成果, 我工作中也是用的Java语言做为主要的开发语言,使用JavaEE开发供大B用的B/S架构的应用。 我个人认为,Java语言门槛低,简单易学,而且做为一种强类型语言,可以在编译期就暴露很多问题。 这点是Java语言的一大优势,市场上供给多,大企业也敢放心的使用。 然后还要提一下Java语言的生态。用户基数大,也就有更强的意愿和能力,在各个领域产出“基础设施”级的工具,方便应用人员在其上快速的实现部署自己的“创意”。 当然,做为编程爱好者,你完全可以再额外学习其他语言,比如python等。 初学者如果要想学java,书籍的话,就推荐《Thinking In JAVA》吧。 不限于图书的话,我也推荐官方的“The Java™ Tutorials”,也是一个不错的选择。 最后,一起努力吧。
dtogpxterwssm 2021-03-05 10:08:05 0 浏览量 回答数 0

回答

1。21天打卡,说实话我并没有看完所有课程,可能是有点基础,所以基础篇的没怎么看,初级篇的有些视频感觉时间有点早,但是质量还是很好的,中级和高级的,内容讲的很不错,希望可以更新些比较经典的前后端框架,我在自己练习的时候,还是会遇到各种问题,有时候真的解决不了,希望可以将课程资料源码分享下,可以更有利于学习。 2。自己工作经历比较少,感觉java适合作为编程入门语言,语法易于理解,现在的框架封装的很好,不用过多的关注底层,但是如果想深入学习,会发现还是有很多很多需要学习的地方,单单一个java虚拟机,就值得反复研究,而且想要理解各种框架的设计思想,确实要花费不少时间,但是工作中用到的可能并不多,需要自己工作之余去研究,但是大部分人都很难坚持下去,所以就造成了,能干活的初中级程序员很多,高级以及架构师却不多,任何人的成功,都不是一蹴而就的,都需要付出异于常人的努力,现在有种感觉,知道的越多,发现自己不知道的更多,唯有不断学习,才能跟上时代的脚步,不被淘汰,虽然我是半路出家,但是我还是在努力去学习各种知识,尽量不让这个社会淘汰掉。 3。至于推荐给初学者的书籍,java成神之路,java开发手册,这两本还挺好的,市面上其他的入门级书籍也看过,没有什么特别值得推荐的。但是我想说,入门的话可以看视频,但是想深入研究的话,还是要多看书,看好书,也希望阿里能推荐一些java的经典书籍!毕竟,个人去找资料,有时候确实有些盲目。 最后,还是要感谢阿里的这次活动,给入门到高级程序员了一个大方向,我觉得单这些课程,可能就够我小半年去细细品味和研究了,以后的活动我还是会积极参与!
卢猛猛 2021-03-04 10:36:47 0 浏览量 回答数 0

问题

编程C#语言相关的书籍

编程C#语言相关的书籍...
知与谁同 2019-12-01 20:13:00 398 浏览量 回答数 1

回答

《Go Web 基础》是一套针对 Google 出品的 Go 语言的视频语音教程,主要面向完成 《Go 编程基础》有关 Go Web 开发的学习者。 Unknwon/go-web-foundation 《Go 编程基础》主要面向新手级别的学习者。Unknwon/go-fundamental-programming 《Go 并发编程实战》 《学习 Go 语言(Ver II) 》 一本学习 Go 语言的免费电子书 mikespook/Learning-Go-zh-cn 《Go语言的入门书籍》sunnygocms/gobook 《The Way to Go 中文 — 无闻译》https://gobyexample.com/ 《Golang语言编程》 许式伟 不适合第一门语言学习吧。唯有对比才有体会这门工程性语言。 《Go 学习笔记 第三版 — 雨痕》 语法不错 作为复习不错。 《深入解析Go — tiancaiamao》分析golang原理,很不错。主要看为主,有深度 《Golang库》:https://github.com/astaxie/gopkghttps://gobyexample.com/ 《Go语言标准库》 Go语言标准库 - Go语言中文网 - Golang中文社区 《Go语言实战》Go语言实战 - Go语言中文网 - Golang中文社区 50 个 Go 开发者常犯的错误(英)
游客2q7uranxketok 2021-02-08 23:33:05 0 浏览量 回答数 0

问题

微服务开发的 10 个最佳实践

1. 领域驱动设计: 开发微服务的首要挑战是将大型、复杂的应用程序分割成小型、自主、独立的可部署模块。如果微服务没有以正确的方式进行分割,将会出现紧耦合的微服务,这些微服务将具有单体架构的所有缺点...
游客pklijor6gytpx 2020-01-03 14:59:12 147 浏览量 回答数 1

回答

虽然我不是Python高手,但我是零基础,之前会的都是软件PS,PPT之类。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 如果目的是想成为程序员,参考教学大纲。 如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用: 1,找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过) 2,做些简单习题,字符串比较,读取日期之类PythonCookbook不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学) 3,加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间。耐心指教我的好人,超级超级多谢。 4,解决自己电脑问题。比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1读取全部下载文件名,2提取集的数字,3数字排序和(1--12)对比,找出漏下的。点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd 5,时刻记住目的,不是为了当程序员,是为了解决问题。比如,想偷懒抓网页内容,用urllib不行,用request也不行,才发现抓取内容涉及那么多方面(cookie,header,SSL,url,javascript等等),当然可以听人家劝,回去好好读书,从头读。 或者,不求效率,只求解决,用ie打开网页再另存为行不行?ie已经渲染过全部结果了。 问题变成:1--打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数outHTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据。简单吧?而且代码超级短。 6,保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。 7,耐心读文档,并且练习快速读文档。拿到新包,找到自己所需要的函数,是需要快速读一次的。这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的。 8,写帮助文件和学习笔记,并发布共享。教别人的时候,其实你已经自己再次思考一次了。 我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件。 然后点点击链接加入群【我爱python大神】:https://jq.qq.com/?_wv=1027&k=47zuLPd是很好用的。 然后,坚持下去~ 6月10日补充------------------------------ 一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深。 网络很平面,无数国际大牛著作好书,关于Python,算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去,不是难事。 所有天才程序员,都曾是儿童,回到儿童思维来理解和学习。觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好。 唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它。虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去。坚持学好一门语言,再研究其他。 即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情。 另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询。 python里,看到Http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,wiki,google很有用。 我还在使劲啃Python的路上~~一起加油:) 2012年8月26日补充线------------------------------------------------------------------ QQ群:22507237陆续有些高手走了,也有新人加入。 另外10月20日,上海有Python开发者大会, 给出2个截图吧,我最近做的,真的很烂,但是能用:) 这个是上次Python测试题目“从电商网站的搜索页中抓取制作商品图片墙”。我选了最最容易的静态网站。当然京东的抓取,比这种难。 这个很方便我自己每天查询,用Python3+PyQt4,用“公司名字”关键词,在各个论坛,图片,视频,商场查询。每天看一次,很方便快速了解信息。 1.如果是因为兴趣,想做些比较漂亮的网页或者做些特别的、能帮到自己的小程序,可以直接买市面上的大部分Python教材,直接从Python学起,学实际的编程。Python并不难学,最初设计的时候就力图规避一些C、C++等等程序让入门者头大的内容,而且库函数也比较丰富,语法相对清晰直白,不会故意做一些高效率但是难弄懂的东西。而且相对语法要求(尤其是缩进==)比较严比较死,虽然你会觉得麻烦,不过确实易读而且省的粗心犯错。 2.如果是想从事编程的职业,建议还是循序渐进的来,单纯只学语言比较浅,还是从数据结构、离散数学、算法一步一步来比较好。这样学确实很枯燥,但是基础比较好,可塑性强些,再学其他算法和语言都方便不少,而且读好的源码理解的更透更深。真正专业性的学习和兴趣式的尝试差别还是很大的,要真的非常感兴趣肯吃苦才行,虽然经常看到有很多人在报考或者转入这方面的专业,不过说实话急着跳出去的一样不少。 实际上,要把一段代码编程直观的产品、工具,远远没有你想像的那么难,与其他东西的学习一样都是模仿加重复性练习,不过是非专业的人接触的少所以觉得编程特别难。现在编程语言和工具越来越多,发展很快,编程的门槛已经降低了很多了。只是相对来说,精通很难,非常难。。。 我的朋友问我怎么能快速地掌握Python。我想Python包含的内容很多,加上各种标准库,拓展库,乱花渐欲迷人眼,就想写一个快速的,类似于w3cschool风格的Python教程,一方面保持言语的简洁,另一方面循序渐进,尽量让没有背景的读者也可以从基础开始学习。另外,我在每一篇中专注于一个小的概念,希望可以让人在闲暇时很快读完。?  学好python你需要一个良好的环境,一个优质的开发交流群,群里都是那种相互帮助的人才是可以的,我有建立一个python学习交流群,在群里我们相互帮助,相互关心,相互分享内容,这样出问题帮助你的人就比较多,群号是304加上050最後799,这样就可以找到大神聚合的群,如果你只愿意别人帮助你,不愿意分享或者帮助别人,那就请不要加了,你把你会的告诉别人这是一种分享。 感觉写的好,对你有帮助,就点个赞呗,别光只收藏哈.~( ̄▽ ̄)~ ?
爱吃鱼的程序员 2020-06-08 17:59:21 0 浏览量 回答数 0

回答

围绕一次打卡学习活动之复盘总结 前言 寒假充电季,防疫不停学。 2020年,是困难的一年。2021年,仍然在余荫中,瑟瑟前行。 在这个大环境下,如何保证个人的成长,对于一个有职业生涯规划、上进的新时代的努力者来说,至关重要。 参加各类技能培训,成了一个不错的选择。为自己,在有限的时间内,更集中精力的充电,提供了一个很好的机遇。 由阿里开发者社区主办的,21天Java打卡活动,应时而生。再次,着重感谢,社区的运营工作者,以及提供学习资料的幕后的英雄们,一句感谢不足以表达感恩的心。 社区活动亮点 ”活动千千万,不服你来办“。我认为,每个社区平台,都具备了运行活动的基础能力。关键呢,是其用心程度。 本次活动,我觉得阿里开发者社区,及其用心,满足了各类学习者的学习要求。 精品内容,让你查缺补漏 本次活动的内容,可谓精品绝一。由Alibaba Java 专委会专家授课,知识精而全。能够让我们在学习的世界里,足够畅游。专家们,10年+开发经验沉淀,向我们传授了理论知识,技术心法。补充一线实战案例的精讲。理论与实战相结合,不论是初学者,还是一名已在职的开发工程师,都能够从中汲取营养,获得经验,赢得智慧。为我们查缺补漏,构建一条更好的职业道路,秉定坚实基础。 科学路线,让你按图索骥 “学而不思则罔,思而不学则殆”。学习知识不理解,不面对现实问题则知识无用,面对现实问题不总结,不学习知识则问题不能解决。没有科学的路线,摸不着学习的门路,如何去面向现实学习。社区的活动内容,从Java入门到进阶高级开发工程师,完整的路线图,让我们学而不忧且能由浅入深的沉浸式学习。 理论学习+实操体验,两线并行的方式,按图索骥,走的顺畅,走的踏实。系统提升,攻破技术薄弱点。学会Java开发手册编程规范,码出高效。 有效监督,让你坚持不懈 不仅在学习内容上精品,仍然有监督机制以及奖励机制,让你快乐又紧张的学习。 活动收获 对于我来说,本身是一名从事工作多年的开发工程师,目前是架构师。那么,基础,与时刻在有限的时间内回顾。至关重要。首先说,要汲取大量的回顾与前进的学习。我觉得是作为一名技术人员的职业操守。其次呢,对于万变不离其宗的道理,需要深挖。况且,社区提供了足够多的心意,让我们能够查缺补漏,按图索骥的同时,又有着丰厚的奖励。 本次活动,认真的学习了,其中的部分课程。对于新手来说,可能跟着路线,一直学下去,相信会有更大的收获。对于个人来讲,亮点,查缺补漏,汲取专家的开发、从业经验,才是最大的收获。 对于路线图的优缺点,在这简单的一说。路线图,分为入门、初级、中级、高级、面试。这是非常大的亮点。能够让学习者,足够清晰,成长是有个过程,以及在每个级别,所需要的掌握的知识大概。对于一门语言来说,详细太杂太多。梳理,是一种很好的学习方式。路线图,对于一名Java学习者来说,不仅仅是本次活动的收获,而是今后从业的法典。 当然,缺点,可能也会存在。例如,在设计路线图时,可能为了简而精。有些课程,连惯性不强。可能摸不着思路。 Java语言 对于一名架构师来说,目前已经不局限于一门语言。但是,从学习工作经历来说,学了这么多语言之后,Java可谓面向对象语言里边,最易沉浸进去的。因其社区活跃度,以及企业级开发的能力。众多框架,争相竞技。Java语言,个人觉得,应该好好学学。它是一种思想,能够让你融会贯通。有人说,C++,是第一门面向对象的语言。是,的确。但是,其理解以及学习成本来说,远不及Java。说了好处,可能要说点不好的。因其易学的特点,因此,Java,可能需要学的深,学的多。才能更好的立足于工作之中。如若不然,也会是泯然众人。 没有固定的技术,只有进步的业务,与达不到业务性能要求,追求更好的性能,适配更好的境地的技术。 灵活学习,灵活使用,才是上上之道。 推荐书籍 对于学习Java来讲,书籍数不胜数。如果,英语底子好,可以看看Think in Java。或者看中文版。都有的选。另外,想不看那么高的,更有意思的,可以看李刚的疯狂Java讲义。我觉得,书不在多,学会语法就好。剩余的框架以及更高级的使用,需要进行自行学习。看书,有时候,反而阻挡了脚步。
huc_逆天 2021-03-04 10:34:56 0 浏览量 回答数 0

回答

最大的收获应该是对Java知识体系的补充,之前的自己的知识,怎么说呢,比较零散,不成框架与体系,总是这个学一点,那个学一点,工作要用什么就学什么,总是流于表面,对知识总是知道怎么用,但是为什么这样用,为什么这样设计,却没有深究,技术总是停滞在新手阶段。 趁着寒假,参加了阿里云的这次的21天打卡计划,至少自己养成了好的习惯,每天早起,坚持打卡,边学习边制作思维导图,用自己的话语讲述知识点,进行提炼总结,再自己手敲一边代码,进行实践。将知识融会贯通。在技术上获得了一些进步。也养成了不错的习惯。 阿里的技术图谱确实不错,内容很多很全,而且有很多阿里团队自己总结的一些电子书。总体上不错,但一些知识,比如Java高级工程师需要掌握的,比如JUC,JVM的知识没有或者不是那么的全面,一些框架mybatis,spring mvc, spring的一些源码知识也没有。可能需要后期补充上去。另外每个视频,应该是与一些培训班合作的,里面只有视频,没有对应的课件资料与源码,不方便学习。 作为Java开发者,我觉得Java的优势容易上手,生态很全面,基本上国内Java开发人数是最多的,竞争压力也是最大的。作为后端语言,目前的竞争对手是Go,Go在线程上的处理与云原生的一些方面有优势。等Java的协程出来,应该能弥补。Java的优势应该是JVM虚拟机,可以Write once, run anywhere。没有了C与C++的指针,而且越来越先进的GC算法,性能也上来了。还有强大的安全机制,很适合很多人写大型项目。 推荐的书籍,如果是新手,推荐看Java核心技术卷1与2。如果是3年工作经验的,推荐Java编程思想,深入理解Java虚拟机,高性能MySQL,Redis深度历险,Java并发编程实战,Head First Java,阿里的Java开发手册也不错,养成良好的编码习惯。有时间可以多刷刷LeetCode题目,对数据结构与算法有更好的理解。或者静下心来,多看看源码,理解大概的思想,借鉴别人写的不错的地方。多写写博客,做学习总结。
woshiamiaojiang 2021-03-04 10:36:37 0 浏览量 回答数 0

回答

21天Java打卡活动结业感想 Q1: 1、这次21天Java打卡活动中,你最大的收获是什么?说说你认为的《Alibaba Java技术图谱》在内容上的优缺点。 **A1:**通过本次21天打卡的活动,本人最大的收获,一是技术上的进步,二是重新拾起了当年在大学努力学编程的热血。技术上的进步在于,是学习到了Dubbo和K8S,本人有Netflix Spring Cloud的经验,所以远程服务调用一直热衷于http的方式,Dubbo的RPC方案从来没有进行过深入研究。最近本人所在公司也开始尝试使用K8S,但是苦于业务繁多,一直抽不出时间去系统地学习,这俩技术一直是本人短板所在,通过本次坚持打卡,从0开始学习这两个技术,使我个人的技术有了不少长进,技术视野也开阔了不少。拾起当年努力学习编程的热血在于,本次打卡,好像给我一种驱动力,每天都坚持,要知道工作以后,就很少像学生时期那样狠狠要求自己每天都进步一点点了。虽然课程中很多内容我在学生时期就已经学会,但是这些会的基础还是会过目一遍,虽然开始的时候很是不情愿,但有趣的是,通过几天的坚持,竟然拾回一些早就遗忘的技术细节,常年来的开发经验和书面上的基础知识竟然又重新摩擦起新的火花,这倒是我原来意想不到的收获。 Alibaba技术图谱的优点:把整个java工程师的职业发展生涯所需要使用到的技术做了很好的概览,从零基础应该学习的入门语法,面向对象的编程思想,到编程小白学习的开发单机简易版的java web,再到职场小白学习的各种主流框架技术,再到成为一名合格工程师 应该学习的分布式实战,容器编排的实战,最后到一名优秀工程师学习的JVM高级特性,各种技术的实现原理,性能调优等。帮助了每一位在成长路上的Java开发,省去了很多重新找资料学习的时间,这部分是真的很值得赞扬的。至于缺点嘛,倒也算不太上,就是还可以再全面一些,前面java基础感觉就有点照搬以前的java路线图了,咋看大纲咋这么熟悉,然后里面还有些是传智播客的老视频,画质高糊,哈哈,本人学生时期也是看传智播客和黑马的视频过来的,不由得感叹时间过得真快,其实这也挺好,技术学习资源共享嘛,省去重新找轮子的时间。至于JSP嘛,我本人是不太建议去学,除非真的公司业务需要维护这样的老旧系统。像用java搞全栈的话,模板引擎倒是个不错的选择,例如SpringBoot推荐的Thymeleaf,JSP很强不可否认,但是随着互联网发展至今,应用都比较庞大,前后端分离是普遍现象,JSP涉及的职责太多,强关联于java,不便设置样式 对后期的维护和应用的拓展很是不便,而逐渐没落,像Thymeleaf还是很有必要了解下的,模板引擎的设计思想也可以用到例如像CMS(内容管理系统),配置短信模板这些应用的设计上面。所以建议图谱能将Thymeleaf的内容补充上去,替换掉老旧的JSP教程。框架章节,主流的消息队列也只是Kafka和Rabbitmq,而阿里自己开源的Rocketmq的教程最好也能并入框架章节简单讲讲,充分发挥自己厂的优势嘛,虽然rocketmq时效性没rabbitmq好,但是Rocketmq吞吐量、可用性、使用方便性还是优于Rabbitmq的。另外像阿里系的Alibaba SpringCloud的教程、包括这段时间阿里云力推的Serverless也可以纳入图谱当中来。真的十分期待图谱能不断地完善下去。 **Q2:**结合你的生活或工作经历,谈谈你对Java技术的看法。以及作为一名开发爱好者,你认为Java相较于其他语言,是否具有它自己的优势?请围绕你的观点展开详述。 **A2:**我对java还是比较热爱的,它比较成熟,在python火起来之前,我一直认为它相较于其他语言来说都是比较容易入门的,我当初就是由于C学不懂,然后学java发现能看的明白,学到一定程度后,一个偶然的机会接着看回C,居然“曲线救国”,C也能逐渐理解了。尤其是它面向对象的思想,也能运用在我生活当中,遇到一些复杂的问题,我总是会优先想办法看能不能抽出事物的专有特征,然后设计一套通用的解决方案,无论是生活还是学习,这种思维对于我的个人提升起到很大的帮助。本人还接触过C#,Python,最终选择了Java作为我的职业方向,曾经我听过各种说辞,也会产生"java的优势到底是什么"这样的疑惑,例如GO语言天生支持高并发,C++做服务端处理速度更快,后面Python火了,好像各方面碾压Java,我也因为当初Scrapy框架做爬虫的火热,开始入坑了Python。但是对比一下,Java好像哪方面都不突出,但是它火了这么多年依然热度不减。其实我是工作中,参与团队开发的过程才发现,Java实际最主流应用于web开发,原因在于Java的生态强大,有前人帮把优秀的算法全都封装好了,并且不断持续地进行优化,我们不必再重新造轮子。我曾问过我搞C++或C的朋友,他们好多东西都要自己去实现,而Java基本都能找到开源的库开箱即用。而且SpringBoot问世后,配合Java庞大的生态,开发简直是无敌的存在,除了少部分需求,使用开源库不能满足,需要自己重新造轮子外,其余业务真的秒杀般完成。或者你会说Python有Django和Flask可与SpringBoot一战,确实Django开发甚至比Springboot更加快捷,代码量更少,但是工程化而言,Java还是更具优势。一个大型的Web项目,最重要的是团队协作,人际沟通成本也是非常巨大的。团队协作的过程中难免会需要理解队友写的代码,Java工程管理有Maven或者Gradle的,强类型的语言,而且没有提供过多的语法糖,最多也就stream用一用,lambda表达式用一用(C++早有了,jdk出到8才支持,吐槽下),虽然java是比较啰嗦,但我能很快理解队友的代码写了啥,团队有共同的认知,减少很多不必要的沟通成本,较大的Web工程还是Java合适。Django能干全栈,生态也能和SpringBoot有的一拼,但是python解释型的语言,效率自然是相较于编译型的语言慢了。还有一个重要的在于Django业务层和View层难免偶尔过重,过大的项目不便于解耦和维护。所以还是使用于较小的项目,至于上微服务的层面,现阶段Django还是有所欠缺的,SpringCloud则有了很完备的解决方案。综上,我认为Java现阶段最核心的优势在于大型Java Web的开发生态以及优秀的工程管理能力。 **Q3:**如果让你推荐一本书给Java 初学者,你会推荐哪本书? **A3:**如果是完全零基础的初学者,我想我会推荐《疯狂Java讲义》作为他第一本书。曾经也有师弟师妹,和同事找我推荐书,其实我更倾向于先了解他们当前的情况,再去给他们做推荐。本人接触过绝大部分的初学者,他们当中大多数人更适合看视频,但也有少部分人沉得下心照着书本或技术文档敲代码。本人刚开始学的时候基础并不算太好,找同学推荐书,然后去学校图书馆翻了一天的书,抱了一大摞回宿舍,最后发现《疯狂Java讲义》讲的比较通俗易懂,一个外行人都理解,本人当初就抱着这本书对着代码敲,学习起来也不算吃力。到了后面接触到很多业界更为优秀的书之后,再看《疯狂Java讲义》难免会有错漏,但它生动有趣,在当年成功激起我学习编程的兴趣。本人始终相信兴趣是第一老师,要是初学小白被业界公认的好书里面提到的晦涩难懂的专业术语折磨惨了,我想他学习这门课程的兴趣也不是很大,我有时候对于一些想要初学的朋友,都是推荐《疯狂Java讲义》,要是朋友嫌弃它的厚度,我则会建议他们花1个月的时间看完《21天Java入门到精通》这一类书,等看完我再给他们推荐别的,虽然这类书内容质量算不上优秀。作为初学者,能简单快速入个门,也未尝不可,等心中有了Java的大概,再去看优秀的书籍,什么阶段就学什么样的内容,循序渐进,定会消化得更快,理解的更加透彻。
会java的小胖纸 2021-03-10 10:19:55 0 浏览量 回答数 0

问题

c语言入门之后该干什么:报错

我是搞php开发的,想用c写扩展。但是看了一些c语言的入门书籍后却不知道该写什么扩展?或者如果我还想进一步深入学习c编程该往什么方向走? 日常工作中使用LAMP或LNMP环境,能...
kun坤 2020-06-14 09:29:59 56 浏览量 回答数 1

回答

Java Java核心技术·卷 I(原书第10版)| Core Java Volume 讲的很全面,书中的代码示例都很好,很适合Java入门。 但是作者不太厚道的是把现在没人用的GUI编程放在了第一卷,基本上10~13章是可以不用读的。 Java性能权威指南|Java Performance: The Definitive Guide 市面上介绍Java的书有很多,但专注于Java性能的并不多,能游刃有余地展示Java性能优化难点的更是凤毛麟角,本书即是其中之一。 通过使用JVM和Java平台,以及Java语言和应用程序接口,本书详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,最终使程序如虎添翼。 实战Java高并发程序设计|葛一鸣 由部分段落的行文来看,搬了官方文档。 也有一些第一人称的叙述和思考,也能看出作者也是花了一点心思的。胜在比较基础,涉及到的知识点也还很全面(讲到了流水线计算和并发模型这些边边角角的),但是由于是编著,全书整体上不够统一和深入,适合作为学习高并发的第一本工具书。 Java 8实战 对Java8的新特性讲解的十分到位,尤其是lamdba表达式和流的操作。 再者对于Java8并发处理很有独到见解。对于并行数据处理和组合式异步编程还需要更深的思考才能更加掌握。 推荐给再用java8但没有去真正了解的人看,有很多你不知道的细节、原理和类库设计者的用心良苦在里面、内容没有很难,抽出几个小时就能看完,花费的时间和收获相比,性价比很高。 Java并发编程实战 先不谈本书的内容如何,光书名就足够吸引不少目光。“并发”这个词在Java世界里往往和“高级、核心”等字眼相联系起来,就冲着这两个字,都将勾起软件工程师们埋藏在心底那种对技术的探索欲和对高级API的驾驭感。 程序员嘛,多少都有点职业病。其实Java对“并发”优化从未停止过,从5.0到7.0,几乎每个版本的新特性里,都会针对前一版本在“并发”上有所改进。这种改进包括提供更丰富的API接口、JVM底层性能优化等诸多方面。 Thinking in Java 很美味的一本书,不仅有icecreamm,sundae,sandwich,还有burrito!真是越看越饿啊~ Effective Java中文版(第3版)|Effective Java Third Edition Java 高阶书籍,小白劝退。介绍了关于Java 编程的90个经验技巧。 作者功力非常强悍,导致这本书有时知识面迁移很广。总之,非常适合有一定Java开发经验的人阅读提升。 深入理解Java虚拟机(第3版)| 周志明 浅显易懂。最重要的是开启一扇理解虚拟机的大门。 内存管理机制与Java内存模型、高效并发这三章是特别实用的。 Java虚拟机规范(Java SE 8版)|爱飞翔、周志明 整本书就觉得第二章的方法字节码执行流程,第四章的前8节和第五章能看懂一些。其他的过于细致和琐碎了。 把Java字节码讲的很清楚了,本质上Java虚拟机就是通过字节码来构建的一套体系罢了。所以字节码说的非常细致深入。 数据&大数据 数据结构与算法分析|Data Structures and Algorithm Analysis in Java 数据结构是计算机的核心,这部书以java语言为基础,详细的介绍了基本数据结构、图、以及相关的排序、最短路径、最小生成树等问题。 但是有一些高级的数据结构并没有介绍,可以通过《数据结构与算法分析——C语言描述》来增加对这方面的了解。 MySQL必知必会 《MySQL必知必会》MySQL是世界上最受欢迎的数据库管理系统之一。 书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的章节,条理清晰、系统而扼要地讲述了读者应该掌握的知识,使他们不经意间立刻功力大增。 数据库系统概念|Datebase System Concepts(Fifth Edition) 从大学读到现在,每次拿起都有新的收获。而且这本书还是对各个数据相关领域的概览,不仅仅是数据库本身。 高性能MySQL 对于想要了解MySQL性能提升的人来说,这是一本不可多得的书。 书中没有各种提升性能的秘籍,而是深入问题的核心,详细的解释了每种提升性能的原理,从而可以使你四两拨千斤。授之于鱼不如授之于渔,这本书做到了。 高可用MySQL 很实用的书籍,只可惜公司现有的业务和数据量还没有达到需要实践书中知识的地步。 利用Python进行数据分析|唐学韬 内容还是跟不上库的发展速度,建议结合里面讲的库的文档来看。 内容安排上我觉得还不错,作者是pandas的作者,所以对pandas的讲解和设计思路都讲得很清楚。除此以外,作者也是干过金融数据分析的,所以后面专门讲了时间序列和金融数据的分析。 HBase 看完影印版第一遍,开始以为会是大量讲API,实际上除了没有将HBase源代码,该讲的都讲了,CH8,9章留到最后看的,确实有点顿悟的感觉,接下来需要系统的看一遍Client API,然后深入代码,Come ON! Programming Hive Hive工具书,Hive高级特性。 Hadoop in Practice| Alex Holmes 感觉比action那本要强 像是cookbook类型的 整个过完以后hadoop生态圈的各种都接触到了 这本书适合当参考手册用。 Hadoop技术内幕|董西成 其实国人能写这样的书,感觉还是不错的,不过感觉很多东西不太深入,感觉在深入之前,和先有整体,带着整体做深入会更好一点, jobclient,jobtracer,tasktracer之间的关系最好能系统化 Learning Spark 很不错,core的原理部分和api用途解释得很清楚,以前看文档和代码理解不了的地方豁然开朗。 不足的地方是后几章比较弱,mllib方面没有深入讲实现原理。graphx也没有涉及 ODPS权威指南 基本上还算一本不错的入门,虽然细节方面谈的不多,底层也不够深入,但毕竟是少有的ODPS书籍,且覆盖面很全,例子也还行。 数据之巅|徐子沛 从一个新的视角(数据)切入,写美国历史,统计学的发展贯穿其中,草蛇灰线,伏脉千里,读起来波澜壮阔。 消息队列&Redis RabbitMQ实战 很多年前的书了,书中的例子现在已经不适用了,推荐官方教程。 一些基础还是适用,网上也没有太多讲rab的书籍,将就看下也行,我没用过所以…. Apache Kafka源码剖析|徐郡明 虽然还没看,但知道应该不差。我是看了作者的mybatis源码分析,再来看这本的,相信作者。 作者怎么有这么多时间,把框架研究的这么透彻,佩服,佩服。 深入理解Kafka:核心设计与实践原理|朱忠华 通俗易懂,图文并茂,用了很多图和示例讲解kafka的架构,从宏观入手,再讲到细节,比较好,值得推荐。 深入理解Kafka是市面上讲解Kafka核心原理最透彻的,全书都是挑了kafka最核心的细节在讲比如分区副本选举、分区从分配、kafka数据存储结构、时间轮、我认为是目前kafka相关书籍里最好的一本。 Kafka 认真刷了 kafka internal 那章,看了个talk,算是入了个门。 系统设计真是门艺术。 RocketMQ实战与原理解析|杨开元 对RocketMQ的脉络做了一个大概的说明吧,深入细节的东西还是需要自己看代码 Redis设计与实现|黄健宏 部分内容写得比较啰嗦,当然往好了说是对新手友好,不厌其烦地分析细节,但也让整本书变厚了,个人以为精炼语言可以减少20%的内容。 对于有心一窥redis实现原理的读者来说,本书展露了足够丰富的内容和细节,却不至于让冗长的实现代码吓跑读者——伪代码的意义在此。下一步是真正读源码了。 Redis 深度历险:核心原理与应用实践|钱文品 真心不错,数据结构原理+实际应用+单线程模型+集群(sentinel, codis, redis cluster), 分布式锁等等讲的都十分透彻。 一本书的作用不就是系统性梳理,为读者打开一扇窗,读者想了解更多,可以自己通过这扇窗去Google。这本书的一个瑕疵是最后一章吧,写的仓促了。不过瑕不掩瑜。 技术综合 TCP/IP详解 卷1:协议 读专业性书籍是一件很枯燥的事,我的建议就是把它作为一本手册,先浏览一遍,遇到问题再去详细查,高效。 Netty in Action 涉及到很多专业名词新概念看英文原版顺畅得多,第十五章 Choosing the right thread model 真是写得太好了。另外结合Ron Hitchens 写的《JAVA NIO》一起看对理解JAVA NIO和Netty还是很有帮助的 ZooKeeper 值得使用zookeeper的人员阅读, 对于zookeeper的内部机制及api进行了很详细的讲解, 后半部分深入地讲解了zookeeper中ensemble互相协作的流程, 及group等高级配置, 对zookeeper的高级应用及其它类似系统的设计都很有借鉴意义. 从Paxos到Zookeeper|倪超 分布式入门鼻祖,开始部分深入阐述cap和base理论,所有的分布式框架都是围绕这个理论的做平衡和取舍,中间 zk的原理、特性、实战也讲的非常清晰,同时讲cap理论在zk中是如何体现,更加深你对cap的理解. 深入理解Nginx(第2版)|陶辉 云里雾里的快速读了一遍,主要是读不懂,读完后的感受是设计的真好。 原本是抱着了解原理进而优化性能的想法来读的,却发现书中的内容都是讲源码,作者对源码的注释超级详细,非常适合开发者,但不适合使用者,给个五星好评是因为不想因为我这种菜鸡而埋没了高质量内容。 另外别人的代码写的真好看,即便是过程式语言程序也吊打我写的面向对象语言程序。 作者是zookeeper的活跃贡献者,而且是很资深的研究员,内容比较严谨而且较好的把握住了zk的精髓。书很薄,但是没有废话,选题是经过深思熟虑的。 深入剖析Tomcat 本书深入剖析Tomcat 4和Tomcat 5中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发Tomcat组件,或者扩展已有的组件。 Tomcat是目前比较流行的Web服务器之一。作为一个开源和小型的轻量级应用服务器,Tomcat 易于使用,便于部署,但Tomcat本身是一个非常复杂的系统,包含了很多功能模块。这些功能模块构成了Tomcat的核心结构。本书从最基本的HTTP请求开始,直至使用JMX技术管理Tomcat中的应用程序,逐一剖析Tomcat的基本功能模块,并配以示例代码,使读者可以逐步实现自己的Web服务器。 深入理解计算机系统 | 布莱恩特 无论是内容还是纸张印刷,都是满分。计算机学科的集大成之作。引导你如何练内功的,算是高配版本的计算机导论,目的是釜底抽薪引出来操作系统、组成原理这些专业核心的课程。帮助我们按图索骥,点亮一个一个技能树。 架构探险分布式服务框架 | 李业兵 刚看前几章的时候,心里满脑子想得都是这特么贴一整页pom文件代码上来干鸡毛,又是骗稿费的,买亏了买亏了,后来到序列化那章开始,诶?还有那么点意思啊。 到服务注册中心和服务通讯,60块钱的书钱已经赚回来了。 知识是无价的,如果能花几十块钱帮你扫了几个盲区,那就是赚了。 深入分析JavaWeb技术内幕 | 许令波 与这本书相识大概是四年前是在老家的北方图书城里,当时看到目录的感觉是真的惊艳,对当时刚入行的自己来说,这简直就是为我量身定做的扫盲科普集啊。 但是可惜的是,这本书在后来却一直没机会读上。然后经过四年的打怪升级之后,这次的阅读体验依旧很好。 其中,java编译原理、 Servlet工作原理、 Tomcat、spring和iBatis这几章的收获很大。 前端 jQuery 技术内幕| 高云 非常棒的一本书,大大降低了阅读jquery源码的难度(虽然还是非常难)。 Head First HTML与CSS(第2版) 翻了非常久的时间 断断续续 其实从头翻到尾 才发现一点都不难。 可我被自己的懒惰和畏难情绪给拖累了 简单说 我成了自己往前探索的负担。网页基础的语法基本都涵盖了 限于文本形态 知识点都没法像做题一样被反复地运用和复习到。通俗易懂 这不知算是多高的评价? 作为入门真心算不错了 如果更有耐心 在翻完 HTML 后 对 CSS 部分最好是可以迅速过一遍 找案例练习估计更好 纸上得来终觉浅 总是这样。 JavaScript高级程序设计(第3版) JavaScript最基础的书籍,要看认真,慢慢地看,累计接近1000小时吧。而且对象与继承,性能优化,HTML5 api由于没有实践或缺乏代码阅读量导致看的很糊涂,不过以后可以遇到时再翻翻,或者看更专业的书。 深入理解ES6 Zakas的又一部杰作,他的作品最优秀的地方在于只是阐述,很少评价,这在帮助我们夯实基础时十分有意义,我也喜欢这种风格。 我是中英文参照阅读的,译本后半部分有一些文字上的纰漏,但是总体来说忠实原文,水平还是相当不错,希望再版时可以修复这些文字问题。 高性能JavaScript 还是挺不错的。尤其是对初学者。总结了好多程序方面的好习惯。 不过对于老手来说,这些常识已经深入骨髓了。 深入浅出Node.js|朴灵 本书是我看到现在对Node.JS技术原理和应用实践阐述的最深入,也最全面的一本书。鉴于作者也是淘宝的一位工程师,在技术总是国外好的大环境下,没有理由不给本书五颗星。 作者秉着授人于鱼不如授人于渔的精神,细致入微的从V8虚拟机,内存管理,字符串与Buffer的应用,异步编程的思路和原理这些基础的角度来解释Node.JS是如何工作的,比起市面上众多教你如何安装node,用几个包编写一些示例来比,本书绝对让人受益匪浅。 认真看完本书,几乎可以让你从一个Node的外行进阶到专家的水平。赞! 总结 其实我觉得在我们现在这个浮躁的社会,大家闲暇时间都是刷抖音,逛淘宝,微博……他们都在一点点吞噬你的碎片时间,如果你尝试着去用碎片的时间看看书,我想时间久了你自然能体会这样的好处。 美团技术团队甚至会奖励读完一些书本的人,很多公司都有自己的小图书馆,我觉得挺好的。 文章来自:敖丙
剑曼红尘 2020-03-20 14:52:22 0 浏览量 回答数 0

问题

一个老码农的技术理想

小时候,老师问我,你的理想是什么? 我不假思索说是工程师,于是长大之后果然成了工程师。 工作这么多年,一直在思考工程师这三个字的意义,终于有一天恍然大...
技术小菜鸟 2019-12-01 21:17:10 3067 浏览量 回答数 1

问题

【教程免费下载】Docker技术入门与实战(第2版)

前言 在一台服务器上同时运行一百个虚拟机,肯定会被认为是痴人说梦。而在一台服务器上同时运行一千个Docker容器,这已经成为现实。在计算机技术高速发展的今天,昔日的天方夜谭正在一个个变成现实。 ...
知与谁同 2019-12-01 22:07:43 2594 浏览量 回答数 0

回答

OSC 第 128 期高手问答 -- Python3 开发实战 @壁_花 @idisikx @hell0cat @DarkAngel @北京老爷们儿      恭喜以上五位网友或获得《Python Web开发实战》图书一本  请私信 @博文视点   告知快递信息(格式:姓名+电话+地址+邮编号码)!  ######@dongwm :不知作者有没有涉及过大数据方向的?我看部分大数据相关的都要用到python这是为什么?Hadoop整个生态圈都是Java的,python的定位是什么?######@dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢?######@dongwm : 按照“没有银弹”一说,python应该也有自己的适用范围吧,是不是比较适用于机器学习,不适合于web开发呢?######Python被称为「胶水语言」,虽然没有「统治」哪个领域,但是基本上个个领域都把手伸了进去。 机器学习我不熟不敢妄谈是不是更合适。我只能说,Python很适合web开发######使用豆瓣很多年,很喜欢豆瓣的风格。之前一直是在网页端浏览,后来又到了手机app端。我总体感觉豆瓣的进步很快。我想问的问题是,python web一直作为豆瓣的开发首选,是因为什么?还有关于豆瓣的权限模块的设计时,python web发挥了什么优势。作为手机端app的开发,python web会起到什么作用吗?######回复 @机器猫123 : 会的。也许不会开源,但是酱厂里面确实有很多不错的实现######回复 @dongwm : 未来豆瓣会继续用python web衍生开发新的产品吗?######回复 @dongwm : 谢谢老师的回答。######豆瓣选择Python,其实是公司和语言的风格很相似的缘故吧。我们做事喜欢优雅,清晰,高效,这这好也是Python希望的。 豆瓣的基础设施基本都是使用Python完成,包含权限部分,但是Python web和权限模块设计感觉没啥直接的关系,就是抽出来的库和使用它的关系,我也没懂有什么优势或者劣势。 豆瓣app的API后端是使用PythonWeb完成的###### 引用来自“DarkAngel”的评论 @dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢? 引用来自“dongwm”的评论ROR我倒没有实际的用过,不敢妄言。Python最大的优势是他是一个「胶水」语言,在工作中的各个方向都能看到Python对应的库的身影,学会Python会让你的路比较宽,但是用ruby,可能在我印象里面就是Web开发比较有名。我现在还没有发现做Web开发有比Python效率高的方式。 其实很多人都担心Python的执行效率,然而其实绝大多数情况Python足够快,不快的话要先看看自己是不是用得不对或者不好。现在硬件资源很廉价,除非上升到BAT那种规模,否者基本还没有到达讨论语言瓶颈的问题。现在豆瓣绝大多数基础设施都是使用Python开发的。在Web开发中,我们很少通过写扩展的方式提高性能,其实编程语言一般都不是网站性能的瓶颈,还可以通过其他方式解决。 之前学ROR是因为老师要求用这个,我没有用Python进行Web开发的经验,稍微有一点了解的也只是Flask或者Falcon这种轻量级的,感觉能够快速开发小巧的应用,但是不知道有哪个特别出名的应用或者网站系统是由Python开发的(比如WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python确实是一种比较万能的语言,但有点万金油却不够专精的感觉。比如在科学计算方面很流行,但是论效率不如Julia,论支持库的丰富和使用广泛度不如Matlab(特别是学校里面,教授做研究或者教学一般都会用Matlab);在系统管理方面看,能用Python干的脚本化工作,用shell或者perl基本上都能干,而且需要写的代码行数说不定更少。如果说用Python进行Web开发效率高,是有特指某一个框架吗,还是泛指? 我在写程序时首先会想到用Python,是因为喜欢tial-and-error这种方式,能够在正式写代码前确认想法能不能实现,能够让我有兴趣和信心继续下去。但真要说起来,能够提供REPL特性的语言也不少。 Python的执行效率貌似永远是Python热门的讨论话题,比如GIL的存在必须要用特殊的方式来优化。像gevent和Tornado之类的存在也适用于高并发的网络连接(不过Python在这方面的性能不一定是最高的,没有看过相关的测试)。再说Python的实现,除了最出名的CPython和PyPy之外,甚至还有为嵌入式设备开发的MicroPython(这也在另一方面说明了Python的万能性)。Dropbox的技术栈中也使用了Python,并且有开发面向性能的Python实现pyston,此外还有Stackless Python(听名字感觉很厉害,虽然其实我并没有去了解这到底是什么),但它家也在用Golang和Rust开发高性能的东西。那么,豆瓣的基础设施实现中,用Python开发的应用效率如何?也有使用除了CPython之外的实现来进行优化吗?(我是不是扯得有点偏题了?) ######回复 @dongwm : 那么用Python来开发Web,是否属于那种会带来这种优势的选择呢?或者有没有哪家公司通过把技术栈切换到Python而带来了这种进步?######回复 @dongwm : 以现在的硬件发展水平,基本上任何数量级的访问都可以通过硬件的堆砌获得支持。不过经常会看到新闻,比如某某公司将它的某某技术构架从XX语言切换到了YY语言,然后获得了性能提升、提高了稳定性、减少了部署的服务器等优势,(我记忆中有看到Twitter的新闻,PHP 7的新闻,还有一些其他的)。######豆瓣每天服务着千万级别的用户(抱歉不能说具体数字)的请求,绝大多数应用和基础设施都是Python实现的。所以应用效率不用担心。虽然可以使用C/C++的扩展提高运行效率,但是我接触的场景里面很少。相当于写扩展的维护性和成本,大家更愿意从架构,算法等方面来解决。######嚯,你的问题好长。 进行Web开发效率高算是泛指,包含django和flask。效率高也体现在它们的第三方扩展和支持比较完善,基本能想到的都有对应的项目支持,这样少造了很多轮子。###### @dongwm :python的确很好,也很强大,我也一直在用,但我大都做的和web方面没有什么联系.而我对web方面挺感兴趣,但自学起来始终不得要领,进展有点慢,大神能否讲一讲web方面的学习经验,或者flask方面的心得.又或者推荐一些关于web好的学习资源.期待您的回答并致谢.###### @dongwm :了解Python基本知识,希望学习一门Python web框架学习后端开发。之前我对部分主流框架进行了一些了解:Django,Tornado,在知乎上有一个非常活跃的群体。在框架的选择问题上,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。 ######嗯 赞同你的观点。很多人在杞人忧天。先等活到有必要讨论语言的那一天,那时候早就有钱有人有时间,哪怕Python真的不满足,重构呗######@dongwm :Python确实越来越火了,知乎就是python做的,偶尔搞了一点,发现确实很高级,至少比java语言高级一些某些功能Java只需要写100行,而Python可能只要20行。做一些外维系统还是挺方便的,比如日志的提取等,之前学的是2.7版本,现在python3比之前的版本有哪些新特性呢? ######python 3是相当于站在Python2的肩膀上,摒弃了早年设计python 2的错误思想(所以有的地方向前不兼容),加了一些新的语法,比如asyncio,甚至type hint(我不喜欢)。 具体的内容可以看 https://docs.python.org/3/whatsnew/index.html。 总体上和Python 2区别不大。不用纠结Python 2/3###### @dongwm :初入门python,有c、java基础。再看《python基础教程(第二版)》。请问您有推荐的书籍吗?######我个人在知乎专栏写过一篇推荐书的文章 https://zhuanlan.zhihu.com/p/22198827。我建议有一些其他语言基础的同学好好地看看《Python学习手册》,如果你英语比较好,建议直接看原著。《Python基础教程》虽然是一个经典的入门教程,写作风格也相对轻松幽默,但是由于本书写作于2010年,书中有大量内容已经过时,所以不推荐! ========================== Python "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode ch:报错 {   "traceback": "  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/st2actions/container/base.py\", line 99, in _do_run\n    LOG.debug('Performing run for runner: %s' % (runner.runner_id), extra=extra)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 49, in wrapped_f\n    def wrapped_f(*args, **kw):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 206, in call\n    if not self.should_reject(attempt):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 247, in get\n    else:\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 200, in call\n    try:\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 219, in run\n    result = self.start(action_parameters=action_parameters)\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 256, in start\n    **options)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/v2/executions.py\", line 56, in create\n    return self._create('/executions', data)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 95, in _create\n    self._raise_api_exception(resp)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 143, in _raise_api_exception\n    error_message=error_data)\n",         "error": "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode character u'\\xae' in position 169: ordinal not in range(128)\n[u'Traceback (most recent call last):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/server.py\", line 155, in _process_incoming\\n    failure = None\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 222, in dispatch\\n    if hasattr(endpoint, method):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 192, in _do_dispatch\\n    new_args[argname] = self.serializer.deserialize_entity(ctxt, arg)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/engine/engine_server.py\", line 98, in start_workflow\\n    (rpc_ctx, workflow_identifier, utils.cut(workflow_input),\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 284, in cut\\n    return cut_dict(data, length=length)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 198, in cut_dict\\n    v = str(value)\\n', u\"UnicodeEncodeError: 'ascii' codec can't encode character u'\\\\xae' in position 169: ordinal not in range(128)\\n\"]." }
kun坤 2020-06-15 11:08:13 0 浏览量 回答数 0

问题

【教程免费下载】深度学习导论及案例分析

前言   “深度学习”一词大家已经不陌生了,随着在不同领域取得了超越其他方法的成功,深度学习在学术界和工业界掀起了一次神经网络发展史上的新浪潮。运用深度学习解决实际问题,不仅是学术界高素...
玄学酱 2019-12-01 22:07:45 2373 浏览量 回答数 1

问题

【教程免费下载】数据分析实战:基于EXCEL和SPSS系列工具的实践

前言 为什么要写这本书 在我做数据分析培训和咨询的过程中,经常会有学员来问我,有没有合适的统计分析方面的参考书可以推荐。被学员问得多了,慢慢地就有了写本书的冲动,一是毕竟自己写...
玄学酱 2019-12-01 22:08:34 1323 浏览量 回答数 1

回答

作者:九章算法 链接:https://www.zhihu.com/question/21669554/answer/790851463 来源:知乎 即使作为编程新手,刚刚接触GitHub,也建议你从最简单的项目入手,而不是单纯研究大量理论。 这个3000+ starts的优(宅)秀(男)项目:komeiji-satori/Dress就非常适合初学者Pick。作为全球最大同性交友平台,这个项目里集结了大量的女装大佬。而且,这应该是 GitHub 最低准入门槛项目了,就算不会写代码也都可以参加。你可以在这里学习 GitHub 的用法,从克隆项目、创建分支、提交和同步修改,到合并分支请求的整套流程,只需一次即可熟悉 Git/GitHub 的使用。 当然,你还要事先准备至少一张你的女装照。 好了,接下来分享一些正经的。 基于这个项目,你就可以马上开始你的实践了。 第一步:打开官网:https://github.com 注册一个帐户。 第二步:创建仓库 填写仓库的名字和描述。 创建好了之后,点击“Branch master”,创建分支——在文本框中输入分支名称和描述,然后点击蓝色部分确认。 第三步:点击创建一个新文件 输入想要提交的代码以及下方的文件名和描述后,点击最下方的Commit new file即可。 第四步:修改&保存修改在github上,提交&保存修改的操作是commits。每一次的commit都会被记录,可以被其他用户查看。 点击铅笔图案即可修改,修改后点击Commit changes即可。 第五步:提交Pull request 点击New pull request,选择你所做的分支,编辑你想修改的内容,经过与原来内容的对比,确认后提交请求。然后@特定的人或者团队,请求他们review,并反馈给你(还可以请求把你的代码加入他们的分支)。 第六步:合并修改历史 点击绿色按钮,将自述编辑合并到Branch master。 合并成功后可以删除该分支。 应用: **1、查看别人的代码or项目,给其点赞评论或关注点击“gist" ** 然后选择“All gists”,可以查看别人写的代码。 蓝色框“commonts”、“stars”,可以评论或跟踪关注别人的代码。 2、clone别人的代码,修修改改,然后变成自己的代码 点击别人代码右上方的”forks”,然后点击“Embed”,选择Clone,即可克隆保存别人的代码。点击Download,可以下载他人代码到本地。 3、查看别人代码的修改历史 点击“Revisions”即可查看修改历史,以及修改前和修改后的对比。当然,除了这些基础的功能之外,GitHub 更是一个强大的宝库,怎么发现宝藏,是有诀窍的。 **寻找 Demo 节省时间 ** 当我们在工作中需要快速掌握和使用新的技术,又没有太多精力从头开始学习,我们就可以在 GitHub 上寻找相应的 Demo,在简单了解原理、稍作尝试之后,引入到项目中。你可以按照技术栈的关键字搜索,并根据更新时间进行排序,以查找是否有合适的 Demo。 **寻找脚手架:加快前期开发 ** 有时候,我们需要寻找一个合适的脚手架来帮助我们做出想要的东西,这时候我们可以,直接使用技术栈 + boilerplate 或者 starter 等关键词进行搜索,如 react boilerplate。如果其中找到的组合技术栈不大符合自己的要求,那么再加上相应技术栈的关键字,如 react redux boilerplate 即可。 寻找 awesome-xxx:探索可能性 在Github上,有一些前人总结整理好的宝库,比如Awesome-xxx 系列。 只要有一定知识广度的领域、语言、框架等,都有自己的 awesome-xxx 系列的项目,如 awesome-python, awesome-iot, awesome-react 等等。在这样的项目里,都以一定的知识体系整理出来的,从索引和查阅上也相应的更为方便。如果你想学习一些新的东西,进入一个新的领域,那就搜索 awesome xxx 吧。 学习资源 GitHub 上拥有大量的学习资源,从各类文章到各种笔记,还有各式各样的电子书。 如: 搜索: 类型 + 笔记,如 操作系统 笔记 就能找到一些操作系统相关的笔记。 搜索: 书名 就能找到一些和这本书相关的资源,如 重构 改善既有代码的设计。 GitHub 上还可以搜索到各种 未经授权 的英文书籍的翻译,或是各种电子书的 PDF 版。还有一些库,可以提供相应的学习资源,如 free-programming-books-zh_CN,即免费的编程中文书籍索引。 与此同时,Github上不乏简单的新手项目,实践练手再好不过 ZKEACMS:一个可视化设计的CMS系统(内容管理系统)。页面布局是可以直接在线设计,页面也是可以在线设计,编辑的,模板是可以直接在线编辑的,样式还可以可视化直接编辑,内容板块可以直接从现有板块中快速添加。是一个非常适合新手跟进的优质项目。 textgenrnn:一款基于 Keras/TensorFlow 的 Python 3 模块,可以用来创建字符级的循环神经网络。 JEESNS:一款基于JAVA企业级平台研发的社交管理系统,依托企业级JAVA的高效、安全、稳定等优势,开创国内JAVA版开源SNS先河。数据库使用MYSQL,全部源代码开放。 最后,祝你寻宝愉快~~ 加入阿里云钉钉群享福利:每周技术直播,定期群内有奖活动、大咖问答 阿里云开发者社区
茶什i 2020-01-07 10:50:51 0 浏览量 回答数 0

回答

以下是我见过笑点比较高的: 1、 有看过这部剧的吗?推荐一下:《黑客军团》(Mr. Robot) 2、A man and woman are in a computer programming lecture. The man touches the woman's breasts. "Hey!" she says. "Those are private!" The man says, "But we're in the same class!" From Quora: 3、50 shades of Grey(五十度灰)讲的是什么: #272727, #282828, #292929, #2b2b2b, #2c2c2c, #2e2e2e, #313131, #323232, #343434, #353535, #373737, #393939, #3a3a3a, #3c3c3c, #3f3f3f, #404040, #424242, #444444, #454545, #474747, #484848, #4a4a4a, #4b4b4b, #4d4d4d, #4e4e4e, #505050, #515151, #535353, #565656, #575757, #585858, #595959, #5b5b5b, #5c5c5c, #5e5e5e, #616161, #626262, #646464, #656565, #676767, #6a6a6a, #6b6b6b, #6c6c6c, #6d6d6d, #6f6f6f, #727272, #737373, #757575, #767676, #777777, #7b7b7b, #7c7c7c, #7d7d7d, #7e7e7e, #808080, #818181, #838383, #868686, #878787, #888888, #898989, #8b8b8b, #8c8c8c, #8e8e8e, #919191, #929292, #949494, #959595, #979797, #9a9a9a, #9b9b9b, #9c9c9c, #9d9d9d, #9f9f9f, #a0a0a0, #a2a2a2, #a5a5a5, #a6a6a6, #a8a8a8. 4、 5、一程序员去面试,面试官问:“你毕业才两年,这三年工作经验是怎么来的?!” 程序员答:“加班。” 6、女朋友对着正在写代码的程序猿男朋友说:你又在写bug啦? 7、《c++程序设计语言》比《c程序设计语言》厚了几倍...果然有了对象就麻烦很多... 8、问:如何在Linux下生成随机串? 答:让新手退出Vim。 9、上大学那会,刚学会上网,于是在网上搜A片,然后搜出个:PHP大全.rmvb,以为是拍黄片大全,谁知道竟然是PHP的视频教程,于是我就学会了PHP……(╯-╰)/ 10、一对程序员情侣在一起的时候干什么? 答:面向对象编程。 11、问:怎么使用面向对象的方式变得富有? 答:继承。 12、程序猿的必读书籍: 第一阶段:《C语言程序与设计》《c++进阶宝典》《Swift入门与实践》 第二阶段:《教你怎么不生气》《老子》《沉默的愤怒》 第三阶段:《女装指南》 第四阶段:《颈椎病康复指南》《腰椎间盘突出日常护理》《强迫症的自我恢复》 第五阶段:《活着》 13、一个女程序员twitter上发了一条tweet: 昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应是查源代码…结果调试半天查不出来为什么显示的是那个女人不是我,最后含泪把那个女人给注释掉了,再一运行就是我男朋友自己逛街了…醒来囧字脸呆了很久…囧rz 网友评论: 1、把那个女人的指针指向你即可 2、谁让你把男朋友设成public的? 3、加个断点看看那女人是谁 4、心真软,就应该把他的接口屏蔽掉 5、Protected逛街(youOnly) 6、设计问题,应该采用单例模式 7、没做回归测试 8、标准做法是做个断言 9、注释掉了,逛街的参数不用改吗? 10、最后含泪把那个女人给注释掉了,再一运行就是我男朋友自己逛街了-->很明显是变量名作用域的问题,改个名就行了 11、还可以有个多线程的算法,把你的优先级设成99,一个idle线程的优先级设成50,把那个女人的优先级设成49。酱紫就永远都调度不到啦 12、那也没关系,那就老调用那个女人。。。你BF放在那里不动。。。养着 13、上绝招,用goto,做个死循环,让他们逛死 14、善心点,别goto了,调用exit函数结束进程吧,冤冤相报何时了啊 15、查一下Log,仅仅只有逛街吗? 14、为什么程序员总是搞混万圣节和圣诞节? 因为 Oct 31 = Dec 25。(Oct既是十月October缩写,也是八进制Octal的缩写;Dec既是十二月December的缩写,也是十进制Decimal的缩写。八进制的31和十进制的25相等。) 15、某猿退休后决定练习书法,于是重金购买文房四宝。一日,饭后突生雅兴,一番研墨拟纸,并点上上好檀香。定神片刻,泼墨挥毫,郑重地写下一行字:hello world! 16、面试官:知道什么叫类么? 应聘者:我这人实在,工作努力,不知道什么叫累。 面试官:知道什么是包? 应聘者:我这人实在 平常不带包 也不用公司准备了。 面试官:知道什么是接口吗? 应聘者:我这个人工作认真。从来不找借口偷懒。 面试官:知道什么是继承么? 应聘者:我是孤儿没什么可以继承的。 面试官:知道什么叫对象么? 应聘者:知道,不过我工作努力,上进心强,暂时还没有打算找对象。 面试官:知道多态么? 应聘者:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和C#有什么关系?? 17、 18、 你是哪一种? 19、 Tab or Space? 最后,我想说,年轻人你渴望力量吗?
有只黑白猫 2020-01-08 14:15:01 0 浏览量 回答数 0

问题

【教程免费下载】Apache Spark机器学习

前  言 作为数据科学家和机器学习专业人员,我们的工作是建立模型进行欺诈检测、预测客户流失,或者在广泛的领域将数据转换为洞见。为此,我们有时需要处理大量的数据和复杂的计算。因此,我们...
知与谁同 2019-12-01 22:07:50 1848 浏览量 回答数 1

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT