Do not panic!
post @ 2023-03-09

创业失败的TOP 20

  1. No market need
  2. Ran out of cash
  3. Not the right team
  4. Get outcompeted
  5. Pricing / cost issues
  6. User un-friendly product
  7. Product without a business model
  8. Poor marketing
  9. Ignore customers
  10. Product mistimed
  11. Lose focus
  12. Disharmony among team / investors
  13. Pivot gone bad
  14. Lack passion
  15. Failed geographical expansion
  16. No financing / investor interest
  17. Legal challenges
  18. Didn’t use network
  19. Burnout
  20. Failure to pivot
Read More

斯坦福大学公开课《如何创业》笔记

斯坦福大学《如何创业》— 保罗格雷厄姆

01 创业前的准备

  • 创业需要与直觉相悖
    • 第一条:在选人时有时候要相信自己的直觉(与自己喜欢和尊重的人共事)
    • 第二条:创业不需要创业知识专家(不能为了创业走过场,抛弃形式主义;不要拘泥商业法律细节;早期要大开大合);而是对客户的熟知(聚焦产品而不是创业过程);创造顾客喜欢的产品
    • 第三条:找诀窍在创业中是行不通的;顾客不关心小诀窍,只关心产品能不能满足需求;
    • 第四条:创业是很熬人的(占据生活;无处倾诉);抱怨无用,不能透露出软弱和软弱。
    • 第五条:不能说出来(说出自己在创业);不能有丝毫犹豫、恐惧(如果有最好有强烈的克服意愿)
    • 第六条:获得创业创意的方法,就是不要刻意去想创意(无意间碰到)
      • 1、学习专业知识(一技之长)
      • 2、绝对感兴趣的问题
      • 3、与喜欢与尊重的人共事

02 创业四要素

  • 为何要创业
    • 1、不能为了创业创业;致富的手段有很多
    • 2、当创业是解决眼前问题的唯一途径时;其他方法都不能胜任的时候,再考虑创业
    • 常见理由(世俗):
      • 1、自由「自己当老板
      • 2、经济回报(可能)
      • 3、自主决策
    • 最好的理由:
      • 当你只能创业时(再无他法);对于自己想法极度热衷;
      • 1、无论如何都得完成它(创意)
      • 2、创意很重要;它会让世界跟美好
  • 四要素
    • 好想法
      • 1、先有想法再去创业;空闲时,最常想到的的创意
      • 2、任何好的创意是在过程中打磨与发现的;可能开始并不被人看好(开始就很优秀的创意可能很多人都尝试过了);
      • 3、创意不必要太宏大,只需要针对特定市场,在从小市场拓展
      • 4、’市场’一定是有发展前景的,可以看到未来 10 年的发展
      • Why now?
        • 1、 好创意解释起来很简单
        • 2、好创意要么跟现有大公司背道而驰;要么是新理念;一味的抄袭与修改,不回成功
    • 好产品
      • 1、好产品是好想法通往好公司的必经之路;(产品开发、与客户沟通再优化;其他事情都可以暂时靠后)
      • 2、与其让产品让大部分人都喜欢;不如让小部分人钟爱(少部分狂热的用户)
      • 3、扩展市场的方法:靠客户口碑相传(自传播);如果没有好产品就开始规划蓝湖是很致命的;新公司很好有因为竞争而倒闭,大部分是把时间浪费在别的无用之地
      • 4、从简单入手;开始的着手点一定要小;(可以反向督促开发者聚焦核心)
      • 5、需要积累足够的客户来建立客户反馈机制(指标:每天都会建立反馈就行;开始不需要在大平台投放);一定要身体力行的如招揽客户,必须非常理解这部分客户(建立忠诚度)。
      • 指标:活跃用户、活跃等级、用户保有率、收益、净推荐值
      • 好产品是一切的前提、
    • 好团队
    • 好的执行

03 财务&法务

- 1、注册一家公司
- 2、公司选址(法律清晰稳定);初始文件的保存
- 3、股权的划分
    - 执行比点子重要;所以需要为执行创意的人提供股权
- 4、股权的授予
    - 4 年 + 一年悬崖期;(即使是创始人、哪怕是一个人的创始团队)
- 5、募集资金
    - 卖的是什么?是公司未来的估值期望
- 6、投资者常见需求
    - 1、董事席位(监管);钱很重要,但是人更重要(顾问、战略判断)
    - 2、按比例投票权(避免股权稀释);
    - 3、知情权;给予期限的信息和定期报告(小心过分的信息要求);
