大龄程序员别再盲目痴迷于技术?

10,882 阅读4分钟

大家好呀,我是飞鱼

文章首发到公众号:月伴飞鱼,每天分享程序员职场经验!

文章内容收录到个人网站,方便阅读:hardyfish.top/

当面试问及程序员未来规划时,他们都会千篇一律地说想提升技术水平,很少有人会思考去深耕一个细分领域成为这个领域的专家。

咱们程序员啊,往往容易陷入一个误区,觉得技术就是一切,只要技术够牛,就能在职场稳如泰山。

可现实真的是这样吗?对于咱们大龄程序员来说,情况可能更严峻。

随着年龄增长,我们在技术钻研上花费了大量的时间和精力,代码写得越来越溜,各种技术难题也能攻克不少。

但与此同时,我们却可能忽视了其他同样重要,甚至更为关键的能力培养。

在商业世界里,赚钱可不仅仅是靠技术。

你技术再好,如果缺乏商业能力、变现能力,那也只能是拿着一份相对固定的工资,做着被安排的项目,很难实现收入的大幅提升。

而且一旦面临裁员危机,就会显得特别的绝望和无助。

比如说,你知道怎么选一个有潜力的项目赛道吗?

你懂得如何去营销推广自己做出来的产品,让它能真正产生经济效益吗?

你又是否具备和客户、合作伙伴有效沟通,拿下订单的能力呢?

这些商业方面的能力,很多大龄程序员可能都不太擅长。

看看那些成功的创业者或者企业管理者,他们不一定技术出身。

但人家懂得把握市场需求,知道如何整合资源,通过各种商业运作让项目盈利。

而我们,一味地在技术的小圈子里打转,等到被裁员的那一天,才发现除了写代码,自己好像啥也不会,那得多心酸。

所以,大龄程序员们别再只盯着技术,要开始关注商业能力和变现能力的提升。

可以利用业余时间去学习一些市场营销、项目管理、商务沟通之类的知识,拓宽自己的视野和技能树。

当面临职场变动时,我们不仅不会绝望无助,反而能凭借这些新培养的能力,找到更好的发展机会,开启人生的新篇章。

那么30岁以后的程序员出路又在哪里呢?

我认为最好的办法就是拥抱业务。

努力深耕一个细分领域,比如物流、电商、金融等。

在做这个领域的同时努力思考这个领域客户的真实痛点是什么,什么样的技术能给他们带来效率或者收入的提高。

怎么样利用技术降本增效,让你的企业在同行的竞争中脱颖而出,让公司具有更强的竞争力,从而带动公司的业务和收入的增长。

国内公司现状,90%公司纯做业务吧,还是有些公司技术有东西的。

所以对技术执着的话,就去那10%,关键是很多公司业务也是没太大壁垒的,主要靠销售而已。

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

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

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

每日一题

题目描述

给你两棵二叉树 rootsubRoot

检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。

如果存在,返回 true ,否则,返回 false

二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。

tree 也可以看做它自身的一棵子树。

解题思路

首先判断一个树是否是另一棵树的子树,很明显想到可以用递归。

但是两棵树完全相同也可以看做一棵树是另一棵树的子树。

所以自然而然想到用一个判断两棵树是否相同的递归函数。

代码实现

Java代码:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSubtree(TreeNode s, TreeNode t) {
        if (t == null) {
          return true; // t 为 null 一定都是 true
        }
        if (s == null) {
          return false; // 这里 t 一定不为 null, 只要 s 为 null,肯定是 false
        }
        return isSubtree(s.left, t) || isSubtree(s.right, t) || isSameTree(s,t);
    }
    /**
     * 判断两棵树是否相同
     */
    public boolean isSameTree(TreeNode s, TreeNode t){
        if (s == null && t == null) {
          return true;
        }
        if (s == null || t == null) {
          return false;
        }
        if (s.val != t.val) {
          return false;
        }
        return isSameTree(s.left, t.left) && isSameTree(s.right, t.right);
    }
}