1
Cbdy 2019-12-29 07:07:06 +08:00 via Android
对于程序员,学好数学
|
2
takemeh 2019-12-29 07:27:33 +08:00 via Android
我也不知道有没有这样的经验。
现在这个情况,知道的人可能也不会说了。 因为说了就成了你的经验不值钱。 |
3
jmc891205 2019-12-29 07:28:13 +08:00 via iPhone
框架技术什么的经验根本不值钱
|
6
z7356995 2019-12-29 07:39:47 +08:00 via Android 5
江浙泸这边,家里比我大一轮的亲威,有好几个,年青时走南创北,折腾来,折腾去,后来折腾对了,有开工厂的,有开店的,收入都稳定,开工厂的那个别墅,光装修化了 500 万,,工业区产房还有十几万平方米。所以,感觉还是要做生意。
|
8
lewis89 2019-12-29 07:41:50 +08:00 16
主要还是 底层的 算法+数据结构 操作系统原理 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 的地方吗。 另外算法 个人觉得对业务帮助不大,那些问红黑树的 无非是基于面试者对红黑树的记忆跟背诵,实际上红黑树里面的左旋右旋的场景太多,绝大部分人很难背诵出来正确的模型。 个人主要推荐学习图论相关的算法,可以在生成有限解空间的问题下 进行暴力搜索。 其实说了这么多,我还是认为先学底层,搭好基础的架子,上面的东西 你看一眼就知道它是怎么一回事。 |
9
xsen OP @lewis89 但这里就涉及到一个性价比的因素。就算你会底层,搭好了基础。但是也不能避免 30-35+之后,被优化;再就业被歧视
|
10
lewis89 2019-12-29 07:44:29 +08:00
上面我写的东西,其实就是技术上的,但实际上大部分人不会需要了解这么深的原理知识,从职业生涯上来看,除非你进入大公司遇到非常复杂的场景,这些技术才用得上,其它的时候,我建议还是多关注一下计算机之外的事情,毕竟 35+裁员这个事情在国内很难避免,光靠积累技术是很难站稳职场的。
|
12
lewis89 2019-12-29 07:46:23 +08:00 1
@xsen #9 这也是没有办法的事情,中国的年龄歧视确实很严重,绝大部分公司的场景,其实用不到这么深层次的东西,即使是大厂,绝大部分时候也是在搬砖,但是面试的时候确实又是很难。
|
13
lewis89 2019-12-29 08:02:32 +08:00 10
@xsen #11 其实我很早就意识到了,国内软件开发这门职业的稳定性问题,
1. 对高质量的软件需求太少,即使是业务十分复杂的情况下,大多也是采用堆人堆工时的方式来达到 使得软件在 功能 性能 稳定性 可迭代 方面的平衡,毕竟人太便宜了,而软件工程中的 关于代码设计 架构设计 这些东西反倒是无关紧要的东西,因为人很便宜,在一线城市你随便花个一两万就能招募到 愿意 996 加班 ,只要愿意加班吃屎,其实一个系统是否设计的好 是无关紧要的,反正最后加班吃屎都能解决这些问题。 2. 竞争过度激烈,国内实际上说白了就是原始的 权 X 官 X 本位下的资本主义体系,这种体系的特征就是无序竞争,内卷十分厉害,因为高层次的人早就把资源吃得一干二净,抹一抹嘴巴 手上剩的那点残渣丢给你们老百姓去争抢,再加上无序的竞争,想不激烈都难。你不要看我们打着 XX 主义的招牌,实际上资本主义的问题 我们都有,而且这些问题在我国矛盾更尖锐,问题更突出,例如 icu 加班这个事情,我当时下的论断就是 官方会出来打着正义招牌 然后一边打哈哈,最终不会有任何实质性的改变,因为权 X 的统治基础并不在劳苦大众这边,古人云 皇帝与士大夫阶层共天下,老百姓只不过是我们征税的对象,今天其实亦是如此。 |
14
rainincloud 2019-12-29 08:12:04 +08:00 via iPhone
@xsen #7 现在的行情不比改革开放那几年,现在极大概率破产。
|
15
TypeError 2019-12-29 08:28:55 +08:00 via Android
楼上说的太好了,国进民退,这几年民企几波热潮都是一地鸡毛,万众创业、互金、区块链、大数据。
作为普通打工者来说,我觉得楼上说的熟悉底层很有必要,了 比如 golang 这门较新语言,如果有 C/C++/Java 的经验,学习起来会快很多。Java 服务端和 Android 开发互相转换也不难。 还有就是专业之外的技能,学好外语就容易肉翻跑路,学好金融知识,可以避坑可以投资增值。 以上都比熟练纯 CRUD 操作,比熟练加班收益大得多 |
16
lagoon 2019-12-29 08:31:44 +08:00
如果你 30 ~ 35 岁了,还愿意拿 25 岁时的工资,就不容易被“歧视”。
|
17
okwork 2019-12-29 08:33:18 +08:00 via Android
互联网软件的行业集中度问题是所有领域里突出的,这个是技术本身导致的,所以有人说技术人最后会消灭自己。
|
18
ruidoBlanco 2019-12-29 08:39:40 +08:00 8
上面大多是说外因。外因个人很多时候无能为力,我不太看中。这里说说我刚刚琢磨出来的一点点,我已经快 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 的工作。 上面三个思路基本上就够了。不过操作起来各有各的难度。 |
19
1490213 2019-12-29 08:42:40 +08:00 via Android 3
个人感觉,软件开发需要的,其实就是技术,人力和业务。
技术主要是如何实现,如何更好地实现;人力主要是识别协调组织人把项目完成和干好;业务就是了解行业内客户的需求,识别客户群体,甚至是洞察未来行业自动化的趋势,把它变成可行的设计。最好就是三者都不能弱,有一项突出,然后逐渐在这个突出的领域里建立影响力。 超出软件开发的就多了,什么建立关系网,搞副业,玩投资理财等等感觉没必要展开说了。 |
20
classyk 2019-12-29 08:46:06 +08:00 via iPhone 1
扩充自己的面,如果局限在很小的一个面,将会很容易被替代。特别要注意哪些基础的,不会经常变更的面。
另外产品思维,统筹能力,解决问题的能力都很重要。 35 以上通常都会带一些管理职责,带一个团队。 |
21
xsen OP @classyk #20 说的很实在,只是这些都是类似软实力方面的,很多人并不见得愿意过多关注,毕竟无法带来直接的利益——特别是短期内都看不到效果。
其实如你说的管理职责或者带 team,但是要知道架构或管理岗的,基本都是一个萝卜一个坑 |
22
xsen OP @ruidoBlanco #18
1. 关于天时 这个感觉纯粹是一个运气的问题。比如淘宝,可以发展起来是综合各方面的因素的,包括近几年的 pdd 等 为什么说是运气,比如前几年非常火的互金行业,但这两年大部分都破产清算了 2. 关于地利 这个在国内的,基本是没得选 3. profit center 这个就要选择合适的公司与业务线。或许,我们能够唯一可以努力的方向就是这个 |
23
vtoer 2019-12-29 09:30:44 +08:00 via Android
做医生
|
24
won 2019-12-29 09:58:45 +08:00
上一家公司,年终给了 1 亿的分红,这种经验值钱
|
25
mymike 2019-12-29 09:58:46 +08:00 via iPhone 2
30+的我认识很多 也没见你们这么多事 技术只是一种手段 真以为靠个技术就能吃一辈子?
|
27
rzq3147 2019-12-29 10:03:15 +08:00 via Android
中年人,更注重的业绩、经历和情商。如果不走技术大咖的路子,经验反而没那么重要
|
28
z7356995 2019-12-29 11:12:52 +08:00 via Android 2
@ty89 建议别人做生意当然不行,v2 里很多人大多数和代码打交道 0 和 1,对和错 很好判断,但和人打交道,,说服,,读人心,读人性,这方面也是要磨练,要修为的。所以,,你看马云不用写代码。。但代码外的能力,能让程序员觉得 996 是福报,拼命出力。老毛不扛枪,不是打下新中国。只能说一句,除了搬砖,你还会干啥,,那还不老老实实搬砖
|
29
whi147 2019-12-29 11:39:25 +08:00
@lewis89 你说的很对,没有 z 治开放法就得不到正确执行。各种主义都无法解决,何况 ccp 诞生的目的就是颠覆普世价值观
|
30
iceEar 2019-12-29 11:51:08 +08:00 via iPhone
独立思考,写作与社交。
|
31
xytdj 2019-12-29 11:57:25 +08:00
1、我们就只招 5 年以上经验的;
2、会不会被淘汰,并不在于你的技术经验有多高,更关键的在于 2 点:一个是责任心(或主动性),一个是团队合作能力。这 2 点能做好的,基本上不用担心,除非所属的整个业务或公司被取消。 3、如果想更稳妥,就要积极向上走,这时最关键的在于你的业务能力 —— 这里的业务并不单纯是技术业务,而是如何用你的技术推动、引入能让公司更赚钱的业务。 |
32
wangyzj 2019-12-29 12:33:35 +08:00
任何一个行业想混好都得不停学习
不只是程序员 |
33
qiumaoyuan 2019-12-29 13:14:13 +08:00
值钱的经验啊?就是“大家都会的都不值钱”,“大家都知道的都不值钱”。
物以稀为贵,就这样。 |
34
qiumaoyuan 2019-12-29 13:14:54 +08:00
顺便偷偷告诉你,大部分程序员不会写代码。
|
35
buttenkill 2019-12-29 13:58:13 +08:00
修自行车
|
36
glovebx 2019-12-29 14:01:33 +08:00
一份可以支撑日常生活的副业
|
37
lollipop43 2019-12-29 16:45:48 +08:00
萌新前来学习
|
38
sx90 2019-12-29 17:08:38 +08:00
一个字“钱”
|
39
zsxzy 2019-12-29 17:16:29 +08:00 via iPhone
要有自己的产品
|
40
tyrantZhao 2019-12-29 17:24:30 +08:00
一份自己的产业最值钱,其他都不值钱。
|
41
lenjeans 2019-12-29 19:11:08 +08:00
你的价值最值钱
虽然我还没到 30 岁,但是这个是之前我上司给我说的话,嗯,虽然他也不到 30 岁。 |
43
micean 2019-12-29 20:37:41 +08:00
人际圈很重要
能够左右你未来的路 |
45
lietoumai 2019-12-29 20:46:09 +08:00
是否被优化和拥有的经验之间的关系或许并没有撸主想象的那么强
不如思考中年被优化后如何继续自己的生活 |
46
hlwjia 2019-12-29 21:12:33 +08:00
@ruidoBlanco 大兄弟选址牛逼!
|
47
afsun 2019-12-29 21:49:27 +08:00 via Android
@lewis89 说的一点都没有错,看看房价就知道了 10 年就叫苦不迭,统治的基础或者收益群众 往往是官僚,士大夫阶级
|
48
melonrice 2019-12-29 23:10:48 +08:00
@xsen 地利是可以的,比如我现在在成都做着上海广州的远程兼职工作,是以一线城市薪资标准计价的,这个叫做地理套利,如果外语好,能接受时差工作,接海外项目地利因素影响更大
|
50
sagaxu 2019-12-29 23:51:37 +08:00 via Android
@lewis89 汇编和操作系统都是本科课程,这些例子难度不及科班作业。30 岁之后搞这些东西,比培训班的是有优势,但不会比 25 岁的科班更强。现在学历贬值很快,每年还有几万名科班硕士博士出来工作,靠这些底层技术,毫无招架之力。
感觉现在有点像 80 年代末 90 年代初,做了半辈子电工的老师傅,也许钻研或者积累了很多,等到有一天单位来了电气专业的大学生,才发现那些个经验,只够抵挡个一两个月,然后就被碾压。 以上故事来自一位建筑公司中层领导。 |
51
sagaxu 2019-12-29 23:58:11 +08:00 via Android
@darmau 产出跟 25 岁的人一样,拿 25 岁的人 80%的工资,这样子老板能接受吗?现在 40 岁那波人,赶在房价低位上了车,不少人早还清了贷款,甚至还有多余的收租,这个优势,年轻人要多赚几百万才能抹平。
|
52
outoftimeerror 2019-12-30 00:19:44 +08:00 1
大学自学过了 n2,准备抽空再补下日语,万一 32 岁找不到工作了还能去日本做 it。
只要人多,你学啥都没用,你学的别人也能学,而且年龄越大学历能力精力也越差,加班还比不过年轻人。 |
53
classyk 2019-12-30 00:47:45 +08:00 via iPhone
@xsen 没办法的事,新技术新东西层出不穷,年长的相对而言,过去学习的很多技术方面的东西必然落伍,或者没以前那么重要了。那么就必须思考,35,40 时,你有什么是五年工作经验的人无法媲美和取代的?
所谓不进则退 |
54
zpole 2019-12-30 01:02:56 +08:00 via Android
当你觉得自己到头了的时候,放弃一部分钱跳一个养老公司
|
55
andylsr 2019-12-30 01:16:43 +08:00 via Android
人毕竟是社会性动物,你唯一值钱的东西就是和别人之间的关系,能成为老板,至少得拿的到投资吧,没有资方的信任,谁敢给你投。程序员刚好相反,永远把脑子用在了机器上。优化一个程序员跟丢掉几台旧电脑没啥区别,但如果你握着公司核心的客户渠道,优化前老板基本都得先思索一下。
|
56
lewis89 2019-12-30 06:32:30 +08:00
@sagaxu #50 我知道是本科课程,但是很多软开狗 不一定在学校好好学过,还有很多半路转行的哥们(例如我),我讲的只是一个方向,学校的教学理念并没有错误,给你搭好基础,后面你怎么发展,其实都是看个人的,基础的知识结构搭好了,后面学新东西就没什么压力了,实际上 IT 这么几十年真的有新东西吗?即使是现在看起来要起飞的区块链 /人工智能不都是老瓶装旧酒,这些领域很多理论基础方面的研究,实际上 40 年前就有人在搞了。
|
57
lewis89 2019-12-30 06:36:29 +08:00
@sagaxu #50 在我个人看来,整个 Java 后端的应用体系,这个十年并没有新东西出现,都是老瓶子装旧酒,微服务更是如此,很多大型公司早在 90 年代就已经开始用分布式系统部署的方式了,Google 内部有比 Docker 领先一个时代的东西,只不过人家没有叫做 MicroService,但是大规模分布式部署应用的方式至少在 30 年前就已经有好多大型公司在应用了。
|
58
qqxx520 2019-12-30 07:04:51 +08:00 2
25 岁之前:年轻体力好,一张白纸可塑性好;
25-30:有一定经验了,体力不错,基本能独当一面;该结婚生孩子了; 30-35:上有老下有小,体力开始下降,这时软实力慢慢大于硬实力,对工作有更多想法。 35 以后:身体开始掉链子,在自己的行业积累一定资源(人,技术,经验,想法,看法等),靠软实力更多一些。 总体的趋势:由虚入实(从毕业到 30 岁左右)进而由实返虚( 30 以后) 我想对于大多数普通人是这样比较好,当然牛逼的人除外。 |
60
lewis89 2019-12-30 07:16:46 +08:00
@twl007 #59
谷歌从 2000 年初开始使用容器,但是它所使用的是自研的一种叫做 lmctfy 的容器格式,其实是 Let Me Contain That For You 几个单词首字母的缩写。谷歌最早使用容器的初衷之一是节省物理资源,通过用容器取代虚拟化层( hypervisor 和每个虚拟机所占用的物理资源)来极大地节省计算成本。谷歌在 2013 年对 lmctfy 其进行了开源:链接,但由于流行程度不如 Docker,后面就没有再继续推广。同时,根据谷歌内部运行 15 年容器的经验来看,将应用程序装入容器仅仅是第一步,而后面的大量工作是如何管理、运维这一个全新的容器世界,因此谷歌在 2014 年将精力转入了开源容器集群管理技术,即 Kubernetes 项目:链接 |
62
silentstorm 2019-12-30 08:09:30 +08:00
学点儿编程以外的东西吧。比如掌握好一门外语,当然不能是英语。
|
63
sagaxu 2019-12-30 08:39:18 +08:00 via Android
@lewis89 理论体系越完善和明确的领域,经验越没用。中年人熟悉旧酒,年轻人一样熟悉旧酒,年轻人研究新瓶的能力不比老人差,热情和精力远超老人。在技术层面跟年轻人 pk,年薪 50 万以下,没有看到 30 岁以上比 30 岁以下做的更好的研发职位。年薪能突破 100 万的专家也许还能一战,绝大部分人是完全拼不过的。况且,现在国内不也有应届生年薪百万甚至两百万的么?
|
64
daimubai 2019-12-30 08:46:29 +08:00
中国人多啊,竞争力大啊,就去人少的地方啊,就算只会 crud 那也很吃香的嘛
我现在 20,计划 25 可以去新西兰什么的工作两年看看机会 |
65
qiaobeier 2019-12-30 09:21:13 +08:00
往核心产品里写别人无法理解的代码。
|
66
arthas2234 2019-12-30 10:08:49 +08:00 1
我觉得学会沟通很关键
程序员这个职业,对圈外的人来说就是闷骚,不太愿意与人沟通,太固执 技术提升会遇到瓶颈,会有边际效应递减(更高的技术要求,需要更大的平台,而更大的平台需求的岗位更少) 这个时候要另辟蹊径,把精力投入到产出比更高的地方 比如最近很火的印度人占领硅谷的新闻 印度人虽说技术不如国人,但是会抱团,更自信,更会沟通和表达 而国人说白了就是工具人,除了完成上头布置的任务,基本上没有任何产出 |
67
zhouyou457 2019-12-30 10:21:15 +08:00 3
玩儿技术你永远玩儿不过年轻人,你最大的资本就是从业经验与社会关系。
所以说加强自身技术的同时还是多出去走走,多接触各种人和各种事物。 优秀的技术能保证你在这个行业的生存能力,良好的社会关系能保证你在这个社会的生存能力。 缺少关系的社会性死亡是非常恐怖的。 |
68
fhsan 2019-12-30 12:12:38 +08:00
@arthas2234 工作几年才知道职业规划,然而跳槽工作经验都没机会去大平台
工作几年才知道人际关系,结果周围都是穷人,领导同事只谈工作,离开就拉黑 国内的程序员很多都是工具人,分配什么完成什么 从业经验很多人的基本上不值钱 |
69
hoythan 2019-12-30 13:29:39 +08:00
多认识几个外包公司的老板。
|
70
OSF2E 2019-12-30 13:37:14 +08:00
信息不对称
|