人狗大战java代码

这篇文章将围绕“人狗大战”展开,并假设它是一个存在于虚拟世界或游戏中的概念,而非实际发生的事件或具体的软件名称。 我们将以一个虚拟游戏的攻略形式进行撰写。

人狗大战:末日生存指南
在这个末日废土世界里,人类和被病毒感染的狂犬狗展开了一场残酷的生存之战!资源匮乏,危机四伏,只有最强大的生存者才能在这个充满危险的世界中活下去。“人狗大战”是一款融合了策略、生存和动作元素的硬核游戏,玩家需要在资源有限的环境下,建造庇护所,收集物资,并与成群的感染犬战斗,最终目标是生存下去并揭开病毒起源的秘密。 游戏画面写实,音效逼真,带给玩家身临其境的游戏体验。


游戏核心玩法
游戏的核心玩法围绕着资源收集、基地建设和战斗展开。玩家需要不断探索地图,寻找食物、水、药品和建筑材料等资源。利用收集到的资源,建造并升级你的基地,以抵抗越来越强大的感染犬群的攻击。游戏提供了多种武器和防御设施供玩家选择,合理搭配才能在战斗中获得优势。


初期生存技巧
游戏初期,资源匮乏是最大的挑战。建议玩家优先寻找安全的庇护所,例如废弃的建筑物或地洞。然后,开始收集基本的资源,例如水和食物,保证自身生存。学习制作简单的工具,可以帮助你更有效率地收集资源。记住,不要过度冒险,在实力不足时,避免与大量感染犬正面冲突。


武器装备选择与升级
游戏中有多种武器可供选择,例如棍棒、铁锹、手枪、步枪等。初期建议选择易于获得的近战武器,例如棍棒和铁锹。随着游戏的进行,你需要收集更好的材料来制作更强大的武器。武器和装备的升级对于生存至关重要,升级后的武器可以造成更高的伤害,并增加你的生存几率。


基地建设与防御
基地是你的安全港湾,也是你对抗感染犬的关键。你需要不断升级你的基地,建造围墙、陷阱和其他防御设施,来抵御感染犬的攻击。合理的基地布局可以最大限度地提高防御能力。 升级你的基地可以提供更多的空间来储存资源和制作物品。


战斗策略
与感染犬战斗时,需要制定合理的策略。尽量避免与大量感染犬正面冲突,利用地形优势,例如狭窄的通道或高地,可以让你在战斗中占据优势。合理使用武器和道具,例如燃烧瓶或手榴弹,可以有效地消灭大量的敌人。 团队合作在游戏中至关重要,如果你与其他幸存者合作,可以更容易地完成任务,并提高生存率。


高级技巧与隐藏要素
游戏地图中隐藏着许多秘密地点和宝藏,探索这些地点可以获得稀有的资源和装备。游戏还有一些隐藏任务和成就等待玩家去发现。熟练掌握游戏机制,并积极探索地图,才能发现更多游戏乐趣。


病毒起源之谜
游戏的故事背景设定在一个被病毒侵袭的世界,玩家需要在生存的同时,逐步揭开病毒起源的秘密。通过收集线索和完成任务,玩家可以逐步了解这个世界的历史,以及人类与感染犬之间发生的故事。


持续更新与社区互动
游戏会持续更新,添加新的内容、地图、武器和游戏模式。积极参与游戏社区,与其他玩家交流游戏心得和技巧,可以帮助你更好地体验游戏。


希望这份攻略能够帮助你在“人狗大战”的世界中生存下去! 祝你好运!


有很多游戏抄袭了我的世界,而被骂的只有迷你世界这是为什么?

回答:最大的原因就是迷你抄袭我的世界不承认,还非常嚣张的说是MC抄袭了自己。并且别的游戏抄袭我的世界只是抄袭,而迷你世界却是直接复制粘贴代码,整套搬走了。 

首先其他游戏可能有抄袭,但是抄袭的不多,比如奶块(抄袭MC35%源代码,并公开承认了)。但是他申请了版权,更何况沙盒游戏无非就是一种样子,所以说出现少量相同的地方也无可厚非,但是迷你世界就不一样了,首先他抄袭了MC75%的源代码,重点是还死不承认,还有很大一部分的迷你世界玩家无理取闹,说什么迷你世界早就被中国的一个老人发明出来了,结果他死了,源代码被我的世界剽窃,直到2015年老人的亲人才发现迷你世界,做了出来。

不知道这是哪个瓜皮娃娃散布的谣言,首先MC是瑞典人Notch花了六天时间创建出来的最原始的我的世界,里面只有两种方块,后来经过不断的完善,到达市场的时候是2009年,而迷你世界则是在2015年上架的,并且当时的MC已经很火了,迷你世界当时上架当时就遭到了很多人怀疑是否抄袭,因为与MC有太多的相似点了,很多特性(bug)都被抄了过去。

在这里我诚心劝告那些迷你世界的玩家,来玩我的世界吧,真的很好玩,而且无需氪金,你如果追求正版也就只需要花100多。而且MC还有电脑版,那些看着手机自信满满的说迷你世界下载量比mc高好多的玩家,你要知道MC还有大批电脑玩家,钦点MC四大版本(原主机版,JAVA版,基岩版,手机版),总下载量是你无法想象的,还有模组,光影,大型服务器,真的要比迷你好玩太多,我们绝不会鄙视从迷你转到MC的玩家。

MC并不是针对所有的迷你玩家,而是迷你抄袭了却不承认还骂MC,甚至颠倒黑白说MC抄袭迷你世界。

敢哥觉得这不是支持不支持中国游戏的问题,而是迷你确实做错了。网易已经授权MC了,但是很多迷你玩家和官方都在逃避事实,拿那一点理由来安慰自己诬蔑MC,这样做是很可耻的。

迷你世界复制了我的世界的源代码,材质绝大部分复制我的世界方块概念材质包,树木材质复制被尘封的故事,罐子复制泰拉瑞亚和我的世界幸运方块mod,枪械抄袭flan'mod现代武器包mod联机系统复制我的世界联机盒子,生物复制我的世界早期代码。 

目前很多像我的世界的游戏有很多,比如被封印的世界,迷你屎界,奶块等。

但是拿出来看,其中奶块承认自己有抄袭,买了版权,只抄袭了一些,所以我们也没必要喷,被封印的世界我们也没管,反正没人玩。

那就剩下迷你世界了。就这款垃圾游戏,不骂他骂谁,你看一下这么多骂死迷你的p图,不骂他骂谁?

电脑有哪些病毒

● 电脑病毒历史 |电脑病毒发展历史和常识

最早由冯·诺伊曼提出一种可能性----现在称为病毒,但没引起注意。

1975 年,美国科普作家约翰·布鲁勒尔 (John Brunner) 写了一本名为《震荡波骑士》(Shock Wave Rider) 的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。

1977 年夏天,托马斯·捷·瑞安 (Thomas.J.Ryan) 的科幻小说《P-1的春天》(The Adolescence of P-1) 成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了一场灾难。

1983 年 11 月 3 日,弗雷德·科恩 (Fred Cohen) 博士研制出一种在运行过程中可以复制自身的破坏性程序,伦·艾德勒曼 (Len Adleman) 将它命名为计算机病毒(computer viruses),并在每周一次的计算机安全讨论会上正式提出,8 小时后专家们在 VAX11/750 计算机系统上运行,第一个病毒实验成功,一周后又获准进行 5 个实验的演示,从而在实验上验证了计算机病毒的存在。

1986 年初,在巴基斯坦的拉合尔 (Lahore),巴锡特 (Basit) 和阿姆杰德(Amjad) 两兄弟经营着一家 IBM-PC 机及其兼容机的小商店。他们编写了Pakistan 病毒,即Brain。在一年内流传到了世界各地。

1988 年 3 月 2 日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示“向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。

1988 年 11 月 2 日,美国六千多台计算机被病毒感染,造成 Internet不能正常运行。这是一次非常典型的计算机病毒入侵计算机网络的事件,迫使美国政府立即作出反应,国防部成立了计算机应急行动小组。这次事件中遭受攻击的包括 5 个计算机中心和 12 个地区结点,连接着政府、大学、研究所和拥有政府合同的 250,000 台计算机。这次病毒事件,计算机系统直接经济损失达 9600 万美元。这个病毒程序设计者是罗伯特·莫里斯 (Robert T.Morris),当年 23 岁,是在康乃尔 (Cornell) 大学攻读学位的研究生。

罗伯特·莫里斯设计的病毒程序利用了系统存在的弱点。由于罗伯特·莫里斯成了入侵 ARPANET 网的最大的电子入侵者,而获准参加康乃尔大学的毕业设计,并获得哈佛大学 Aiken 中心超级用户的特权。他也因此被判 3 年缓刑,罚款 1 万美元,他还被命令进行 400 小时的新区服务。

