聚合文章列表
14 浏览

盖茨为Code.org捐款,为了更多更廉价的程序员?

非盈利计算机教育组织Code.org12月4日宣布收到1200万美元的捐款,捐款方包括比尔及梅琳达·盖茨基金会,普华永道会计师事务所,InfosysFoundationUSA以及其他机构。Code.org由微软前高管HadiPartovi和其兄弟AliPartovi在3013年发起,旨在让CS(计算机科学)这门学科进入全球的每一所学校中去。该组织在硅谷拥有众多支持者,亚马逊、微软和Facebook各为其捐赠了超过1000万美元。Code.org专为K12开发了适用于学校的计算机科学课程,其组织的“一小时编程”活动颇受关注。在宣布收到捐款的时,Partovi提到了一批承诺将加大在CS教育领域投入的城市和国家。面向少儿的计算机科学课程实施数在过去几年内迅速增长。2015年,阿肯色成为第一个立法要求“每所公立学校必须提供计算机科学课程”的州。2016年盖洛普报告发现,40%的美国学校都设置了编程课程,而几年这一比例仅仅是25%。苹果CEO库克曾表示,编程不仅是计算机专家的事,而是每个人都需要的语言。根据该网站发布

程序员 2017-12-05 发布
17 浏览

别让程序员停止在 35 岁,如何让我们走得更远

前言由于互联网的蓬勃发展,科技技术的不断迭代更新,中国的互联网行业已经步入的世界的前列,因为,我们常常能看到,在各种各样的报道中,程序员都会誉为未来最有发展潜力的职业之一。看看现在流行的大数据,看看现在火热的AI,引导万物互联的物联网。所有的这一切,都需要一个职业来实现,那就是程序员。程序员的生命周期但是由于程序员工作的特性,可能从30岁开始,很多人就已经花白头发,可能除了考虑那些复杂的业务逻辑实现以外,就是考虑未来的路应该如何前进了。看看下面这个曲线,可能很多行业都是这样,到了一定的年龄,人的价值体现就开始慢慢的下降了,只是程序员的时间更短一点。就我自己身边的情况来说,一个43岁的博士,被一家外企裁员了,他的下一份工作只有之前的一半薪水。一个45岁的程序员,名牌大学毕业,到我这里面试,他只需要5K的薪水,并且在当时只有30岁的我面前唯唯诺诺。因此,在34岁左右,差不多就是一个程序员的巅峰了,越往后,这个程序员的价值就越低。这一现象不光是出现在中国,在硅谷也一样。相信大家都听过61岁的Ja

程序员 2017-12-05 发布
14 浏览

工作三年的 BAT 程序员,离开后发展得怎样?

上周,100offer推出的主题为「BAT人跳槽去哪?」的报告中发现,从数据表现上看,BAT中的程序员群体在市场上无论是获得面邀数还是薪资表现上,都满足了大家对BAT光环程序员的期待。那么撕开光环的表面,在职场节奏上,这些程序员在BAT发展得怎么样?他们现在又在哪工作?带着这些问题,100offer采访了几位在平台上求职过程中,有过至少3年BAT工作经验的程序员们。看看他们,现在过得如何?离开BAT:不破不立「当你加入BAT的时候,很难不去想自己以后是否会离开,会以怎样的状态离开」,这可能是每个进入BAT程序员在给自己进行长远规划时难以绕过的想法,跳槽就像墙外的花香,总是忍不住让你浮想联翩。100offer平台上就有不少这样选择从BAT离开的程序员。在有人羡慕进入BAT一线大厂的同时,他们却选择了离开。我们在观察候选人时发现,离职虽然是一件主观的事情,但是这些BAT大厂程序员的动因,却有一些共性:有的是因为加入了BAT的边缘部门,感觉发展不受重视选择离职;有的是因为业务发展受限,晋

程序员 2017-12-05 发布
AD 友情赞助
17 浏览

我所认识的可爱程序员

