哪些值钱的经验,可让你免于中年后被优化

2019-12-29 06:56:21 +08:00
 xsen
就是单纯好奇,很多人都以为现在的中年人被裁,不外乎是
1. 经验不值钱
2. 经验老套,技术不更新换代
3. 就是老了——不能加班

所以,个人毕竟好奇哪些值钱的经验,包括不限于框架、技术点、业务经验等

可以让你 30-35+之后,避免被职业歧视
10016 次点击
所在节点    职场话题
73 条回复
Cbdy
2019-12-29 07:07:06 +08:00
对于程序员,学好数学
takemeh
2019-12-29 07:27:33 +08:00
我也不知道有没有这样的经验。
现在这个情况,知道的人可能也不会说了。
因为说了就成了你的经验不值钱。
jmc891205
2019-12-29 07:28:13 +08:00
框架技术什么的经验根本不值钱
xsen
2019-12-29 07:38:22 +08:00
@Cbdy 学好数学,除非 30+后转做老师,不然大概率还是给优化
xsen
2019-12-29 07:39:46 +08:00
@jmc891205 嗯,确实不值钱。新毕业的,只要学习能力可以,2-3 年就可以完全跟上
z7356995
2019-12-29 07:39:47 +08:00
江浙泸这边,家里比我大一轮的亲威,有好几个,年青时走南创北,折腾来,折腾去,后来折腾对了,有开工厂的,有开店的,收入都稳定,开工厂的那个别墅,光装修化了 500 万,,工业区产房还有十几万平方米。所以,感觉还是要做生意。
xsen
2019-12-29 07:41:17 +08:00
@z7356995 嗯,这是事实。看来大概率还是只能想办法自己做老板,做老板除非破产,不然大概率是不会裁掉自己的
lewis89
2019-12-29 07:41:50 +08:00
主要还是 底层的 算法+数据结构 操作系统原理 CSAPP TCP/IP 协议 这几门课,
基本上终身受益,学完之后,其它框架本身 技术特性 并没有什么新奇的地方,
所有这些框架技术都是从这些基础的东西发展起来的,我觉得学了 X86 汇编之后,
可以通过汇编来猜测大量的框架底层原理跟实现。

假设你问一个 SpringAOP 怎么实现的,就可以分为 JDK 内部的代理实现 CgLib 的修改字节码实现
前者可能通过虚拟机内部的机制拦截特定的接口调用,将接口调用派发到指定的 Java 方法
后者通过在运行时 编译时 修改字节码代码(一种类似于汇编结构的代码)来实现

其实两者背后深入下去,无法是涉及到机器级别代码是如何运行的,
基于现有的弗洛伊曼体系 CPU 的结构,实现代理的方式非常简单,
因为以前搞过一些破解,所以对栈幁结构比较了解,当然拦截的时候还要注意
X86 下的 JVM 虚拟机是通过栈来传递函数参数的,有自己的调用约定 通常有__std_call 之类
Android 是通过寄存器来传递函数参数的,在 ARM 下应该有自己另外一套调用约定


;-> 插入 拦截代码
jmp 0x____

origin_java_native_call_methd:
push esp
push ebp ; 堆栈模型先保存
add ebx,ecx
;-> 插入拦截代码
jmp 0x____
ret


同理在业务线程实现 Full GC 的 stop the world,亦是如此,在及时编译代码后的关键部位加入 汇编指令 访问一个
受保护的内存区域,引发操作系统中断,CPU 会把代码自动跳到 SafePoint 轮训状态的区域,来实现 STW。在 linux 下
应用程序注册虚拟内存地址的 访问级别 可以通过 mprotect 系统调用来实现,这一个非常关键的系统调用,现代高级语言的虚拟机或者解释器都会用到这个调用。

CPU 体系 从寄存器 -> L1 -> L2 -> L3 -> 主存 通常的 Intel 多 CPU 一致性内存体系结构 以及 指令冒险 代码乱序执行,
又能引发出 Java 的多线程编程的内存模型问题。

所以在我看来 ,只有你深入了解了现代计算机体系结构后,看深入理解 Java 虚拟机才不会费劲,因为很多东西你会有一种拍脑袋的惊叹,什么 GC 的 SafePoint 不就是我老子经常搞破解 下断点 插 jmp 的地方吗。


另外算法 个人觉得对业务帮助不大,那些问红黑树的 无非是基于面试者对红黑树的记忆跟背诵,实际上红黑树里面的左旋右旋的场景太多,绝大部分人很难背诵出来正确的模型。
个人主要推荐学习图论相关的算法,可以在生成有限解空间的问题下 进行暴力搜索。


其实说了这么多,我还是认为先学底层,搭好基础的架子,上面的东西 你看一眼就知道它是怎么一回事。
xsen
2019-12-29 07:43:48 +08:00
@lewis89 但这里就涉及到一个性价比的因素。就算你会底层,搭好了基础。但是也不能避免 30-35+之后,被优化;再就业被歧视
lewis89
2019-12-29 07:44:29 +08:00
上面我写的东西,其实就是技术上的,但实际上大部分人不会需要了解这么深的原理知识,从职业生涯上来看,除非你进入大公司遇到非常复杂的场景,这些技术才用得上,其它的时候,我建议还是多关注一下计算机之外的事情,毕竟 35+裁员这个事情在国内很难避免,光靠积累技术是很难站稳职场的。
xsen
2019-12-29 07:45:37 +08:00
@lewis89 这个我认同——要关心技术之外的事情,只有这样方可以长久
lewis89
2019-12-29 07:46:23 +08:00
@xsen #9 这也是没有办法的事情,中国的年龄歧视确实很严重,绝大部分公司的场景,其实用不到这么深层次的东西,即使是大厂,绝大部分时候也是在搬砖,但是面试的时候确实又是很难。
lewis89
2019-12-29 08:02:32 +08:00
@xsen #11 其实我很早就意识到了,国内软件开发这门职业的稳定性问题,

