两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告
整理 | 郭芮
责编 | 唐小引
出品 | CSDN(ID:CSDNnews)
“求知若饥,虚心若愚”——这个原本出自《全球概览》的俳句,因为乔布斯在斯坦福大学毕业演讲中的引用而备受推崇,流传成为 IT 界的至理名言之一。在编程界,亦有“代码胜于雄辩”、“Done is better than perfect”等警句,寥寥数语将编程工作者的形象特质描摹到了极致。程序员,就是技术至上、唯代码是瞻且必须不断武装自己的群体。
21 世纪,高薪、高端、高技术范儿已成为程序员的固有标签,在这个新的元年,CSDN 将基于一年一度的开发者大调查数据,以全新的视角深入发掘中国开发者群体的整体现状、应用开发技术以及开发工具/平台的发展趋势,呈现更真实、更全面且更有学习价值的开发者画像。
CSDN 最早从 2004 年开始针对中国开发者进行大规模调查,是迄今为止覆盖国内各类开发者人群数量最多,辐射地域、行业分布最广的调查活动。2019-2020 年中国开发者大调查针对软件开发技术、应用开发领域等方面对问卷进行了重新设计,在本次调研中有如下主要发现:
30 岁以下开发者人数占比超八成,全国有 19.6% 开发者月薪超过 1.7 万元;
六成开发者在使用 Java 语言,近五成开发者近期最想学 Python 语言;
Spark、Redis 和 Kafka 正在成为企业大数据平台通用技术组件;
区块链技术近两年是热点,比特币和以太坊是两种主流的区块链开发平台;
人工智能技术日益受到企业和市场的关注,但 64% 企业尚未实现智能化,机器学习/深度学习算法工程师最为急缺;
近七成开发者认为未来 5G 网络的传输速率能达到 4G 网络的 10 倍以上;
Apache 项目和 Linux 是开发者较为喜欢的开源项目;
半数开发者很少参与开源项目的开发、维护、运营和社区发展等。
软件开发准入门槛持续降低,近 2 成开发者月薪超过 1.7 万
30 岁以下开发者人数占比超八成,软件开发从业门槛持续降低
从 2015 年到 2019 年的调研数据来看:30 岁及以下的开发者人群占比在 8 成以上,一直是软件开发领域的主力军;全国近半数的开发者工作在一线城市(北京、上海、广州、深圳、天津);物联网、软件、IT 制造三个技术领域涵盖了国内 84% 以上的开发者;本科及以上学历占 8 成;92% 的开发者是男性。
和国外开发者年龄分布趋势大概一致,国内的软件开发群体一直呈现出越来越年轻化的特点。这是因为,一方面软件开发行业蓬勃发展,各行各业都需要软件开发相关人才,也有越来越多的毕业生选择从事该行业;另一方面,是因为编程语言、框架、云服务等基础设施的持续完善,从事软件开发的门槛在持续降低,更容易接纳新鲜血液,报告统计发现,本科学历是开发者的主力军,66% 的开发者拥有本科学历,而硕士研究生、博士研究生仅占 11%、1%。
八成以上开发者月薪在 5 千~3 万元之间,19.6% 开发者月薪超过 1.7 万元
通过结合受教育程度和薪资水平的数据特点来看,学历越高的人群中,月薪 1.7 万元以上的高收入比例越高。在一线城市(北京、上海、广州、深圳、天津)中,月薪超过 1.7 万元的开发者占比为 30%,该比例远高于国内其它城市。
开发者属于相对高薪的职业,尤其是在一线城市中,但不同开发者之间收入差距较大。软件开发是一个智力密集型的工作,不同开发者能够提供的价值差别很大,这就使得一个优秀开发者的收入远高于普通开发者:硕士和博士毕业的高收入者比率要远高于本科及以下的;金融和互联网行业的高收入比率最高。
自学是开发者持续学习的主要路径
软件开发行业日新月异,只有保持持续学习才能跟上技术变化的脚步,终身学习是现代人保持竞争力甚至是维持生存的必要手段。
从调研中可以看到,53% 的开发者会通过在未参加正式课程的情况下,自学一门新语言、框架或工具。但同时,也有半数的人参加过在职培训或者线下课程,相对于自学的灵活性而言,这类培训会更为系统和完整,对于长期的个人提升有所裨益,开发者可以适当选择。但与之相悖的是,只有不到 40% 的开发者,愿意为学习付费,这可能会导致参与的课程质量不够高。
Java 雄踞语言榜,Visual Studio 受开发者欢迎
Java 长盛:使用最多,开发者最想学
从编程语言来看,Java 是最多人使用的语言,而 JavaScript 和 SQL 分别是第二第三位。这三门语言,使用场景都很广泛,Java 一方面后端开发最常使用,生态成熟度无人可比;另一方面,Java 依然是 Android 上最重要的开发语言,与之相比 ,新兴的 Kotlin 只有 2% 的开发者在使用。而 JavaScript 不仅是前端开发的必备语言,还用在 Web 开发、小程序开发等场景下。
Java 和 Python 依然是开发者最希望学习的语言之一,只是相比之下,Python 的热度有所降低,这可能和机器学习没有去年那么火热有所关联。变化比较大的是 Go 语言,与去年相比,今年的调研中想学 Go 语言的开发者降低到了 4%,与之相似,Kotlin、R 的学习意愿也大幅降低。
从这个趋势也可以看到,如今的开发者更意愿去学习一些相对成熟度、用途更为广泛的语言,对一些代表新模式的语言乐衷程度有所降低。
七成以上在使用 Windows 操作系统,83% 在使用 MySQL 数据库
72% 开发者在使用 Windows 操作系统,18% 在使用 Linux 系列操作系统。在存储服务的使用上,MySQL 继续扩大其使用率到达了 83%,几乎是开发者必备的技能。和去年相比,Elasticsearch 出现在数据库使用的调研中,在大数据时代,Elasticsearch 作为提供搜索服务的第一选型,也必然会被越来越多的开发者学习和使用。
Node.js 是相对使用普遍的技术框架
在 Web 开发上,前端使用 Vue.js 后端使用 Spring 是最常见的选型方案,与之相对应,Node.js 是最多被用到的框架,这和当今多端开发的趋势密不可分。后端用微服务架构,中间用 Node.js 粘合出适合 Web、Android、iOS 等不同端和场景使用的 APIs,是当下主流的部署方案之一,既可以前后端分离提高开发效率,又可以在保障服务稳定性的同时提升灵活性。而TensorFlow 成为开发者最期望学习的框架,这说明开发者依然对机器学习保持关注和热情。
Visual Studio 是最为普遍使用的开发环境
在开发环境的选择上,Visual Studio 是最为普遍使用的开发环境,这和微软对开发者的投入密不可分。微软投入了大量的研发力量,使得 Visual Studio 可以在各种操作系统进行各种编程语言的开发,其强大且完善的插件系统可以满足开发者的各种需求,使其可以超过 IntelliJ。
大数据平台以私有云部署为主,Spark 使用率高达 44%
私有云部署解决方案是企业构建大数据平台的主要方式
随着分布式计算和云平台的逐步成熟,目前大部分公司都有能力搭建自己的大数据平台。调研数据显示,81% 企业在进行大数据相关的开发和应用,50% 的企业选择私有云解决方案来部署大数据应用,28% 的企业选择自主研发。
仅 19% 企业使用商业发行版 Hadoop 版本搭建数据平台
调查报告发现,有 30% 以上的企业并没有使用相对成熟的 Hadoop 技术搭建数据平台,这些企业的算法性能会很大程度上受限于低效的平台,更不可能开发出更高效的数据分析算法。但幸运的是大部分企业都基于商业版或者社区版 Hadoop 搭建了数据平台,这些公司的侧重点主要在应用发现和算法的设计层面,更有可能在不久的将来实现大数据的价值。
Spark 是企业大数据平台最普遍的组件
Apache Spark 是一个处理大规模数据的快速通用引擎,它可以独立运行,也可以在 Hadoop、Mesos、云端运行,它可以访问各种数据源包括 HDFS、Cassandra、HBase 和 S3,可以提升 Hadoop 集群中的应用在内存和磁盘上的运行速度。Spark 生态系统中除了核心 API 之外,还包括其他附加库,可以为大数据分析和机器学习领域提供更多的能力。本次调研中,Spark 是使用最普遍的大数据平台组件,使用率达到44%,而MapReduce使用率仅为21%。
分布式文件系统 HDFS 作为核心组件之一,使用率也达到了 39%。企业对大数据平台应用最多的场景是统计分析、报表生成及数据可视化,38% 企业使用ELK(ElasticSearch + Logstash + Kibana)实时日志分析平台。
综上所述,目前大数据的发展热潮令人欢欣鼓舞。一个优秀的大数据团队,需要有对产品开发具有高敏感性同时对技术有一定理解的人才,同时需要理论基础极其扎实,能对实际问题进行抽象建模和算法设计的人才。只有双管齐下,在产品和技术方面进行深层次探索,才能真正实现大数据产业的繁荣。
区块链质变,比特币逆袭以太坊成 TOP 1 开发平台
22% 的开发者正在用或者准备用区块链技术解决技术问题
区块链技术的发展,是一个量变到质变的过程。相比于 2018 年,对区块链和加密货币了解的人从 22% 增长到 32%,准备尝试用区块链技术解决一些问题的人数从 14% 增长到 16%,仅有 4% 的人对区块链完全不了解。
43% 的受访者在从事公有链(比特币、以太坊等)的开发
本次调研中,43% 的受访者在从事公有链(比特币、以太坊等)的开发。目前行业侧重发展的方向为解决方案、公链及联盟链,公有链由于其自带激励机制,对于普通开发者有直接的回馈,所以上面开发者占比高也比较合情理。行业解决方案从去年的 27% 增加到今年的 36%,说明传统行业开发者对区块链的认可度在增加。
区块链本质上是技术,落地场景及实际应用才是连接社会效益的关键。
比特币和以太坊是当前两种主流的区块链开发平台
在行业开发者的印象中,以太坊一直是开发平台领域的头号玩家。但今年数据显示,以太坊从 2018 年的 44% 占比第一,降到 24%;比特币从 2018 年的 28%,上升到 35%,占比第一。比特币在行业内外仍然拥有最强共识,在闪电网络的加持下,大家也似乎感受到比特币离商用也不再遥远了。
金融是普遍认为的行业应用方向
金融行业是普遍认为的行业应用方向,占 36%。区块链本身具备的防篡改、可追溯的特点,能大大降低金融行业监管成本,不过金融的进入门槛相对也较高,需要各方面技术的配合。其次,智能硬件和物联网也被认为是主流应用方向,占 14%。不过相比其他众多已经很成熟的技术,依托区块链的解决方案在实际使用中,往往面临必要性缺失的问题,因此区块链应用发展仍任重道远。
在区块链结合行业之前,更加要重视与其他新技术的结合和协同:物联网设备能够提供大量数据,5G 能够提供高速传输,存储可以解决区块存放的问题等。
算法工程师最急缺,TensorFlow 占据 AI 深度学习框架榜首
64% 的企业尚未实现智能化
在经历了 2019 年的行业低谷期之后,无论是行业巨头还是新兴独角兽,都开始审视 AI 能够切实落地的场景。调研数据显示,14% 的企业尚无信息化基础,27% 的企业实现了事务处理数字化,22% 的企业具备商业智能基础设施,实现描述性分析。使用机器学习实现预测性分析和决策优化的企业占 16%,而在业务中全面使用 AI 系统、机器人和其他自动化工具的仅占 12%。
机器学习/深度学习算法工程师最急缺
在岗位分布上,由于深度学习是以大数据为基础的,而感知智能中的计算机视觉又是目前深度学习较为成熟的应用,所以,机器学习和深度学习工程师,以及数据工程师、计算机视觉工程师排行在前三位。当前最急缺的岗位也是机器学习/深度学习算法工程师、数据科学家/数据分析师/数据挖掘工程师岗位。
53% 的开发者表示其团队急缺机器学习/深度学习算法工程师,37% 表示急缺数据科学家/数据分析师/数据挖掘工程师。
TensorFlow是人工智能领域主流深度学习框架
此次调研中,TensorFlow 使用普及率达到 48%。从技术本身的角度来看,较为成熟的 TensorFlow 成为 AI 工程师的首选深度学习框架,Torch/PyTorch由于其开发效率较高,也得到了较多支持。
35% 开发者选用国产 AI 芯片应用于自己的 AI 开发
在 AI 芯片领域,国内厂商也开始弯道超车,越来越多的开发者也开始关注国内 AI 芯片的进展。调查数据显示,选用国产 AI 芯片应用于自己的 AI 开发时最看重的因素方面,对主流 AI 框架的支持能力是最普遍的因素,占 35%。
物联网云平台三足鼎立:阿里物联、华为云、百度 IoT
69% 的开发者认为未来 5G 网络的传输速率能达到 4G 的 10 倍以上
每一代新型的通信系统总是能带来更大的带宽。据报告显示,近七成开发者认为未来 5G 网络的传输速率能够达到 4G 网络的 10 倍以上。
影响 5G 普及的三大因素:5G 套餐价格未定、运营商的开发程度、需要更换手机
由于目前 5G 网络使用者较少,费用较低廉的套餐还没有推出,第一代 5G 终端不太成熟等原因,目前 87% 的开发者认为 5G 套餐费用过高,并且大部分开发者认为 5G 网络目前覆盖范围有限,因此将近 40% 的开发者正处于观望阶段。
值得一提的是,本次调查中 62% 的开发者认为,5G 时代应该加强对个人隐私的保护,这反映出目前社会对数据隐私越来越重视的整体趋势。
阿里物联和华为云是应用相对普遍的 IoT 云平台
根据调查,2019 年物联网云平台呈现三足鼎立的趋势:阿里物联、华为云、百度 IoT 成为用户最多的三种物联网平台,并且和第四名中移物联远远拉开了差距,这和我们的实际使用体验一致。
未来的基础物联网平台可能会继续呈现以偏硬件实现为主的华为云和以偏软件体验为主的阿里、百度物联平台的三足鼎立局面。
物联网技术开发:Linux 和 Windows 是使用较多的操作系统
Linux 和 Windows 是较普遍的操作系统,使用率分别为 51%、44%。目前在物联网设备开发过程中,Linux、Windows 和 Android 较为普遍,依然延续了 PC 平台的开发者操作系统份额。虽然华为、阿里等公司在 2019 年均发布了自己的物联网专用操作系统,但还并未得到开发者的大规模认可,大公司的物联网操作系统发展之路依然任重而道远。
Wi-Fi 是应用最普遍的物联网通信技术
在本次调研中,近距离通信(比如 Wi-Fi 和蓝牙)是现存物联网开发者最主要的通信方式。然而这种比重可能会随着未来 3~4 年内车联网的大规模商业化产生变化,汽车、工业物联、智能电网这类高移动性、高可靠和低延迟物联网场景会更适合需要整体规划的运营商网络。
物联网行业和传统互联网行业不同,相比而言更加需要注重 “软硬结合”。物联网产品的硬件维护成本远远大于传统互联网行业,因此设计、实现出真正可靠、用户喜欢且实用的产品不仅仅涉及软件服务,也需要考虑硬件可靠性和实用性。这对于直接面向用户的物联网企业,特别是从传统互联网厂商或者硬件厂商转型的企业来说存在非常严峻的挑战,需要静下心来深入了解垂直市场的需求。
六成开源开发者无收入,Apache 项目最受喜欢
77% 开发者每周在开源上投入时间不超过 5 小时
无论是大数据、区块链、人工智能还是物联网领域,其中最为重要的、最受欢迎的技术都是开源的。但是报告统计发现,有超过一半的开发者很少参与开源项目,每周在开源上投入不超过 5 小时的占 77%,其中,1 小时以内的占 31%。此外,65% 的开发者不曾在开源上获得收入,获得不错收入的仅占一成。
开发者最喜欢的开源项目是 Apache
25% 开发者最喜欢 Apache,24% 开发者最喜欢 Linux。作为全球最大的软件基金会,开发者用过的诸多项目,例如 Dubbo、Log4j、Maven、RocketMQ 和 Tomcat 等,均孵化自 Apache。
国内开源的现状虽然近年来已经有了很大的发展,但是一个残酷的事实是,老兵正在离开这个行业,离开一线开发的队伍:报告数据显示,30 岁以下的开发者人数超过 82%,接触开源的时间在 5 年以内的开发者超过 83%。随着那些经验丰富的老兵转行或是进入管理层,不再写代码、也不再参与开源的事实也就凸显出来.....未来开源的建设,依然任重而道远。
相关文章:

