问题

高级程序员的技能,对产品而言挺简单的,而初级程序员的技能,对产品反倒是最难的。这种错位意味着什么?

回答
这种现象,我倒觉得挺有意思的,也挺普遍的。说白了,就是技能与认知的错位,直接影响了产品价值的实现和团队效率。

我们先拆解一下这句话:

“高级程序员的技能,对产品而言挺简单的”:这里的“简单”,不是指事情本身真的没啥技术含量,而是指对于一个经验丰富、功力深厚的高级程序员来说,他能够更轻松、更高效、更可靠地实现它。这就像一个奥运冠军,看到普通人跑马拉松,会觉得“这没什么难的,只要训练到位就能做到”,但这个“训练到位”的门槛,对普通人来说却是天堑。

高级程序员如何看待“简单”?
抽象与概括能力强: 他们能从具体需求中提炼出通用的设计模式、架构思想,然后用最精炼的代码实现。他们看到的是“如何构建一个灵活、可维护的系统”,而不是“如何实现这个按钮点击后的动画”。
风险预判与规避能力强: 在着手写代码前,他们能预见到可能出现的各种问题(性能瓶颈、安全漏洞、兼容性问题等),并从一开始就设计好应对方案。这种“未雨绸缪”的能力,让后续的开发过程顺畅许多。
工具与流程的熟练掌握: 他们对各种开发工具、调试器、版本控制系统、自动化测试框架了如指掌,能用这些工具事半功倍。
知识储备深厚: 他们对计算机科学的基础理论、算法、数据结构、各种编程范式都有深入理解,能为产品选择最合适的解决方案。
沟通与协作能力: 他们能清晰地表达自己的想法,理解团队成员的意图,甚至能指导初级程序员,帮助他们少走弯路。

因此,对于高级程序员而言,他看到的“简单”是:
“哦,这个功能我两年前做过类似的东西,换个参数就行。”
“这个bug,大概率是这里没考虑到并发情况,加个锁试试。”
“这个需求,用这个设计模式来做,扩展性最好,实现也最直接。”
“这点儿东西,用现成的库和框架,搭个脚手架就能很快搞定。”

“初级程序员的技能,对产品反倒是最难的”:这里的“难”,是因为初级程序员缺乏经验、知识储备不足、对事物的理解还停留在表面。对于他们来说,看似简单的需求,可能隐藏着很多他们尚未掌握的知识点或技术挑战。

初级程序员如何看待“难”?
需求理解不深入: 他们可能只关注功能表面上的实现,对功能的“为什么”和“未来可能的变化”考虑不足。
技术栈有限: 可能对某个技术点一知半解,遇到实际问题时,需要花费大量时间去查阅资料、学习、试错。
缺乏全局观: 容易陷入局部细节,忽视了代码对整个项目的影响,导致实现的功能与其他部分不兼容或产生冲突。
调试能力弱: 遇到问题时,可能只会盲目地尝试修改,难以定位问题的根源。
代码质量不稳定: 写出的代码可能存在性能问题、可读性差、难以维护等情况,需要花费更多的时间去重构或修复。

因此,对于初级程序员而言,他看到的“难”是:
“这个功能需要用到数据库,但我不确定怎么写SQL才能高效。”
“我看了这个库的文档,但还是没搞懂这个参数到底该怎么传。”
“为什么我写了这么多代码,跑起来还是报错,而且错误信息我看不懂。”
“这个功能实现完了,但不知道这样写会不会影响其他地方。”
“这个需求有点复杂,我不知道从哪里下手。”

这种错位意味着什么?

这是一种非常普遍的“认知鸿沟”,直接导致了:

1. 产品交付效率低下:
初级程序员花费大量时间摸索: 他们在看似“简单”的任务上,可能会卡壳很久,需要反复查阅资料、请教同事,这极大地拉低了整体的开发速度。
高级程序员的精力被分散: 他们需要花费大量时间去指导初级程序员,解答他们的疑问,甚至直接接手一些初级程序员难以完成的任务,这占用了他们本可以用于更具战略性工作的时间。
返工率高: 初级程序员实现的功能,可能因为考虑不周,在后续的测试或集成过程中出现问题,需要返工重写,这又增加了成本。