许久没有更新公众号了,感觉已经开始长草了,所以赶紧上来拔一下草,更新一下最近的一些思考和见闻,那么我们就从一篇相对轻松的文章开始吧。从我个人的职业经历看,程序员是一份非常好的职业,这份工作可以给你带来很多你意想不到的乐趣。所以我在讲可爱程序员的特征之前,先看看我们程序员的乐趣,比如以下几个:比如女程序员的段子:还有和产品PK的段子:当然永远不忘自黑的段子:好了,回归正提,我所经历的可爱程序员通常会有如下的表现:1)常常去stackoverflow,github,InfoQ,知乎等网站,乐此不彼,即便只是去灌水。2)有责任心:主动的完成自身的工作,关键时候能站出来挑大梁。3)持续专注:注重积累沉淀学习、对技术和业务有热情、对自己有要求有追求、对细节有想法有见解。4)不找借口:想办法提高自己的代码质量,不要给bug找借口。5)帮助并影响他人:团队协作,积极分享,帮同事解决问题,不仅完成自己的任务,还给团队贡献力量6)做好情绪管理:在压力下,能积极主

程序员 2017-12-05 发布
14 浏览

各版本MySQL并行复制的实现及优缺点

MySQL并行复制已经是老生常谈,笔者从2010年开始就着手处理线上这个问题,刚开始两三年也乐此不疲分享,现在再提这个话题本来是难免“炒冷饭”嫌疑。最近触发再谈这个话题,是因为有些同学觉得“5.7的并行复制终于彻底解决了复制并发性问题”,感觉还是有必要分析一下。大家都说没有银弹,但是又期待银弹。。既然要说5.7的并行复制,干脆顺手把各个版本的并行复制都说明一下,也好有个对比。便是本次分享的初衷。【背景】一句话说完,因为这几年太多这样文章了,就是MySQL一直以来的备库复制都是单线程apply。【解决基本思路】改成多线程复制。备库有两个线程与复制相关:io_thread负责从主库拿binlog并写到relaylog,sql_thread负责读relaylog并执行。多线程的思路就是把sql_thread变成分发线程,然后由一组worker_thread来负责执行。几乎所有的并行复制都是这个思路,有不同的,便是sql_thread的分发策略。而这些策略里面又分成两类:利

MySQL 2017-12-05 发布
30 浏览

用 Python 连接 MySQL 的几种姿势

尽管很多NoSQL数据库近几年大放异彩,但是像MySQL这样的关系型数据库依然是互联网的主流数据库之一,每个学Python的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web开发、亦或是机器学习,你都离不开要和数据库打交道,而MySQL又是最流行的一种数据库,这篇文章介绍Python操作MySQL的几种方式,你可以在实际开发过程中根据实际情况合理选择。1、MySQL-pythonMySQL-python又叫MySQLdb,是Python连接MySQL最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持Python2.x,而且安装的时候有很多前置条件,因为它是基于C开发的库,在Windows平台安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代的是它的衍生版本。#前置条件sudoapt-getinstallpython-devlibmysqlclient-dev#Ubuntusudoyuminstallpython-develmysql-

MySQL 2017-12-05 发布
AD 友情赞助
30 浏览

用 PreparedStatement 向 SqlServer 中一次性插入多条记录

标准SQL都提供了下面这种方式一条INSERTINTO语句插入多条记录INSERTINTOCustomers(Id,Name,Age)VALUES(1,'Name1',21.5),(2,'Name2',32.3)VALUES之后用括号列出每一条记录。但是在Java中想把上面的语句转换成PreparedStatement来插入多条记录时就有些问题。要么写成INSERTINTOCustomers(Id,Name,Age)VALUES(?,?,?),(?,?,?),(?,?,?)....我们不知道VALUES后应该列多少个问号,而且JDBC对参数的个数是有限制的,最多2000个参数。如果根据字段个数来算一次添加多少条记录,那么这条SQL语句也是动态的,不能很好的作为PreparedStatement进行预编译。以一个表三个字段为例,2000个参数下一次性最多能插入记录数666条,

SQL Server 2017-12-05 发布
14 浏览

Vue 模板编译原理