怎么处理404 错误页面 、处理404页面、asp.net 处理404页面
说明 On 指定启用自定义错误。如果未指定 defaultRedirect,用户将看到一般性错误。 Off 指定禁用自定义错误。这允许显示标准的详细错误。 RemoteOnly 指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。 system.web 元素 下添加下边…

转载:python原生态的输入窗口抖动+输入特效
python原生态的输入窗口抖动输入特效 出处:https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_input.py __author__ Administrator import sys from lib.qm_app import App from PyQt4.QtGui import * from PyQt4.QtCore import * import …
华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...
作者 | VincentLee来源 | 晓飞的算法工程笔记导读:为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题,参考ENAS和NSGA-III,论文提出连续进化结构搜索方法(continuous evolution architecture search, CARS),最大化利用…

在.Net Micro Framework中显示汉字
摘要:MF平台支持的字体是专有格式,扩展名为tinyfnt,需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体。在.Net Micro Framework SDK中提供了一个叫做TFConvert.exe的工具,我们可以用它在命令行下将PC机上的TrueType或者OpenT…

汇编语言使用C库函数和Linux动态链接
使用printf 代码 #cpuid2.s -- Using C labrary calls .section .data output: .asciz "The processor Vender is %s\n".section .bss .lcomm buffer, 12 .section .text .globl _start _start: movl $0, %eax cpuid …

