到底是什么定义了程序员的价值,我的价值我说了算~

怎样做一个有价值的程序员?

从一段代码说起

package com.jeff.study.jdk8.stream;




import java.lang.reflect.Modifier;

import java.util.Arrays;




/**

 * @Description 迭代常量类中的某些属性

 * @Date 2021/1/16 2:38 下午

 */

public class TestConstantStream {

    public static void main(String[] args) {

        Arrays.stream(Numbers.class.getDeclaredFields()).map(field -> {

            int mod = field.getModifiers();

            if (Modifier.isPublic(mod) && Modifier.isStatic(mod) && Modifier.isFinal(mod))

                return field;

            else

                return null;

        }).forEach(System.out::println);

    }

}




enum Numbers {

    ONE(1),

    TWO(2),

    THREE(3),

    FOUR(4),

    FIVE(5);

    private int value;

    Numbers(int Value) {

        this.value = value;

    }

}

jdk8 以后函数式编程流行起来,lambda 表达式、Stream API 开始被程序员们使用。

然而也总有一些程序员觉得,这些技术的升级换代并没有足够的理由让他们去重构他们的代码,已有的业务足够稳定,没必要去运用这些所谓的“骚操作”。

这些想法并不是无法理解,因为他们即便使用最原始、最 lowB 的写法一样可以实现功能,比如 foreach 和 for 两种写法都可以,我就喜欢用 for,有何不可?这些想法的人一样可以在企业中混得风生水起,只手遮天。

所以,在这些地方,技术的更新迭代并不能让掌握了它们的程序员得到什么利益和机会。那这些程序员的价值由什么决定呢?

对于程序员来讲,价值怎么体现?一个程序员的价值,就体现在他的稀缺性上。物以稀为贵么,亘古不变的道理。

“闻道有先后,术业有专攻”这句话很适用于程序员,直白点说,技术的精湛不是以年龄来评判的,有的朋友在上学时的技术水平已经比工作十来年的高了,有工作十年的水平不如工作三年的,当然也有很多程序员的技术水平是正比于年龄增长的。

作为一个老程序员,只有你的技术能力正比于年龄,才是合格的,否则就必然越走越慢,慢慢掉队,最终就只能面临被年轻人挤兑、淘汰的窘况,结果就是被迫离开程序员的队伍。

程序员要想让自己的价值持续增长,有这么几个方向可供参考。

(一)选行业

在一个行业内持续积累,对行业的理解到位,积累深厚,你的价值是巨大的。不信你去浏览招聘网站上的岗位需求,99%都要求相关行业背景。

所以,选择一个靠谱的、前景好的行业非常重要,只要这个行业能够不断发展、前进,你的积累就是有价值的,你自己就是不断增值的。

(二)技术

程序员,业务积累是屠龙刀,技术积累是倚天剑,两个都有,那就逢山开路遇水搭桥没有走不通的路了,你一定是先锋部队尖刀兵,到哪里都具有超强的攻击性。

技术上最起码的要求??/术水平和视野对得起年龄,如果有超越年龄的积累和犀利,那就没话说了,地球人已经阻挡不了你前进的步伐了。

就技术来讲,假如你掌握了一门很难又很重要的技术,那单单是这一点,就很有价值。

比如你熟悉 Windows 内核或 Android 内核,能够熟练撰写各种驱动,那找个月薪五六十K的工作不成问题。再比如你图像处理算法很牛,再比如你视频解码算法很牛,……像这些特定领域的算法,我们也叫它技术吧。如果你懂类似的算法并能实现之,恭喜你,你已经超越了 90% 的程序员了,你的重要性和价值将不可估量。

(三)产品意识

做产品也是讲感觉的,当然有时我们觉得对产品的把握是产品经理的事儿,这么讲对,也不对。产品经理虽然是不挂衔的 CEO ,但产品的最终实现,是要靠程序员的,假如你对产品没有热情、没有感觉,无所谓好无所谓坏,那很难做到出色了。

我的结论是:程序员的价值与年龄没有直接关系,价值不会反比于年龄。作为软件开发人员,自己不要给自己在年龄上设限,很多事情我们没做成,很多时候我们没能取得更大的成就,都是因为我们先给自己设置了限制,用这个限制禁锢了自己。

下面这张图来自文章“2014年中国程序员调查报告”,说明了国内程序员的年龄分布情况:

谁说程序员干不过三十岁呢,数据表明,30岁以上的程序员占比高达 48.62%,占整个程序员群里的将近一半。

2015年1月22日,我去参加 Qt 西安开发应用研讨会,有一哥们就是老程序员,40多了,宝刀正锋利呢。

