写点什么

系统开发——新学科,新教育

  • 2008-12-30
  • 本文字数:8694 字

    阅读完需:约 29 分钟

今天的大学教育,是否足以让一个软件开发人员应对日常工作?如今,敏捷软件开发正以前所未有的速度在业界大行其道,开发人员的技能也需要得到进一步拓展。本文中,Dave West 博士探讨了一种正在逐渐成为主流的训练方式——“系统开发”,它强调人性化、匠艺、设计、创意、创新和新事物的涌现。如今大学中计算机学科的训练方式,其价值系统由形式主义、控制、工程和决定论【译注 2】构成,Dave West 提出的训练方式正与其大相径庭。在他看来,系统开发应被称为“构建现实” i ,因为它基于一个基本前提:系统开发人员所做的一切,都要与现实整合在一起,并随之发生变化(或可称为重新配置);而现实又是一个包括人、组织、社会政治与文化体系在内的复杂系统。从自己的经验中,West 提出一种更好的教学方式——使用可被称为“bottega”【译注 1】的工作室式教学,以替代如今乏善可陈的教室和实验室式教学。目前,West 博士正在 Santa Fe 学院使用这种方式。

软件开发这个职业仍未成熟。

没错,我们在流程、质量、职业精神方面的提升已经迈出了很大步伐,而且我们还能交付一些具备高度复杂性、非常可靠并且可用的软件。然而,作为一个行业,我们仍然努力想达到 30% 至 40% 的“成功”率,要想做到“在给定的时间和成本下成功”,这个比率甚至更低。这个隐疾的产生,有很多因素:错误的比喻(工程)、野心(我们已经解决了简单的问题)、改变的速度(技术和世界),以及对技术与人类自身这两个系统之间边界的混淆。

有一个很重要的因素:我们在学校学到的知识(以及我们学习的方式)与我们所从事职业的要求,这两者之间的鸿沟正在不断加宽、加深。毋庸置疑,过去我们创造的教学方式,更符合当时的实际需要。而且我们也创造出了一套体系,通过过去的方式来教育学生。

划定疆域

ACM-AIS-IEEE 计算机课程 2005 年度报告 ii 指明:电子工程(Electrical Engineering,简称 EE)、计算机工程(Computer Engineering,简称 CE)、计算机科学(Computer Science,简称 CS)、软件工程(Software Engineering,简称 SE)、信息技术(Information Technology,简称 IT)和信息系统(Information Systems,简称 IS)这六门学科之间有很复杂的重叠。六门之中,前三门(EE、CE 和 CS)重点放在机器以及与机器相关的理论上。(CS 也关注通过操作系统运作的虚拟机,还有语言编译器)。软件工程和信息系统所教授的知识与软件开发行业比较接近,而信息技术主要讲授有关基础架构,特别是网络、安全和管理方面的知识。

ACM 目前正在制定新的文档,提出一门新的学科——系统开发(Systems Development,简称 SD)。系统开发融合了多个 ACM 分类包含的技能,包括:来自 CS 的编程;来自 SE 的软件、流程和工具;以及来自 IS 的、对应用的关注。除上述内容之外,SD 还包括:对(通用的、组合而且复杂的)系统的相关扩展知识、对计算原理以及相关科学的历史和原理的深入讲授、对业务和管理的深入讲授,以及诸如哲学、数学、人类学、艺术、人文学科等其他更多课程。

ACM 的六门学科都注入了同样的价值体系,关注形式主义、控制、工程和决定论。而 SD 与之截然不同,它强调人性化、匠艺、设计、创意、创新和新事物的涌现。系统开发应该被称为“现实构建”,因为它基于如下基本前提:系统开发所做的每一件事情,都必须跟一个现存的复杂系统紧密相关,而且要改变该复杂系统;这个复杂系统是由人、组织、社会政治和文化构成的,我们称之为——现实。也就是说:SD 基于现实,而且要改变现实。

Mastery