springJDBC实现查询方法二
无废话,看代码: Overridepublic List<Sites> queryAllSites(Pager pager) {String sql "select * from sakai_site order by SITE_ID limit ?,?";Object[] obj new Object[]{pager.getStart(),pager.getLimit()};List<Sites> …

全球计算机视觉顶会CVPR 2020论文出炉:腾讯优图17篇论文入选
全球计算机视觉顶级会议CVPR2020 (IEEE Conference on Computer Vision and Pattern Recognition,即IEEE国际计算机视觉与模式识别会议) 即将于2020年6月14日-19日在美国西雅图召开。本届大会总共录取来自全球论文1470篇,腾讯优图实验室入选17篇。 作为…

gcc使用总结
1.基本选项 -o 指定输出文件名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。 # cc -o XX XX.c -c 编译、汇编到目标代码,不进行链接 -v 打印较多信息,显示编译器调用的程序。 -E 仅作预处理,不进行编译、汇编…

websecurity - Web Security Testing Framework 超级牛B扫描器
Windows – Websecurify 0.3.exehttp://websecurify.googlecode.com/files/Websecurify%200.3.exeLinux – Websecurify 0.3.tgzhttp://websecurify.googlecode.com/files/Websecurify%200.3.tgzMac – Websecurify 0.3.dmghttp://websecurify.googlecode.com/files/Websecurif…

C中的qsort函数和C++中的sort函数的理解与使用
一、qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); 参数解释:1、待排序数组首地址;2、数组中待排序元素数量;3、各元素的占用空间的大小;4、指向函数的指…
机器学习新闻综述:2019年AI领域不得不看的6篇文章
作者 | Limarc Ambalina翻译 | 火火酱,编辑 | Carol出品 | AI科技大本营(ID:rgznai100)在这篇机器学习新闻综述中,我们将回顾一些2019年以来在人工智能各个领域广泛传播或产生影响的重大新闻。此外,我们还将…