1988 年底,在我国的国家统计部门发现小球病毒。

注:在此文中,把蠕虫、我们常提的病毒定为病毒不同种类。

(,2000-11-01)

l 重温电脑病毒史

你可知道,电脑病毒的概念来自一场游戏?

电脑病毒的起源

电脑病毒的概念其实源起相当早,在第一部商用电脑出现之前好几年时,电脑的先驱者冯·诺伊曼(John Von Neumann)在他的一篇论文《复杂自动装置的理论及组识的进行》里,已经勾勒出病毒程序的蓝图。不过在当时,绝大部分的电脑专家都无法想像会有这种能自我繁殖的程序。

1975年,美国科普作家约翰·布鲁勒尔(John Brunner)写了一本名为《震荡波骑士》(Shock Wave Rider)的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。

1977年夏天,托马斯·捷·瑞安(Thomas.J.Ryan)的科幻小说《P-1的春天》(The Adolescence of P-1)成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了一场灾难。 虚拟科幻小说世界中的东西,在几年后终于逐渐开始成为电脑使用者的噩梦。

而在同一时间,美国著名的AT&T贝尔实验室中,三个年轻人在工作之余,很无聊的玩起一种游戏:彼此撰写出能够吃掉别人程序的程序来互相作战。这个叫做"磁芯大战"(core war)的游戏,进一步将电脑病毒"感染性"的概念体现出来。

1983年11月3日,一位南加州大学的学生弗雷德·科恩(Fred Cohen)在UNIX系统下,写了一个会引起系统死机的程序,但是这个程序并未引起一些教授的注意与认同。科恩为了证明其理论而将这些程序以论文发表,在当时引起了不小的震撼。科恩的程序,让电脑病毒具备破坏性的概念具体成形。

不过,这种具备感染与破坏性的程序被真正称之为"病毒",则是在两年后的一本《科学美国人》的月刊中。一位叫作杜特尼(A.K.Dewdney)的专栏作家在讨论"磁芯大战"与苹果二型电脑(别怀疑,当时流行的正是苹果二型电脑,在那个时侯,我们熟悉的PC根本还不见踪影)时,开始把这种程序称之为病毒。从此以后我们对于这种具备感染或破坏性的程序,终于有一个"病毒"的名字可以称呼了。

第一个真正的电脑病毒

到了1987年,第一个电脑病毒C-BRAIN终于诞生了(这似乎不是一件值得庆贺的事)。一般而言,业界都公认这是真正具备完整特征的电脑病毒始祖。这个病毒程序是由一对巴基斯坦兄弟:巴斯特(Basit)和阿姆捷特(Amjad)所写的,他们在当地经营一家贩卖个人电脑的商店,由于当地盗拷软件的风气非常盛行,因此他们的目的主要是为了防止他们的软件被任意盗拷。只要有人盗拷他们的软件,C-BRAIN就会发作,将盗拷者的硬盘剩余空间给吃掉。

这个病毒在当时并没有太大的杀伤力,但后来一些有心人士以C-BRAIN为蓝图,制作出一些变形的病毒。而其他新的病毒创作,也纷纷出笼,不仅有个人创作,甚至出现不少创作集团(如NuKE,Phalcon/Skism,VDV)。各类扫毒、防毒与杀毒软件以及专业公司也纷纷出现。一时间,各种病毒创作与反病毒程序,不断推陈出新,如同百家争鸣。

DOS时代的著名病毒

所谓"DOS时代的病毒",意思是说这是从DOS时代就有的老古董,诸位读者可别以为您现在已经进入Windows 95/98的年代,就不会感染DOS时期的病毒。其实由于Windows 95/98充其量不过是一套架构在DOS上的操作系统,因此即使是处在Windows 95/98之下,一不小心还是会惹火上身的!

耶路撒冷(Jerusalem)

这个古董级病毒其实有个更广为人知的别称,叫做"黑色星期五"。为什么会有这么有趣的别称?道理很简单:因为只要每逢十三号又是星期五的日子,这个病毒就会发作。而发作时将会终止所有使用者所执行的程序,症状相当凶狠。

米开朗基罗(Michelangelo)

米开朗基罗的名字,对于一些早一点的电脑使用者而言,真可说是大名鼎鼎,如雷贯耳。著名的原因除了它拥有一代艺术大师米开朗基罗的名字之外,更重要的是它的杀伤力惊人:每年到了3月6日米开朗基罗生日(这也就是它为什么叫做"米开朗基罗"的原因)时,这个病毒就会以Format硬盘来为这位大师祝寿。于是乎,你辛苦建立的所有资料都毁于一旦,永无翻身之日。

猴子(Monkey)

Monkey据说是第一个"引导型"的病毒,只要你使用被Monkey感染过的系统软盘开机,病毒就会入侵到你的电脑中,然后伺机移走硬盘的分区表,让你一开机就会出现"Invalid drive specification"的信息。比起"文件型"病毒只有执行过受感染文件才会中毒的途径而言,Monkey的确是更为难缠了。

音乐虫病毒(Music Bug)

这个发作时会大声唱歌,甚至造成资料流失、无法开机的病毒,正是台湾土产的病毒。所以,当你听到电脑自动传来一阵阵音乐声时,别以为你的电脑比别人聪明,那很有可能是中毒了。

其实这种会唱歌的病毒也不少,有另一个著名的病毒(叫什么名字倒忘了)发作时还会高唱着"两只老虎"呢!

DOS时期的病毒,种类相当繁杂,而且不断有人改写现有的病毒。到了后期甚至有人写出所谓的"双体引擎",可以把一种病毒创造出更多元化的面貌,让人防不胜防!而病毒发作的症状更是各式各样,有的会唱歌、有的会删除文件、有的会Format硬盘、有的还会在屏幕上显出各式各样的图形与音效。不过幸运的 是,这些DOS时期的古董级病毒,由于大部分的杀毒软件都可以轻易地扫除,所以杀伤力已经大不如前了。

Windows时期的来临

随着Windows 3.1在全球的风行,正式宣告了个人电脑操作环境进入Windows时代。紧接着,Windows 95/98的大为畅销,使得现在几乎所有个人电脑的操作环境都是在Windows状态下。而在Windows环境下最为知名的,大概就属"宏病毒"与"32位病毒"了。

宏病毒

随着各种Windows下套装软件的发展,许多软件开始提供所谓"宏"的功能,让使用者可以用"创造宏"的方式,将一些繁琐的过程记录成一个简单的指令来方便自己操作。然而这种方便的功能,在经过有心人士的设计之后,终于又使得"文件型"病毒进入一个新的里程碑:传统的文件型病毒只会感染后缀为exe和com的执行文件,而宏病毒则会感染Word、Excel、AmiPro、Access等软件储存的资料文件。更夸张的是,这种宏病毒是跨操作平台的。以Word的宏病毒为例,它可以感染DOS、Windows 3.1/95/98/NT、OS/2、麦金塔等等系统上的Word文件以及通用模板。

在这些宏病毒之中,最为有名的除了后面要讲的Melissa就是令人闻之色变的Taiwan NO.1B 。这个病毒的发作情形是:到了每月的十三号,只要您随便开启一份Word文件,屏幕上会出现一对话窗口,询问你一道庞杂的算数题。答错的话(这种复杂的算数大概只有超人可以很快算出来吧)就会连续开启二十个窗口,然后又出现另一道问题,如此重复下去,直到耗尽系统资源而死机为止。

虽然宏病毒有很高的传染力,但幸运的是它的破坏能力并不太强,而且解毒方式也较容易,甚至不需杀毒软件就可以自行手动解毒。

32位病毒

所谓"32位病毒",则是在Windows 95之后所产生的一种新型态文件型病毒,它虽然同样是感染exe执行文件,但是这种病毒专挑Windows的32位程序下手,其中最著名的就是去年大为流行的CIH病毒了。

CIH病毒的厉害之处,在于他可以把自己的本体拆散塞在被感染的文件中,因此受感染的文件大小不会有所变化,杀毒软件也不易察觉。而最后一个版本的CIH病毒,除了每个月26日发作,将你的硬盘Format掉之外,有时候还会破坏主板BIOS内的资料,让你根本无法开机!虽然目前大部分的杀毒软件都有最新的病毒码可以解决这只难缠的病毒,不过由于它的威力实在强大,大家还是小心为上。(CIH又可能在今年4月26发作,你不会有事吧?)

Internet的革命

有人说Internet的出现,引爆了新一波的信息革命。因为在因特网上,人与人的距离被缩短到极小的距离,而各式各样网站的建立以及搜寻引擎的运用,让每个人都很容易从网络上获得想要的信息。