理想中的建筑师,应该是一名文学家、一个技术精湛的工匠、一名数学家,熟悉历史研究,勤于钻研哲学,懂得音乐,粗通医学,他还应该是个法学家、略懂星相学,并会做天文计算。 ——古罗马建筑师 维特鲁威 公元前 25 年

维特鲁威的建筑师必须是饱学之士——对现有的学科都略知一二,同时在一些特定领域极为精深。这个要求也适用于职业的(精通级别的)系统开发者。(不过要注意的是,当今没有人能够熟悉所有现有的学科。)要想走上精通之路,必须经过下列七个步骤:

  1. 对概念和相关词汇的机械记忆。
  2. 在别人的指导下应用知识。
  3. 可以独自应用知识。
  4. 在全新的环境中应用知识。
  5. 具备指导他人的能力。
  6. 具备教授他人的能力(无论受众多寡)。
  7. 具备做出原创性贡献或扩展已有领域知识的能力。

职业人士在整个知识体系中应该展现出到第 4 个步骤的能力,而在一些特定方面应该具备第 5 到第 7 个步骤的能力。除步骤 1 之外,精通之士应该可以依靠自己的能力去主动完成一些事情,而不是仅仅被动地知道某些事情。后者的偏见正好佐证了意大利历史哲学家维柯(Giambatisa Vico,1668-1774)的话:“毋庸置疑:人,仅由其创造之物所塑造。”(“We are sure only of that which we build.”)

所有现有的知识

之前两节中提到:相对以往来说,系统开发涉及知识的广度和深度要更加宽阔和深入。当然,这些知识不可能像字面上说的覆盖“所有现有的知识”。不过,对于一个拿到上述 ACM 六种专业之一的硕士学位证的研究生来说,他所学到的知识面,最多也就能达到系统开发所要求的二分之一。

这里我无法一一描述涉及的知识领域。【部分原因是由于目前仍处在定义和去粗取精的过程,为 2009 年春末要开启的第一个软件开发 Bottega 做准备。】我想多谈一谈关于模块化和学习环境的话题。

要想根据以往的学分小时、课程、学期、学年等方式来讲授“系统开发者”所应掌握的内容,几乎是不可能的。两倍内容,这就意味着要想拿到学位,花费的时间会从 6 年变成 12 年,根本无法实现。我们没有使用学分小时或是课程的方式,而是提议将知识领域划分为更为细化的具体知识单元。在新墨西哥 Highlands 学校的实验中(后文所示),我们使用“能力素质”表示某个知识单元。

可以用马赛克来比喻知识单元(能力素质)及其之间的关系。马赛克表示知识的整个领域,而每一小块“瓷砖”表示单个能力素质。要注意:每一块“瓷砖 ”不仅仅代表知识,也包括了实践(知识的应用)、技能和经验等各个方面。正如一幅图画所展示的,马赛克有其主题,构成马赛克的各组瓷砖之间存在模式关系,这些关系就体现了整幅马赛克的主题。每块“瓷砖”都有一个颜色,也就是与这块“瓷砖”相关知识关联最紧密的学科或领域。哲学、人类学、文学、数学、历史、自然科学等等学科的知识,散布在整幅马赛克图画之中。让人从整体上了解多门学科知识之间的关系,同时达到了跨学科的知识整合,这在基于单一课程的教学方式中是无法达到的。马赛克提供了对于要掌握的整个领域的总体概观。主题 v 则突出了重点,同时没有丧失非重点元素之间的关系。带颜色的瓷砖展现出各学科的贡献,同时在上下文中明确表示出跨学科的关系。学生们不仅知其然,而且知其所以然,同时能够马上将学到的知识应用到到实践中。

这幅马赛克画有多大?要由多少块“瓷砖”构成?