GDB attach到进程
要调试守护进程等已经启动的进程或是调试陷于死循环的进程可以使用attach命令 格式 attach pid C语言代码 #include <stdio.h> int main(void) { int marks[10]; int i; for(i0;i<12;i) { scanf("%d",&marks[i]); …

Chrome使用技巧和编辑框拖动怪问题。
常用快捷键:ctrlshiftt 重新打开刚关闭的网页ctrlh 打开历史记录ctrl 放大。ShiftEscape 查看任务管理器据说Chrome能调整编辑区大小,我没发现。倒发现Chrome一个问题,选中编辑框中的文字,一直拖动鼠标&a…

Linux中断研究
2019独角兽企业重金招聘Python工程师标准>>> 研究linux系统,不管是做驱动、协议栈还是进程调度等等,都离不开中断。这说明,要想编写正确的linux代码,不了解中断是不行的。 话说曾几何时,在大学的课堂里&…
linux环境内存分配原理
Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munm…
大脑芯片公司Neuralink计划在人脑内植入芯片,他们到底想干什么?
作者 | James Murphy翻译 | 火火酱,编辑 | Carol出品 | AI科技大本营(ID:rgznai100)说实话,科幻电影在遇到Neuralink时也不得不甘拜下风。2019年7月,埃隆马斯克(Elon Musk)宣布,他的公司正在研发…