- 7、公司运营支出
    - 对投资人负责;控制花钱的边界
    - 时刻想着账务(运营费用、收据)
    - 资金链很重要;时刻关注
- 8、雇佣&解雇
    - 创始人雇佣问题(把公司和作为创始人分开;创始人也需要工资;支付工资税;股票不能作为工资,至少需要支付最低工资)
        - 创始团队分离;解雇创始团队成员(在你没有炒人之前都不算是个真正的创业者);
            - 炒人的方法:1、快;2、沟通有效(不能模棱两可)最好有第三者在场;3、结清工资和假期;4、解除员工权限(信息保密);5、立即赎回股份;
            - 一个优秀的管理者需要能够处理好员工辞退问题
    - 不管是雇员还是合同工都要做好记录(走正规程序;文件的形式很重要)

04 客户增长

- 不正确的做法
    - 1、一个人埋头开发产品(无法建立反馈);2、独家新闻发布;3、等用户上门(忠诚度低);4、早期花钱卖用户(用户忠诚度不高;免费也是一种程度上的花钱买用户);5、放弃(过早)
- 推荐做法
    - 1、加入想要创业的行业(了解运作机制、发现痛点);对行业充满热忱
    - 2、确定客户群体(定向提供服务、解决需求);提供完整的解决问题的流程图
    - 3、开发产品(MVP、可行性很重要);用最简单的办法解决问题;产品定位(一句话描述产品、已经产品定位)
    - 4、第一批用户(从身边人向外辐射);地推(不过分追求转化率),先积攒一批用户比较重要
    - 5、如何跟用户打交道:1、客户能够联系到你(手机、客户群);2、最好是面对面交流、友好高效沟通(社交方式);3、宏观角度观察产品运作(转化率、留存率);4、用户的诚实度(免费 vs 付费、关系亲近可能越不真实;要想得到真实的反馈,就要让客户花钱)
    - 6、用户增长(初期);不过分追求完美以及过分关注细节;只需要关注核心客户;深度挖掘用户需求背后的需求(不必要立即响应、投入开发;不能一股脑的给产品添加新特性;客户也会说谎掩盖真正的问题)
    - 7、产品发布阶段;不必低调(可能错失早期用户);不必过分控制发布时机;
    - 8、企业增长阶段;多尝试各种用户增长模型(多对比、每次只聚焦一种增长模型;沉淀模型)
- 增长模型
    - 1、留存增长模式
        - 吸引回头客、复购率(续费率)
        - 注重用户体验;关注「用户生命周期价值(用户在某个周期内的净利润)」「同期群分析(即多时间维度,对比一个指标;比如两年的留存率)」
    - 2、病毒增长模式
        - 自增长;用户自行传播;口碑传播
        - 注重用户满意度;建立推荐机制(用户裂变、邀新返佣、周边奖励)
    - 3、付费增长模式
        - 用户补贴;
        - 计算投入产出比(获得用户的产品要低于用户生命周期价值);控制获客成本;注意回报时间(3-12月)和可持续性;
    - 增长受阻
        - 预设置乐观的增长曲线(基于现金流;综合评估);不能偏离该条曲线;较长时间严重偏离(3 - 4周左右不增长),就需要调整增长策略、或者创业方向

05 市场垄断

- 找准价值
    - 市场总值X;个人参与Y;找到 x/y 尽可能靠近 1 的市场(市占率)
- 向人们说谎
    - 垄断公司极力开脱自己垄断的事实;并把自己描述为多元市场的参与者之一(即把多个领域合并起来作为一个整体市场看待)
    - 非垄断公司极力把自己描述为垄断的生意;比如自己描述为多元市场的并集(即在某个细分领域里垄断)
- 如何构建垄断
    - 进入小市场(细分领域);大市场意味着较模糊的自我市场定位以及激烈的竞争
    - 垄断公司一定是技术垄断(比第二名至少是一个量级的):专利技术、网络效应、规模经济、品牌
    - 持续性的垄断(大部分公司的80%利润是从第 10 年开始的)
    - 建立复杂的垂直综合性垄断结构
- 后发优势
- 创新的历史
- 竞争心理

06 莫要轻视小市场

07 企业文化乃灵魂

08 融资问题一扫光

09 如何做好四要素

10 团队组建多提问

11 伟大优秀兼并

12 信息时代『软』为先

13 宣传观察做增长

14 学学模拟会议观

