面试

给职场新人的 10 条中肯经验

爱⌒轻易说出口 提交于 2020-12-24 22:16:57
以下内容不仅仅适合职场新人,同样适合在职场打拼前三年的朋友。 永远不要说“我不知道” 这一条,重点针对技术方面,当然职场其他方面也相同,尤其是在公司。作为一个软件工程师,最起码你得努力将自己进阶到「合格」这个级别,因为在这个级别,你已经具备了熟练的搜索技巧,常用的技术问题答案解决方法,所以很少有问题是你动手解决不了的。 具备职业精神 只要是在工作期间,那么就不要携带任何你的生活情绪;工作中不单单要把分配给你的任务做好,还要有主动承担和背锅的勇气,如果想参与产品发展相关业务,那么你就得像产品经理一样,时时刻刻注意跟你交互的每一个人的用户体验,这些都是优秀互联网人起码的职业精神。 学会「爬山」 我要说的可不是真正意义上的爬山。 每个行业都有发展趋势,你要在入行的初期就开始培养自己的趋势观察和预测分析能力,能了解自己在当前行业的定位,并适时向上爬,目标要一只保持是山顶。 向上汇报 不管公司规模大小,你都会有一个上司,那就少不了汇报,关于这一点,很多人没有做到正确的姿势:「先结果,后原因」很多人恰恰弄反了。 不要越俎代庖 很多人是一副热心肠,特别积极热情,中午吃个饭恨不得把所有人都问一遍要不要帮忙,需要带的人越多他越爽。然而在工作中如果泛滥运用这种热情,很容易好心办坏事。 该是谁的事情谁负责,你可以在他主动请求你帮忙时提供必要的帮助 ,不可大大咧咧的指手画脚甚至于自己接过来替人家干了

在NPM上发布beta或alpha版

孤街浪徒 提交于 2020-12-24 21:23:12
来源: Lara https://www.zcfy.cc/article/publishing-a-beta-or-alpha-version-to-npm 大多数软件在发布之前都有beta版 — 该版本包含某些还处于试验阶段的功能,尚未达到生产就绪状态。 常常会有一些beta测试用户群体,他们使用该版本,对其进行测试,提交bug和其他发现的问题。 开发NPM module也有相同的过程。那么我们如何通过NPM部署beta版本呢? 如何部署 beta 版 实现新功能之后,我们首先要做的就是像常规发行版本那样,对版本进行修改。 在你的版本末尾添加 beta.0 非常重要。 .0 表示它是哪个版本。当我们对 beta 版进行修补发布新的 beta 版本时,我们会将 .0 递增到 .1 ,以此类推。 因此,我们的版本格式应如下所示:3.1.0-beta.0. 接下来,我们将继续提交所有的更改。 除提交以外,给beta版本添加git标签也是一个好习惯。可以通过命令 git tag 3.1.0-beta.0 添加一条标签。 你可以运行 npm version 3.1.0-beta.0来更新package.json,同时创建一个git标签 (请参考 https://docs.npmjs.com/cli/version). 现在可以发布 beta 版本了。 发布 beta 版或 alpha

React 16 beta 版发布!

我的梦境 提交于 2020-12-24 16:00:44
作者: lizheming 编辑:魔卡 原文地址: http://www.zcfy.cc/@lizheming ━━━━━ 令人欣慰,React 16 首个 beta 版已经发布,可以公开测试了!🎉 下面我来告诉大家如何使用以及新版的一些值得注意的地方。 如何使用 安装 由于还是 beta 版,常规的 NPM 安装命令仍然会使用 15.6 正式版。beta 版我们使用 next 标签发布在 NPM 上,你需要使用如下命令安装使用 beta 版: # Yarn yarn add react@next react-dom@next # NPM npm install --save react@next react-dom@next Javascript 环境要求 由于 React 16 依赖 新的数据集合类型 Map 和 Set ,所以我们不支持一些老浏览器和设备(例如 <IE11)。如果你要支持它们的话,最好为项目引入一个全局的 Polyfill,core-js 和 babel-polyfill 都是不错的选择。 下面是在 React 16 中使用 core-js 来支持老浏览器的示例: import 'core-js/es6/map'; import 'core-js/es6/set'; import React from 'react'; import ReactDOM from

他来了,支持多线程的Redis6.0他来了!