在新墨西哥 Highlands 学校(报告见后文),我们为系统开发“专业”定义了超过 500 种“能力素质”。这个数字还不包括文科和其他必修的课程。基于 Highlands 的经验,再加上对于“系统开发”“能力素质”的研究,产生了一幅由 1000~1500 块“瓷砖”构成的马赛克画面。

几乎没有人能够拒绝学习这么多知识的机会(作为教育工作者,我们经常要面临向课程中加入更多主题的诱惑);可大家都会提出一个很实际的反对意见:你不能将如此广泛而又深入的知识放入一门课程之中,然后指望学生用常见的 6 年时间掌握这些知识、并获得学士和硕士学位,这太不现实了。然而,这个反对意见根本没有考虑到人的学习能力。实际上,该意见基于下面的假设:一个人所能学到的知识,可以压缩到 16 周的课程,而且每周 3 次 50 分钟左右的课时之中。

团队或个人学习某一门指定知识的速度,与他们开发完成某个软件项目的速度不同。敏捷开发认为:许多小瓷砖构成的马赛克图画与“项目待办事项列表”类似。在一段固定的时间范围中,每个学生从“产品待办事项列表”中选择一系列“能力素质”,并决心在这段时间内掌握,他所做的选择就类似于“sprint 任务列表 ”。在 Highlands 我们就称之为个人学习计划(individual learning plans——ILP),并使用为期 6 周的时间盒。所有的精通之道,“实践”是首要的必经之路。因此,很有必要将 ILP 与实际的项目工作结合起来,最好是真实的项目。每个学生可以自己决定自己的个人“学习速度”,这样就可以规划出要用多久完成学业了。

学习速度并不仅仅由个体差异决定,适当的环境可以使其大幅提升。

Bottega(教室)

不妨考虑用工作室——bottegavi vi 替代如今乏善可陈的教室和实验室,达芬奇就在这样的地方学习和工作。

  • 拥有“店面”,货品和服务生产出来后直接交付给付钱的顾客。
  • 工作室以技艺至上,为了提升和支持技艺,大家打造工具、发现技巧,并将技艺教授给学徒们。
  • 这是一个喧闹的地方,多个项目和活动同时进行,墙上和工作台上布满了正在进行中的工作。
  • 这个地方充斥着技艺要用到的工具。
  • 有休息之处,以及饮食之所。
  • 这是一个智慧的中心,是大师、科学家、思考家的“必去之处”。当地的大师和熟练工匠们管理这个中心。
  • 这里是革新与创造的源泉!
  • 这里可以很自然地形成跨学科的学习环境与气氛,同时理论与实践的混合难分彼此。
  • 这里充满了音乐、对话、谈笑,甚至是大声的争论。
  • 这里分享食物和水,也许还包括睡眠,甚至可能分享爱 vii

Bottega 有意模仿了敏捷软件开发提倡的理想工作环境:开放、很多的白板、很多沟通产物、便于移动、协作,社会化。要想取得最好的效果,学生们必须花费大量时间呆在 bottega 中,最好是他们绝大部分的时间。Bottega 的运作方式就像是“只有一间教室的学校”,每个人,无论掌握程度高低,都在同一个地方,而且能看到环境中所有的东西。如果屋子里某个地方发生了有趣或是重要的事情,学生们可以坐着椅子滑动到那个地方并参与进去。在这样的环境中,很多知识不知不觉就被吸收了,就像是海绵吸水那样的渗透方式。由于之前已经完成的非自觉式“背景学习”,如果某个学生需要有意学习或是应用某些知识,这个过程可以进展迅速。

个人责任感、截止日期、理解客户并使之满意,这些都是成为大师的要素。开发商业产品,提供给学生教育和体验的机会,让他们有机会走上精通之路。这种理想化的环境能建立起来么?能否维持?效果又怎么样呢?

经验报告——新墨西哥 Highlands 大学