15 硬件设计好好谈

16 用户访谈路满满

17 运营管理巧上手

18 注意细节为日常

19 综合考虑要超前

20 最后的建议

Read More
post @ 2022-06-21

如何成为更好的面试官

第一章

HR+用人部门 = 专业意见 + 决策录用

HR与用人部门的区别

招聘端:
1、责任:淘汰错误的候选人
2、关注:候选人有何不妥
3、筛选:候选人软性技能
4、在用人权上有否定权
用人端:
1、责任:找出正确的候选和家人
2、关注:找出候选人中最合适的
3、筛选:候选人的硬性技能
4、在用人权上有决策权

第二章

理论知识,SATR 面试法

面试是挖掘应聘者 和目标岗位相关的信息(语言和非语言),并根据这些信息预测其在目标岗位上的未来绩效的过程。

面试类型:

  • 按组织形式分
    • 结构化面试
      • 面试前:界定岗位胜任力、设计面试问题
      • 面试中:实施免试
      • 面试后:评估
    • 非结构化面试
  • 按内容分
    • 情景化面试
    • 压力面试
    • 专业面试
    • 行为面试
  • 按参加人数分
    • 小组面试
    • 一对一面试

岗位胜任力:

表象:能不能
    经验、知识
潜在的:合不合适、愿不愿意
    能力:能做、合适做
    动机:值得、喜欢、可以

设计面试问题:

封闭式:需要对方快速做出回答的情况(引导到开放式)
开放式:需要对方给出大量的事例、素质水平(和实际情况是否具有一致性)
假设式:了解应聘人的反应和应变能力;准确性、方向性(在无法给出准确答案的情况下)
连串式:适用于压力面试

面试原则

  1. 一题对应一个主要维度
  2. 题目信息量要收敛
  3. 引发丰富信息,而不是选择性简单回答
  4. 对问题的理解不会歧义
  5. 能够区分不同能力水平的人答案的差异性
  6. 和候选人背景吻合
  7. 和候选人目标只能匹配
  8. 行为题免问成假设题
  9. 假设题情景描述的具体程度适中
  10. 语言精练、通顺、易懂、准确、无“方向性”、尽量不要引导

简历中的危险信号

  • 工作经历的断层和交叠
  • 不完整的数据
  • 数据不清的信息
  • 不稳定的迹象
  • 离职的原因
  • 日期冲突
  • 混乱无序或不整洁的罗列
  • 私人信息过多

面试中

  • 注意项

    1. 欢迎+自我介绍
    2. 破冰
    3. 候选人自我介绍
    4. 面积技巧
    5. 介绍公司岗位情况
    6. 对方提问
    7. 告知何时出结果,结束语
  • 场地:

    • 不同情景下的个人空间
    • 社交空间:1.2-3.6m
    • 公共空间:>3.6m
  • 面试中:方法技巧

    • 面试的核心:就是学会提问(一个问题+两个追问)
    • 有故事可讲:一个行为化问题 + 两个追问
    • 没有故事可讲:一个情景化问题 + 两个追问
    • 提问的核心:
      • 针对过去的行为进行提问。提问行为而不是假设和观点
      • 追问的核心:追问行动和结果(动机、措施、效果)
  • STAR 面试法

    • Situation(背景、情境)、Task(任务)、Action(行动)、Result(结果)
    • 不好的回答:模糊的、主观的
  • 实施面试的原则

  • 确保你的理解、确保候选人的理解

  • 不要急于评估

  • 不哟啊急于寻找证据来支持自己的主观判断

  • 对任何信息都保持警惕

    如何控制面试的结构和进度

  • 避免不必要的细节-果断并且有礼貌的打断

  • 拒绝模糊或者不完整的回答

  • 暂时跳过某些问题

  • 让候选人自己负责整体进程

    记录

  • 记什么?:关键字、STAR(方便重新构建面试内容);特定行动和事实,而不是主观判断

  • 何时记?:面试结束后马上记录

  • 怎么记?:保持中性、形成一套属于自己的笔记符号习惯、记录详尽(目光接触)

    面试官合议
    交换意见、相互补充
    听取他人意见
    降低个人主观

总结

  • 简历不能代表本人
  • 不要忽视求职责的个性特征
  • 让应聘者更多的了解公司
  • 注意不忠诚和欠缺诚意的应聘者
  • 注意特殊人员慎重做决定
  • 面试官自身形象
  • 招聘设计的法律问题
Read More
post @ 2022-05-19