王江民30多岁写软件,43岁搞出横扫杀软市场的江民杀毒。

我的老上司,40来岁了写直播流媒体协议,P2P的,传输效率高且稳定。
……

年龄只是一个自然现象,而我们的经验、认知、能力、心智成熟度,在合理的情况下,都是随着年龄增长的,廉颇不老,黄忠能战,只要你走在正确的方向上有值得称道的积累,缘何不能横刀立马顾盼自雄也。

为什么没有价值?

我一直在想,一个努力学习的人,怎么可能会没有价值?

后来因为某些机缘,我突然明白,不是你没有价值,是你的创造没有价值,是这些创造不需要你的能力。

对于程序员来说,我们都在创造代码,代码就是我们的产品或者输出。但是代码有好坏之分,即便是微信或者 QQ 这样用户规模的系统,代码也一定有好有坏。但关键是那些代码创造的是微信、QQ,所以写代码的人也就创造出了价值,有了价值就势必会得到膜拜,得到认可。

工作这么多年,待过的公司也有许多,见过对代码有洁癖的人,也见过毫无追求瞎写的,他们都在创造不同的价值。但瞎写的反而会更受到重视,会更被肯定价值。

那么价值由谁决定?不是应该由你的实力决定的吗?就好像一个杯子,材质不同价值也就不同,难道价值跟使用他们的人还有什么关系。

直观讲,技术人的价值体现为技术人的技术实力,技术实力体现在技术的输出与创造。然而你的输出与创造即使让人觉得你有两把刷子,也无法真的决定你的价值!

谁才是这场竞赛的裁判?

你又将你的技术输出在了什么地方?有人认可吗?

有几个时间点可能会是技术被认可的绝佳时机。

  • 面试:面试官直接面对你的技术,通过各种方式考察你的技术。
  • 工作:工作中完成大佬布置的具有难度的任何要求,给任务提出解决思路。
  • 会议:技术会议中提出自己的见解和思路,让别人了解你的技术。比如代码走读中以自己的技术敏锐观察力发现问题和提出解决方案。
  • 除此之外,能否被认可还取决于你自己的表达意愿和大佬对你是否感冒,这这两点我认为起了 80%的作用。

技术没有裁判,你要自己寻找公平的平台。

你能否得到机会,你能否得到匹配你自己实力的平台,真的需要自己的追逐。不要在一个不认可你价值的地方停留太久,那样只是会浪费自己的时间。

当然,你可以在不被认可的时候持续蓄力,增强自己的能力,闪闪发光,让大佬看到你的价值。你也可以鲤鱼跃龙门,去往更高的阶梯。

开源时代,别让内卷耽误了你?

庄子说:吾生也有涯,而知也无涯。以有涯随无涯,殆已!

究竟路在何方?

有的时候,我也会陷入迷茫的痛苦之中,明明自己一直很努力,已经持续了很多年,不停地学习,为什么而今还是混成这个模样?后来出现了一个词顿时让我明白了------内卷。

搞私单、学大数据、学 AI,泛泛地学了很多,走了很多弯路,浪费了很多时间,最后才有了那么一点感悟。有个认识的哥们说,他到快 30 岁才明白如何去学习。其实,许多人何尝不是呢?

技术大爆炸的开源时代,行业不断兴起,技术层出不穷,我们总是觉得自己这也不懂,那也不会,总想什么都去了解一下,总想一口吃个胖子!但现实是,我们的精力和时间都是有限的,我们只能把有限的时间和精力用在最有价值的地方。那么何为最后价值的地方?

作为码农,我觉得就是要搭建自己的技术体系,用小马哥的话来说就是“一精多专”,不需要什么都会。

如何搭建自己的知识体系?

万丈高楼平地起,不积跬步无以至千里。

基础是很重要的,c/c++基础包括C语言基础知识、数据结构与算法、MySQL 数据库和指针等等。除此之外,基础还包括一些架构设计的基本原则、基本思想,软件工程的基本素养如知道什么是瀑布模型、敏捷开发等。善于利用工具提高开发效率,有改善项目开发流程,提高开发效率的意识。甚至是一些沟通的技巧和一定程度的技术影响力。

最后,想送上几个字给自己和大家------内求于己,宁静致远!

如果你想的你的编程之路快人一步,如果你也希望提升你的编程能力,了解C/C++更多知识,接受牛人大牛们的指导,听听他们对写代码的建议,一起快乐学习,共同进步~

今日视频:万能文档加密解密器(内附视频链接)

猜你喜欢

转载自blog.csdn.net/Python6886/article/details/112873713