百万年薪挖了个P8程序员,难道是“水货”?

激光可燃气体传感器:核心技术环节分析 激光可燃气体传感器核心技术涵盖七个维度:1)TDLAS光谱吸收与调制技术(检测下限ppm级);2)DFB激光器与双闭环温控系统(波长稳定性±0.0036nm);3)微弱信号处理技术(信噪比提升60dB);4)环境补偿算法(温压补偿误差<±1%);5)本质安全防爆设计(ExiaIICT4Ga等级);6)智能边缘计算(STM32L476芯片);7)多重性能验证(响应时间<1秒)。通过微型化、多气体检测等创新,该技术已在工业安全等领域替代传统方案,实现高精度检测。(149字) 阅读详情

作者丨小智

大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的钱,正准备扩充团队大干一场。那个时候的他踌躇满志,顾盼生辉。当时我想,能在这个大环境下拿到投资的公司,做的产品应该是有前景的。

没想到几天后在电梯遇见时,却发现这位老板已经没有了往昔的风采,整天愁容满面。他在电梯看到我以后问道:“我记得你们是做技术媒体的吧,有个问题想请教一下。”

原来他烦心的症结在于:

我们公司拿到投资以后,人员配置到位还算及时,业务扩张的速度还是挺快的。没过多久我们技术团队的人就跟我说,现在业务发展势头比较好,现有的技术架构快扛不住了,得招些技术牛人来团队负责整体架构规划、升级。

我不是搞技术出身的,以前总是在各种论坛上听说阿里巴巴的 P8、P9 多牛逼,技术多厉害,我就想这种级别的程序员应该可以满足我们的需求吧。于是我用年薪百万的 offer 砸了个阿里新升的 P8 来我们团队做 CTO,可是现在问题不仅没得到解决,反而更复杂了。技术团队的人觉得他名不副实,他觉得我们找他来是打杂的,干得也不开心,两头乱。

我问他,你们觉得他哪里不好?

他只会写 Java,我们用 Go;

他只会搞后端,前端基本不懂;

他算法不太行,我们要做推荐;

他只会写 Web,我们要做 App;

他只晓得用开源工具,我们要造自己的轮子;

……

“那等于是他哪哪都不如你们意呗?”我问他。

对啊,我也没想到阿里 P8 这么水。

“可你一开始要招的不是可以给你们重构系统架构、偿还技术债的 CTO 吗?”

这……有啥区别吗?

“区别大了。你这又是要让前端后端都会,又是要精通各种编程语言,还要能搞移动开发,你这想要的是个全栈,而不是 CTO。哪有 CTO 干这些活儿的,你这是想让一个在大厂流水线上拧螺丝的人来给你把每个窟窿都堵上,不可能啊。”

合着我钱白花了呗?

“倒也不是白花了,BAT 这些大厂都有一套流程化的线上线下、开发管理机制,一般能升到 P8 的,碰到水货的可能性相对较小。你的问题是需求跟招聘方向不匹配,你要招的这是全栈工程师,人家大厂的技术专家是流水线作业,差别大着呢。你听我跟你分析分析。”

1 大厂程序员:流水线上作业的螺丝工

软件工程作为一个行业,发展至今已经有超过 50 年的历史。软件开发在互联网的数次浪潮冲刷下,已经是一个非常完备的成熟行业。在一线互联网公司,比如硅谷的 Google、Facebook、Amazon,比如中国的阿里巴巴、百度、腾讯等,其软件开发已经是一个成体系的流水线式作业。

就以前文提到的阿里巴巴为例,作为国内最有代表性的互联网企业之一,阿里巴巴的软件开发已经形成规模化的效应,直接体现在软件开发的模式上就是一条完备的流水线式作业。

流程化、规范化是大厂软件开发最大的特点。一次完整的需求开发流程是这样的:1. 需求预审、评审;2. 概要设计与评审;3. 测试用例撰写与评审;4. 开发;5. 测试与 bug 修复;6. 发布;7. 版本总结 / 项目过程总结。在这个过程中,每个开发人员都各司其职,拧着各自负责的螺丝。