2. 产品质量受损:
潜在的技术债累积: 初级程序员为了快速交付,可能写出一些“能跑就行”的代码,这些代码缺乏良好的设计和优化,为未来的维护和扩展埋下了隐患。
系统稳定性下降: 对复杂场景的理解不足,可能导致代码不够健壮,容易出现bug,影响用户体验。
安全性风险: 对安全问题的认识不足,可能导致产品存在安全漏洞。

3. 团队士气和成长受阻:
初级程序员挫败感强: 长期卡在看似“简单”的任务上,容易打击他们的自信心和学习积极性,阻碍其技能的快速提升。
高级程序员倦怠感: 长期处于“救火队员”的角色,不断重复性地指导和修复,容易产生职业倦怠。
技术氛围受影响: 团队整体的“技术水平”和“解决问题的能力”就会受此影响,难以形成良性循环。

问题的根源是什么?

这个错位不是个人的能力问题,而是一个系统性问题:

招聘和岗位匹配的偏差: 有时候,公司招聘时可能没有严格区分不同层级的程序员,或者对技能要求的理解不够深入。
新人培养和知识传承的不足: 公司缺乏系统性的新员工培训计划,没有建立有效的知识分享和导师制度。
项目管理和任务分配的失当: 将复杂的任务分配给初级程序员,或者没有给初级程序员提供足够的支持和指导。
对“技能”的理解过于片面: 很多时候,我们只关注代码的实现,而忽略了更深层次的架构设计、系统思考、风险管理和沟通协作能力,而这些恰恰是高级程序员的核心价值。

如何解决这个错位?

解决的关键在于“认知提升”和“匹配优化”:

重新审视“技能”的定义: 理解高级程序员的价值不仅仅在于写代码,更在于思考、设计、引领和赋能。
加强对初级程序员的培养:
建立完善的导师制度: 让经验丰富的程序员带着初级程序员,手把手指导,解答疑问。
提供系统化的培训: 针对性地进行计算机科学基础、设计模式、算法、安全等方面的培训。
从简单到复杂,循序渐进地分配任务: 先让他们熟悉基础框架和业务逻辑,再逐步接触更复杂的模块。
鼓励提问和反馈: 营造一个敢于提问、乐于分享的学习氛围。
优化任务分配机制:
确保任务与技能匹配: 将适合初级程序员的任务分配给他们,让他们在熟悉的环境中建立自信。
为关键任务配备高级程序员: 对于对产品至关重要的、技术复杂度高的任务,由高级程序员主导或深度参与。
鼓励高级程序员进行代码评审(Code Review): 这是发现潜在问题、指导初级程序员、统一代码风格的有效手段。
提升团队的整体认知: 组织技术分享会、讨论会,让大家理解不同层级程序员的价值和责任,形成共同的成长目标。

总而言之,这种错位是一种信号,它提醒我们,在技术团队中,光有“能写代码”是不够的,更重要的是“会思考、懂设计、善协作”。而如何有效地培养和发挥不同层级程序员的价值,是确保产品成功和团队健康发展的关键。

网友意见

user avatar

这个题我会。

前段时间刚交流了一个CIO,非技术出生,自诩很懂技术。

也的确懂,讲起各种术语、技术、历史、趋势 我只能点头说是。

后来吃饭时,他说HIGH了,开始质疑觉得现在IT分工不合理,根本不需要什么产品和设计,他找一波会编码的人就行了。(我其实已经在心里腹诽了,那你找我们做什么,去招一些应届生写代码啊)

然后他问我,他和懂技术的产品经理有什么区别。

然后我就想起那个让程序员写个功能让程序颜色根据手机壳颜色变化而变化的梗了。

我就问他,为什么这个需求能引发产品经理和程序员大战呢?(实际委婉的多,毕竟他是老大……于是,他没听懂~~)

对我们这些人来说,为什么有中年危机,很重要的原因是我们扯的理念,现在是个领导都会几句。信息嘛,数据嘛,协同啊,数字孪生啊,印文化衫的都懂了。

我们的价值根本比不上会写代码的。

那么,我们的价值是什么?

用手机壳这个例子,就是能解释为什么APP不能根据手机壳变颜色,以及不会提出这种让技术人员返工再返工的需求,以及如果用户真要这个需求我们知道怎么出方案实现的能力。