故事扮演 提交于 2020-12-24 15:59:42
来源:https://www.cnblogs.com/mr-wuxiansheng/p/12884356.html 作者:Mr_伍先生 本文总结下来主要以下几点: 虽然支持多线程,但默认不开启 配置线程数要小于CPU数 虽然开了多线程,但其实还是单线程处理逻辑,不用担心线程安全问题 多线程主要解决I/O读写瓶颈问题,针对业务量达到亿级的应用,常规项目没有必要使用 Redis 6.0 之前的版本真的是单线程吗? Redis 在处理客户端的请求时,包括获取(Socket 读)、解析、执行、内容返回(Socket 写)等都由一个顺序串行的主线程处理,这就是所谓的“单线程”。 但如果严格来讲从 Redis 4.0 之后并不是单线程,除了主线程外,它也有后台线程在处理一些较为缓慢的操作,例如清理脏数据、无用连接的释放、大 Key 的删除等等。 Redis 6.0 之前为什么一直不使用多线程? 官方曾做过类似问题的回复:使用 Redis 时,几乎不存在 CPU 成为瓶颈的情况, Redis 主要受限于内存和网络。 例如在一个普通的 Linux 系统上,Redis 通过使用 Pipelining 每秒可以处理 100 万个请求,所以如果应用程序主要使用 O(N) 或 O(log(N)) 的命令,它几乎不会占用太多 CPU。 使用了单线程后,可维护性高。多线程模型虽然在某些方面表现优异

Java中高级核心知识全面解析——Redis(简介、基本数据结构、跳跃表【简介、实现】)上

丶灬走出姿态 提交于 2020-12-24 15:57:59
目录 一、5种基本数据结构 1.Redis简介 1)Redis 的优点 2)Redis 的安装 3) 测试本地 Redis 性能 2.Redis五种基本数据结构 1)字符串 string ①、SDS 与 C 字符串的区别 ②、对字符串的基本操作 ③、设置和获取键值对 ④、批量设置键值对 ⑤、过期和 SET 命令扩展 ⑥、计数 ⑦、返回原值的 GETSET 命令 2)列表list ①、链表的基本操作 ②、list 实现队列 ③、list 实现栈 3)字典 hash ①、渐进式 rehash ②、扩缩容的条件 ③、字典的基本操作 4)集合 set ①、集合 set 的基本使用 5)有序列表 zset ①、有序列表 zset 基础操作 二、跳跃表 1.跳跃表简介 1)为什么使用跳跃表 2)本质是解决查找问题 3)更进一步的跳跃表 2.跳跃表的实现 1)随机层数 2)创建跳跃表 3)插入节点实现 第一部分:声明需要存储的变量 第二部分:搜索当前节点插入位置 第三部分:生成插入节点 第四部分:重排前向指针 第五部分:重排后向指针并返回 4)节点删除实现 5)节点更新实现 6)元素排名的实现 一、5种基本数据结构 1.Redis简介 “ Redis is an open source (BSD licensed), in-memory data structure store, used as

2020年末总结,脚踏实地,一步一个脚印——致敬自己一年的心酸历程

 ̄綄美尐妖づ 提交于 2020-12-24 15:57:36
摘要 :恰逢官方征文,谨以此篇记录自己一年的心酸历程与前端知识的感悟。 目录 在时代工场的主要工作 我为什么从时代工场离职? 我辞职后去了哪里? 先说说我的经历吧 分享给前端人一些我的博客整理,希望也可以帮助到你 关于粉丝高频疑惑的解答 在时代工场的主要工作 先简单说一下自己这一年的变化吧,以前是在时代工场办公,是一个初创的共享办公科技公司,在那边开发过时代工场后台管理系统,时代工场小程序,时代工场APP,时代工场网站,业余时间还要顺便运营一些新媒体(小公司,你懂的,人手不够,广泛撒网),APP是基于APICloud这种敏捷式开发平台开发,一套代码可以适配两种操作系统,自己一个人重零开始到上架Android应用到腾讯应用包、百度手机助手、华为应用市场、小米应用商店、阿里应用分发平台,APPStore整了一个全套流程。 上架的流程可以参考我往期的文章。 https://blog.csdn.net/weixin_41937552/category_9342190.html 至于微信小程序是采用的微信小程序那套体系,这个创业公司搞这个玩意所有的认证开发测试等都需要自己来,不要问为什么,问就是成本。框架采用的vue,网站也是采用的vue,网站及小程序用来展示页面,里面的数据共用一个后台管理系统。系统老板着急出成果,刚开始简单找了个模板,后面不断优化,已经用PHP逐渐改成自己想要的那种模样啦

不允许程序员透露薪资!!!凭啥?

