程序员和妓(ji)女,到底哪个工作更累,对比对比就知道了
相同之处:1.都是吃青春饭的,人老珠黄肯定混不下去,除非混到管理层,例如老……鸨。2.级别越高收入就越高,中间人的抽头会更高。3.都是靠出卖为生。4.名声越大,越容易受到青睐。5.都鼓励创新创意精神。6.都为防病毒的问题而烦恼…7.当然,有些高手还会以制度传毒为乐。8.生活没有规律性,以夜生活为主,如果需要,凌晨也要加班,甚至是通宵。9.必须尽最大能力满足客户各种各样非常理的需求。10.喜欢扎堆,技^^女集中的地方叫红灯区;IT狗集中的地方叫软件园,11.怀孕了,既不能做IT狗,也不能做技女。12.工作时精神高度集中,非常怕外界干扰工作。工作完毕后身心放松,体会到一种不可替代的工作快乐13.IT狗怕查户口的;技女怕查房的。14.IT界的高手很讨厌微软,技女界的高手嘛…这个…嗯,恐怕也非常讨厌微。。。软!15.技女工作的地方(床)是IT狗最神往的地方。16.IT狗为了拉客,通常会在交易前提供一个Demo,技女提供的那叫Photo。17.程序员手册:一套好的人机操作界面要求,对于一
2017年,程序员在人工智能领域的薪资有多高?
「100offer大咖说」是我们策划的一版全新栏目。每期,我们会邀请一位在互联网圈有一定知名度的大咖,给大家分享自己的职场经验、成长故事或干货知识。继上一期算法领域的大咖SimonS为大家揭晓了如何快速成长为一名出色的算法工程师?后,本期,我们邀请到了在互联网技术领域有着多年招聘经验的资深猎头克里斯蒂娜酱(知乎同名ID),为大家揭晓2017年技术圈最热门的人工智能领域的诸多技术岗位,薪资究竟有多高。作者介绍:克里斯蒂娜酱,互联网行业招聘专家,深耕技术领域,多年一线互联网公司和海外顶级人才探索经验。以下为正文:如果说2016年是互联网AI领域井喷的元年,2017年整个AI领域全面爆发,来潮汹涌的趋势相较2016年可以说是有过之而无不及。算法相关人才在市场上呈现出严重的供需不平衡的状态,一个人同时被四五家一线互联网企业或是明星独角兽争夺是常态,而各家给到猎头的需求更是只要是算法类人才,哪怕是刚刚毕业不满一年也可以推荐,这意味着哪怕是初级算法工程师,通过猎头获取的人才每个人的招聘费用也在5万元左右
程序员:明明是个小bug,但就是死活修不好......
分享之后我还是要推荐下我自己的前端学习群:547931294,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,送给大家,欢迎初学和进阶中的小伙伴。穿:这段烂代码“这就是新潮?”“能不能量身定制啊。”神奇的淘宝上有量身定制的衣服卖么?没有。别整天整没用的B2C、B2B。。。能否来个C2D2M啊?让设计师给我设计一套衣服啊。住:拜托能不能把公寓和办公室合二为一(我不想挤地铁!)那么多创客空间,那么多青年公寓。我只想要一个能把住和工作合二为一的房间。要我付两个房间的钱?我不傻。用:处处棘手用的棘手的东西到处都是。只要我想改进,就可以改进。等等,还有两点,一是我真去做了,二是市场也接受这种改进。。。想到是一回事,做到又是一回事。好的程序员会想到又做到。行:出门的唯一理由是旅行宅多好,如果要出门,我只想去旅行。
看女程序员是怎么往死里坑师兄的
我有一个师兄一个很神奇的师兄之所以说他神奇是因为他真的很神奇师兄是个典型的学霸本科跟我一样是学土木工程的,后来考研又跨专业考到了计算机,毕业后成为一名程序员。他说你知道我为什么做程序员么?因为我可以随心所欲的开发我自己像出来的东西。这让我有一种征服世界的感觉。年轻,敢想敢做,没什么不可以~1、师兄刚上班的时候经常因为睡懒觉而迟到,所以经常被领导骂,他想了很多办法都没有解决,后来他自己开发了一个闹钟系统。师兄说:“这个软件最奇特的地方是,当闹钟响起时,你必须在1分钟内回答一道题才能将闹钟关掉。”注意,这还没完哦~如果你一分钟内没有回答出来,或者回答错误,这个软件就会自动给他的老板发送下面这条短信:师兄觉得这下他一定不会再迟到了。结果他不小心往题库里导入了一道证明题……后来师兄被开除了……师兄说他不后悔,年轻就是要多尝试,有些事情,我敢,你敢吗!你肯定不敢。2、师兄说他原来是个特别没有时间观念的人,比如聚会的时候,经常会迟到很久,他的朋友都对他有很大意见。他下定决心要改正他的这个缺点,于是他又开发了这样一个软件。“到了这个时间后,软件会自动判断手
如何突破 Java 程序员的分水岭
第一阶段:一年之内的JAVA从业人员这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。正常速度的话,应该可以在半年左右看完。我这里不要求过高,只要你在一年以内把这本书看完即可。当然了,我所说的看完,是充分吸收,而不是读一遍就完事了,因此有些内容你可能会看不止一遍。总而言之,这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。第二阶段:1年到2年的从业人员,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。我当时看的是《大话设计模式》这本书,并且写了完整版的设计模式博客。因此,我要求大家,最多在你工作一年的时候,必
被出轨的程序员
今天惊闻一篇文章《为什么程序员是出轨率最高的群体(支持双十一程序员脱单专场)》。本身言论自由,总是有傻逼会发出傻逼的言论,不过文章满篇胡言,像我这种还没女朋友的就被出轨了感觉实在生气。来一一说明一下这篇文章都乱说了写啥。虽然遇见傻逼不比较真,但是我今天就认真了!1.程序员是出轨率最高的群体?文章说:程序员是出轨率最高的群体。出轨率第二高的是金融男。远远高于其他群体。看到这句我就比较好奇数据是从哪里来的?通过搜索引擎查关键字:职业出轨率。分别找到如下文章:2017上半年离婚大数据出炉:出轨率最高的职业竟是…网易订阅2017-09-09出的文章,2017年上半年的数据:
Wafer2 Node.js QuickStart 架构分析
与Wafer1的Node.jsDemo采用Express不同,Wafer2的Node.jsQuickStart采用了Koa.js框架编写,Koa将整个请求过程看做全异步的操作,使用Node.js7.6开始支持的async/await语法,大大简化了整个应用开发的繁琐性,能让我们写出更加好看的异步代码。关于async/await,这里不过多的介绍,有兴趣的同学可以查看阮一峰的async/await教程。Koa中间件-洋葱模型Koa的中间件模式和Express不同,Express的中间件是流式串行结构,当一个中间件调用了next函数,逻辑就再也不会回到这个中间件中,这种模型在一些情况下会使得很多我们想要实现的功能变得复杂,比如请求时间计算,我们不得不将请求的开始时间写进request对象,而对于全局错误的捕获,我们也只能监听uncaughtException事件,这样导致我们的应用架构变得不够清晰。而Koa的洋葱模型巧妙的解决了这个文件,它将所有的中间件(或者处理业务
换个角度解读微服务架构
前言微服务的起源是由PeterRodgers博士于2005年度云端运算博览会提出的微Web服务(Micro-Web-Service)开始,2014年,MartinFowler与JamesLewis共同提出了微服务的概念,定义了微服务是由以单一应用程式构成的小服务,自己拥有自己的行程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HTTPAPI通讯。同时服务会使用最小的规模的集中管理(例如Docker)能力,服务可以用不同的程式语言与资料库等元件实作。(引用自维基百科)微服务架构使得开发的速度更快,部署越来越自动化,服务和服务之间的隔离性高,整个系统的水平扩展能力非常强,但是同时也对运维、微服务管理、状态管理以及测试方面提出了更高的要求。微服务架构的一些理念和原则网络上很多的文章都已经描述的很清楚了,本文想从另外一个不同的角度来尝试阐述一下微服务架构。要理解微服务,首先来看一下什么是服务。什么是服务生活中我们都会接触到服务,我们去餐馆吃饭是去享受餐馆给我们的服务,去银行办事是去
MySQL 引擎特性:InnoDB 同步机制
原文出处:水中的泪前言现代操作系统以及硬件基本都支持并发程序,而在并发程序设计中,各个进程或者线程需要对公共变量的访问加以制约,此外,不同的进程或者线程需要协同工作以完成特征的任务,这就需要一套完善的同步机制,在Linux内核中有相应的技术实现,包括原子操作,信号量,互斥锁,自旋锁,读写锁等。InnoDB考虑到效率和监控两方面的原因,实现了一套独有的同步机制,提供给其他模块调用。本文的分析默认基于MySQL5.6,CentOS6,gcc4.8,其他版本的信息会另行指出。基础知识同步机制对于其他数据库模块来说相对独立,但是需要比较多的操作系统以及硬件知识,这里简单介绍一下几个有用的概念,便于读者理解后续概念。内存模型:主要分为语言级别的内存模型和硬件级别的内存模型。语言级别的内存模型,C/C++属于weakmemorymodel,简单的说就是编译器在进行编译优化的时候,可以对指令进行重排,只需要保证在单线程的环境下,优化前和优化后执行结果一致即可,执行中间过程不保证跟代码的语义顺序一致。所以在多线程的环境下,如果依赖代码
成功就是要梭哈Writeup | 公开赛
对于本期公开赛,胖哥只有一幅图表达心声:接下来开始我们的梭哈之旅吧!(同时感谢本期公开赛的出题胖友:@wupco,港真,这是我见过最认真负责的出题胖友啦~全程盯log,233333PS:本期只收到两份WP,想要多赠送一点邀请码的胖哥表示很遗憾。依然盼望邀请码的小伙伴们欢迎关注胖哥微博——胖哈勃,即时获取新动态喔!通过查看所有题目代码,可以看到有注入点,但经过;的过滤、sqlchop和preg_match的检测,如果绕不过就直接die掉。如果能顺利bypass这两个,就可以传给mysql-e去处理,当然后面用了escapeshellarg所以想直接拼接命令的怕是不行了。代码如下:
vs链接 SQL server(Visual Studio2015 链接sql server 2014)
到这里vs和sqlserver链接成功。采用下面最少代码,进行测试codeusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Configuration;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){SqlConnectioncon=newSqlConnection();con.ConnectionString="DataSource=DESKTOP-D5KAKHM;InitialCatalog=df;IntegratedSec
不就是跨域么?慌个XX
前端开发中,跨域使我们经常遇到的一个问题,也是面试中经常被问到的一些问题,所以,这里,我们做个总结。小小问题,不足担心原文地址:YOU-SHOULD-KNOW-JS什么是跨域跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。同源策略限制了一下行为:Cookie、LocalStorage和IndexDB无法读取DOM和JS对象无法获取Ajax请求发送不出去常见的跨域场景所谓的同源是指,域名、协议、端口均为相同。http://www.nealyang.cn/index.html调用http://www.nealyang.cn/server.php非跨域http://www.nealyang.cn/index.html调用http://www.neal.cn/server.php跨域,主域不同http://abc.nealyang.cn/index.html调用http://def.neal.cn/server.ph
深入理解javascript函数进阶系列第三篇——函数节流和函数防抖
前面的话javascript中的函数大多数情况下都是由用户主动调用触发的,除非是函数本身的实现不合理,否则一般不会遇到跟性能相关的问题。但在一些少数情况下,函数的触发不是由用户直接控制的。在这些场景下,函数有可能被非常频繁地调用,而造成大的性能问题。解决性能问题的处理办法就是函数节流和函数防抖。本文将详细介绍函数节流和函数防抖常见场景下面是函数被频繁调用的常见的几个场景1、mousemove事件。如果要实现一个拖拽功能,需要一路监听mousemove事件,在回调中获取元素当前位置,然后重置dom的位置来进行样式改变。如果不加以控制,每移动一定像素而触发的回调数量非常惊人,回调中又伴随着DOM操作,继而引发浏览器的重排与重绘,性能差的浏览器可能就会直接假死。2、window.onresize事件。为window对象绑定了resize事件,当浏览器窗口大小被拖动而改变的时候,这个事件触发的频率非常之高。如果在window.onresize事件函数里有一些跟DOM节点相关的操作,而跟DOM节点相关的操作往往是非常消耗性能的
NodeJs异步的终极解决方案Async/Await
Node.js的异步编程方式有效提高了应用性能;然而回调地狱却让人望而生畏,Promise让我们告别回调函数,写出更优雅的异步代码;在实践过程中,却发现Promise并不完美;技术进步是无止境的,这时,我们有了Async/Await。Async/Await简介对于从未听说过async/await的朋友,下面是简介:async/await是写异步代码的新方式,以前的方法有回调函数和Promise。async/await是基于Promise实现的,它不能用于普通的回调函数。async/await与Promise一样,是非阻塞的。async/await使得异步代码看起来像同步代码,这正是它的魔力所在。Async/Await基本规则async表示这是一个async函数,await只能用在这个函数里面。await表示在这里等待promise返回结果了,再继续执行。await后面跟着的应该是一个promise对象(当然,其他返回值也没关系,只是会立即执行,不过那样就没有意义了…)Async/Await语法示例中,getJSON函数返回一个pro
JavaScript replace 方法
一到面试题引起的好奇:12000000.11如何将浮点数小数点左边的数每三位加一个逗号,如12,000,000.11?functioncommafy(num){returnnum&&num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function($1,$2){return$2+',';});}关于replace方法:注:看正则表达式的匹配模式:全局匹配(//g)和非全局匹配(只替换首个匹配的字符串)第一种情况:第二个参数为字符串对于正则replace约定了一个特殊标记符$1.$i(i:1-99):表示从左到右正则子表达式所匹配的文本,e.g.1"Baude&Lee".replace(/(\w+)\s*&\s*(\w+)/g,"$2^$1");//output:Lee^Baude在"$2^$1"中,使用该模式替换正则表达所匹配的全字符串。e.g.2"Baude&Leetes
Angular2使用vscode断点调试ts文件
VSCode自带debugger工具,管理后台项目使用angular2,试了下调试ts文件十分方便。下面是具体的实现步骤以及踩的坑。当你调试出来后,回头看这个设置还是十分简单的。我使用的是ng-cli创建的项目。后面再补充一般项目的调试,感觉也差不多。解决了“由于未找到生成的代码,已忽略断点(是否是源映射问题?)”,参考下面的我的环境配置我的环境配置1.nodev7.3.02.npm3.10.103.ng>=1.3//这一点非常重要,我一开始的版本低于这个版本,就一直报“由于未找到生成的代码,已忽略断点(是否是源映射问题?)”4.在vscode中安装vscodeforchome插件,版本要3.1.4以上5.生成launch.json,文件内容改为以下内容{"version":"0.2.0","configurations":[//这个数组里包含了可以包含多个配置对象{"name":"ngserve",//配置对象的名称,你可以选择其中一个配置运行调试"type":"chr
Vue单页面骨架屏实践
monkeyWang2hoursagogithub地址:VV-UI/VV-UI演示地址:vv-ui文档地址:skeleton关于骨架屏介绍骨架屏的作用主要是在网络请求较慢时,提供基础占位,当数据加载完成,恢复数据展示。这样给用户一种很自然的过渡,不会造成页面长时间白屏或者闪烁等情况。常见的骨架屏实现方案有ssr服务端渲染和prerender两种解决方案。这里主要通过代码为大家展示如何一步步做出这样一个骨架屏:饿了么骨架屏prerender渲染骨架屏本组件库骨架屏的实现也是基于预渲染去实现的,有关于预渲染更详细的介绍请参考这篇文章:处理Vue单页面MetaSEO的另一种思路下面我们主要介绍其实现步骤,首先我们也是需要配置webpack-plugin,不过已经有实现好的prerender-spa-plugin可用varpath=require('path')varPrerenderSpaPlugin=require('prerender-spa-plugin')module.exports={
细谈CSS3之calc
在很早以前,就知道CSS3有一个计算函数calc(),但一直没有深入了解。今天在别人的博客上偶然看到了关于calc的详细介绍,于是燃起了深入了解此特性的想法。原文地址:细谈CSS3之calc什么是Calccalc是英文单词calculate的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽高。如何使用calc()使用通用的数学运算规则,但是也提供更智能的功能:使用“+”、“-”、“*”和“/”四则运算;可以使用%、px、em、rem等单位;可以混合使用各种单位进行计算;表达式中有“+”和“-”时,其前后必须要有空格,如"widht:calc(12%+5em)"这种没有空格的写法是错误的;表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。使用起来其实
小程序和HTML5有什么区别
首先我们先说说小程序是什么,和HTML5有什么区别,根据官方表述和流传出来的关于“小程序”的技术接口来看,通俗一点的说,“小程序”其实是微信提高了自身对于HTML5的特性支持能力,开放了更多的系统调用。例如GPS、传感器等的调用等等。可以预见的是,微信里H5产品将有更好的用户体验,更快的加载速度,和更多的功能。“小程序”改变了什么?关于H5和APP之争,有很多因素决定了这几年H5失去了绝大部分的核心产品市场份额。其中有一点是H5并不能一次开发多处使用,而是要面临不同浏览器和APP平台更多兼容性挑战。比如过去微信就不能支持很多的特性,所以才有了“小程序”。几年前,当微信的市场份额不断提升时,我就认为微信的平台可能会给H5一个独特的发展机会:所有H5以微信的接口为标准开发,浏览器逐步向微信标准靠拢,最终实现一次开发,多处使用的目标。今天来看,“小程序”虽然来得晚了,但是毕竟还是来了。H5产品的标准化运行环境有望出现,微信里H5产品质量也会大大的提高,这是可以预见的。微信小程序语言用的什么微信小程序语言开发用什么:首先,
Visual Studio 2015编译Lua 5.3.4遇到的坑
被坑的不浅,遇到错误:“LNK1561:必须定义入口点”,解决方案删除再建,步骤一遍一遍操作,还是报错。如下图所示:首先,它必须要改成DLL或者LIB(动态/静态库),如果是应用程序那必须要提供main函数的主入口。网上提供的方法,比如改系统-子系统,各种方法都试过了,始终是报错。冷静了一下,觉得是新建空项目那里有问题。然后就改创建一个win32的空项目。再添加lua/src目录下面的*.h*.c文件,结果发现可以正常编译。我就好奇,到底哪一步出了问题,经过对比现有主要有两处不一样。可是我在属性里,明明已经将配置类型改为dll了啊,如下图:我突然发现还有地方是Application,再看一下相关的平台,发现选择的平台与要生成的目标平台不一致导致的。改为选择“所有平台”,然后重新生成,通过!我配置的平台是x86,它选择生成的平台却是win32,导致我无法正常生成。预处理的定义如下:WIN32;_DEBUG;_WINDOWS;_USRDLL;LUA_LIB_EXPORTS;LUA_B