Internet的盛行造就了信息的大量流通,但对于有心散播病毒、盗取他人帐号、密码的电脑黑客来说,网络不折不扣正好提供了一个绝佳的渠道。也因此,我们这些一般的使用者,虽然享受到因特网带来的方便,同时却也陷入另一个恐惧之中。

病毒散播的新捷径

由于因特网的便利,病毒的传染途径更为多元化。传统的病毒可能以磁盘或其他存储媒体的方式散布,而现在,你只要在电子邮件或ICQ中,夹带一个文件寄给朋友,就可能把病毒传染给他;甚至从网络上下载文件,都可能收到一个含有病毒的文件。

不过虽然网络使得病毒的散布更为容易,但其实这种病毒还是属于传统型的,只要不随便从一些籍籍无名的网站下载文件(因为有名的网站为了不砸了自己的招牌,提供下载的文件大都经过杀毒处理),安装杀毒软件,随时更新病毒码,下载后的文件不要急着执行,先进行查毒的步骤(因为受传统病毒感染的程序,只要不去执行就不会感染与发作),多半还是可以避免中毒的情形产生。

第二代病毒的崛起

前面所谈的各式各样的病毒,基本上都是属于传统型的病毒,也就是所谓"第一代病毒"。会有这样的称呼方式,主要是用来区分因为Internet蓬勃发展之后,最新出现的崭新病毒。这种新出现的病毒,由于本质上与传统病毒有很大的差异性,因此就有人将之称为"第二代病毒"。

第二代病毒与第一代病毒最大的差异,就是在于第二代病毒传染的途径是基于浏览器的,这种发展真是有点令人瞠目结舌!

原来,为了方便网页设计者在网页上能制造出更精彩的动画,让网页能更有空间感,几家大公司联手制订出Active X及Java的技术。而透过这些技术,甚至能够分辨你使用的软件版本,建议你应该下载哪些软件来更新版本,对于大部分的一般使用者来说,是颇为方便的工具。但若想要让这些网页的动画能够正常执行,浏览器会自动将这些Active X及Java applets的程序下载到硬盘中。在这个过程中,恶性程序的开发者也就利用同样的渠道,经由网络渗透到个人电脑之中了。这就是近来崛起的"第二代病毒",也就是所谓的"网络病毒"。

兵来将挡,水来土掩

目前常见的第二代病毒,其实破坏性都不大,例如在浏览器中不断开启窗口的"窗口炸弹",带着电子计时器发出"咚咚"声的"闹闹熊"等,只要把浏览器关闭后,对电脑并不会有任何影响。但随着科技的日新月异,也难保不会出现更新、破坏性更大的病毒。

只是,我们也不需要因为这种趋势而太过悲观,更不用因噎废食地拒绝使用电脑上网。整个电脑发展史上,病毒与杀毒软件的对抗一直不断的持续进行中,只要小心一点,还是可以愉快地畅游在因特网的世界里。

计算机分哪几个专业

# 硬件

### 硬件工程师

指在计算机领域里,需要接触到电路底层的工程师,实际上在电气领域,在电方向上分为强电和弱电,强电指高压传输,电动机等高电流作为能源动力领域,弱点就是指微电子方向的信息处理领域。计算机硬件工程师的工作范围在弱电,主要内容主要有PCB设计(印制电路板),ic(芯片)设计,FPGA工程师。往上还包括涉及针对特定硬件做系统开发维护的嵌入式工程。

#### PCB工程师、FPGA工程师、IC工程师

专业术语大家可能不太懂,就举例一下每种工程师对应的工程产品吧。

PCB工程师的工作就是设计一个高速稳健的交通网络,把电路板上各个功能不同的模块连接起来。他们的工作环境如下所示。

FPGA全称叫现场可编程逻辑阵列,就是理解为一个可以编程的硬件。传统意义上的集成电路是定制化的,针对特定的需求设计特定的电路板。而fpga可以通过熔断机制来动态修改电路的结构,达到动态编程的效果,简单点说,针对一块FPGA,你可以把他烧制成视频编码器,也可以烧制成无线wifi通信模块。虽然这些算法都可以通过软件实现,但是硬件实现的效果算法成本更低。开发语言常用的有VHDL(硬件描述语言)。

IC工程师就是设计一个高效运算的大脑,涉及到流水线机制,超频,最重要的是解决纳米级别下电流扰动问题,最大的制约因素也是材料工艺问题。

三种岗位其实在现代学术分支类还是属于EE下的子类,事实上从事这个方向的人也大部分是学习电子电路工程的同学。这个专业的特点就是强者通吃,全球唯二的两家芯片公司intel、AMD。而且他们的核心竞争力并不是芯片设计能力上,而是在制作工艺上。现在在移动终端统一江湖的还有英国Acorn有限公司设计的ARM芯片,它只是提供一个解决方案,设计图纸,具体的制造还得是华为,三星自己开场设立。但是同时又有很多小众领域,比方说无人机,安全门等等你又需要做专门的PCB设计,所以硬件工程师也是有市场需求基础的,但是也不多。从技能需求来看,要求数学知识扎实,逻辑严密,电子电路知识更多,类似工具反而并不是显得那么重要。从未来的发展前景来看,随着智能硬件物联网的推广,会有一波大红利。

岗位需求:IC << FPGA = PCB

薪资 :IC >> FPGA = PCB

#### 嵌入式工程师

**系统级别嵌入式**

主要是针对特定硬件移植一套操作系统,类似于linux,VxWorks等,甚至于自己开发一个只能满足需求的未知系统,你需要读管脚信息,读时序。但是大部分还是使用成熟的系统移植,自己写系统一来太慢,二来肯定很多坑。相对来说在这个层面上的人都是大牛。或者做一些驱动开发,比如说,每年让无数游戏宅剁手的最新NVIDIA显卡,都需要这个级别的工程师来做相应的显卡驱动。

薪资水平绝对高,起薪百万级别,入门门槛也绝对高,业内最强不是在研究所,而是在公司。

**应用级别嵌入式**

在基于已经能跑的机器上做开发,比如说,操作系统已经提供了最基本的文件管理,内存管理,CPU管理的情况下。你在此基础上做特定应用的开发。普遍打交道的语言工具是C。本人实验室其实是这个方向的,有过军工和国企的一些项目,从这层往上,到架构师之前,本人至少都接触过一些。能说点自己的感悟,而不是查资料了。

做嵌入式应用开发最蛋疼的不是开发而是调试,在这一层做开发会有各种奇葩问题,比方说你昨天还跑得好好的,今天可能就崩了,可能是硬件问题,虚焊?电容击穿?电路板电流扰动?也可能是软件问题,野指针(很少有系统做了虚拟内存,你所有操作都是在实际的内存空间上操作的),内存溢出。

薪水来看,起薪比较低,今年华为给的算是不错了,能到16K,但是随着你对业务的熟悉,工资是没有上限的,最终达到的升级状态就是系统级别嵌入式工程师。

## 软件

### 桌面程序工程师

传统的桌面应用软件类似于office,浏览器啊在PC端上运行的软件。主流的开发框架有Qt,MFC,.NET。现在还比较强势的一些桌面应用领域就是微软的office和桌面游戏公司。以及基于微软的C#的开发应用,基于QT的C++开发应用。其他的不是特别了解,但是给我的感觉就是这个市场不怎么活跃,招人很少,身边也没有认识的人走这条路线。经知友私信补充,这个行业的薪资并没有随着互联网浪潮而有大幅度增长,该知友在.NET平台下使用C#开发,有5年的从业经验,15年的薪资水平在11k左右,后来转行去了android,当然这可能只是个例,有很多厉害的人我们可能不知道,先这位知友知友了。

### 网络应用工程师

从google发迹以来,基本上所有新兴的巨无霸公司,facebook,bat,amazon都是依赖于互联网的发展,依赖于这群互联网应用工程师。同时他们也就是在网上自称为码农的这个群体。他们这个群体应该能占到计算机领域70%的研发人员。

#### 前端开发

广义的前端就是指呈现在用户视觉的领域,直接可以让用户感受到的开发,往下会细分为web,andoroid,ios。

#### web前端(h5前端)

web前端指在浏览器(包括手机和pc浏览器,或者是webview控件,甚至于搭载JS引擎的任意环境)上运行的一系列应用。

传统意义上的前端主要是指网页,html,css,js那一套了,或者再加上html5,css3。但是最近几年前端发了很多变化。