很多新人在加入技术团队后,通常会有一个资深的员工作为师兄帮助其更快地融入工作、掌握相应的技术。一般而言,在开始阶段新人的任务都是从简单的程序开始写起,比如迁移部分系统代码(从上游系统迁移到下游系统),做一些简单的小需求(如修改 bug,增加某一个字段等)。

这些需求看似简单,实则不然。因为哪怕涉及一行的改动,都需要进行大量的测试进行覆盖,很多人以为这些都该是测试去做,但实际上,测试往往只能进行黑盒测试,而且测试对于代码的了解程序一定不如开发,所以在这些细节上的测试都是由开发自己自测完成。因此,往往改动一行代码,开发就可能都会花上半天的时间用各种方法进行测试。

不仅是测试,阿里技术团队在 2016 年左右开始了一次大的组织架构调整,即把日常的运维工作交给研发做。原来的 PE(Production Engineer)要么转岗去做工具平台开发,要么作为运维专家做产品规划和设计,还有一部分无法适应的只能黯然离开。这是阿里运维从工具化到自动化最重要的一个过程。

规模化、流程化、自动化,这几个关键字放在一起,你第一眼可能想到的是生产车间,但在阿里巴巴,这是其技术团队多年沉淀下的一个行之有效的软件开发模式。

阿里巴巴相对而言是一家业务驱动的公司,项目以业务优先,对于团队来说其重要性不言而喻。在阿里巴巴,这是一个需要多人开发,团队协作的事情。对于那些研发人数动辄超万人的大型互联网公司,要前端就找前端,要后端就找后端,规模化以后要求的不是全才,而是专才。

规模越大的互联网公司,程序员干的事情反而越机械,在软件开发的流水线上做着增删查改的拧螺丝活儿,但这些人,在入职前可是通过了“面试造核弹”般的筛选才进来的。越是高级别的技术专家,出现水货的可能性也越小,同样,他也不可能成为一个小公司需要的全栈开发。什么都会一点的结果,就是什么都不精。

产品规模上去以后,各个模块复杂度都很大,全栈未必适合,规模上去以后势必也要拆分一些项目出来,由专人维护,全栈存在的意义不大。大公司讲究专人专岗,你就做好自己那点事就得了,就算你离职,找到替代你的人相对也比较容易。

“所以你想挖一个阿里的 P8 做你公司需要的全栈是不现实的,你就是把行癫挖过来这问题也解决不了啊。”

那小公司的技术咋整?

2 小公司要的全栈开发

“人们一提起‘全栈开发工程师’,大家的印象肯定是:这号人啊,堪称大神!会很多技术,前端后端都精通,不掌握七八种语言都不好意思出来打招呼,热点技术名词全都知道,也都会点儿,跟谁都能谈笑风生。”

对对对,我们要的就是这样的人!

“但是呢,全栈工程师更像是一个神话。每个人的精力都是有限的,你需要人家精通前后端,自己能写代码还能做测试搞运维,能写网站还要能写 App,你咋不上天呢?”

以上是一个全栈工程师应该掌握的并不详尽的技术栈,各位可以对照着看看自己离全栈有多远,再想想全栈工程师是梦想还是现实。这还是在不考虑技术更新换代就像智能手机的更换周期一样的现在,上图所示的技能表每年每层都会增加新的组件,每隔几年又会增加新的层。全栈,你全得过来吗?

全栈工程师,一定程度上更像金庸小说里的慕容复,刚出场时牛逼哄哄,什么都会,自带光环。可后来随着剧情(业务)的展开,逼格直线下降,被武林同道所笑话。

事实上,创业公司一般比较喜欢招全栈,这和创业公司的需求有关系,因为创业初期的公司可能需要一个人做几个人的活。另外,可能老板是技术出身,了解部门之间衔接所需要付出的巨大沟通成本,所以倾向于更少的沟通单位。

对于个人和公司,全栈的定义是不一样的,初期公司肯定是希望全栈的技术广度和深度刚好能满足公司业务要求,本质上只是想要个全干。但对于个人来说,大多数普通人的时间精力有限,很难真正在广度和深度都做到专业,如果只是为了满足公司需求点技能点的后果就是——项目发展起来之后公司有钱了,全栈差不多就该扫地出门了。