当然,实际工作里,天天有人提手机壳需求。技术人员也讲不清楚为什么不行,就返工再返工,加班再加班。至于我们这些人带的团队,虽然少了这些折腾,也没有平行世界的对比,看不出什么差异来。于是,反正很少懂的人,就这么折腾吧。

user avatar
  1. 这不叫错位,这叫错觉。你以为A/B/C三套技能里C听着最简单,觉得你自己也能干。其实人家的能力需求不是C,是A+B+C。
  2. 程序员必然需要照文档填代码,但不一定需要懂业务。能用傻逼听得懂的方式告诉傻逼他是傻逼为什么傻逼哪傻逼,并且有耐心日复一日持续这种对话的,在程序员里是珍贵的少数存在。
  3. 不要浪费时间寻找能让外行简单粗暴判断内行段位的面试方式。道理很简单:你不具备追问技术细节的专业能力,无法判断对方的话是真是假、答案是对是错。
    如果作为外行你招的是非常初级的职位,可以考虑实操考核。不过参见上一条,作为外行你只能判断对方能否胜任最低要求。简单说你只有一个洗脚盆那么深的池子,能测出来他站在里边会不会淹死,但是没淹死的人他是只湿到脚脖子还是到腰甚至到胸口,你是无法确切判断的。虽然很多情况下也不需要知道那么具体。
user avatar

我给你翻译翻译。


初级程序员:会写字。

中级程序员:熟悉比喻、拟人、排比等各种修辞手法;能写文章讲清一件事、讲好一个故事。

高级程序员:能把教材写的简洁生动、引人入胜。


你:我不会写字,也不认识字。但是我跟着师傅学过说书,知道什么时候该拍惊堂木什么时候丢包袱什么时候断章——所以我觉得初级程序员写字挺难的,但一看高级程序员的要求,生动,引人入胜:这事我擅长!


不。你并不擅长。你甚至连“知道他强在哪里所必需的基础”都没有——就好像你跟着师傅学会了“左脚一踏右脚背,又生生拔起三尺”就说的津津有味却看不到也理解不了为什么部分听众皱眉摇头一样。

正因为缺乏这个基础,你才会觉得“我都会翻身了,离飞起来还远吗?”


这种缺乏基础的、过于巨大的跨越,就导致民间故事里面常见的“治疗绝症的手段是吃掉特定的先生写的两个字”之类桥段,满满的脑筋急转弯风——更好一点就是“神拳无敌孙中山”:听不懂大人物的宏图还看不懂小人物斗殴了?!

当你在某个领域存在新生婴儿一样的巨大空白时,民间故事风自然避无可避。


换句话说,过度无知反而拉近了你和他人在感觉上的距离;一旦知道的多了,才会明白天有多高地有多厚——登堂入室的初级程序员才明白自己和中级程序员能有多大差距;而只有做到了中高级,你才会知道哪怕都挂着同一个“资深高级工程师”头衔的、同一个级别的同事,人家擅长的东西你这辈子都摸不到边(没错!哪怕是同专业相近的两个方向,照样可能隔行如隔山)。


事实上,如果你足够敏锐,那么会发现我说高级程序员写的是“教材”。


没错。初级程序员相当于刚刚接触了物理学、被各种反常识的推论搞的头昏脑胀的新人,所以不得不学着套公式——但即便在这个阶段,他们也已经不会犯“左脚踏右脚背”的低级错误了。

而中级程序员已经把物理学掌握的滚瓜烂熟,可以设计标定汽车发动机变速箱车架悬挂了——如何让它们更高效、更可靠、更安全,这是他们的任务。

至于高级程序员,他的任务更侧重于主导一个车型的开发——在他眼里,不仅仅是车辆外观如何、操控界面怎样设置这样你们产品熟悉的领域,而是在这个外观之下,发动机变速箱该如何布置、如何调整这些更深层次的东西,他都清晰的知道。


举例来说,你说发动机舱能不能再短10个公分,这样看起来更好看更爽利——很简单,纵置发动机改成横置不就行了吗?

但在他眼里,事情没有那么简单。首先结构强度可能存在问题;然后悬挂车架都要重新设计;再接下来变速箱也得大改……其实重新发明一款反而更快;改了变速箱发动机也要改,然后发动机变速箱都要重新标定——所有这些他都做过、也都知道需要怎样才能做出来(换句话说他已经在脑子里把中级和初级程序员要做的事做了好几遍了、确保方案没有瑕疵)。