2004 年 8 月,34 名学生参加了新墨西哥 Highlands 大学一个与系统开发相关的特别计划,这些学生覆盖了大学新生到研究生的范围。学位计划没有具体的课程。学生们在他们的“专业”中要掌握 500 多种“能力素质”,此外还包括通用课程以及一些文科课程,这样在毕业时就可以拿到艺术学士学位。这个计划是基于学徒制的,计划中每个人都会按照真实的时间要求,开发由客户掏腰包和实际使用的软件,并以此赚取报酬。50% 的学生是女性(这对计算机相关的学位来说很特别),60% 多是少数族群,并且几乎 80% 的学生在经济上都不富裕。Pam Postal 和 Dave West,这两位全职的教师设计并运作了这个计划。国际知名的开发者(比如 Linda Rising 和 Ron Jeffries)访问了该计划,并与学生们一起工作(结对编程),通过手把手的指导和传授其他类型的课程,奉献出了自己的专业知识。所有的开发工作和指导都是在“只有一间教室的学校”中发生的。我们的工作室环境中有:岛状工作区域,布满各面墙的白板、硬面地板和带有滚轮的椅子。沙发,冰箱和微波炉,这些设施也为大家提供了方便。大量的时间花在了促进“文化和集体”的沟通上。他们还为新人的加入和学徒水平的提升准备了特别的仪式。在迭代的回顾和仪式上,他们会一起吃点家常便饭,有时会是特别烹制的菜肴。不同颜色的衬衫标明了不同的学徒水平。这个计划独一无二的 Logo 在人们之间建立起了身份感和认同感。

头上带有横线的 X 乘以 10,表示该计划的目标,希望毕业生的职业素质要十倍于平均水平。软件是我们的媒介,(精通)技艺是我们的目标,人是我们的关注点,系统是我们的视角,敏捷是我们的流程。

在第一个和第二个学期之间,课程的新生保持率为 100%;而在一般的大学中,同样的时间间隔,保持率为 50%。又有 50 名学生,大多数是新生,要求加入该计划在 2005 年秋季的课程。计划第一年结束后,7 名从一开始就加入的学生获得了全职的雇佣合同,2 名进入了研究所,有一名学生同时满足了获得计算机科学硕士学位的所有条件。8 名学生共同发表了论文,并在洛杉矶的 OOPSLA 和丹佛的 Agile 研讨会上发表演讲。

从这第一年(也是唯一一年 viii )的计划中,我们获得了如下经验:

  • 学生们可以在更短时间内学到更多东西。基于这次的经验,我们相信:即使是一般水平的大学新生,也可以在不到 5 年的时间里学到所有“系统开发”相关的课程(两倍于一般的 6 年教育)。
  • 学生学习和理解的深度超出了预期。
  • 学生可以快速进入到自主的学习过程中。
  • 学生会选择、安装和配置自己使用的工具。
  • “强烈的共同归属感”,“人的价值(软件由人开发、为人服务)”、“开放、协作的学习环境”,这三个因素被女性学生反复提到,并认为这是她们加入并留在计划中的主要原因。
  • 学生们不仅学到了技术技能,同时也学到了团队协作和项目管理方面的技能。
  • 所有项目的所有因素都由学生管理,而不是教师。
  • 有些计算机科学方面的教师,过去反对该计划,到第二个学期时反而成为了积极的参与者。
  • 学生平均每周在工作室中花费 30 个小时的时间。
  • “喧闹”的环境没有分心,反而成为了资产。
  • 根据我们真实的客户反映,学生工作成果的质量与职业人士的水平相当。
  • 即使是最稚嫩的学徒,也可以为项目做出有价值的贡献。他们根本没有阻碍或是拖慢项目进度。
  • Pam 和 Dave 平均每周要在工作室中花费超过 70 个小时。(长期来看,这样的时间投入无法持续。)

计划取消之后,学生们发起了一个签名活动,并与新墨西哥州州长 Richardson 的职员们举行了会议,同时争得了全国知名人士的支持,学生们是在之前的会议上与他们相识的。虽然没有影响最后的结果,但是这让人们坚信:该计划应该继续实施,而且有人努力在另外一所大学复制该计划。