对于创业公司而言,为了压制成本,需要全栈完全能够理解。毕竟一个优秀的程序员也不便宜,能让一个人干两人甚至三人的活儿好像对于成本控制是个好办法。然而,显性的成本控制住了,隐性的成本呢?

“你想没想过,当你的项目到了关键时刻,比如要上线了,或者上线出 bug 了,这时候分分钟就是几十上百万的流水,而你的技术团队因为缺乏专人出问题了。你急急忙忙地去找你的全栈 CTO,他却说:稍等,我上 Stack Overflow 查下这是什么故障。你崩溃吗?”

呃……

”会上 Stack Overflow 的还算好的,他要是个面向百度编程的全栈,你就只有哭的份了。“

再进一步,一个比较复杂的项目,如果一个全栈走了,项目受到的影响会很大,你很难再招到一个完全匹配该项目的另一个全栈。我们见过太多创业公司因为技术团队关键人物离职直接导致项目失败的案例,你越是想省钱,越是省不下钱。

听你这么说,怎么觉得全栈就这么不堪入目呢?

”非也非也。你们这些当老板的,总是认为都是写代码,前端后端没什么区别,Java、Go 没什么两样,这本身就是最大的误解。全栈工程师一定是有其存在的意义的,但你如果想让全栈工程师把什么事儿都全干了,996 都没你这么狠的。全栈工程师也许是未来的一个发展趋势,但现在那些简历上写着全栈的程序员,大概率才是你们认为的水货。“

所以总结下来,他不是个水货 P8,我是个水货 CEO 喽?

更多有趣有用文章

懒人专用的奇淫技巧,用Python实现炫酷的语音操作电脑

Python里三个最高逼格的调试神器

九大神招,让Python里数据分析神器Jupyter,完美升华

推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

点个在看少个 bug ????


【数据清洗】数据清洗流程及经验 预处理阶段 预处理阶段主要做两件事情: 一是将数据导入处理工具。 二是看数据。包含两个部分:一是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;二是抽取一部分数据,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备。 第一步:缺失值清洗 四个步骤: 1、确定缺失值范围:对每个字段都计算其缺失值比例,然后按照缺失比例和字段重要性,分别制定策略。 2、去除不需要的... 阅读详情

相关推荐

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

无法获得下列放可solidworks standard 无法连接到服务器-15,10,10061如何解决?

qq_63539957的博客 2万+

热点 | Excel不“香”了,数据分析首选Pyhton!

Excel一直在求职中有着不可动摇的地位无论是投行、咨询、四大曾经都会在JD中明确要求会Excel,而Excel称霸的时代已经过去!事实上,为了追求更高的效率和质量,他们开始使用比Exc...

程序人生的博客 308

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1655

西门子万人裁员:35岁之后找不到工作怎么办

网上有句流传很广的话,你知道最好欺负的人是谁吗? 答案是中年人。 为什么中年人好欺负?上有老,下有小,还有房贷、车贷...随便一根小稻草,都能把人压得喘不过气来。 生活可没那么慈善。蹦出来的还往往不是什么小稻草,而是一座大山,瞬间就能把这波好欺负的中年人直接压垮。 比如说失业。最近又有裁员新闻上热搜,“西门子万人裁员“。 还有一些公司,在酝酿...

xingduan5153的博客 1643

ROS Noetic + Realsense ROS 2.3.2 在鲁班猫4上的完整工作空间搭建与相机启动调试

本文详细介绍了在鲁班猫4(RK3588S)开发板上搭建ROS Noetic与Realsense ROS 2.3.2开发环境的完整流程,包括Realsense SDK安装、工作空间配置、D435i深度相机驱动调试等关键步骤,为机器人视觉系统开发提供实用指南。

weixin_33217202的博客 237

用blender为模型贴图并在gazebo中显示

用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/。并设置好简体中文。语言可以在编辑->偏好设置->界面里面设置。 首先界面右上角的摄像头,方块,灯光三个场景全都删除。 接着导入stl格式的模型文件,下面以tianbot_mini上面的激光雷达的模型为例。 导入激光雷达模型后,点击进入上方的UV Editing按钮进入UV编辑界面 此时我面看见网格化的激光雷达模型