Kotlin & Java 语法对比

null safe

1
val userName = a?.b?.c?.d ?: ""

对象实例化

1
2
class User(val name: String, val age: Int)
val user = User("yalda", 31)
Read More

菜鸟《Kotlin 教程》笔记

Kotlin 基础

背景

  • 由 JetBrians 设计并开源
  • Kotlin 不仅仅是一门 JVM 方言(分为 Kotlin Native \ Kotlin JS \ Kotlin JVM)
  • Google I/O 2017 年作为 Android 官方首选开发语言
  • 文件以 .kt 结尾(其中脚本 DSL 以 .kts 结尾)
  • 无需匹配目录和包(不同于 Java 一个文件一个类),可以放在任何文件和目录

优势

  • 简洁:大大减少样板代码的数量
    • 结构性的 get/set、构造函数、单例
    • 字面量创建 List/Map
  • 安全:语法层面避免空指针异常
  • 互操作性:充分利用 JVM 、 Android 和浏览器的现有库
  • 体验一致的开发工具链
  • 支持拓展(类似与 Swift 的 extension);操作符重载
  • 语法糖很多
    • 通过语法糖实现了一下基本设计模式(单例、委托、策略、观察者等)
Read More
post @ 2022-01-29

Swift 常见语法错误

  • 无效的重复声明
1
2
3
4
5
6
7
8
let (_, errMsg) = httpError
...
let (_, errMsg) = httpError

/**
Error:
Invalid redeclaration of ‘errMsg‘
*/
  • 强制类型
1
2
3
4
5
6
7
var notFountError = (404, "Not Found Error")
notFountError = (404, "Server Side", "Not Fount Error", "Http Error")

/**
Error:
Cannot assign value of type ‘(Int, String, String, String)’ to type
*/
Read More

前端项目构建(演变与编译原理)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.
├── 前端的目的、手段与发展
│ ├── 目的
│ ├── 手段
│ └── 发展
├── 编译原理
│ ├── 语法编译(GPL \ DSL Compiler)
│ ├── 模块打包(Module bundler)
│ └── 代码压缩(Mangle)
├── 总结
│ ├── 总结
│ └── 总结
└── 任务
└── 任务

前端的目的与现状

目的

开发时:开发效率高效、降低心智负担、生态丰富、职责分明&边界清晰
编译时:编译速度快、环境稳定、语法兼容
运行时:低延迟、运行稳定

手段

开发时:多语言、DSL、类型检查、代码兼容性、尝试不同的编程范式
编译时:模块化、视图模型抽象(组件化)、DCE & LCI、代码压缩、
代码逻辑按需加载、模块编译、

现状

  • 模块化方案之变
    • SystemJS
      • 提高生产环境模块的性能的
      • Web Online Code Editor:Stackbliz \ CodeSandBox \ CodePen
      • Webpack 的 Bundle \ Chunk 的实现借鉴了 systemjs 的能力
    • AMD & UMD
      • requirejs AMD 规范
      • UMD = AMD + CommonJS 在浏览器端提供模块化
      • webpack chunk
    • CommonJS
      • sea.js
      • CMD
      • Node 环境
    • ESM
      • 建议使用
      • ES6 提出、ES11 dynamic import
  • 模型之变
    • 视图模型抽象
      • React.Component \ React.PureComponent
      • Vue SFC
    • 数据模型抽象
      • React Hook
      • Vue setup \ Composition API
      • MobX: observable
      • Redux \ Store
    • 业务模型抽象
      • 微前端子应用
  • 编程范式之变
    • IP vs FP vs OOP vs RP
      • SwiftUI vs Android
      • React Component vs React Hooks
    • Composition API vs Options API
    • Composition over inheritance
  • 架构之变
    • MVC vs MVP vs MVVM
    • CSR vs SSR vs SSG vs ISR
      • 千米云活动采用了 SSR + SSG
      • admin-web 采用了 CSR + SSR
      • ISR:增量式的渲染,是 SSG 的一种 Lazy render 方案,在请求时生成页面并缓存;解决了 SSG 无法更新的问题;
      • DPR \ SPR
    • MPA vs SPA vs 微前端
      • MPA 可以平滑迁移
      • 微前端架构
  • 工程化方案之变
    • 配置 vs 约定
    • 中心化 vs 去中心化
    • 前后端分离 -> 前后端一体化(Taro \ UniApp \ Modern.js \ Rax)

编译原理