判断链表是否存在环(及其延伸)
有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。问题:1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点…

iOS跳转到各种系统设置界面
定位服务 定位服务有很多APP都有,如果用户关闭了定位,那么,我们在APP里面可以提示用户打开定位服务。点击到设置界面设置,直接跳到定位服务设置界面。代码如下: //定位服务设置界面 NSURL *url [NSURL URLWithString:…

Linux内存管理大图(第三稿)
网友画的还不错就转了 ,该作者一共画了3版 v0.1 v0.2 v0.3 原文地址:http://bbs.chinaunix.net/thread-2018659-1-1.html

VNC的安装与使用
VNC的安装与使用。 说明:文章内容比较简单,献给那些初学者作为参考。 文章分为两部分,第一部分为VNC简介,第二部分为VNC的安装与使用。 文章为小弟结合书籍与小弟的实际操作总结出来的,如有错误与疏漏之处…
百度「AI战疫」:首次开源肺炎CT影像分析AI模型,让诊断从分钟到秒
自疫情爆发以来,多家科技公司纷纷加入了抗击疫情的战役中。 其中,排查疫情是这场战役的重中之重,而 CT 影像已成为新冠肺炎筛查和病情诊疗的重要依据。 然而,在当前疫情诊疗的关键时期,存量患者和新增患者总体数量庞…