这个方向是这几年的大热门,随着机器性能的提高,v8引擎的普及,虽然js和c,java的运算效率还是差上很远,但是目前来看对于呈现展示内容已经基本够用,所以,近几年出现了各种叛逃,比如说cocos2d-js来做游戏,react-native来做客户端啊。同时,随着大量人才的涌入,特别是这两年,大量的前端框架,解决方案让你感觉跟不上时代,讲真,两年前还是JQuery的天下,现在你不知道Vue,Angular都不好意思打招呼。同时由于机器性能的提高和V8引擎的强劲有力,脚本语言的另一个优点就是无须编译运行,导致了它可以实现一个其他语言无法做到的事情---动态更新,可以在app不发版的情况下动态的大幅度更改它,进一步的增加了JS的需求量。

薪资比起前两年来看涨了不少,而且市场需求量也很大,基本上任何应用都没有完全脱离web的框架内。门槛也不算高,但是往下深入一样会有很多东西要学。

#### android和iOS

android是一个基于linux内核开发的开放源代码移动操作系统,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发,主要设计用于触屏移动设备如智能手机和平板电脑。iOS(原名 iPhone OS,自 iOS 4 后改名为 iOS)是苹果公司为移动设备所开发的封闭源代码操作系统,所支持的设备包括 iPhone、iPod touch 和 iPad。

目前看来,智能机市场上,android的市场份额在四分之三,ios占了大概五分之一,剩下的都是什么塞班,winphone我们应该不用考虑,你应该也不会想做这个的。虽然android和ios市场占有率相差悬殊,但是android工程师和ios工程师基本上能维持相同的人数,所以你如果想从事移动端开发,就业市场来看的话,没有很大的区别。

技术层面来看两个其实比较像,主要的区别其实是生态圈的比较。

相应来说,可能android的入门成本门槛比较低,java相对于Object-C,swift来说还是比较流行的,同时,相对于iOS(mac电脑+苹果手机+一年100刀的开发者账号)的起始1.5W的投入来看,可能android的竞争会更激烈一些。

由于android的开放性,基于开源的linux开发,所以业内会有很多公司针对于android做所谓的“深度定制”,“适合国人的智能手机”等,那就导致了android的各式各样,不同的手机厂商在某些细节方面又有不同的理解,倒是android开发最大的一个问题就是适配。同时由于android的权限开放性,他会有很多可以hack的地方,针对android的木马病毒(360管家)很多,你要考虑到的东西会很多,不过目前来看,android的每次发版,安全性也越来越好,权限管理也越来越规范,以后会越来越好。而iOS的封闭特性,相对来说被发现的漏洞少(并不是不多,我个人觉得绝对比android多),但是每次爆出都是大新闻,它的开发相对来说规范很多,有很多成熟的解决方案,他的主要问题其实是iOS审核这块,大部分的公司都有过app被appstore毙过的经历。

另外,最近苹果公司也在推swift,如果你要做iOS,由于各种历史问题,OC并不能完全弃掉,但是swift也会成为你求职的考点或者亮点,通过同事的反应来看,swift比OC更爽,它更愿意做swift。

#### 后端开发

后端开发指的是,在为前端提供数据支撑的一个大的总类,包括数据库,业务逻辑处理,数据处理等。主要的开发语言分两个方向编译型语言,java,c/c++等,他的特点就是运行效率高,相同机器配置的情况下能支撑更大的访问量,适用于超高并发度,比方说淘宝后台是java,网易游戏腾讯游戏是c++。另一种就是以php、python等解释性语言,他们的特点就是开发效率高,无需编译,写完就能运行,主要针对一些运算量不大的中小型网站,比如说你的个人博客,管理后台。

##### 运维工程师

特意把它从后端中拿出来,主要是他的开发任务比较少,但是同样很重要,当数量量达到一定程度,数据库服务器都有上千台的时候,就需要专业的人士做做数据维护的工作了,它的工作难度一样很多,容灾备份,热替换。而且目前的趋势都是服务化,组件化,虚拟化,一样有各种难题有待于你去解决。但是从市场需求来看,只有大厂才会招专业的运维工程师,创业公司100台服务器以下的小公司一般都是托管到各种云,然后由后台工程师兼任。

##### 通俗意义上的后台开发

也就是那些经常说自己是业务狗的屌丝码农,觉得不做架构设计比较low,他们主要的工作就是实现pm的工作需求,比方说双十一来了,pm说,这个要添加一个抢红包的功能,然后后台业务狗就忙起来,要解决高并发下的死锁啊,重复请求啊,带宽啊各种功能,当然也需要前端,但是前端并不需要考虑复杂的并发性问题。而如果这些业务狗在处理高并发问题上有所建树,那么他们就能一步步升级为架构师。那个时候就可以把屌丝码农的屌丝去掉了。

### 测试工程师

一个产品或者一个新的功能需要上线,必须要经过完备的测试,测试工程师目前其实有两种,一种是纯测试,另一种是他的升级版测试开发工程师,它能在测试的过程的顺手把小bug改了而不需要返工。好的测试开发工程师工资也可以比做开发的工资高。

而且你们也不要小看测试这个东西,不要以为你只会点点鼠标看看对不对这么简单,合格的测试工程师需要熟悉各种测试工具,能自己写测试脚本,能找到bug,而且还能知道为什么会出现bug。这个工种一般也都是大公司才会配置的,对于小公司来说,一般就是开发人员自己也是自己的测试人员。

### 安全工程师

同样一个产品或者一个新的功能需要上线,不仅需要要经过完备的功能测试,还有一向就是安全性测试。而由于安全性测试可能需要的知识比较多,所以又会有一个单独的工种来这个。

或者你们也许更喜欢叫他们黑客(坏孩子),白帽子(好孩子)。他们游走在法律的边缘,或做着侠士的行为而不为人所知,或调皮捣蛋想整一个大新闻,更有甚者违法牟利。但是必须指出,他们确实互联网圈子里最有创新精神,反抗精神的人,当然我不是说的那些连脚本都不会写的工具小子了。我指的是阿桑奇,中本聪(主要是技术吊,思维吊,但是没做啥好事)。他们是IT圈的安拉,耶稣基督,精神偶像。必须指出,走安全工程师这条路必须得先走一条边缘线,要想有最好的防守你得先知道别人是怎么进攻的。薪水来看并不是特别有竞争力(不包括黑产)。从业人员这几年很多看到的情况是好孩子越来越多,但是中国的大环境不是特别好(乌云都被关了)。

### 架构师

从这里往后,已经算是程序员界的高富帅了,可以称的上是半个科学家。架构师的工作已经基本脱离代码了,他的主要工具从VIM,EClipse变成了word,ppt。他主要觉得技术选型,针对大容量高并发的问题制定解决方案。基本上他们都是由后台工程师升级打怪升上来的,好像听闻业界也有前端工程师升级为了CTO做架构的,但是毕竟还是少数,node的效率还是差了很多。

### 算法工程师

这类人,基本都是大学参加ACM竞赛拿过奖,或者本身思维逻辑严密性高,数学基础扎实,算法牛逼。如果你是一个数学系或者物理系的优秀毕业生想转IT,这个可以作为你的主要方向。这个算是建筑系里的学院派,从学校毕业之后就直接达到了这个等级,起薪很高。

#### 数据挖掘

它的作用就是从一堆数据中挖去你你想要的信息。打个比方,给你2008年到2016年所有的房屋成交量,房屋成交价格,土地成交量,人口增长,银行贷款利率变化等等很多信息,让你预测明年房价变化情况。他们就是干这个的,这个工作分三步走,爬数据,建模,写算法验证。

爬虫工程师,就是从各种国家统计局网站,链家网站爬去数据,存储为结构化的数据。

数学建模,建立各种数据之间的影响关系,影响因子。

写算法验证,大部分数据挖掘工程师好像都是用python,工具比较多,语法简单。

难点其实不是在写代码部分,而在于建模,如果设计一个有效的模型来量化这些数据间的联系。其中的影响因子权值就是他们的生命价值所在,所有他们会光荣的把自己称呼为“调参侠”,顾名思义,就是天天调整参数,让模型运算结果来匹配实际情况。

薪水很高,一般统计分析局或者大公司才会招人,而且还可以独立创业,像是知乎很有名的团支书,拿数据打脸的那种牛逼轰轰的人物。

另外再而外介绍一下量化交易,量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。这个是计算机屌丝和金融高富帅融合的比较成功的一个新的工种,通过一个优秀的交易员建立一个理论交易模型,再有程序员实现代码,这个算是数据挖掘领域比较直接的变现交易,著名的知乎英国五毛,Lightwing(李轶睿)就是从事这个方向的,他们的薪水是按照日来的,关键也在于模型建立,而且都是通过技术面分析,确保收益,比如说从10块钱涨到了10.1块,即便它很可能涨到11块,他们也可能就会卖掉(算法策略),然后通过超高频率的买卖来确保收益,比如说虽然每次买卖只能赚一毛钱,但是他一天内买卖了几十手,而且大部分都赚了,总的收益可能也会有1块,所以量化交易也有叫高频交易的.