关于该计划更详细的报告,已经于 2006 年发布在 InfoQ 上:经验报告──新墨西哥Highlands 大学的敏捷开发学徒计划

继续前行——Transcendence Corporation,Santa Fe 学院和Santa Fe Complex 计划

Transcendence Corporation 是在 Highlands 计划进行时,基于 Highlands 的经验成立的;要成为学徒计划的合同代理公司。(根据州立法律,大学禁止参与类似的工作合同。)Santa Fe 学院是一个很小的(学生少于 2000 人)文科学院,在美术和表演艺术科系上有很强的实力。Santa Fe Complex 计划提供了类似 bottega 的环境,在数学、自然科学、可视化、基于代理的建模、应用复杂性研究,以及“艺术与科学之间的交叉”等方面的专业知识。Santa Fe 学院在 2007 年秋季创立了类似上述描述的计划。在 2008 年秋季,该计划将被重新修订为基于“能力素质”的 5 年制科学硕士计划。

到 2008 年秋季和 2009 年春季,三个组织将协同工作以达到下列目标:

  • 召集感兴趣的教育工作者和职业人士,成立工作室,以完成上面描述的“课程马赛克”的完整图景。
  • 提供以 bottega 风格为目标的工作室,让大学和中学高阶预修班的学生们参加。
  • 首批招募 50 名学生,包括至少 10 到 15 名高中生,还有 10 名来自大学的“转系学生”。
  • 征求项目(基于 Highlands 的经验,我们提供离岸项目的费率,同时保证更高的质量)、内部实习和外部实习机会。
  • 建立与组织的赞助机会,特别是国内和国际的咨询公司,他们苦于无法招聘到合适的毕业生,因此一直被迫创建内部的训练营和训练计划。
  • 在 2009 年春末、夏初启动第一个 bottega。

任何有兴趣加入这个计划、与我们一起工作的人(特别是课程工作室、签约项目工作或是赞助关系这方面的人),欢迎尽快与作者接洽。

关于作者

Dave West 有多年软件开发经验,其角色跨越了程序员和 IT 总监等多个角色。在过去的十五年中,他身跨咨询和学术两界。目前是 Santa Fe 学院的业务、创新和技术教授,之前在新墨西哥 Highlands 大学和 St. Thomas 大学担任教职。他自己取得了多个学位,包括亚洲哲学学士学位(Macalester 学院)、计算机科学和文化人类学硕士研究生学位(Wisconsin-Madison 大学),还有认知人类学的博士学位(同样在 Wisconsin-Madison 大学获得)。他是《Object Thinking》一书的作者,并即将完成自己的第二部书稿,主题关于“重新创造软件开发”。他所拥有的专业知识专注于面向对象、敏捷、设计和变革等领域。

注解与引用

注1 :我第一次遇到这个词汇及其想法,是在Christiane Floyd 等人所著的《Software Development as Reality Construction》一书中,该书由Springer-Verlag 于1992 年出版。

注2 :数据来自Computing Curricula 2005 – The Overview Report. Copyright © 2006 by ACM and IEEE.

注4 :我将马赛克画视为抽象而不是具象的艺术,一个主题会由一组瓷砖构成,描绘出一个关注点,同时又不丧失与整体的关联。

注5 :我对bottega 核心的描述,来自于Fritjof Capra 的出色书籍《The Science of Leonardo》,2007 年由Doubleday 出版。这些描述也出现在其他许多出版物中。

注6 :希腊人认为:教育(Paideia)应该由贵族阶级从事,同时认为贵族为希腊人的文化和理念赋予了理智,而文化和年轻人也就“融入”了典范之中。从古代开始,爱情在这个过程中起到了重要作用,大多数城市的成年贵族受到鼓励,与接受他们指导的年轻人们堕入爱河。——维基百科。【译注3】