qq_48427527的博客 8001

为什么你应该尝试 “全栈”

程序员看到“全栈”这个概念,大概会有两种反应 1. 卧槽,这个好,碉堡了 2. 你懂毛,全栈就是样样稀松 以上两种反应其实都有失偏颇。因为即使只学一门技术,水平很菜的人也多的是,而全栈工程师当中样样都做,而样样都做得不错的也不少。更别说这个世界还存在另外一种爆栈型的程序员,做什么,什么都精。 从我的个人实践出发,全栈学徒至少要掌握以下几种技能: Web

闲云孤鹤 1310

二维光子晶体禁带的遗传优化算法实现

二维光子晶体禁带的遗传优化算法MATLAB源代码 光子晶体中因周期性结构而存在的频率禁带称为光子禁带,光子禁带的存在是光子晶体具有广泛应用前景的重要原因。 禁带越大,可控光的频带也越宽,因此如何设计合适的晶体结构以获得大的光子禁带一直是研究和应用的重点与热点。 给大家讲解在平面波展开法的基础上,使用遗传算法寻找具有最大光子禁带的二维光子晶体结构。 %-------------------------------------------------------------------------- % Ph

m0_53407570的博客 583

啥是全栈程序员?更厉害?更有钱途?

用我的亲身经历,彻底打消你对全栈程序员的疑问和误解 大家好,我是鱼皮,我相信学编程的朋友都经常听到 “全栈” 这样一个词,但是你了解什么是全栈么? 我之前在网上看到太多有关全栈程序员的疑问了,甚至还有不少的误解。那作为一名兴趣驱动的全栈程序员,我不能忍,赶紧整理了最常见的 十个问题 ,逐一回答,完成了这篇拙作,希望能消除大家对全栈的疑问和误解。 1. 什么是全栈工程师? 有些同学可能还不知道全栈是什么,先介绍一下。 现在的程序员有很多方向,前端开发、后端开发、测试、算法等。其中,以前端和后端最为流行。.

努力做最接地气的编程干货分享,感谢关注 1万+

PLC的自抗扰控制(ADRC)算法

1、自抗扰控制算法,网上很多文章有所讲解,大家也可以关注韩京清教授的论文和书籍,这里就不赘述了,下面给出梯形图+SCL代码。 1、跟踪微分器 2、线性控制率 3、博图SCL控制代码 4、ADRC控制算法的所有公式汇总 ......

RXXW_Dor的博客 3853

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

Cadence 17.4版本导出坐标文件往往都是txt格式,并且无标题、导出时间、导出设计工程多名称等信息。那么怎么样才能导出有带这些信息的excel版本并格式好看的坐标文件呢?

一点硬件 2763

公司花百万年薪从阿里挖了个P8程序员,竟然是“水货”?

点击上方“码农突围”,马上关注这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看”作者丨小智大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访...

欢迎关注公众号:【码农突围】,公号后台回复9999,可以获取一份500页的LeetCode刷题笔记。 1029

Android SELinux——neverallow问题处理(十六)

遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级,系统对 SELinux 的管控越来越严,增加了大量的 neverallow。一般情况下,向默认标签授予权限的做法是错误的,其中许多权限都是 neverallow 规则所不允许的。按照上面方法去添加 SELinux 可能会违反了 neverallow 规则,编译时候会报 neverallow 相关的错误。

小旭的专栏 2674

花百万年薪从阿里挖了个 P8 程序员!难道是“水货”?

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱来源 | InfoQ 作者丨小智 编辑 |可可大厦新搬进来一家创业公司,老板红...

开发者技术前线-DevolperFront 610

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

花百万年薪从阿里挖了个 P8 程序员!难道是“水货”?一个月后老板傻眼了!...

点击“开发者技术前线”,选择“星标????”让一部分开发者看到未来来源 | InfoQ 作者丨小智 编辑 |可可大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的...

开发者技术前线-DevolperFront 490

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【转】百万年薪挖了p8,难道是水货?

大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的钱,正准备扩充团队大干一场。那个时候的他踌躇满志,顾盼生辉。当时我想,能在这个大环境下拿到投资的公司,做的产品应该是有前景的。没想到几天后在电梯遇见时,却发现这位老板已经没有了往昔的风采,整天愁容满面。他在电梯看到我以后问道:“我记得你们是做技术媒体的吧,有个问题想请教一下。”原来他烦心的症结在于:我们公司拿到...