#### 人工智能

我好久也没看过这方面的书了,可能理解有误。大家经常看到的siri,或者聊天机器人之类的都是属于这种东西。他的本质还是一个有限自动状态机,在一个状态下在很多因素的影响下走向下一个状态,理论上你把你在三维世界所有的输入都考虑进去,而且都分别定义了相应的输出,他是可以做到人工智能的。但是这样写出来程序会非常大,电脑跑不动。我个人的理解,基于计算机简单的01唯一向性,真正意义上的人工智能还是蛮难实现的。比如说之前非常火的李世石大战阿法狗,在这种特定的应用下,输入很简单,围棋上的落子16*16,状态也很简单,2的16*16次方,在这个复杂度下,肯定也是没办法枚举的,他们会有降维算法各种算法来聚类他们的状态。

#### 深度学习

我们上面所说的数据挖掘会有一个调整参数的过程,而在深度学习领域,他会添加一个正向反馈,让你的参数由机器自动调整,让他计算的结果去自动匹配实际的结果。这个就是所谓的机器学习,就是把人为调参的过程让机器自动完成。

此外,人工智能,深度学习,数据挖掘并不是分开来看的,他们会存在一定程度上的重合。他们其实真正的难点实在各种降维算法,概率论,退火等数学领域。所有说他们算是半个科学家也就是这样原因了。

#### 性能效率支持

这个才是普遍意义上的互联网的算法工程师做的事情。比方说,我要求一个数的平方根,现在我们编程很简单,只需要sqrt()就可以了,但是你如果看过这个的源码,你就会惊呼,感兴趣自己去搜,他并不是用牛顿莱布尼兹公式做的,它比牛顿牛逼多了,能提高100倍的效率。这只是一个很简单的例子,在实际应用中,当遇到大运算量的时候,就是他们该出场了。这部分功能其实大部分也是由后台工程是自己担任的,但是不排除大公司类似google,fb会特意招ACM来做算法支持,起薪很高。

在这里我特意提一下效率工程的头面担当,游戏引擎工程师(目前国内主要使用开源的unity3d)。主要做3D渲染,需要在计算机图形学方面有较高建树。类比于工业皇冠上的航天发动机一个级别。游戏开发只是一个特定方向的开发,,一样有客户端,web端,pc端,后台,数据库运维等。并没有需要单独拿出来一个讲。不过游戏开发工程师一般来说都是比较累的,但是同样薪水也是高,阴阳师团队今年估计年终奖拿100个月我都不稀奇。

### 标准化组织协会会员

这个也算是吧。比如说,美国电子工程协会,3GPP协会。他们主要是制作各种标准化协议。这个级别太高了,在特定领域,全球估计也就几十个人能做的了主吧。工资多少,人家应该都不在意这个东西。而且大部分还都是国家拨款或者公益组织拨款,反正不是盈利性质的。比如说,TCP/IP协议制定,5G协议制定。我也不知道他们从拿招人,可能是大学教授或者行业领袖吧。

### 量子计算机工程师

这个超级吊,这个是先驱,未来的计算机,至于他们干嘛的,怎么做,别问我,我不知道!

计算机分哪几个专业

# 硬件

### 硬件工程师

指在计算机领域里,需要接触到电路底层的工程师,实际上在电气领域,在电方向上分为强电和弱电,强电指高压传输,电动机等高电流作为能源动力领域,弱点就是指微电子方向的信息处理领域。计算机硬件工程师的工作范围在弱电,主要内容主要有PCB设计(印制电路板),ic(芯片)设计,FPGA工程师。往上还包括涉及针对特定硬件做系统开发维护的嵌入式工程。

#### PCB工程师、FPGA工程师、IC工程师

专业术语大家可能不太懂,就举例一下每种工程师对应的工程产品吧。

PCB工程师的工作就是设计一个高速稳健的交通网络,把电路板上各个功能不同的模块连接起来。他们的工作环境如下所示。

FPGA全称叫现场可编程逻辑阵列,就是理解为一个可以编程的硬件。传统意义上的集成电路是定制化的,针对特定的需求设计特定的电路板。而fpga可以通过熔断机制来动态修改电路的结构,达到动态编程的效果,简单点说,针对一块FPGA,你可以把他烧制成视频编码器,也可以烧制成无线wifi通信模块。虽然这些算法都可以通过软件实现,但是硬件实现的效果算法成本更低。开发语言常用的有VHDL(硬件描述语言)。

IC工程师就是设计一个高效运算的大脑,涉及到流水线机制,超频,最重要的是解决纳米级别下电流扰动问题,最大的制约因素也是材料工艺问题。

三种岗位其实在现代学术分支类还是属于EE下的子类,事实上从事这个方向的人也大部分是学习电子电路工程的同学。这个专业的特点就是强者通吃,全球唯二的两家芯片公司intel、AMD。而且他们的核心竞争力并不是芯片设计能力上,而是在制作工艺上。现在在移动终端统一江湖的还有英国Acorn有限公司设计的ARM芯片,它只是提供一个解决方案,设计图纸,具体的制造还得是华为,三星自己开场设立。但是同时又有很多小众领域,比方说无人机,安全门等等你又需要做专门的PCB设计,所以硬件工程师也是有市场需求基础的,但是也不多。从技能需求来看,要求数学知识扎实,逻辑严密,电子电路知识更多,类似工具反而并不是显得那么重要。从未来的发展前景来看,随着智能硬件物联网的推广,会有一波大红利。

岗位需求:IC << FPGA = PCB

薪资 :IC >> FPGA = PCB

#### 嵌入式工程师

**系统级别嵌入式**

主要是针对特定硬件移植一套操作系统,类似于linux,VxWorks等,甚至于自己开发一个只能满足需求的未知系统,你需要读管脚信息,读时序。但是大部分还是使用成熟的系统移植,自己写系统一来太慢,二来肯定很多坑。相对来说在这个层面上的人都是大牛。或者做一些驱动开发,比如说,每年让无数游戏宅剁手的最新NVIDIA显卡,都需要这个级别的工程师来做相应的显卡驱动。

薪资水平绝对高,起薪百万级别,入门门槛也绝对高,业内最强不是在研究所,而是在公司。

**应用级别嵌入式**

在基于已经能跑的机器上做开发,比如说,操作系统已经提供了最基本的文件管理,内存管理,CPU管理的情况下。你在此基础上做特定应用的开发。普遍打交道的语言工具是C。本人实验室其实是这个方向的,有过军工和国企的一些项目,从这层往上,到架构师之前,本人至少都接触过一些。能说点自己的感悟,而不是查资料了。

做嵌入式应用开发最蛋疼的不是开发而是调试,在这一层做开发会有各种奇葩问题,比方说你昨天还跑得好好的,今天可能就崩了,可能是硬件问题,虚焊?电容击穿?电路板电流扰动?也可能是软件问题,野指针(很少有系统做了虚拟内存,你所有操作都是在实际的内存空间上操作的),内存溢出。

薪水来看,起薪比较低,今年华为给的算是不错了,能到16K,但是随着你对业务的熟悉,工资是没有上限的,最终达到的升级状态就是系统级别嵌入式工程师。

## 软件

### 桌面程序工程师

传统的桌面应用软件类似于office,浏览器啊在PC端上运行的软件。主流的开发框架有Qt,MFC,.NET。现在还比较强势的一些桌面应用领域就是微软的office和桌面游戏公司。以及基于微软的C#的开发应用,基于QT的C++开发应用。其他的不是特别了解,但是给我的感觉就是这个市场不怎么活跃,招人很少,身边也没有认识的人走这条路线。经知友私信补充,这个行业的薪资并没有随着互联网浪潮而有大幅度增长,该知友在.NET平台下使用C#开发,有5年的从业经验,15年的薪资水平在11k左右,后来转行去了android,当然这可能只是个例,有很多厉害的人我们可能不知道,先这位知友知友了。

### 网络应用工程师

从google发迹以来,基本上所有新兴的巨无霸公司,facebook,bat,amazon都是依赖于互联网的发展,依赖于这群互联网应用工程师。同时他们也就是在网上自称为码农的这个群体。他们这个群体应该能占到计算机领域70%的研发人员。

#### 前端开发

广义的前端就是指呈现在用户视觉的领域,直接可以让用户感受到的开发,往下会细分为web,andoroid,ios。

#### web前端(h5前端)

web前端指在浏览器(包括手机和pc浏览器,或者是webview控件,甚至于搭载JS引擎的任意环境)上运行的一系列应用。

传统意义上的前端主要是指网页,html,css,js那一套了,或者再加上html5,css3。但是最近几年前端发了很多变化。