|▌冷眼眸甩不掉的悲伤 提交于 2020-12-24 14:26:40
你肯定遇到过... 1 明文规定 我相信读者里面90%以上的朋友,入职公司的时候都会要求签一个协议,或者公司的明文规定,员工之间不能讨论薪资。 有的公司做的更绝! 谁如果讨论薪资被领导知道,谁就立刻马上滚蛋!那有没有想过这是为啥呢? 我们先来讨论商品上的一个词语:价格歧视,价格歧视是什么意思呢? 价格歧视(price discrimination)实质上是一种价格差异,通常指商品或服务的提供者在向不同的接受者提供相同等级、相同质量的商品或服务时,在接受者之间实行不同的销售价格或收费标准。 其实我们现在说的大数据杀熟,就是价格歧视最典型代表,在外面订酒店经常发现,朋友的手机价格和我的完全不一样。 商家为什么要搞价格歧视呢?显而易见,为了挣更多的钱,获取更多的利润。 从本质上讲,不同员工不同薪资也是一种价格歧视!(这里只是个比如,我们当然不是商品了) 虽然都是价格歧视,但企业究竟是怎么获取最大收益呢? 2 企业的心思 拿2种情况来举例: 1、 老板害怕很多人知道自己的价值! 大家知道在一个信息不对等的环境中,企业所掌握的信息必然是大于员工的。 企业就是利用这种信息差来获取最大的利益,HR 就成为了企业招聘节省开支的代言人,比如 HR在应聘者面试的时候喜欢压价 。 这里面有2个可能,第一,HR工资一般比程序员工资低,有些难免心理不太平衡,凭啥要这么高工资;第二,有些公司压价成为习惯性动作

阿里巴巴盒马前端上岸总结

烈酒焚心 提交于 2020-12-24 09:41:16
春招总结 记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学期开始就着手准备面试了: 知识总结 当时也是没有什么方向,在牛客网上刷题,效果也不是特别好。后来和实验室的一个去了 阿里云 的学长,做了一次长时间的交流,逐渐摸清了些学习方法。4月份的时候,开始制作自己的个人博客网站, 并按照前端的技术栈,结合牛客网上别人的面经,开始系统地梳理知识体系,定时定量地写总结博客 。记得把前端的基础加上数据结构的知识断断续续直到8月-9月才全部写完。(也挺感谢那个充实的暑假的哈哈) 一些实战 之后到了大三上学期,我开始陆续找一些日常实习,10月份的时候,运气还行,拿到了滴滴,美团,抖音的面试,只有滴滴到了二面,其他的全是 一面挂 😂。当时面试完下来,我都会问面试官我有什么不足,怎么去改进,就这样 一边继续巩固基础,一边埋头优化自己的项目,在博客也更新工程化的知识总结,一直持续到2020年的2月份 。 现在想想,自己的春招这么顺利,也同当时大二大三积累的多,有一定的关系。 反思 其实,面试的时候, 首先 ,基础一定要按照体系,反复地去复习,形成自己的体系树,这样面试官换角度来问基础的时候,你要保证可以灵活地解决。 第二 ,就是项目

根据标签分布来选择损失函数

徘徊边缘 提交于 2020-12-24 09:34:48
来自 | 知乎 作者丨马东什么 来源丨https://zhuanlan.zhihu.com/p/304462034 编辑丨极市平台 本文仅作学术交流,如有侵权,请联系后台删除。 本文 约2000字 ,建议阅读 5 分钟 本文介绍了损失函数与标签分布的联系。 首先回到经典的面试问题: 为什么线性回归使用mse作为损失函数? 为什么逻辑回归二分类常用二元交叉熵作为损失函数? 熟悉lgb、xgb或者是sklearn中的各类回归模型包括了线性回归,tweedie回归等等应该都比较熟悉,我们在模型的框架之下可以选择不同的损失函数,以lightgbm为例: 针对于回归问题有非常多的备选损失函数,那么这些损失函数什么时候用,为什么? 回到基本面试问题,首先我们需要知道的是, 使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推出所有样本构成的极大似然公式,然后再使用凸优化的方法比如常见的梯度下降法进行求解。 以常见的二分类问题和回归问题为例: 二分类问题的常见假设就是标签服从伯努利分布: 伯努利分布 是一个离散型机率分布。试验成功,随机变量取值为1;试验失败,随机变量取值为0。成功机率为p,失败机率为q =1-p,N次试验后,成功期望为N*p,方差为N*p*(1-p) ,所以伯努利分布又称两点分布。 观察到的数据为D1,D2,D3,...,DN

基于netty手写Tomcat

回眸只為那壹抹淺笑 提交于 2020-12-24 06:05:19
作者: MovW 原文:http://suo.im/5Ar7t8 netty 简介 Netty一个基于NIO的客户、服务器端的编程框架 1.环境准备 maven依赖 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.42.Final</version> </dependency> 12345 RequestMethodEnum 请求方式 public enum RequestMethodEnum { GET( "GET" ), POST( "POST" ); public String code; RequestMethodEnum(String code) { this.code=code; }}12345678 ParentServlet 父类servlet public abstract class ParentServlet { public void service(ParentRequest request, ParentResponse response) throws Exception { //service 方法决定调用doGet、doPost; if (RequestMethodEnum.GET.code