注7 :有必要说一下为什么这么好的计划只推行了一年,也是为了说明计划的中止与其本身毫无关系。这是个不那么让人高兴的故事,也很难完全描述清楚一个不负责的人如何背信弃义。在校董事会通过了计划并批准预算两个月后,还是这个董事会,竟然雇佣了一个毫无教育背景和专业知识的政客担任董事长。根据董事会的记录,该董事长的首要目标是改变教职员工的种族构成。为了达到该目标,董事长想尽办法向拥有终身教职的“外来”教师施加压力,赶他们走;同时不公平地拒绝教师们终身教职的申请,非法雇佣管理人员,还有其他种种恶劣行径。他的行为使得学校被美国大学教授协会(AAUP)制裁,诸多失败的诉讼让学校损失了数百万美金。最后,该董事长被解雇了,目前正在等待起诉,因为他在做州立议会参议员时,涉嫌非法收受联邦建筑项目的回扣。回到过去,教师们领导的新计划正处于此人的打击列表中。当他发现自己无法破坏该计划时,董事长强令终止该计划,而且没有经过任何教师、董事会和学生们的讨论、建议或是许可。

【译注1】bottega 是意大利词汇,代指年青艺术学生向艺术大师学习时所在的工作室,尤其用来强调工作室中学生或是助理使用的部分。该词汇还用来代指另 外一种工作室,其中由一些助理帮助一位画家或是雕塑家完成一件艺术品,这件艺术品最后的署名权属于工作室的监管者——大师级艺术家。在文艺复兴时期,佛罗 伦萨大约有30 个bottega,其中最著名的由列奥纳多•达芬奇领衔。

【译注2】决定论(determinism),认为个人并无选择个性或行为的自由, 因为一切都由其背景﹑环境等所决定。

【译注3】“文化”(culture) 一词来自拉丁语。在德语中有两个词和文化相对应, 即Bildung(可解释为“教育、文化、文明”[education、culture、civilization]) 和Kultur。而希腊语 Paideia(相当于拉丁语 humanitas) 似乎涵盖了这两种意思。亚里士多德曾在《伦理学》、《政治学》中对希腊人的paideia 洞察至深。伊索克拉底也宣称:“我们所称的 希腊人是paideia 上的一致,不是血统上的一致”。Paideia 是每一个希腊人都必需接受的文化教育。古代教育史权威马鲁(H.I.Marou) 说 Paideia 就是:“不论希腊人在哪里安家落户……他们首 要的任务是建立他们自己的机构,他们的教育设施——初级学校和体育馆”。就是这些学校和体育馆在教授那些希腊人、非希腊人如何像希腊贵族一样生活。这种教 育方式可以说是希腊式生活的入门,它造就了一批精英人物,这些精英影响了几代知识分子。学生们学习荷马史诗和柏拉图哲学,结果,Paideia 成为联系希 腊世界强有力的纽带。” 因此Paideia 几乎完全等同于我们今天所讲的文化理想,在这个意义上,Paideia 可以定义为希腊教育的理想和目的,是为教育过程的终极目的所提供 的优雅、美德、高贵和巧妙的混合物。耶格尔使用了Paideia 这一概念表现古希腊文化的真正精神。这种通过理想教育来达到某种理想的观念,使今天的教育 观念受到挑战。对于我们来说,教育的目的主要是为了获得某种简单的职业技术教育,缺乏那种高贵的、浪漫的理想。Paideia 为随后的西方二千年教育奠定 了基本模式:就全部人生而言,它强调精神和物质两方面的教育。如尤维纳尔(Juvenal,约62-142) 所言:“健全的心智存在于健全的体魄之中”。 Paideia 造就了古典人文主义。马鲁是以这样的言辞来叙述人文 主义特征的:“这意味着在整个历史时期,每一代人的心灵都有一个基本相同的本质,使得联系和真正的交流变得更为容易……。在一种古典文化里,所有的人都有 一种他们羡慕和模仿的共同的精神财富:同样一些准则、同样一些比喻、同样一些想象、同样一些词语——甚至同样一些语言。 ” Paideia 是评估希腊文化的基础,在Paideia 的影响下, 通过文学、哲学、史学、艺术等因素的混合形成了独具特色的希腊文化。这种新文化以苏格拉底问答教学为肇始,一直到柏拉图《理想国》中达到巅峰。