这个方向是这几年的大热门,随着机器性能的提高,v8引擎的普及,虽然js和c,java的运算效率还是差上很远,但是目前来看对于呈现展示内容已经基本够用,所以,近几年出现了各种叛逃,比如说cocos2d-js来做游戏,react-native来做客户端啊。同时,随着大量人才的涌入,特别是这两年,大量的前端框架,解决方案让你感觉跟不上时代,讲真,两年前还是JQuery的天下,现在你不知道Vue,Angular都不好意思打招呼。同时由于机器性能的提高和V8引擎的强劲有力,脚本语言的另一个优点就是无须编译运行,导致了它可以实现一个其他语言无法做到的事情---动态更新,可以在app不发版的情况下动态的大幅度更改它,进一步的增加了JS的需求量。

薪资比起前两年来看涨了不少,而且市场需求量也很大,基本上任何应用都没有完全脱离web的框架内。门槛也不算高,但是往下深入一样会有很多东西要学。

#### android和iOS

android是一个基于linux内核开发的开放源代码移动操作系统,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发,主要设计用于触屏移动设备如智能手机和平板电脑。iOS(原名 iPhone OS,自 iOS 4 后改名为 iOS)是苹果公司为移动设备所开发的封闭源代码操作系统,所支持的设备包括 iPhone、iPod touch 和 iPad。

目前看来,智能机市场上,android的市场份额在四分之三,ios占了大概五分之一,剩下的都是什么塞班,winphone我们应该不用考虑,你应该也不会想做这个的。虽然android和ios市场占有率相差悬殊,但是android工程师和ios工程师基本上能维持相同的人数,所以你如果想从事移动端开发,就业市场来看的话,没有很大的区别。

技术层面来看两个其实比较像,主要的区别其实是生态圈的比较。

相应来说,可能android的入门成本门槛比较低,java相对于Object-C,swift来说还是比较流行的,同时,相对于iOS(mac电脑+苹果手机+一年100刀的开发者账号)的起始1.5W的投入来看,可能android的竞争会更激烈一些。

由于android的开放性,基于开源的linux开发,所以业内会有很多公司针对于android做所谓的“深度定制”,“适合国人的智能手机”等,那就导致了android的各式各样,不同的手机厂商在某些细节方面又有不同的理解,倒是android开发最大的一个问题就是适配。同时由于android的权限开放性,他会有很多可以hack的地方,针对android的木马病毒(360管家)很多,你要考虑到的东西会很多,不过目前来看,android的每次发版,安全性也越来越好,权限管理也越来越规范,以后会越来越好。而iOS的封闭特性,相对来说被发现的漏洞少(并不是不多,我个人觉得绝对比android多),但是每次爆出都是大新闻,它的开发相对来说规范很多,有很多成熟的解决方案,他的主要问题其实是iOS审核这块,大部分的公司都有过app被appstore毙过的经历。

另外,最近苹果公司也在推swift,如果你要做iOS,由于各种历史问题,OC并不能完全弃掉,但是swift也会成为你求职的考点或者亮点,通过同事的反应来看,swift比OC更爽,它更愿意做swift。

#### 后端开发

后端开发指的是,在为前端提供数据支撑的一个大的总类,包括数据库,业务逻辑处理,数据处理等。主要的开发语言分两个方向编译型语言,java,c/c++等,他的特点就是运行效率高,相同机器配置的情况下能支撑更大的访问量,适用于超高并发度,比方说淘宝后台是java,网易游戏腾讯游戏是c++。另一种就是以php、python等解释性语言,他们的特点就是开发效率高,无需编译,写完就能运行,主要针对一些运算量不大的中小型网站,比如说你的个人博客,管理后台。

##### 运维工程师

特意把它从后端中拿出来,主要是他的开发任务比较少,但是同样很重要,当数量量达到一定程度,数据库服务器都有上千台的时候,就需要专业的人士做做数据维护的工作了,它的工作难度一样很多,容灾备份,热替换。而且目前的趋势都是服务化,组件化,虚拟化,一样有各种难题有待于你去解决。但是从市场需求来看,只有大厂才会招专业的运维工程师,创业公司100台服务器以下的小公司一般都是托管到各种云,然后由后台工程师兼任。

##### 通俗意义上的后台开发

也就是那些经常说自己是业务狗的屌丝码农,觉得不做架构设计比较low,他们主要的工作就是实现pm的工作需求,比方说双十一来了,pm说,这个要添加一个抢红包的功能,然后后台业务狗就忙起来,要解决高并发下的死锁啊,重复请求啊,带宽啊各种功能,当然也需要前端,但是前端并不需要考虑复杂的并发性问题。而如果这些业务狗在处理高并发问题上有所建树,那么他们就能一步步升级为架构师。那个时候就可以把屌丝码农的屌丝去掉了。

### 测试工程师

一个产品或者一个新的功能需要上线,必须要经过完备的测试,测试工程师目前其实有两种,一种是纯测试,另一种是他的升级版测试开发工程师,它能在测试的过程的顺手把小bug改了而不需要返工。好的测试开发工程师工资也可以比做开发的工资高。

而且你们也不要小看测试这个东西,不要以为你只会点点鼠标看看对不对这么简单,合格的测试工程师需要熟悉各种测试工具,能自己写测试脚本,能找到bug,而且还能知道为什么会出现bug。这个工种一般也都是大公司才会配置的,对于小公司来说,一般就是开发人员自己也是自己的测试人员。

### 安全工程师

同样一个产品或者一个新的功能需要上线,不仅需要要经过完备的功能测试,还有一向就是安全性测试。而由于安全性测试可能需要的知识比较多,所以又会有一个单独的工种来这个。

或者你们也许更喜欢叫他们黑客(坏孩子),白帽子(好孩子)。他们游走在法律的边缘,或做着侠士的行为而不为人所知,或调皮捣蛋想整一个大新闻,更有甚者违法牟利。但是必须指出,他们确实互联网圈子里最有创新精神,反抗精神的人,当然我不是说的那些连脚本都不会写的工具小子了。我指的是阿桑奇,中本聪(主要是技术吊,思维吊,但是没做啥好事)。他们是IT圈的安拉,耶稣基督,精神偶像。必须指出,走安全工程师这条路必须得先走一条边缘线,要想有最好的防守你得先知道别人是怎么进攻的。薪水来看并不是特别有竞争力(不包括黑产)。从业人员这几年很多看到的情况是好孩子越来越多,但是中国的大环境不是特别好(乌云都被关了)。

### 架构师

从这里往后,已经算是程序员界的高富帅了,可以称的上是半个科学家。架构师的工作已经基本脱离代码了,他的主要工具从VIM,EClipse变成了word,ppt。他主要觉得技术选型,针对大容量高并发的问题制定解决方案。基本上他们都是由后台工程师升级打怪升上来的,好像听闻业界也有前端工程师升级为了CTO做架构的,但是毕竟还是少数,node的效率还是差了很多。

### 算法工程师

这类人,基本都是大学参加ACM竞赛拿过奖,或者本身思维逻辑严密性高,数学基础扎实,算法牛逼。如果你是一个数学系或者物理系的优秀毕业生想转IT,这个可以作为你的主要方向。这个算是建筑系里的学院派,从学校毕业之后就直接达到了这个等级,起薪很高。

#### 数据挖掘

它的作用就是从一堆数据中挖去你你想要的信息。打个比方,给你2008年到2016年所有的房屋成交量,房屋成交价格,土地成交量,人口增长,银行贷款利率变化等等很多信息,让你预测明年房价变化情况。他们就是干这个的,这个工作分三步走,爬数据,建模,写算法验证。

爬虫工程师,就是从各种国家统计局网站,链家网站爬去数据,存储为结构化的数据。

数学建模,建立各种数据之间的影响关系,影响因子。

写算法验证,大部分数据挖掘工程师好像都是用python,工具比较多,语法简单。

难点其实不是在写代码部分,而在于建模,如果设计一个有效的模型来量化这些数据间的联系。其中的影响因子权值就是他们的生命价值所在,所有他们会光荣的把自己称呼为“调参侠”,顾名思义,就是天天调整参数,让模型运算结果来匹配实际情况。

薪水很高,一般统计分析局或者大公司才会招人,而且还可以独立创业,像是知乎很有名的团支书,拿数据打脸的那种牛逼轰轰的人物。