weixin_30457881的博客 166

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

百万年薪竟挖了个“水货”程序员?

大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的钱,正准备扩充团队大干一场。那个时候的他踌躇满志,顾盼生辉。当时我想,能在这个大环境下拿到投...

代码技巧 525

百万年薪挖了个阿里P8“水货”程序员?佛曰,不可说

来源 |https://www.jianshu.com/p/9eea554d8dbf一位创业公司的CEO:我们公司拿到投资以后,人员配置到位还算及时,业务扩张的速度还...

web前端开发 418

百万年薪挖个P8程序员,老板理解的全栈跟我可能不在同一频道

大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的钱,正准备扩充团队大干一场。那个时候的他踌躇满志,顾盼生辉。当时我想,能在这个大环境下拿到投资的公司,做的产品应该是有前景的。 没想到几天后在电梯遇见时,却发现这位老板已经没有了往昔的风采,整天愁容满面。他在电梯看到我以后问道:“我记得你们是做技术媒体的吧,有个问题想请教一下。” 原来他烦心的症结在于: 我们公司...

chen801090的博客 320

“阿里p8凭啥年薪100多万?”一网友对阿里p8的薪资提出了质疑!

架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。公众号该公众号已被封禁阿里巴巴一直以来都是互联网行业的翘楚,而其P8级别的员工更是备受瞩目。一位网友对阿里P8的年薪水平提出了质疑,阿里p8的过人处是啥?究竟是什么让这些高级别的员工能够轻松跻身百万年薪的行列呢?阿里巴巴一直以来注重人才的培养和发展,P8员工在入职初期就接受了系统而严格的培训,培养了他们深厚的专业背景和领导才能。P8级别所承担的职责往往非常繁重,需要具备卓越的工作能力和危机应对能力。

zwq2024的博客 2119

官宣!2020年全国高考延期,具体考试时间公布

点击“开发者技术前线”,选择“星标????”在看|星标|留言, 真爱来自:教 育 部 | 编辑 :可可人民网北京3月31日电(孙竞)教育部今天上午发布《关于2020年全国高考时间...

开发者技术前线-DevolperFront 272

四个大点,搞懂 Redis 到底快在哪里?

点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!来源:http://1t.click/jnt>>阿里云8月最新优惠,点击查看<<前...

程序猿DD 746

如何分辨一个程序员是不是水货?

所以我们一般面试的时候都会为候选人充分创造展示自己的机会。他之所以问我这样的问题,主要是因为我面试过很多程序员。仅凭和程序员交流的几句话就要判断一个程序员是水货。实际上我认为程序员面试应该最主要关注两方面的能力。还有不问具体的事情的一些情况干啥都打包票的人啊。第一个就是一个通用能力,其次就是一个专业能力。就这些基础的一些列表啊数组就能解决一些算法。然后一些技术牛到爆的人让他做事他都能做。所以尽量避免招到一些不合适的一些同事。很多公司会有上机或者直接让手写代码的。专业能力主要包括代码能力和工程能力。

weixin_58304781的博客 453

我招了个“水货”程序员

很多程序员可能都遇到过类似的困惑:我没有高并发项目经验,但是面试的时候经常被问到高并发、性能调优方面的问题,该怎么办?这个问题怎么解决?和大家说说我招人的一个经历。程序员小张参加工作已 5 年,是一位高级工程师,是我亲自招进公司,表现很出色。前一阵子,我把小张叫进会议室,想让他单独带个团队。其中,我谈到了面试时,他简历注水的问题。事情是这样的,大概两年前,公司有个核心项目缺人,需要一位高级程序员。这个岗位非常重要,所以对面试人要求不低:有高性能、高并发开发经验有高可用系统经验。

weixin_68789096的博客 204
上一篇: 王思聪究竟上了多少次热搜?
下一篇: 冰雪奇缘2火爆来袭!Python带你分析4万多条短评,发现了这几个秘密
菜鸟学Python
博客等级 码龄9年 8063粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值