Vue模板编译原理关于vue的内部原理其实有很多个重要的部分,变化侦测,模板编译,virtualDOM,整体运行流程等。之前写过一篇《深入浅出-vue变化侦测原理》讲了关于变化侦测的实现原理。那今天主要把模板编译这部分的实现原理单独拿出来讲一讲。本文我可能不会在文章中说太多细节部分的处理,我会把vue对模板编译这部分的整体原理讲清楚,主要是让读者读完文章后对模板编译的整体实现原理有一个清晰的思路和理解。关于Vue编译原理这块的整体逻辑主要分三个部分,也可以说是分三步,这三个部分是有前后关系的:第一步是将模板字符串转换成elementASTs(解析器)第二步是对AST进行静态节点标记,主要用来做虚拟DOM的渲染优化(优化器)第三步是使用elementASTs生成render函数代码字符串(代码生成器)解析器解析器主要干的事是将模板字符串转换成elementASTs,例如:

{{name}}

上面这样一个简单的模板转换成elem

Vue.js 2017-12-05 发布
18 浏览

前端变量命名常用方法

本文主要介绍常用的前端变量命名规则,主要包括JS,HTML的常用命名规则。JS常用命名方法谨慎使用下划线_前端中下划线_一般作为特殊使用的下划线比如常量中作为语义分隔(MAX_VALUE),前置作为私有不能使用的变量(__myprovite)。美元符号的使用php中把所有的变量都是用美元符,js中则几乎不怎么使用,但是如果使用得当也可以使代码更已读,请看以下的例子:functiongetData(id,method){action.loadData(id,method);}functiongetData($id,$method){action.loadData($id,$method);}以上的2个函数,使用了美元符的能一眼看出这是参数传进来的变量。常量常量就是初始化后不会再改变的变量,此类变量一般用全大写+下划线的方法命名。比如varIMAGE_SERVER='http://img.alibaba.com';varMAX_LENGTH=200;全局变量在利用模块化变成以后,全局变量用得比较少了

JavaScript 2017-11-15 发布
AD 友情赞助
14 浏览

案例学习总结:原生JS实现表格排序

最近在学习js的表格排序,没想到看不起眼的表格排序实际上却暗含了众多JS知识点。在这里记录一下此次学习过程。希望对大家也有所帮助。完整的表格排序涉及了下列这些知识点:call方法使用sort方法深入数据绑定DOM映射下面详细的总结一下这些知识点,最后结合这些知识点实现下面这样一个表格排序案例。完整的案例源码:https://github.com/daweihe/JSProjects一、知识点总结1、call方法使用call方法的作用是改变方法中的this指向。call这个方法是定义在Function.prototype的方法。我们定义的任何一个函数都可以认为它是Function这个类的一个实例。那么就可以通过实例的__proto__属性找到所属类的原型。任何一个函数都可以调用call和apply等方法。先来看一个例子:varobj={name:'JS'}functiontestCall(){console.log(this);}testCall.call(obj);//{name:"J

JavaScript 2017-12-05 发布
10 浏览

理解defineProperty以及getter、setter

我们常听说vue是用getter与setter实现数据监控的,那么getter与setter到底是什么东西,它与defineProperty是什么关系,平时有哪些用处呢?本文将为大家一一道来。对象的属性按照一贯的“由浅到深”行文原则,我们先温习一下对象的属性。我们知道对象有自身的属性以及原型上的属性,它们都可以通过obj.key这样的方式访问到。要设置/修改对象的属性也是很简单的,只需obj.key='value'即可。要注意的是,如果key位于原型上,那么此时会在对象自身设置该值,而不是修改原型上的。另外需要注意的是,原型上的属性有时候会被forin给“不小心”遍历出来,例如下面的代码:vararr=[1,2,3];arr.__proto__.test=4;for(iinarr){console.log(arr[i]);}//输出:1234所以我们一般在用forin的时候都要加上hasOwnProperty判断,或者是抛弃forin,用forEach.认识definePropertydefinePrope

JavaScript 2017-12-05 发布
18 浏览

模板引擎