另外再而外介绍一下量化交易,量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。这个是计算机屌丝和金融高富帅融合的比较成功的一个新的工种,通过一个优秀的交易员建立一个理论交易模型,再有程序员实现代码,这个算是数据挖掘领域比较直接的变现交易,著名的知乎英国五毛,Lightwing(李轶睿)就是从事这个方向的,他们的薪水是按照日来的,关键也在于模型建立,而且都是通过技术面分析,确保收益,比如说从10块钱涨到了10.1块,即便它很可能涨到11块,他们也可能就会卖掉(算法策略),然后通过超高频率的买卖来确保收益,比如说虽然每次买卖只能赚一毛钱,但是他一天内买卖了几十手,而且大部分都赚了,总的收益可能也会有1块,所以量化交易也有叫高频交易的.

#### 人工智能

我好久也没看过这方面的书了,可能理解有误。大家经常看到的siri,或者聊天机器人之类的都是属于这种东西。他的本质还是一个有限自动状态机,在一个状态下在很多因素的影响下走向下一个状态,理论上你把你在三维世界所有的输入都考虑进去,而且都分别定义了相应的输出,他是可以做到人工智能的。但是这样写出来程序会非常大,电脑跑不动。我个人的理解,基于计算机简单的01唯一向性,真正意义上的人工智能还是蛮难实现的。比如说之前非常火的李世石大战阿法狗,在这种特定的应用下,输入很简单,围棋上的落子16*16,状态也很简单,2的16*16次方,在这个复杂度下,肯定也是没办法枚举的,他们会有降维算法各种算法来聚类他们的状态。

#### 深度学习

我们上面所说的数据挖掘会有一个调整参数的过程,而在深度学习领域,他会添加一个正向反馈,让你的参数由机器自动调整,让他计算的结果去自动匹配实际的结果。这个就是所谓的机器学习,就是把人为调参的过程让机器自动完成。

此外,人工智能,深度学习,数据挖掘并不是分开来看的,他们会存在一定程度上的重合。他们其实真正的难点实在各种降维算法,概率论,退火等数学领域。所有说他们算是半个科学家也就是这样原因了。

#### 性能效率支持

这个才是普遍意义上的互联网的算法工程师做的事情。比方说,我要求一个数的平方根,现在我们编程很简单,只需要sqrt()就可以了,但是你如果看过这个的源码,你就会惊呼,感兴趣自己去搜,他并不是用牛顿莱布尼兹公式做的,它比牛顿牛逼多了,能提高100倍的效率。这只是一个很简单的例子,在实际应用中,当遇到大运算量的时候,就是他们该出场了。这部分功能其实大部分也是由后台工程是自己担任的,但是不排除大公司类似google,fb会特意招ACM来做算法支持,起薪很高。

在这里我特意提一下效率工程的头面担当,游戏引擎工程师(目前国内主要使用开源的unity3d)。主要做3D渲染,需要在计算机图形学方面有较高建树。类比于工业皇冠上的航天发动机一个级别。游戏开发只是一个特定方向的开发,,一样有客户端,web端,pc端,后台,数据库运维等。并没有需要单独拿出来一个讲。不过游戏开发工程师一般来说都是比较累的,但是同样薪水也是高,阴阳师团队今年估计年终奖拿100个月我都不稀奇。

### 标准化组织协会会员

这个也算是吧。比如说,美国电子工程协会,3GPP协会。他们主要是制作各种标准化协议。这个级别太高了,在特定领域,全球估计也就几十个人能做的了主吧。工资多少,人家应该都不在意这个东西。而且大部分还都是国家拨款或者公益组织拨款,反正不是盈利性质的。比如说,TCP/IP协议制定,5G协议制定。我也不知道他们从拿招人,可能是大学教授或者行业领袖吧。

### 量子计算机工程师

这个超级吊,这个是先驱,未来的计算机,至于他们干嘛的,怎么做,别问我,我不知道!

电脑有哪些病毒

● 电脑病毒历史 |电脑病毒发展历史和常识

最早由冯·诺伊曼提出一种可能性----现在称为病毒,但没引起注意。

1975 年,美国科普作家约翰·布鲁勒尔 (John Brunner) 写了一本名为《震荡波骑士》(Shock Wave Rider) 的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。

1977 年夏天,托马斯·捷·瑞安 (Thomas.J.Ryan) 的科幻小说《P-1的春天》(The Adolescence of P-1) 成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了一场灾难。

1983 年 11 月 3 日,弗雷德·科恩 (Fred Cohen) 博士研制出一种在运行过程中可以复制自身的破坏性程序,伦·艾德勒曼 (Len Adleman) 将它命名为计算机病毒(computer viruses),并在每周一次的计算机安全讨论会上正式提出,8 小时后专家们在 VAX11/750 计算机系统上运行,第一个病毒实验成功,一周后又获准进行 5 个实验的演示,从而在实验上验证了计算机病毒的存在。

1986 年初,在巴基斯坦的拉合尔 (Lahore),巴锡特 (Basit) 和阿姆杰德(Amjad) 两兄弟经营着一家 IBM-PC 机及其兼容机的小商店。他们编写了Pakistan 病毒,即Brain。在一年内流传到了世界各地。

1988 年 3 月 2 日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示“向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。

1988 年 11 月 2 日,美国六千多台计算机被病毒感染,造成 Internet不能正常运行。这是一次非常典型的计算机病毒入侵计算机网络的事件,迫使美国政府立即作出反应,国防部成立了计算机应急行动小组。这次事件中遭受攻击的包括 5 个计算机中心和 12 个地区结点,连接着政府、大学、研究所和拥有政府合同的 250,000 台计算机。这次病毒事件,计算机系统直接经济损失达 9600 万美元。这个病毒程序设计者是罗伯特·莫里斯 (Robert T.Morris),当年 23 岁,是在康乃尔 (Cornell) 大学攻读学位的研究生。

罗伯特·莫里斯设计的病毒程序利用了系统存在的弱点。由于罗伯特·莫里斯成了入侵 ARPANET 网的最大的电子入侵者,而获准参加康乃尔大学的毕业设计,并获得哈佛大学 Aiken 中心超级用户的特权。他也因此被判 3 年缓刑,罚款 1 万美元,他还被命令进行 400 小时的新区服务。

1988 年底,在我国的国家统计部门发现小球病毒。

注:在此文中,把蠕虫、我们常提的病毒定为病毒不同种类。

(,2000-11-01)

l 重温电脑病毒史

你可知道,电脑病毒的概念来自一场游戏?

电脑病毒的起源

电脑病毒的概念其实源起相当早,在第一部商用电脑出现之前好几年时,电脑的先驱者冯·诺伊曼(John Von Neumann)在他的一篇论文《复杂自动装置的理论及组识的进行》里,已经勾勒出病毒程序的蓝图。不过在当时,绝大部分的电脑专家都无法想像会有这种能自我繁殖的程序。

1975年,美国科普作家约翰·布鲁勒尔(John Brunner)写了一本名为《震荡波骑士》(Shock Wave Rider)的书,该书第一次描写了在信息社会中,计算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。

1977年夏天,托马斯·捷·瑞安(Thomas.J.Ryan)的科幻小说《P-1的春天》(The Adolescence of P-1)成为美国的畅销书,作者在这本书中描写了一种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了一场灾难。 虚拟科幻小说世界中的东西,在几年后终于逐渐开始成为电脑使用者的噩梦。

而在同一时间,美国著名的AT&T贝尔实验室中,三个年轻人在工作之余,很无聊的玩起一种游戏:彼此撰写出能够吃掉别人程序的程序来互相作战。这个叫做"磁芯大战"(core war)的游戏,进一步将电脑病毒"感染性"的概念体现出来。

1983年11月3日,一位南加州大学的学生弗雷德·科恩(Fred Cohen)在UNIX系统下,写了一个会引起系统死机的程序,但是这个程序并未引起一些教授的注意与认同。科恩为了证明其理论而将这些程序以论文发表,在当时引起了不小的震撼。科恩的程序,让电脑病毒具备破坏性的概念具体成形。

不过,这种具备感染与破坏性的程序被真正称之为"病毒",则是在两年后的一本《科学美国人》的月刊中。一位叫作杜特尼(A.K.Dewdney)的专栏作家在讨论"磁芯大战"与苹果二型电脑(别怀疑,当时流行的正是苹果二型电脑,在那个时侯,我们熟悉的PC根本还不见踪影)时,开始把这种程序称之为病毒。从此以后我们对于这种具备感染或破坏性的程序,终于有一个"病毒"的名字可以称呼了。

第一个真正的电脑病毒

到了1987年,第一个电脑病毒C-BRAIN终于诞生了(这似乎不是一件值得庆贺的事)。一般而言,业界都公认这是真正具备完整特征的电脑病毒始祖。这个病毒程序是由一对巴基斯坦兄弟:巴斯特(Basit)和阿姆捷特(Amjad)所写的,他们在当地经营一家贩卖个人电脑的商店,由于当地盗拷软件的风气非常盛行,因此他们的目的主要是为了防止他们的软件被任意盗拷。只要有人盗拷他们的软件,C-BRAIN就会发作,将盗拷者的硬盘剩余空间给吃掉。