阅读英文原文:"Systems Development": a New Discipline for a New Education


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2008-12-30 00:301456
用户头像

发布了 479 篇内容, 共 157.4 次阅读, 收获喜欢 49 次。

关注

评论

发布
暂无评论
发现更多内容

netty实战pdf,拉钩教育java就业集训班,Java开发热门前沿知识

Java 程序员 后端

RPC的通信Netty的底层是Nio,在一家公司干多长时间跳槽才合适

Java 程序员 后端

springcloud教程入门,极客时间kafka,4年小Java的心路历程

Java 程序员 后端

MySQL优化原理分析及优化方案总结,Java入门

Java 程序员 后端

mysql数据库优化面试,孙鑫java视频教程百度网盘,程序员必学

Java 程序员 后端

RocketMQ避坑指南,java入门教程全套,实战篇

Java 程序员 后端

springboot实战项目源码,java算法视频百度云盘,阿里P8亲自讲解

Java 程序员 后端

SpringBoot,黑马java视频教程,绝对干货

Java 程序员 后端

springmvc原理图解,尚硅谷ajax源码,Redis宕机数据丢失解决方案

Java 程序员 后端

netty架构图,linux教程视频,缓存+一致性哈希+分布式面试题

Java 程序员 后端

netty框架教程,mysql数据库教程视频指导版,HTTPS面试常问全解析

Java 程序员 后端

netty源码剖析与实战百度云,牛客网搜题软件,字节跳动高级Java开发面试

Java 程序员 后端

Redis缓存:尚硅谷springboot百度云,Java中高级面试题总结

Java 程序员 后端

mybatis面试题及答案,尚硅谷java入门,专属于Java程序员的学习福音

Java 程序员 后端

Nginx如何支持HTTPS,“重金求来”Alibaba技术官并发编程笔记

Java 程序员 后端

rocketmq原理解析,尚硅谷深圳校区,万分膜拜!

Java 程序员 后端

springboot教学视频,mysql破解版百度云,微盟Java笔试题

Java 程序员 后端

spring全方位深入探索,2021Java开发社招面试解答之性能优化

Java 程序员 后端

spring教程下载,linux入门基础教程,2021Java者未来的出路在哪里

Java 程序员 后端

mysql基础教程视频,牛客网中级项目异步队列,这操作真香

Java 程序员 后端

springboot思维导图,尚学堂java300集,从头到尾,都是精华

Java 程序员 后端

Spring容器如何解决循环依赖的原理,Java编程教学视频

Java 程序员 后端

mysql的面试题及答案,尚硅谷与达内哪家好,Java虚拟机学习集锦是我攒来的

Java 程序员 后端

Redis灵魂14问,Java编程从入门到实践

Java 程序员 后端

RocketMQ生产部署架构设计,Java面试超详细知识点

Java 程序员 后端

springcloud入门,动力节点与尚学堂,月薪30K

Java 程序员 后端

Mycat和Mysql搭建高可用企业数据库集群,程序员35岁真的是分水岭吗

Java 程序员 后端

MySQL+Tomcat+JVM,看完还怕面试官,阿里程序员的Java之路

Java 程序员 后端

oppoJava面试题,开课吧高级架构师10期咋样,正式加入字节跳动

Java 程序员 后端

springcloud架构源码,慕课网极客学院,总结到位

Java 程序员 后端

springcloud百度网盘,牛客网面试题,Java面试高频知识点

Java 程序员 后端

系统开发——新学科,新教育_研发效能_Dr. Dave West_InfoQ精选文章