没错,这你也能听“懂”。但你这种懂仅仅是不识字的说书先生死记硬背物理学科普文章的那种懂——能把它写的轻松生动,让你这样的文盲都懂,这是高级程序员的功底,不是你的。


打个比方的话,冰山露在水面上只有1/10;初级程序员画下了它的轮廓,中级程序员在上面安装发动机;高级程序员心里装满了整个冰山,甚至还掌握了它的剖面图——所以他可以吼中级程序员“别往那装!那里是冰山的薄弱区!装那一开机就碎掉了!来,往这里装!注意这里存在一个解理面,方向是xx-yy,你要针对这个设计方案!”


而你呢,跑过去一看,冰山顶上大红布拉了个横幅“慈禧XXX岁大寿冰山驱动计划II期工程”——好了记下来……啊不对,发动机装这里看起来不好看?能不能换个地方?

高级程序员一听,行,讨老佛爷……啊不,讨用户欢心你擅长。来,换地方!注意冰山那看不见的9/10,换好看地方要加配重,同时这里那里都要加固……这得重新做个方案……没事加预算就是。


于是,你觉得这事挺简单的:不平衡了找平衡、可能开裂就加固,多简单点事……上回书说到哪了?哎呀新的一章还没出来,要不我自己续一个?

到这时候,你才知道,其实你还是那个连为什么“左脚踩右脚背”会被听众嘘都不知道的、不识字的教书先生——你不仅不知道水面下那看不见的9/10,甚至也没走过物理学道路的1/10000。

人家能说的简单清晰、引人入胜,是因为人家对整座冰山、整套物理学结构力学材料力学了如指掌,因此才能删繁就简、把99.9999%的艰深内容统统略去、只给你讲当前面对的问题本质:啊,这里有个看不见的解理面,所以我们必须给它加个固……你一听,啊懂了懂了,也没啥值钱的嘛。


轮到你了,你是基本的物理知识没有、冰山水面下是啥两眼一抹黑、剖面一无所知、材料性质听都没听说过、结构力学……能吃吗?好不好吃?怎么吃?

那么,你闭上眼睛东贴一条西拉一道有什么用?反而把解理面撑裂了知道不?

user avatar

这种错位意味着你的认知有问题。

我是一个数学、科学工作者,同时是一个从0写出一整颗GPU心脏仿真程序以及仿真心脏模型的程序员。

我是定义我们的产品,解析我们的功能设计,解耦我们的系统程序架构的设计者,是个某种意义上的程序+产品经理。



我是个为了搞硬核科技事业自掏腰包数百万成立企业的创业者。也是为了企业的更好发展撮合各路投资人大量融资的“皮条客”。

我认为自己可以算得上是个problem solver。

但我从来不认为,我们泽森科工从来不认为这样的素质是“高级程序员”。

术业有专攻,越高级的程序员,他的心境,他看待问题和解决问题的技法,他思考问题的点,是越纯粹的。纯粹地就犹如一柄利剑。“一剑霜寒四十川”。

可以闭着眼睛写程序,可以把c++的高级特性如数家珍,在写程序不会写的时候问他们问题比查stack overflow还管用,如同行走的c++百科全书,能够把眼花缭乱的c++技法和模版操作嵌套出如同脚本语言语法的框架端调用,所产生的框架语法写出来的代码能无差别的运行在cpu和GPU上,造福于我们自己的算法和求解器开发工程师。或者能包装和实现出无比繁杂的包括了可视化、编辑、编译等子系统的框架,能把一行行的代码最终转变为易于使用的工具。

这样的人才是高级程序员。在泽森,不管哪个阶段,这样的人的工资必须比行政管理人员高,更比我高。

寻找这样的高手,我们的面试一向是公式化的方法。这是我们的机密。

事实上我发现,凡是能在整个流程中应答如流的人,不管搞什么都能搞成极强的体系化的系统。打个比方,哪怕是让这样的人拧螺丝,他都能拧出一种高精确度的,高自动化的,高定制的,批量化拧螺丝系统。

