做程序员也 4 年多了,聊聊我这些年的感悟吧。 首先这个问题是掌握了某些概念或技术使自己提升突飞猛进,我觉得这个概念和技术不一定局限于编程概念技术,而是更广阔的,比如说职场技巧、方向等等,因为很多时候”道“方面的领悟比”术“方面的领悟更重要。
个人看法:这一条更适用于大公司 还记得刚毕业的时候,傻傻的我认为只需要写好代码提升技术就行了,Leader 自然会给我晋升。现在看来这种想法简直是大错特错,因为技术和晋升是两码事。
技术好是个很微观的事情,它可以体现在每一行代码中,也可以体现在每一个方法的精巧设计中,但是晋升这个事情是你向 Leader 和公司去兜售劳动成果的结果。
比如说如果你一直在做杂活,虽然在杂货中用了很新潮的技术、很精巧的设计,但是这些杂活可能无法体现出价值,无法包装成一个可以向 Leader 和公司兜售的成果,这样肯定是无法晋升的。
如果你想晋升,那么在提升技术的同时,需要思考哪些事情和成果可以支撑你晋升,那么在平时做事的时候尽量往这些事情上去靠近。
所以,晋升和技术,它们之间有关系,但本质上还是两码事。
不知道大家对于程序员的定位是什么,以我现在的思考来说,程序员就是做产品的,这个产品又分为两类,一类是技术产品,一类是商业产品。
比如说 Vue ,这就是一个很牛的技术产品,它服务好了广大的前端程序员,它产生了很大价值,那它的作者尤雨溪就很厉害。
比如说某些城市的摇号小程序,就解决了一件事情,就是可以在微信上更好的查看楼盘、摇号、看摇号进度等等,它把这件事情做好了,并且做成了一个产品,那就很厉害,并且在这件事情上还赚的盆满钵满,创造了很大的商业价值。
所以不管职位是什么,细分方向是什么,究其本质,程序员还是做产品的。
这个是血泪的教训,刚毕业的时候学了一堆和工作不沾边的技术,学了没地方实践只能学个皮毛,而且时间长了就忘了,整个人还焦虑的不行。
以我现在的经验来看,学技术优先和重点学习工作相关的,越相关越好,因为这样子你学的东西可以立马用起来,编程是一门实践科学,用的越多越能学的深刻,并且这样子还能有一个正向循环,不停的有正反馈,更能促进技术进步。
以上就是我的一点思考,这里面的观点也许随着工作年限、遇到人和事的增加而改变,但是此时此刻我的想法就是如此,希望对 ta 人有用。
1
yaocai321 2021-11-15 11:42:33 +08:00
摸鱼是我提升
|
2
2kCS5c0b0ITXE5k2 2021-11-15 11:45:10 +08:00 5
当然是不考虑优化问题啊. 先写完再说
|
3
liprais 2021-11-15 11:45:46 +08:00 via iPhone
才四年,路还长
|
4
zzzzzzggggggg OP @yaocai321 据科学研究,适当摸鱼有利于工作效率
|
5
zzzzzzggggggg OP @emeab get things done
|
6
zzzzzzggggggg OP @liprais 长路漫漫
|
7
zpxshl 2021-11-15 11:57:43 +08:00 via Android 2
没有实践的学习,最大的问题是 你以为你懂了...
|
8
6IbA2bj5ip3tK49j 2021-11-15 11:59:30 +08:00 via iPhone 17
会搜索就能击败 90%的人了。
|
9
GTim 2021-11-15 12:00:14 +08:00
瞎说几句大实话,我每次都是在离职后,去新公司的时候发现已经会这么多了
|
10
Dotennin 2021-11-15 12:04:39 +08:00
上班只是用时间和体力交换金钱, 不是在赚钱, 摸鱼才是
|
11
DeWjjj 2021-11-15 12:09:52 +08:00 via Android 2
好好看书。
|
12
libook 2021-11-15 12:15:53 +08:00 1
一个技术人员的价值不在于会多少种语言、框架、思想,在于是否能解决问题,特别是别人解决不了的问题。
|
13
zzzzzzggggggg OP @zpxshl 似的,没有实践,很难产生深刻的理解,很容易只学个皮毛
|
14
zzzzzzggggggg OP @xgfan 会搜索,会提问,吊打 99%的人
|
15
zzzzzzggggggg OP @GTim 啥意思?面试让你成长了?
|
16
zzzzzzggggggg OP @Dotennin 一天不摸鱼浑身不自在
|
17
zzzzzzggggggg OP @DeWjjj 光看书也不行
|
18
zzzzzzggggggg OP @libook 正解!解决的问题如果是很多人的痛点,那么就可以包装成产品了
|
19
pengtdyd 2021-11-15 12:29:04 +08:00
参与优秀的开源项目
|
20
jiayong2793 2021-11-15 12:29:28 +08:00 1
代码是给人看的
|
21
chenqh 2021-11-15 12:30:34 +08:00
没有突飞猛进过
|
22
palemoky 2021-11-15 12:38:33 +08:00
技术只是工具,转换为为人服务的产品才能体现出价值。
不过也不是只要用技术转换为产品就是非常好的,还有道德和法律的约束。有些大公司用大数据分析、机器学习等对用户杀熟、监听、窃取隐身数据,这些行为就是把技术用错了地方。那些寒窗苦读十几年的人,用自己所学去剥削另一群社会底层的人,想来都有些悲哀。 |
23
dk7952638 2021-11-15 12:47:14 +08:00 3
干了十几年,全靠谷歌和栈溢出赏饭吃
|
24
encro 2021-11-15 12:51:09 +08:00 23
1 ,任务分解;
2 ,读书; 3 ,看手册; 4 ,读源码; 5 ,需求分析; 6 ,休息; 7 ,实践; 8 ,提高对自己的要求; 9 ,向他人传授经验; 以上都是暂时能想到的,对我代码有提升的点。 突飞猛进当然有,但是质变来自量变。 比如说如何写注释的内容我们看了很多,别人的源代码也看了很多,然而还是写不好注释,直到我看到代码大全关于注释的介绍“注释负责解析 Why,代码负责解释 How 和 What”才豁然开朗。 比如如何写出安全的代码,那么你需要了解防御式编程; 比如对于复杂的状态管理,我们可以表格列表穷举法。。。 每天多学一点,那么几年后你就能鹤立鸡群,。。。 程序员开始的 2 年决定了以后的成长空间。。。。 如何利用隐喻。。。 以上都是《代码大全》这本书上有的,对我影响很大,但是如果只看这本书,那么还是不成的。 比如软件熵,生命周期,软件项目人力模型,这些《人月神话》的 “人民追随你是因为爱戴你”,“人在压力下无法思考”是《最后期限》的 既然你允许存在“突飞猛进”,那么也不要怀疑会存在“突然消失”。 |
25
encro 2021-11-15 12:58:56 +08:00 5
程序员或者所有行业的价值都在四个字------------“解决问题”
为项目解决问题 为公司解决问题 为顾客解决问题 为社会解决问题 而很多人做的不好,是因为他们找不到找不对问题,遇到问题无法解决,或者解决成本过高,或者在解决问题过程种又制造出了新问题。 |
26
danhahaha 2021-11-15 12:59:44 +08:00 4
翻墙
|
27
huangzxx 2021-11-15 13:05:06 +08:00 1
不要过度优化
|
28
xLuoBo 2021-11-15 13:08:15 +08:00 via iPhone 2
x86 汇编
arm 汇编 |
30
zzzzzzggggggg OP @pengtdyd 确实,参与开源项目很好的一条路
|
31
zzzzzzggggggg OP @chenqh 谦虚了老哥
|
32
zzzzzzggggggg OP @palemoky 说的很有道理
|
33
zzzzzzggggggg OP @dk7952638 键盘上 C 、V 两个键是不是快磨秃了😸
|
34
zzzzzzggggggg OP @encro 《代码大全》和《人月神话》收藏好久了,还没来得及看😸
|
35
zzzzzzggggggg OP @xLuoBo 老哥直接撸汇编?
|
36
lumotian 2021-11-15 13:41:19 +08:00 1
接触函数式编程和 SICP 是工作后最大的进步
|
38
zzzzzzggggggg OP @lumotian 能展开说说吗?
|
39
Rooger 2021-11-15 14:06:28 +08:00
了解了佛家的经典理论
|
40
Valid 2021-11-15 14:10:16 +08:00
掌握区块链就像掌握了财富密码
|
41
thtznet 2021-11-15 14:28:26 +08:00 2
PPT
|
42
zzzzzzggggggg OP @Rooger 遁入空门了?
|
43
zzzzzzggggggg OP @Valid 怎么说?
|
44
kidult 2021-11-15 14:54:33 +08:00
碰到一个靠谱的客户,赚到人生的第一个一百万
碰到一个靠谱的合伙人,赚到人生第一个一千万 碰到一个心动的爱人,最终净身出户 |
45
lumotian 2021-11-15 14:56:48 +08:00
展开说说太长了,这里写不下。只能说相对一些底层原理,编程思维是每天日用的。工作变得比较有乐趣,推荐自己看一下 SICP
|
46
zzzzzzggggggg OP @lumotian 好的
|
47
zzzzzzggggggg OP @kidult 真实经历?
|
48
shellus 2021-11-15 15:26:05 +08:00
《关于人与人之间的认知水平,表达能力,和理解能力》
*真正认识到人与人的认知不对等* 程序员说完开发方案,老板说:“不错,这就是我想要的” 然后在最终交付后,老板:“这是个什么东西???” 需求方讲完自己的需求后:“你们懂了吗?” 程序员:“懂了” 实际上需求方没有讲明白自己的需求,程序员也没有理解所讲出来的那些内容。 假设需求的内容是 100 分,需求方讲出来 30 分,程序员理解到的就只有 10 分了 然后再基于这 10 分内容开发出 6 到 8 分的程序,最终能皆大欢喜才是怪事。 所以,需求方应该使用文档等工具,将需求写出来+讲出来至少 60 分,然后程序员再主动向需求方提问,挖掘需求的深层次内容,最终交付能达到 80 分的软件,已经算是很不错了。 |
49
StrongNoodles 2021-11-15 15:36:44 +08:00
文笔不错,风格和国外那种高赞文章的风格挺像的,说的内容也挺精炼的
|
50
zzzzzzggggggg OP @StrongNoodles 谢谢!这是我这个月听到的最开心的一条评论
|
51
zzzzzzggggggg OP @shellus 赞,需求分析+需求反讲+研发+交付,这个流程比较合适,但是现实中大部分研发流程都是快糙猛,国内的软件研发流程急需改善
|
52
Innovatino 2021-11-15 17:00:36 +08:00 1
学会沟通,学会开会。这真的是所有程序员必备的技能。
沟通的概念,到现在为止我共事过的程序员里,真正能有自己理解的少之又少,有自己方法论的更是凤毛麟角。 |
53
xuanzizhe 2021-11-15 17:06:24 +08:00 1
掌握左边的头发往右边搭看上去还很协调这门技术的时候~
|
54
ryalu 2021-11-15 17:12:20 +08:00
学 go
|
55
qinwangzeng 2021-11-15 17:25:19 +08:00 3
接受不完美
|
56
zzzzzzggggggg OP @Innovatino 学会沟通我可以理解,但有自己的方法论是啥意思?
|
57
zzzzzzggggggg OP @xuanzizhe 地方支援中央?
|
58
zzzzzzggggggg OP @ryalu 为啥? Java 不香吗?
|
59
offswitch 2021-11-15 17:29:54 +08:00
nothing,学了越来越多技术,但是完全用不上。
|
61
Unclev21x 2021-11-15 18:26:07 +08:00
第 3 点非常正确,然后现实和理想往往冲突啊。
通常是目前的工作已经轻车熟路,用到的知识点有限。于是自己就想学点新东西,自学一些知识,想着下一份工作就找学习相关的。然后出去找工作,还是找了一个跟上一份工作类似的,没办法啊。你说你自学的,但是人家说你没做过。反正就是矛盾吧。 |
62
securityCoding 2021-11-15 19:05:36 +08:00
踏踏实实看源码是最容易提高自己的方式
|
63
encro 2021-11-15 19:16:49 +08:00 1
前面再 24 楼聊到对我写代码有益的点,后面再提一些思想上的:
1 ,矛盾论:任何事物有阳必有阴,有因必有果,阳中存阴,因中存果,比如您今天要求突飞猛进,而忽略了时间的积累,那么可能导致基础不牢;某公司赚快钱习惯了,环境一变老板可能就负债;某公司看起来慢,但是可能搭建了非常深的行业护城河。理解万物都存在矛盾,分清楚主次矛盾,远近矛盾,才能做出正确判断。 2 ,发展论:发展的眼光处理问题,很多问题需要摸着石头过河,但是不能一直摸石头过河,必要的时候需要架桥。今天我们是对的,明天不一定是对的。今天不对的,明天可能是对的。对于你不对的,但是对于他可能不是对的。比如你今天通过突飞猛进的方法找到工作那么是对的,但是如果一直追求突飞猛进可能就不一定对了。理解万物都在变化,人性变化,事务变化,才能合理看待事务。 3 ,革命论:团结一切可以团结的力量。假万物而不争。------ 理想状态,不知道是否有人能一定程度做到。但是一个人对外物的利用率,可能是衡量一个人成功的标志吧。 |
64
zzzzzzggggggg OP @Unclev21x 可以以当前手头工作为核心往外延伸,比如说现在是做 Java 后端,只会增删改查,总会用到 Java 框架、网络库吧,它们干了什么事情、为什么这么设计,这都是可以学的;还可以延伸到数据库设计、并发设计等等
|
65
zzzzzzggggggg OP @securityCoding 看源码确实可以锻炼,但是现在被万能化了,而且很多人不太懂如何正确的学习源码
|
66
zzzzzzggggggg OP @encro 老哥说的很深刻
|
67
securityCoding 2021-11-15 19:46:44 +08:00 1
@zzzzzzggggggg 是啊,因为很多人想象的看源码效果是几个晚上就掌握一个开源项目,一口就能吃成大胖子。读源码只能慢工出细活,只有边读边思考输出流程图和源码分析文章才算是读了源码,求快的后果就是读了跟没读一样(浪费时间)。
|
68
wuyufeng2333 2021-11-15 19:47:01 +08:00
@encro m
|
69
zmxnv123 2021-11-15 19:49:00 +08:00
英语
|
70
auh 2021-11-15 19:53:56 +08:00 1
1. 学+积累
学是必须的。而且要完善整理出来。 积累到一定程度,横向对比的次数就多了,点就会连成片,很多抽象的思想自然就出现了。思想,也需要整理。 2. 方向,价值 你关注的东西,随着时间会成就不一样的东西。但,你未必是你想要的。 知识分类一种方式。势、道、法、术、器 举个例子,linux ,程序员最爱,各种操作上的折腾。那么这些折腾有市场价值没?还是只是自己玩的很开心。如果是后者,那么可能会有种毫无卵用的感觉。如果单纯去研究理论体系呢? 比如,你的朋友每天回家都是刷剧,而你每天回家都是各种研究稀奇古怪的东西,你很开心,但是几年之后,你发现你朋友竟然职位比你还吊。而你,貌似怎么感觉有点心累。可见,做了很多无用功。 长远来看,可能对你个人的其他方向有积累,但是,盲目的瞎搞,可能会使人失望,个人理性取舍最重要。 |
71
zzzzzzggggggg OP @auh 是的,想清楚自己想要啥,最重要
|
72
cutepig 2021-11-15 19:59:25 +08:00 via Android
对不明白的优秀的代码保持好奇,尝试搞明白它的原理
|
73
onlyhuiyi 2021-11-15 20:02:33 +08:00
@securityCoding 求推荐好的项目
|
74
zzzzzzggggggg OP @onlyhuiyi 好的开源项目太多了,关键看你是什么技术方向,优先看自己工作相关的
|
75
zzzzzzggggggg OP @cutepig 赞
|
76
securityCoding 2021-11-15 20:14:53 +08:00
@onlyhuiyi github 上面找那些 star 高的中间件项目,很多都可以说是将某个细分领域做到了极致,非常具有价值。
|
77
lniwn 2021-11-15 20:20:11 +08:00
第一次成功破解某网盘 pc 客户端的时候,感觉自己仿佛突破了。
|
78
Kingfish404 2021-11-15 20:41:50 +08:00
Github ,看博客,写博客,看书,读源码
|
79
Kingfish404 2021-11-15 20:43:13 +08:00
@zzzzzzggggggg 感觉带着目的和对应需求看是个不错的 push 自己读开源源码的方式,还有别的合适的驱动么
|
80
liian2019 2021-11-15 21:10:11 +08:00
看书,学技术先整体架构再抠细节
|
81
WispZhan 2021-11-15 21:29:39 +08:00 via Android
抽象、标准化、工程化、自动化、规模化。
|
82
DiamondYuan 2021-11-15 23:45:23 +08:00
1. 抽象是程序员最重要的能力
2. 在思考 how 之前,先想想 why 。 |
83
ffxrqyzby 2021-11-16 00:18:55 +08:00 1
读书 + 实践
|
84
p1gd0g 2021-11-16 09:11:34 +08:00
工程思想。
|
85
dreamramon 2021-11-16 09:14:44 +08:00
写完,一个玩具操作系统,数据库,和编译器之后。
|
86
ww2000e 2021-11-16 09:33:20 +08:00
都是错觉。。
|
87
Timzzzzz 2021-11-16 10:10:15 +08:00
@dreamramon 想请教一下
动手写一个玩具数据库,有什么比较好的教程 /路径吗? |
88
zzzzzzggggggg OP @lniwn 牛哇,咋破解的?那个下载速度太慢了
|
89
zhenrong 2021-11-16 10:26:12 +08:00
功夫在“诗”外。不要执着于技,要着眼于道。有道无术,术尚可求,有术无道,止于术。
|
90
zzzzzzggggggg OP @Kingfish404 带着目的看源码就不错了,不需要其他的驱动
|
91
zzzzzzggggggg OP @liian2019 平时做业务需求也是这样的,先构思整体流程,然后再分而治之写方法
|
92
zzzzzzggggggg OP @WispZhan 标准四化😸
|
93
zzzzzzggggggg OP @p1gd0g 展开说说工程思想
|
94
zzzzzzggggggg OP @dreamramon 能写完一个五脏俱全的操作系统、数据库、编译器,吊打 90%的程序员
|
95
zzzzzzggggggg OP @ww2000e 为啥
|
96
zzzzzzggggggg OP @zhenrong 👍
|
97
lniwn 2021-11-16 10:36:35 +08:00 1
@zzzzzzggggggg 我知道你说的哪个盘,但我破解的不是那个盘。我只是把它的登录逻辑用 python 实现了一遍,OD 主要是破解其登陆的签名算法。
|
98
nuk 2021-11-16 11:25:46 +08:00
面向 github 编程,尽量抄别人的,节省的时间可以用来摸鱼。。
|