语法编译(GPL \ DSL Compiler)

  • Vue(DSL -> JS)
    • 基于 状态机 的 Vue Parser 实现原理以及 AST 的生成
    • AST 转化以及目标代码的生成
    • DSL 在千米建站项目中的应用
  • TypeScript(GPL -> JS)
    • BNF 范式 & EBNF 范式
    • TypeScript 编译流程概览
    • 在建站 3.0 项目中的运用

模块打包(Module bundler)

Webpack

  • Dependency Graph 的基本作用
  • Tree Shaking 的实现原理
    • 代码静态分析(词法层、语法层分析;不涉及到语义)
  • 基于 Tapable 的流程管理系统

代码压缩(Mangle)

代码压缩常见的思路:Compress、Mangle、Rename

1
2
3
4
5
// sum to numbers
function towSum(pre, next) {
return pre + next
}
console.info(towSum(10, 2))
1
2
3
4
5
// compress
function towSum(pre, next) {
return pre + next
}
console.info(towSum(10, 2))
1
2
3
4
5
// rename
function t(p, n) {
return p + n
}
console.info(t(10, 2))
1
2
// 基于语义分析的压缩
console.info(12)
  • Terser
    • 基于语义分析的代码压缩

前沿以及未来

前沿

  • Bundle less | Unbundled
  • ESM next
  • DX & UX
  • Micro-FrontEnd
  • Pro Code vs Low / No Code
  • 跨端技术\前后端一体化
    • 字节 Modern.js
    • 淘宝 dove

总结

不是指做 UI 的技术,而是由 Web 原生语言、Web Runtime、Web 技术生态组成的技术栈,不是只在浏览器里才有前端技术,而是有 Web Runtime、有 Web 语言的地方,就有前端技术

传统前端开发不是成熟的软件研发体系,缺乏足够的抽象和基建,导致 DX 和 UX 始终存在矛盾,此消彼涨。以往的产品开发中,习惯更重视 UX,这有两方面的原因,一来是因为产品是由产品主导,因此更重视 UX, 不会过多关注开发者体验,再就是缺乏足够的抽象和基建,导致 DX 和 UX 之间必须牺牲一个。

Read More

《Swift 核心技术与实现》— 01.语言基础

Reference

  • 第一章:Swift简介
  • 第二章:基本数据类型
  • 第三章:运算符
  • 第四章:流程控制

第一章:Swift简介

历史版本 & 新增特性

Swift2

  • Error handing \ guard 语法 \ 协议支持扩展

Swift3

  • 新的 GCD 、 Core Graphics
  • NS 从老的 Foundation 类型去除
  • sequence
  • 权限控制 fileprivate \ open (open > public > fileprivate > private)
  • 废弃(++ 、- -)
Read More
post @ 2021-11-29

Svelte Cheatsheet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
. # Svelte
├── Component Format
├── Template Syntax
│ ├── Tags
│ ├── Attributes and Props
│ ├── Text Expressions
│ ├── Comments
│ ├── Block
│ ├── Element Directives
│ ├── Component Directives
│ ├── <slot />
│ └── Special Elements
├── Run Time
│ ├── Lifecycle | Context
│ ├── Store
│ ├── Motion | Transition | Animate
│ ├── Custom Element API
│ └── Client-side | Server-side
└── Compile Time
Read More
post @ 2021-11-21

前端工程师 Tech Q&A

级别标准

  • P3:实习开发、功能开发
  • P4:主要开发、功能模块独立开发
  • P5:项目负责人、核心开发、技术问题总结者、技术分享、人员培养
  • P6:团队负责人、问题终结者、跨组沟通&协调资源、团队培养提升

References

如下所列前端工程师所涉及领域
领域(子领域)设置题目若干;
题中包含标签(涉及深度、提问触发词)& 答题点(必知 Must know、应知 Should to know、可知 Posibility)

  • 语言:JavaScript、ECMAScript、TypeScript、HTML、CSS
  • 框架&环境:浏览器、研发工具、容器、框架通识
  • 类库&库生态:React、Libs Ecosystem、数据流、SSR & SSG、BFF
  • 跨端技术:微信小程序、多端统一、Node、Electron、Native、Hybrid
  • 研发链路:初始化、包管理、规范标准、调试、编译、构建、测试、发布、监控
  • 性能&安全:性能指标、性能评估、性能优化、源码安全、Web 安全
  • 工程化:工程体系、微前端、低代码、Bundleless、CI\CD、综合能力
Read More
⬆︎TOP