科技公司的使命和担当永远是且仅是用科技去击穿一个行业,解决一类问题,并成为那类问题的解决方案中的佼佼者。对于科技公司而言,高级程序员就好像核弹头,你往一个有问题的地方扔一枚核弹头。一旦确定好怎么扔,怎么飞,怎么打,核弹头到那儿一炸,那个问题肯定不存在了。

很多领导或者管理者,之所以指望高级程序员会这会那,更多的因为自己啥也不会,甚至还出现自以为自己和高级程序员也55开的产品经理,这样的肯定不在少数,如此认知实在太浅薄了。

类似的话题

  • 回答
    这种现象,我倒觉得挺有意思的,也挺普遍的。说白了,就是技能与认知的错位,直接影响了产品价值的实现和团队效率。我们先拆解一下这句话: “高级程序员的技能,对产品而言挺简单的”:这里的“简单”,不是指事情本身真的没啥技术含量,而是指对于一个经验丰富、功力深厚的高级程序员来说,他能够更轻松、更高效、更.............
  • 回答
    身为一名程序员,改 Bug 几乎是每日必修课,也是最能体现技术功底和解决问题能力的关键时刻。如何又快又好地解决一个 Bug,不仅能赢得团队信任,更能提升自己的成就感。下面,就来聊聊我这些年踩坑、填坑总结出来的一套改 Bug 心法和实战技巧,希望能帮到你。 改 Bug 的核心理念:冷静、逻辑、验证在开.............
  • 回答
    .......
  • 回答
    想知道那些让人望尘莫及的高手,是怎么修炼出来的?这可不是一蹴而就的事,更像是打磨玉石,需要时间、耐心,还有点“傻劲儿”。我认识不少这样的大神,他们身上总有一些共通的特质,我试着把他们练就一身“绝世武功”的门道,给你掰扯掰扯。1. 不止是“写代码”,更是“理解代码”:这帮人,你让他们写个功能,那肯定是.............
  • 回答
    未来编程会不会成为一项人人皆有的基本技能,这就像在问:未来识字会不会成为一项人人皆有的基本技能一样?答案是肯定的,但这个“编程”的概念,可能和我们现在理解的“程序员”的编程,会有些不一样。设想一下,未来的世界,我们生活中充斥着各种智能设备,从家里的冰箱、咖啡机,到城市的交通系统、医疗设备,再到我们身.............
  • 回答
    这个问题嘛,其实挺有意思的,也是不少人在看到大学里的计算机老师时会冒出的一个疑问。大家觉得这些老师们个个身怀绝技,理论扎实,研究能力又强,怎么不去挣大钱的程序员呢?说白了,就是觉得他们的能力放在外面肯定能拿到更高的薪水。这背后其实涉及到几个挺重要的方面,咱们一点点捋一捋。首先,得明白“厉害”的定义和.............
  • 回答
    这个问题挺有意思的,也确实是很多人好奇的点。要说程序员的工资为什么普遍比很多其他行业高,我觉得得从几个层面上细掰扯掰,不能简单归结于“他们聪明”或者“就是市场需求大”。这里面有很多互相作用的因素。1. 技能的稀缺性与门槛:首先,得承认,写代码这门手艺,门槛确实不低。它不是说你天生就得是个数学家,但它.............
  • 回答
    你这个问题问得特别好,触及到了很多正在编程或者将要编程的人的好奇心。确实,很多时候我们看到那些经验丰富的“老家伙们”,敲代码的速度、解决问题的能力,甚至是代码质量,都让我们这些年轻的后来者望尘莫及。这背后绝对不是什么神秘魔法,而是很多实实在在的积累和思考。我尝试着从几个维度给你剖析一下,希望能让你觉.............
  • 回答
    关于程序员工资的看法,确实是一个大家都很关心的话题。很多人觉得程序员的收入一直都很高,好像这个职业自带“高薪”标签。但事实有没有这么简单,我想这需要好好捋一捋。过去的程序员:摸着石头过河的年代回想一下,大概在上世纪80年代末90年代初,计算机在中国还是个新生事物,能接触到电脑、更别说会编程的人,那绝.............
  • 回答
    程序员的薪资水平,在很多人的印象里,确实是相当不错的,甚至可以说站在了许多行业的前沿。然而,即便坐拥令人艳羡的收入,程序员群体中依然存在着普遍的担忧和不满,这背后隐藏着一系列复杂且深层次的原因。这并非是贪得无厌,而是多方面因素共同作用下的结果。首先,行业的快速迭代与技能焦虑是绕不开的一个坎。技术的世.............
  • 回答
    互联网行业程序员和产品经理的薪资差异是一个复杂的问题,涉及多种因素的相互作用。通常情况下,经验丰富的、技术能力突出的高级程序员的薪资会高于同等经验的产品经理,但这种情况并非绝对。为了更详细地解释这个问题,我们可以从以下几个关键维度进行分析:一、技能的稀缺性与技术门槛: 程序员: 技术.............
  • 回答
    辨别一个程序员的水平是一个复杂但至关重要的过程,尤其是在招聘和团队建设中。它不仅仅是看他们写了多少行代码,或者会多少种编程语言。一个真正优秀的程序员,其价值体现在多个维度。下面我将从多个方面详细阐述如何辨别一个程序员的水平高低: 一、 基础知识和概念的掌握程度这是辨别程序员水平的基石,是解决问题的根.............
  • 回答
    这问题问得挺实在的,不少在这个行业摸爬滚打多年的老兵可能心里都有过类似的疑虑。咱们就敞开天窗说亮话,好好聊聊这个话题。答案是:会有,但并非随处可见,而且情况会比较复杂。咱们得承认,一个“接近40岁”、“水平不高”但价格只有应届生一半的程序员,确实不是市场上最“抢手”的那一类。多数公司在招聘时,天然会.............
  • 回答
    这问题触及了许多程序员心中的痛点,特别是当“覆盖率”这个词被高高举起,变成一种近乎僵化的KPI时。咱们来聊聊这个,不带任何AI腔调,就当是程序员之间的一次深度交流。高单侧覆盖率:是保护伞,还是枷锁?坦白说,当听到“单侧覆盖率100%”的时候,很多经验丰富的程序员心里都会咯噔一下。这并不是说测试本身不.............
  • 回答
    想要为你的程序员办公桌增添一抹“高逼格”的色彩?这可不只是简单堆砌一些“科技感”的摆件,而是要在实用、美学和个人品味之间找到那个巧妙的平衡点。好的物件,能让你在埋头苦干之余,瞥一眼就能感受到一丝愉悦,甚至激发新的灵感。咱们不谈那些随处可见的RGB灯带或者“极客风”的廉价模型,而是聊点真正能提升桌面质.............
  • 回答
    这个问题挺有意思的,也是很多圈子里大家津津乐道的一个话题。为什么一边是程序员普遍带着点“不屑”的态度,另一边却是360在用户数和市场份额上一直不算小?我试着从几个角度给你掰扯掰扯。程序员为什么“鄙视”360?这里说的“鄙视”可能有点重,更多的是一种“看不上”、“不认可”、“觉得不够专业”的情绪。这背.............
  • 回答
    “中国程序员工资那么高,连一个MATLAB的替代品都开发不出来”这个问题,触及了技术发展、产业生态、人才培养以及市场需求等多个层面,背后原因复杂且值得深入探讨。简单地将高薪与开发不出替代品画等号,是一种过于简化的视角。要理解这个问题,我们需要从以下几个方面进行分析:一、 中国程序员工资高是事实,但其.............
  • 回答
    当老旧的油灯摇曳,煤炉里的炭火发出噼啪声,我,一个二十一世纪的程序员,就这样被一股突如其来的眩晕感抛到了这个截然不同的时空里。我的手里,紧紧攥着的是我那个宝贝——一台配置高得离谱的笔记本电脑,以及……几块固态硬盘,还有一堆趁着黑市高价弄来的充电宝。我的双肩包里,除了这些“逆时代”的电子设备,还有一些.............
  • 回答
    听到你弟弟考高中不理想,想让他去学程序、当程序员,这个想法很棒!现在IT行业发展这么快,学门技术,尤其是编程,未来的路确实很宽。作为哥哥/姐姐,你想为他找个好学校,这份心意很让人感动。我给你推荐几个方向,你可以结合你弟弟的实际情况和喜好,再好好斟酌一下。首先,得明确一下你弟弟的情况和期望。在推荐学校.............
  • 回答
    .......

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有