模板引擎是用来渲染页面的。页面中一部分内容是根据程序生成的,会变化的。主流的模板引擎有两种:*jade破坏式的、强依赖的用了它就不能用html。*ejs非侵入式的、比较温和。并不破坏原有的html、css(其实是往里面加入东西。)jade根据缩进,规定层级属性放在()里面,逗号分隔内容空个格,直接往后堆(但是不能换行)divxxxspanxxxa(href="xxx")链接属性script(src="a.js")内容官网a(href="http://www.zhinengshe.com/")官网jade文件htmlheadstylescript(src='a.js')link(rel="stylesheet",href="",type="")scriptwindow.onload=function(){varoBtn=document.getElementById('

JavaScript 2017-12-05 发布
AD 友情赞助
19 浏览

webpack, react项目中利用外部JS库提升效率

前言现在很多前端项目在构建时,都是一个vendor公共JS文件和和一个app.js的文件,会造成一些弊端。在项目的开发过程中,修改任何一个地方,都会触发JS的全局构建,需要等待非常久,长久下来大大的降低了开发效率。另外一个弊端就是每次构建上线,vendor和app每次都会改变,任何一个小的更改都会使2个文件都改变,再次发布上线,用户的第一次加载速度都会很慢。问题分析实际在项目的过程中,依赖的外部库一般都会不改变的,所以可以把这一部分代码作为一个外部库,发布上线后通过CDN引入,无论再次构建和再次上线,这一部分代码都不会改变。这样就可以解决问题的疼点。解决方法webpack对于公共库有几种解决方法,dll-plugin:例子:https://github.com/webpack/webpack/tree/master/examples/dll,但在实际的操作中,dllPlugin的操作还是相对比较麻烦,不能达到一个完全的解耦状态,webpack为了做版本隔离,做了比较复杂的方案,但在项目实践中除了更麻烦意外实用性并不强。自己构

JavaScript 2017-12-05 发布
18 浏览

如何用 CSS 网格快速做出网站原型

首发于极光日报写文章登录如何用CSS网格快速做出网站原型KenChoi8hoursago简评:CSS网格模块是创建网站模型的绝佳工具。它是我尝试过的任何其他系统中最快让你体验布局的工具。我们的网格我们将从模仿一个经典网站的非常基本的网格开始:首先,我将解释我们需要的HTML和CSS代码,我将之分为4个部分。一旦你弄明白了,我们将继续布局试验。如果你对CSS网格完全陌生,你可能要浏览一下我的5分钟介绍CSS网格的文章。1.标记首先我们需要一点点HTML代码。一个容器(我们把它变成网格的元素)和一些项目(标题,菜单,内容,页脚)。HEADER

MENU
CONTENT
FOOTER
2.CSS中的基础设置然后我们需要设置我们的网格

CSS 2017-12-05 发布
20 浏览

angular指令什么情况下只能有一个根元素(root element)

但有时候又发现别人写的指令超过一个根元素,却并没有报错,真是非常的confusing��文档官访文档在directive一节是找不到任何和replace有关的东西,后来是在$compile一节找到的,然而又已经弃用了……(又要感叹了,前端圈真特喵难混)以下为文档说明replace(DEPRECATED)replacewillberemovedinnextmajorrelease-i.e.v2.0).Specifieswhatthetemplateshouldreplace.Defaultstofalse.true-thetemplatewillreplacethedirective’selement.false-thetemplatewillreplacethecontentsofthedirective’selement.Thereplacementprocessmigratesalloftheattribut

CSS 2017-12-05 发布
12 浏览

推荐一款基于bootstrap的漂亮的前端模板—inspinia_admin

首先给出Demo网址:http://cn.inspinia.cn首先给出Demo网址:http://www.inspinia.cninspiniaadmin最新版bootstrap完全响应式后台管理模板,采用扁平化设计。使用Bootstrap3+Framework,HTML5和CSS3,等技术开发而成。inspiniaadmin包含大量的可重复使用的UI组件的集合,并与最新的jQuery插件集成。可以用于所有类型的Web应用程序,如自定义管理面板,项目管理系统,管理仪表板,应用程序后端,CMS或CRM。此模板适用于后台管理项目以下为此模板的截图首页登录

CSS 2017-12-05 发布
14 浏览

CSS以图换字的9种方法

前面的话CSS以图换字的技术,很久都没人提起了。它是一种在h1标签内,使用图像替换文本元素的技术,使页面在设计和可访问性之间达到平衡。本文将详细介绍CSS以图换字的9种方法文字隐藏在h1标签中,新增span标签来保存标题内容,然后将其样式设置为display:none

小火柴的蓝色理想

负缩进通过使用text-index:-9999px,这样一个比较大的负缩进,使文本移到页面以外的区域