Linux_DNS服务器
目录 目录DNS DNS ServerServerSite Master DNS ServerForward DomainReverse Resolution Slave DNS ServerForward lookupReverse lookupSplit DNS ServerDNS DNS(Domain Name System,域名系统),在Internet上作为域名和IP地址映射的一个分布式数据库&am…
多场景下的AI疫情防控“天网”:解读云边端联动下的全栈AI技术
在全民抗疫的特殊时期下,伴随着春运返潮,企业陆续复工,从重点防控的机场、火车站等场所,到学校、企业、社区等密集型场所,都是不能忽视的地点。除了人工逐一测量体温排查外,我们还发现,在人员复…

DHCP配置与DHCP中继代理2
实验二:<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />Step1、配置DHCP中继代理1) 打开“管理工具”→“路由和远程访问”窗口,启用路由和远程访问,按向导提示完成操作。<?xml:namespac…

查看CPU是i386架构和x86_64架构
查看处理器是32位还是64位 #cat /proc/cpuinfo 检查flags行中有没有lm标记,lm是Long Mode的简写,表示支持64位模式。 #getconf LONG_BIT 输出:32 #getconf WORD_BIT 输出:32 32位的系统中int类型和long类型一般都是4字节&…

malloc一次性最大能申请多大内存空间
受用户态内存地址空间的限制。64 位系统下分配几个 T 不成问题。 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:zz matrix链接:http://www.zhihu.com/question/20836462/answer/22833295来源:知乎考…

MD5算法之C#程序
MD5算法比较特别,最适合用汇编语言来写,好多高级语言对之无能无力或效率极低。 比如我最开始尝试用Python和Euphoria编写,发现不太容易。相比而言,C#作为C家簇 中新兴的一门.net语言,功能比较全面。花了一晚上的工夫终…

unix环境汇编语言常用工具
汇编器 MASM:微软的汇编器不支持unix NASM:unix环境下兼容微软平台 GAS:GNU 的免费软件包,unix环境下最流行跨平台汇编器 安装GNU汇编器 检查binunits RedHat #rpm -qa |grep binunits Debian #dpkg -l|grep binunit 下载地…
用Python远程登陆服务器的最佳实践
来源 | Python编程时光(ID: Cool-Python)在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。在 shell 环境中,我们是这样子做的。$ sshpass -p ${pass…

Exchange Server 2013 LAB Part 4.内部客户端访问
关于Exchange服务器内部客户端访问的更详细介绍,请参考Exchange Server 2010链接:http://xutonglin.blog.51cto.com/8549515/1390715每个组织在AD林中都至少有一台客户端访问服务器和一台邮箱服务器。另外,每个AD站点中都必须至少有一台客户端…