软件行业里学历和资历哪个更重要?
今天在知乎看到一个问题邀请我回答,问:软件行业里学历和资历那个更重要?其实这个问题本身就有问题,学历和资历并不是一个相对的矛盾体,他们俩之间没有必然的联系。说实话,学历和资历分开来说都并不能完全代表你的能力。学历和资历哪个更重要?是能力,能力,能力,重要的事情说三遍。给你举两个例子你就知道了。第一个:有学历,没能力小程是毕业于某某电子科技大学(211,985院校,没有对任何电子科技大学的蔑视,仅仅针对有学历,没能力的学生)计算机专业的硕士,在大学期间其实对编程没有真正的兴趣,被调剂了,但是确实没办法,就是聪明,每次考试都能够考的很好,考试考第一,也顺利考上了硕士研究生,而且成绩也很好。由于是对编程不是特别大的兴趣,有理论,没实践。确实面试一些大型互联网公司,面试算法和原理也说得头头是道,很容易面上了,毕竟虽然不喜欢,但是学历和视野摆在那里了。但是到了公司,实践的时候,由于没兴趣,就是抱着混口饭吃的态度,工作浅尝辄止,你说成就能够大到哪里去?基础是有,但是不爱这口也没办法。说实话,这年头有学历,没能力的人比比皆是,所以看学历并不能代表能
讨厌算法的程序员 2 - 证明算法的正确性
第1篇介绍了插入排序算法,这里要提出一个问题:学习算法仅仅是积累一个又一个的算法实现吗?当然不是。比算法本身更重要也更基础的,是对算法的分析:能够证明其正确性,能够理解其效率。这也是自行设计新算法的基础。如果学了一堆算法的实现,而不能判断算法的优劣,或者靠死记硬背记住了各个算法的复杂度等性能指标,那么随着时间的流逝,这一切都是要还给课本的。算法的正确性正确性当我们设计或者实现完成一个算法后,如何证明它是正确的呢?对于程序员来说,司空见惯的做法是,我们会找几个测试用例,也就是事先定义好的输入输出,然后把输入送进程序里跑一下。如果算法能自动结束,且输出和预期一致,我们就认为算法是ok的。可是我们无法穷举输入,如何能确定未来的某一输入就一定会有正确的输出呢?靠测试用例是无法保障算法的正确性的。循环不变式下面介绍能够证明算法正确性的“循环不变式”。它的英文名是loopinvariant,就是正确的算法在循环的各个阶段,总是存在一个固定不变的特性。找出这个特性并证明其固定不变,从而推断出算法是正确的。具体的说,必须证明
程序员如何扩展技术广度?
中讲过了如何提升自己的深度,今天来讲讲如何利用业余提升技术广度。你掉进了这个学习误区吗?技术广度很好理解,就是多学习一门或多门编程语言,横向扩展技术,不局限于目前所会的这一种。那这个时候有人肯定会想“技多不压身”,那就多学点,下班后有1.5个小时用来学习,半小时学习前端语言,半小时学习服务端语言,半小时学习脚本语言。这种学习方法最终会导致每天会很累,并且学习效果还不好。建议一段时间专注一种技术,这样学习起来会更加高效,要记住一句话“贪多嚼不烂”。如何选择语言?如何定技术方向?选择对了合适的技术方向在打造竞争力这件事情上能够做到事半功倍。无论学习什么都是需要时间成本的,所以在这件事上我们需要慎重考虑。我说说自己的经历:3年前在公司我担任Android主管,在管理好自己的团队前提下,我选择了学习iOS开发,自掏腰包购买学习必需品Mac电脑,也是因为学习了iOS开发,协助了iOS团队开发了3个企业级项目之后,最终我升职为移动端主管。我说这件事情并不是让大家都去学习iOS开发,而是想说明一个道理就是你要找到学习的目标,我当时想法是**公司缺什
Uber 软件工程师:个人推动历史,AI 奇点必定到来
编者按:谷歌AI研究员、Keras创建者FrancoisChollet的一篇有关人工智能发展的文章引起了热议。简单来说,他认为可能导致奇点产生的智能爆炸是不可能不发生的。因为智能的发展要受到很多环境因素的制约,使得其发展趋势只能接近于线性的速度,并且用跟智能最接近的科学的发展轨迹作为佐证。这篇文章以文明作为智能载体等立论观点十分新颖,给人留下了深刻印象。但是也有人提出了不同的意见,比方说Uber软件工程师FlorentCrivello就是其中的一位。他反对的理由主要是1)我们的发展已经呈指数性;2)推动历史向前的是个人;3)大脑是智能发展的瓶颈;4)AI的扩张方式是人没法做到的。按照这样推断,AI的爆炸是有可能发生的。你以为如何呢?FrançoisChollet写了一篇《智能不会爆炸》。以下是那篇文章的摘要,不过我鼓励你真的应该全文通读一遍:智能是情景化的——并不存在一般智能这样的东西。你的大脑是一个更大的系统的一部分,这个系统包括了你的躯体、环境、其他人以及整个文化。没有系统可以存在于真空之中;任何个体智能总要被
企业微服务架构转型-前后分离(12.7)
在上一篇讲完中台后,再来分析下在微服务架构实践和实施过程中,在传统企业业务系统转型和迁移到微服务架构过程中比较重要的一点改变就是前后分离。首先在重申下微服务架构的几个关键点:1.原有业务系统拆分为多个离散自治的组件或微服务模块,从数据库到前端完全独立自治。2.从单个微服务模块来看,能够实现前端和后端分离为独立的组件再简单点来说,如果一个已有的业务系统拆分为4个独立的微服务模块的话,实际在拆分后会有4个独立的数据库实例ID,4个独立的前端JAR包,4个独立的逻辑层JAR包,N个RestAPI服务接口。对于任何一个企业来讲,只要经营和生产方向没有做出大的转型,其涉及到的供应链,生产,财务流程,包括涉及到基础主数据和核心共享业务单据基本都是固定的,这些是识别中台战略中各个中心的基础。在这里有一个关键的观点如下:在中台的各个中心规划,定义和建设好后,后续在企业业务发展的过程中,不应该再增加任何大的中心,而是仅仅增加了前端应用类组件和模块。这些模块的构建更多是充分复用已有的各个中心暴露的接口服务能力,为各个中心提供数据,或者消费
视频演讲: 无线动态化框架 LuaView 性能优化
个人简介陈松涛(野松),阿里巴巴天猫技术部资深无线开发工程师,浙江大学硕士,2014年加入阿里巴巴,开源动态化框架LuaView的Android端作者。曾短暂参与过移动社交领域的创业,后于2014年加入聚划算,先后负责过聚划算Android客户端开发、聚划算无线数据产品开发,聚划算无线基础框架开发等工作。产出过无线端数据展示框架AData,无线端埋点框架JTrack,以及无线端动态化框架LuaView。全球架构师峰会(International-Architect--Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。
LAMP搭建系列四、php安装与配置 (apt)
查看完整目录:【LAMP搭建系列】前言这里介绍的是php使用apt安装的方法与过程。相比于源码安装,APT安装的优点是方便快捷,而且还不用处理源码安装会出现的一系列依赖问题。这也是APT安装方法广受欢迎的一个非常重要的原因。本文的所有操作都是基于Ubuntu16.04.3LTS64位操作系统,如果你的操作系统与我的不一样,可能会出现不一样的结果,但Linux的原理都是通用的。如果你使用的是Red-Hat系列的操作系统,如CentOS,那么你要使用的工具则是RPM。安装PHP1、搜索php源安装包本来我打算的是php5的,但是搜索发现apt的远程镜像里并不提供php5,下面这张图上已经告诉了我结果。这里再次体现了使用apt安装软件的一个缺点,不能灵活自定义软件版本。其实16.04默认的PHP版本就是7.0,所以我这里就直接安装php7.0吧,因为这个版本其实对我也没什么影响。2、安装php7.0sudoapt-getinstallphp7.0通过上面的提示,可以看出:你接下来的操作将会安装的软件包括p
无服务器架构在混合环境下的挑战
SamNewman是一位独立咨询顾问,也是《BuildingMicroservices》这本书的作者。他在伦敦举行的Velocity大会上发表演讲,讨论了关于在一些同时依赖无服务器架构和传统基础设施的混合系统中所面临的挑战。尤其是,Newman重点讨论了无服务器架构如何改变了我们关于系统弹性的概念,以及两个体系同时存在于一个高负荷系统内会发生怎样的冲突。系统弹性在传统服务系统中依赖于状态来控制(例如,在任何时间点用数据库连接池,来及时调节和控制访问数据库的请求数量)。在这种系统中,系统稳定性通过控制输入负载并把这些负载均衡到多个系统实例中来维持。但是,在短暂的函数(lambdas)中没有地方来存储这些控制状态,因此在函数随着负载自动扩展与后端数据库扩展之间需要一个平衡机制。自动扩展的云数据库,例如亚马逊的DynamoDB或者谷歌的Bigtable,很适合无服务器架构。但是Newman指出,大多数系统依赖传统数据库,因此简单地在一个遗留的系统中嫁接无服务器函数可能会导致严重的后果。Newman
Windows下MySQL主从配置小结
这里MySQL是装在两台Windows上,一台Win10,一台Win7,Win10的作为主,Win7的为从。Win10IP:10.200.80.184Win7IP:10.200.151.28首先要找到MySQL的my.ini文件位置,使用Windows安装包安装的会自动安装命令,打开输入root密码,然后输入select@@datadir;my.ini就在这个目录下编辑此文件,加入如下代码server-id=1log-bin=mysql-binrelay-log=relay-binrelay-log-index=relay-bin-index重启MySQL,这样,主数据库就配置好了。在主数据库上新建一个test库。打开从库的my.ini,配置如下server-id=2replicate-do-db=test重启数据库,打开命令行,输入mysql>stopslave;mysql>changemastertomaster_host='192.168.1.200',mas
Fish-ui:基于 Vue 2 的 UI 组件库
Fish-uiAVue.js2.0UIToolkitforWeb.Installnpminstalllessless-loader-Snpminstallfish-ui-SQuickStartImportallcomponentsimportVuefrom'vue'importFishUIfrom'fish-ui'Vue.use(FishUI)ManuallyimportimportButtonfrom'fish-ui/src/components/Button.vue'import'fish-ui/styles/base.less'import'fish-ui/styles/button.less'Andifyoustartwithvue-webpack-boilerplatebyvue-cliDemohttps://myliang.github.io/fish-ui/FeaturesEquipwithVue.js,Moment,Vue-Router,E
Vue 浅析与实践
本文来源博客园,本文首先对Vue的相关技术进行简单介绍与分析,接着总结开发实践过程中的流程规范,并记录在此过程中遇到的问题与关键点,最后做出一点实践的总结与思考。导语入职接到的第一个需求是实现一个关于K歌实体售卖的ERP系统,管理系统过去做过不少,这次打算换个姿势,基于时下正热但早已不新鲜的Vue2.0技术实现。本文首先对Vue的相关技术进行简单介绍与分析,接着总结开发实践(主要描述Vuex实践)过程中的流程规范,并记录在此过程中遇到的问题与关键点,最后做出一点实践的总结与思考。Vue图:vue2.0简介众所周知,如今的前端框架/解决方案数不胜数,从最初的Backbone,到Angular和Meteor等,这当中有很多都为前端的工程化管理和建设提供了一整套解决方案,是一种“大”框架,但这样的框架往往具备一定的排它性,使得开发的自由和灵活度受到限制。与此不同的是,Vue对自己的定位是一个渐进式的JavaScript框架,它最核心的部分是只是为了解决视图层方面的问题,提供声明式渲染和组件化管理模式。同时对于路由管理
每日一博 | 可能是目前最完整的前端框架 Vue.js 全面介绍
UI组件库在vue组件库方面,个人不推荐使用UI组件库,毕竟自己造轮子的过程还是很有成就感的。当然,如果更重视开发效率,并且选择了vue2.0作为前端框架,那么饿了么推出的Element组件就是一个很不错的选择。其github项目(https://github.com/ElemeFE/element)更新比较频繁,虽然项目会有些不稳定,但是目前为止element就是最好的支持vue2.0的UI组件。就像它的口号一样,“快速成型,就为让你少加班”。vue、React、Angular1对比性能对比在Angular1中,在scope作用域中每一次数据变化,会触发watcher的重新计算,angular对常用的dom事件,xhr事件等做了封装,在里面触发进入angular的digest流程。在digest流程里面,会从rootscope开始遍历,检查所有的watcher。并且,如果一些watcher触发另一个更新,脏检查循环(digestcycle)可能要运行多次。Vue则没有这个问题,因为它使用基于依赖追踪的观察系统并且异步队列更
vue路由参数传递的坑
首先我的路由的定义{path:'/b',name:'B',component:resolve=>require(['../pages/B.vue'],resolve)}我从A组件跳转到B组件,并通过路由信息对象传递一些参数this.$router.push({path:'/b',params:{paramA:'a'},query:{paramB:'b'}})在B组件中获取参数this.$route.query.paramB//bthis.$route.params.paramA//undefined通过路由的params对象传递过来的参数paramB始终是undefined,始终找不到原因。通过查阅资料,终于找到原因,那是因为路由的params对象使用,必须要通过路由名来调用路由,而不同通过path来调用,而query对象则没有这个要求。所以我们修改下代码:this.$router.push({name:'B',params:{paramA:'a'},query:{p
Angular 5.1.0 正式版发布,Web 前端框架
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。转载请注明:文章转载自开源中国社区[http://www.oschina.net]本文标题:Angular5.1.0正式版发布,Web前端框架本文地址:https://www.oschina.net/news/91259/angular-5-1-0
通往 Angular 6 的道路上:5.1.0 RC 开发正在进行中
Angular5正式版已于上个月发布。Angular5的目标一如既往的是继续开发团队的重心工作:使Angular更小、更快且更易使用。当然我们也是一如既往的惊讶于Angular的发布频率,虽然这对于Angular团队来说只是日常工作。它们已经开始5.1.0RC的开发工作就是最好的证明。Angular6预计将于2018年3月或4月发布。在Angular5中,开发团队表示应用程序在运行时阶段将会更快,且打包程序也更小。到Angular6时,实验性的Angular-Labs将进入稳定状态,并被框架或AngularCLI采用。性能方面也会有一些改进。Angular5已发布了一个多月,我们不妨期待一下未来——Angular6将会有怎样的改变?现在当然还不能知道,但通过Angular5最近的更新,我们可以大致预判出下个版本将会提升框架的速度、改进性能等。5.1.0的首个beta版已于11月发布,包括六个错误修复以及一个新特性新特性:compiler:
2017.12.5-学习笔记:前端零碎知识点整理复习
前言:最近写了一个后台管理系统的页面和一个移动端商城的页面,后台用了bootstrap框架,移动端用了mui框架。这里整理一下零零碎碎的知识点,或许就有你需要的。pc端1.bootstrap中容器container中的类[roleariasr-only(盲人设备的类,可以删除,简化html结构)]2.html新增的表单属性1.autocomplete="off"关闭表单自动完成提示,默认on2.autofocus输入域在页面载入时自动聚焦3.placeholder文本提示4.multiple多文件选择5.form="formId"给表单元素添加,允许该表单元素写在form的外面,值为form表单的id6.required内容不能为空3.bootstrapValidator(前端校验插件)检验的内容必须在form表单内(表单提交按钮的type必须为submit)$("form").bootstrapValidator({args})初始化表单arg1.excluded不校验的数组ar
ajax访问WebService跨域问题
1、先看一个网站介绍,了解跨域问题HTTP访问控制(CORS)2、像谷歌、火狐浏览器对一些非简单请求会触发预检请求,首先使用OPTIONS方法发起一个预检请求到服务器,然而IE浏览器没有预检请求3、发起预检请求,如果想要后台处理成功,那么就需要服务器处理返回响应,设置允许的请求头,设置允许跨域等(对WebService研究较浅,没有找到对预检请求设置的方法,后期会深入学习)4、在测试中使用谷歌,如果不设置contenttype,默认为text/plain;charset=UTF-8或application/x-www-form-urlencoded,更改为其他两个都不会触发预检请求5、谷歌浏览器ajax设置contenttype为text/xml时,对JDK发布的WebService和CXF发布的WebService错误显示如下JDK发布的WebService服务1)后台报错、找到com.sun.xml.internal.ws.transport.http.server.WSHttpHa
说说 ParcelJS
看到ParcelJS还是眼前一亮的。新建index.html、index.js和index.css,然后parcelindex.html,就能拿到可运行的html、js和css组合。html可以作为入口正是我期望的,这让前端开发回归到本来的状态,很舒服。ParcelJS是以assets方式组织的,assets可以是任意文件,所以你可以构建任意文件。而在webpack中,只有JS是一等公民(webpack@4会增加CSS为一等公民),所以必须是以JS为入口去组织其他文件,这很别扭。速度是ParcelJS主要卖点。体验下来确实快,原因是多核(通过worker平行构建)和文件系统缓存(二次构建会快,和webpack的dll异曲同工)。不过webpack也有多核处理loader和压缩的插件,没对比过,不知道差异如何。另外webpack的构建速度慢在dev模式下还是可以的,主要还是压缩慢,在压缩速度上没有突破,仅提升编译速
如何规范书写 CSS
CSS书写顺序1.位置属性(position,top,right,z-index,display,float等)2.大小(width,height,padding,margin)3.文字系列(font,line-height,letter-spacing,color-text-align等)4.背景(background,border等)5.其他(animation,transition等)
新的 iOS 开发方式,无需服务器,做自己的前端转原生 iOS App 的框架
新的iOS开发方式,无需服务器,做自己的前端转原生iOSapp的框架为什么会有这样一个想法?一个人做项目的时间有点久了,有时候为了修复一个小BUG或者为更新一点内容就得去appstore审核,这个过程太漫长了,觉得烦躁了。再就是有时候服务器的更新不及时,或者想自己控制app内容。考虑过引入ReactNative,但是这个东西,我自己觉得太过笨重了吧。用现有的方式来写Native要方便控制,方便更新,容易编写,考虑使用HTML,CSS,JS。新的开发方式为了解决以上问题,算是独辟蹊径,实现了一个新颖,并且可能容易被接受的构建iOS原生app的方式,这个方式有以下特点:1.不需要专门的服务器!!!2.非常方便进行app的更新,随时更改app的功能!!!3.容易扩展新的组件,实现自己的解析方式或者兼容现有的HTML标准!!!4.使用HTML,CSS,JS来编写原生功能,Flex布局。该想法已经实现,点击github链接查看TokenHybrid源码目前我已将这种方式放进我们团队的app-掌上理工大(apps