这个病毒在当时并没有太大的杀伤力,但后来一些有心人士以C-BRAIN为蓝图,制作出一些变形的病毒。而其他新的病毒创作,也纷纷出笼,不仅有个人创作,甚至出现不少创作集团(如NuKE,Phalcon/Skism,VDV)。各类扫毒、防毒与杀毒软件以及专业公司也纷纷出现。一时间,各种病毒创作与反病毒程序,不断推陈出新,如同百家争鸣。

DOS时代的著名病毒

所谓"DOS时代的病毒",意思是说这是从DOS时代就有的老古董,诸位读者可别以为您现在已经进入Windows 95/98的年代,就不会感染DOS时期的病毒。其实由于Windows 95/98充其量不过是一套架构在DOS上的操作系统,因此即使是处在Windows 95/98之下,一不小心还是会惹火上身的!

耶路撒冷(Jerusalem)

这个古董级病毒其实有个更广为人知的别称,叫做"黑色星期五"。为什么会有这么有趣的别称?道理很简单:因为只要每逢十三号又是星期五的日子,这个病毒就会发作。而发作时将会终止所有使用者所执行的程序,症状相当凶狠。

米开朗基罗(Michelangelo)

米开朗基罗的名字,对于一些早一点的电脑使用者而言,真可说是大名鼎鼎,如雷贯耳。著名的原因除了它拥有一代艺术大师米开朗基罗的名字之外,更重要的是它的杀伤力惊人:每年到了3月6日米开朗基罗生日(这也就是它为什么叫做"米开朗基罗"的原因)时,这个病毒就会以Format硬盘来为这位大师祝寿。于是乎,你辛苦建立的所有资料都毁于一旦,永无翻身之日。

猴子(Monkey)

Monkey据说是第一个"引导型"的病毒,只要你使用被Monkey感染过的系统软盘开机,病毒就会入侵到你的电脑中,然后伺机移走硬盘的分区表,让你一开机就会出现"Invalid drive specification"的信息。比起"文件型"病毒只有执行过受感染文件才会中毒的途径而言,Monkey的确是更为难缠了。

音乐虫病毒(Music Bug)

这个发作时会大声唱歌,甚至造成资料流失、无法开机的病毒,正是台湾土产的病毒。所以,当你听到电脑自动传来一阵阵音乐声时,别以为你的电脑比别人聪明,那很有可能是中毒了。

其实这种会唱歌的病毒也不少,有另一个著名的病毒(叫什么名字倒忘了)发作时还会高唱着"两只老虎"呢!

DOS时期的病毒,种类相当繁杂,而且不断有人改写现有的病毒。到了后期甚至有人写出所谓的"双体引擎",可以把一种病毒创造出更多元化的面貌,让人防不胜防!而病毒发作的症状更是各式各样,有的会唱歌、有的会删除文件、有的会Format硬盘、有的还会在屏幕上显出各式各样的图形与音效。不过幸运的 是,这些DOS时期的古董级病毒,由于大部分的杀毒软件都可以轻易地扫除,所以杀伤力已经大不如前了。

Windows时期的来临

随着Windows 3.1在全球的风行,正式宣告了个人电脑操作环境进入Windows时代。紧接着,Windows 95/98的大为畅销,使得现在几乎所有个人电脑的操作环境都是在Windows状态下。而在Windows环境下最为知名的,大概就属"宏病毒"与"32位病毒"了。

宏病毒

随着各种Windows下套装软件的发展,许多软件开始提供所谓"宏"的功能,让使用者可以用"创造宏"的方式,将一些繁琐的过程记录成一个简单的指令来方便自己操作。然而这种方便的功能,在经过有心人士的设计之后,终于又使得"文件型"病毒进入一个新的里程碑:传统的文件型病毒只会感染后缀为exe和com的执行文件,而宏病毒则会感染Word、Excel、AmiPro、Access等软件储存的资料文件。更夸张的是,这种宏病毒是跨操作平台的。以Word的宏病毒为例,它可以感染DOS、Windows 3.1/95/98/NT、OS/2、麦金塔等等系统上的Word文件以及通用模板。

在这些宏病毒之中,最为有名的除了后面要讲的Melissa就是令人闻之色变的Taiwan NO.1B 。这个病毒的发作情形是:到了每月的十三号,只要您随便开启一份Word文件,屏幕上会出现一对话窗口,询问你一道庞杂的算数题。答错的话(这种复杂的算数大概只有超人可以很快算出来吧)就会连续开启二十个窗口,然后又出现另一道问题,如此重复下去,直到耗尽系统资源而死机为止。

虽然宏病毒有很高的传染力,但幸运的是它的破坏能力并不太强,而且解毒方式也较容易,甚至不需杀毒软件就可以自行手动解毒。

32位病毒

所谓"32位病毒",则是在Windows 95之后所产生的一种新型态文件型病毒,它虽然同样是感染exe执行文件,但是这种病毒专挑Windows的32位程序下手,其中最著名的就是去年大为流行的CIH病毒了。

CIH病毒的厉害之处,在于他可以把自己的本体拆散塞在被感染的文件中,因此受感染的文件大小不会有所变化,杀毒软件也不易察觉。而最后一个版本的CIH病毒,除了每个月26日发作,将你的硬盘Format掉之外,有时候还会破坏主板BIOS内的资料,让你根本无法开机!虽然目前大部分的杀毒软件都有最新的病毒码可以解决这只难缠的病毒,不过由于它的威力实在强大,大家还是小心为上。(CIH又可能在今年4月26发作,你不会有事吧?)

Internet的革命

有人说Internet的出现,引爆了新一波的信息革命。因为在因特网上,人与人的距离被缩短到极小的距离,而各式各样网站的建立以及搜寻引擎的运用,让每个人都很容易从网络上获得想要的信息。

Internet的盛行造就了信息的大量流通,但对于有心散播病毒、盗取他人帐号、密码的电脑黑客来说,网络不折不扣正好提供了一个绝佳的渠道。也因此,我们这些一般的使用者,虽然享受到因特网带来的方便,同时却也陷入另一个恐惧之中。

病毒散播的新捷径

由于因特网的便利,病毒的传染途径更为多元化。传统的病毒可能以磁盘或其他存储媒体的方式散布,而现在,你只要在电子邮件或ICQ中,夹带一个文件寄给朋友,就可能把病毒传染给他;甚至从网络上下载文件,都可能收到一个含有病毒的文件。

不过虽然网络使得病毒的散布更为容易,但其实这种病毒还是属于传统型的,只要不随便从一些籍籍无名的网站下载文件(因为有名的网站为了不砸了自己的招牌,提供下载的文件大都经过杀毒处理),安装杀毒软件,随时更新病毒码,下载后的文件不要急着执行,先进行查毒的步骤(因为受传统病毒感染的程序,只要不去执行就不会感染与发作),多半还是可以避免中毒的情形产生。

第二代病毒的崛起

前面所谈的各式各样的病毒,基本上都是属于传统型的病毒,也就是所谓"第一代病毒"。会有这样的称呼方式,主要是用来区分因为Internet蓬勃发展之后,最新出现的崭新病毒。这种新出现的病毒,由于本质上与传统病毒有很大的差异性,因此就有人将之称为"第二代病毒"。

第二代病毒与第一代病毒最大的差异,就是在于第二代病毒传染的途径是基于浏览器的,这种发展真是有点令人瞠目结舌!

原来,为了方便网页设计者在网页上能制造出更精彩的动画,让网页能更有空间感,几家大公司联手制订出Active X及Java的技术。而透过这些技术,甚至能够分辨你使用的软件版本,建议你应该下载哪些软件来更新版本,对于大部分的一般使用者来说,是颇为方便的工具。但若想要让这些网页的动画能够正常执行,浏览器会自动将这些Active X及Java applets的程序下载到硬盘中。在这个过程中,恶性程序的开发者也就利用同样的渠道,经由网络渗透到个人电脑之中了。这就是近来崛起的"第二代病毒",也就是所谓的"网络病毒"。

兵来将挡,水来土掩

目前常见的第二代病毒,其实破坏性都不大,例如在浏览器中不断开启窗口的"窗口炸弹",带着电子计时器发出"咚咚"声的"闹闹熊"等,只要把浏览器关闭后,对电脑并不会有任何影响。但随着科技的日新月异,也难保不会出现更新、破坏性更大的病毒。

只是,我们也不需要因为这种趋势而太过悲观,更不用因噎废食地拒绝使用电脑上网。整个电脑发展史上,病毒与杀毒软件的对抗一直不断的持续进行中,只要小心一点,还是可以愉快地畅游在因特网的世界里。