1. 对高质量的软件需求太少,即使是业务十分复杂的情况下,大多也是采用堆人堆工时的方式来达到
使得软件在 功能 性能 稳定性 可迭代 方面的平衡,毕竟人太便宜了,而软件工程中的 关于代码设计 架构设计 这些东西反倒是无关紧要的东西,因为人很便宜,在一线城市你随便花个一两万就能招募到 愿意 996 加班 ,只要愿意加班吃屎,其实一个系统是否设计的好 是无关紧要的,反正最后加班吃屎都能解决这些问题。

2. 竞争过度激烈,国内实际上说白了就是原始的 权 X 官 X 本位下的资本主义体系,这种体系的特征就是无序竞争,内卷十分厉害,因为高层次的人早就把资源吃得一干二净,抹一抹嘴巴 手上剩的那点残渣丢给你们老百姓去争抢,再加上无序的竞争,想不激烈都难。你不要看我们打着 XX 主义的招牌,实际上资本主义的问题 我们都有,而且这些问题在我国矛盾更尖锐,问题更突出,例如 icu 加班这个事情,我当时下的论断就是 官方会出来打着正义招牌 然后一边打哈哈,最终不会有任何实质性的改变,因为权 X 的统治基础并不在劳苦大众这边,古人云 皇帝与士大夫阶层共天下,老百姓只不过是我们征税的对象,今天其实亦是如此。
rainincloud
2019-12-29 08:12:04 +08:00
@xsen #7 现在的行情不比改革开放那几年,现在极大概率破产。
TypeError
2019-12-29 08:28:55 +08:00
楼上说的太好了,国进民退,这几年民企几波热潮都是一地鸡毛,万众创业、互金、区块链、大数据。
作为普通打工者来说,我觉得楼上说的熟悉底层很有必要,了
比如 golang 这门较新语言,如果有 C/C++/Java 的经验,学习起来会快很多。Java 服务端和 Android 开发互相转换也不难。

还有就是专业之外的技能,学好外语就容易肉翻跑路,学好金融知识,可以避坑可以投资增值。

以上都比熟练纯 CRUD 操作,比熟练加班收益大得多
lagoon
2019-12-29 08:31:44 +08:00
如果你 30 ~ 35 岁了,还愿意拿 25 岁时的工资,就不容易被“歧视”。
okwork
2019-12-29 08:33:18 +08:00
互联网软件的行业集中度问题是所有领域里突出的,这个是技术本身导致的,所以有人说技术人最后会消灭自己。
ruidoBlanco
2019-12-29 08:39:40 +08:00
上面大多是说外因。外因个人很多时候无能为力,我不太看中。这里说说我刚刚琢磨出来的一点点,我已经快 40 了,还是前线一小卒,不过还算安稳。

1. 天时

行业有处于高速发展期的,比如 10 年前的淘宝,比如现在的区块链。高速发展行业里的人,是不会担心工作的。多少岁都不担心,因为需求大,很快可以找到下家。

我从来没乘过天时。

2. 地利

我在 GMT+10,work from home 做技术支持。这边人少,招个人难。而且地理位置独特,跟北美和欧洲都有工作时间重合,便于交接。加上很多公司有 geo-restriction,在中国的不许碰。所以这里可以说是做技术支持最安稳的地方了,裁员也很难排到。工作上我从来不会玩命干,准点上下班。

我算是有地利。

3. 人和

如果留心一下,会发现同样级别,architect 总是比 developer、test、support 等等的工资高,因为 architect 和 consultant 是在 profit center,其他技术工种,在 cost center。如果不懂这这两者的差别,可以上网查。cost center 永远主题是如何省钱。在 profit center 就不用那么担心工作稳定度了。而且 profit center 的招聘需求是挺大的,因为人不好招。

我有些在琢磨换个 profit center 的工作。

上面三个思路基本上就够了。不过操作起来各有各的难度。
1490213
2019-12-29 08:42:40 +08:00
个人感觉,软件开发需要的,其实就是技术,人力和业务。
技术主要是如何实现,如何更好地实现;人力主要是识别协调组织人把项目完成和干好;业务就是了解行业内客户的需求,识别客户群体,甚至是洞察未来行业自动化的趋势,把它变成可行的设计。最好就是三者都不能弱,有一项突出,然后逐渐在这个突出的领域里建立影响力。
超出软件开发的就多了,什么建立关系网,搞副业,玩投资理财等等感觉没必要展开说了。
classyk
2019-12-29 08:46:06 +08:00
扩充自己的面,如果局限在很小的一个面,将会很容易被替代。特别要注意哪些基础的,不会经常变更的面。
另外产品思维,统筹能力,解决问题的能力都很重要。

35 以上通常都会带一些管理职责,带一个团队。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/633238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX