程序员不同职级能力要求(P5-P8)!

前言

现在去外面找工作,都会问在当前公司的职级。

如果当前公司没有职级,就会问在之前公司的,说是为了方便快速的筛选候选人。

但其实工作多年你会发现,职级晋升还会和,比如:运气、趋势、团队这些东西挂钩。

有的5年升P7,有的7,8年都升不到,这里面:能力、经验、贡献,其实并不是最主要的。

图片

业务需要

如果是急需扩张的业务,那么进来的人都会定高P。

学会画饼

给老板画一个他听得懂而且能拿得出手的饼,让他拿去给更大的老板画饼。

会做事在大厂不是核心竞争能力,至少不是高P的核心竞争力,会讲段子才是。

跟对团队

小公司跟大公司不一样,小公司你能赚钱,就对老板有价值。

大公司的业务,谁都能做,谁做也没有太大的差别,那谁对公司的贡献大呢?

  • 你做多做少,对公司都没什么实质影响。

但功劳在谁手里,谁就能从公司获得更多。

不过为了跳槽和涨薪需求,大家还是得了解下不同职级的一些要求。

下面是阿里P级别的能力要求!

P5

模块负责人!

能写好代码,注意代码质量,并做好技术沉淀。

能独立思考,积极学习,主动沟通。

能力要求:

基本上能完成一个大的项目分配的一个模块或者子任务。

通常来说复杂度不大,一个月或以上能完成,并且能发现简单的问题并能独立解决。

P6

小组内的技术骨干!

能够独立提供项目模块的解决方案。

在技术上具有攻坚能力,能够理解自己的任务需求和团队其他人任务的关系,能够识别方案中存在的问题并给出改进方案。

能力要求:

能完成一个大型项目的子模块,具有开发的闭环能力。

能够理解业务的核心目标,理解不同模块之间的具体关系。

能够对项目的应用场景做出技术选型,提供解决方案并完美落地。

P7

技术带头人!

对自己负责的领域以负责人的身份充分理解业务与成员与团队的关系,具备一定的技术领导力

能力要求:

能够负责一个子领域的技术,知道该领域的核心问题。

能够在复杂环境下设计良好的技术框架,提供在行业领域内非常具有竞争力的技术方案并落地。

具有较强的的体系思考能力,对整体技术有完整的思考。

P8

行业专家!

团队负责人,带领团队不断拓荒整合资源最终产生业务价值,是团队的领头羊。

能力要求:

能够具备体系化的架构设计能力和技术布局能力,能与业务产生良好的协同关系。

具备行业技术视野和领域的专业性,有一定的技术影响力,能够带领团队不断拓荒。

普通程序员的天花板应该是P7,再往上不管是走技术还是走管理,都需要最核心的东西:机遇

有啥其他看法,欢迎在评论区留言讨论。

想看技术文章的,可以去我的个人网站:http://hardyfish.top/。

  • 目前网站的内容足够应付基础面试(P6)了!

每日一题

题目描述

给一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效二叉搜索树定义如下:

  • 节点的左子树只包含小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

解题思路

中序遍历时,判断当前节点是否大于中序遍历的前一个节点。

如果大于,说明满足 BST,继续遍历,否则直接返回 false

Java代码:

class Solution {
    long pre = Long.MIN_VALUE;
    public boolean isValidBST(TreeNode root) {
        if (root == null) {
            return true;
        }
        // 访问左子树
        if (!isValidBST(root.left)) {
            return false;
        }
        // 访问当前节点:如果当前节点小于等于中序遍历的前一个节点,说明不满足BST,返回 false,否则继续遍历
        if (root.val <= pre) {
            return false;
        }
        pre = root.val;
        // 访问右子树
        return isValidBST(root.right);
    }
}

Go代码:

func isValidBST(root *TreeNode) bool {
    pre := math.MinInt
    var dfs func(*TreeNode) bool
    dfs = func(node *TreeNode) bool {
        if node == nil {
            return true
        }
        // 访问左子树
        // 访问当前节点:如果当前节点小于等于中序遍历的前一个节点,说明不满足BST,返回 false,否则继续遍历
        if !dfs(node.Left) || node.Val <= pre {
            return false
        }
        pre = node.Val
        // 访问右子树
        return dfs(node.Right)
    }
    return dfs(root)
}

Python代码:

class Solution:
    pre = -inf
    def isValidBST(self, root: Optional[TreeNode]) -> bool:
        if root is None:
            return True
        # 访问左子树
        # 访问当前节点:如果当前节点小于等于中序遍历的前一个节点,说明不满足BST,返回 false,否则继续遍历
        if not self.isValidBST(root.left) or root.val <= self.pre:
            return False
        self.pre = root.val
        # 访问右子树
        return self.isValidBST(root.right)

复杂度分析

时间复杂度:O(n)

  • 其中 n 为二叉搜索树的节点个数。

空间复杂度:O(n)

  • 最坏情况下,二叉搜索树退化成一条链,因此递归需要 O(n) 的栈空间。

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。


需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

网络安全学习路线&学习资源在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值