做程序员也 4 年多了,聊聊我这些年的感悟吧。 首先这个问题是掌握了某些概念或技术使自己提升突飞猛进,我觉得这个概念和技术不一定局限于编程概念技术,而是更广阔的,比如说职场技巧、方向等等,因为很多时候”道“方面的领悟比”术“方面的领悟更重要。
个人看法:这一条更适用于大公司 还记得刚毕业的时候,傻傻的我认为只需要写好代码提升技术就行了,Leader 自然会给我晋升。现在看来这种想法简直是大错特错,因为技术和晋升是两码事。
技术好是个很微观的事情,它可以体现在每一行代码中,也可以体现在每一个方法的精巧设计中,但是晋升这个事情是你向 Leader 和公司去兜售劳动成果的结果。
比如说如果你一直在做杂活,虽然在杂货中用了很新潮的技术、很精巧的设计,但是这些杂活可能无法体现出价值,无法包装成一个可以向 Leader 和公司兜售的成果,这样肯定是无法晋升的。
如果你想晋升,那么在提升技术的同时,需要思考哪些事情和成果可以支撑你晋升,那么在平时做事的时候尽量往这些事情上去靠近。
所以,晋升和技术,它们之间有关系,但本质上还是两码事。
不知道大家对于程序员的定位是什么,以我现在的思考来说,程序员就是做产品的,这个产品又分为两类,一类是技术产品,一类是商业产品。
比如说 Vue ,这就是一个很牛的技术产品,它服务好了广大的前端程序员,它产生了很大价值,那它的作者尤雨溪就很厉害。
比如说某些城市的摇号小程序,就解决了一件事情,就是可以在微信上更好的查看楼盘、摇号、看摇号进度等等,它把这件事情做好了,并且做成了一个产品,那就很厉害,并且在这件事情上还赚的盆满钵满,创造了很大的商业价值。
所以不管职位是什么,细分方向是什么,究其本质,程序员还是做产品的。
这个是血泪的教训,刚毕业的时候学了一堆和工作不沾边的技术,学了没地方实践只能学个皮毛,而且时间长了就忘了,整个人还焦虑的不行。
以我现在的经验来看,学技术优先和重点学习工作相关的,越相关越好,因为这样子你学的东西可以立马用起来,编程是一门实践科学,用的越多越能学的深刻,并且这样子还能有一个正向循环,不停的有正反馈,更能促进技术进步。
以上就是我的一点思考,这里面的观点也许随着工作年限、遇到人和事的增加而改变,但是此时此刻我的想法就是如此,希望对 ta 人有用。
1 ClaudeCode 2021-11-15 11:42:33 +08:00 摸鱼是我提升 |
2 2kCS5c0b0ITXE5k2 2021-11-15 11:45:10 +08:00 ![]() 当然是不考虑优化问题啊. 先写完再说 |
![]() | 3 F281M6Dh8DXpD1g2 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 ![]() 没有实践的学习,最大的问题是 你以为你懂了... |
![]() | 8 6IbA2bj5ip3tK49j 2021-11-15 11:59:30 +08:00 via iPhone ![]() 会搜索就能击败 90%的人了。 |
9 yemoluo 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 ![]() 好好看书。 |
![]() | 12 libook 2021-11-15 12:15:53 +08:00 ![]() 一个技术人员的价值不在于会多少种语言、框架、思想,在于是否能解决问题,特别是别人解决不了的问题。 |
![]() | 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 engtdyd 2021-11-15 12:29:04 +08:00 参与优秀的开源项目 |
20 jiayong2793 2021-11-15 12:29:28 +08:00 ![]() 代码是给人看的 |
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 ![]() 干了十几年,全靠谷歌和栈溢出赏饭吃 |
![]() | 24 encro 2021-11-15 12:51:09 +08:00 ![]() 1 ,任务分解; 2 ,读书; 3 ,看手册; 4 ,读源码; 5 ,需求分析; 6 ,休息; 7 ,实践; 8 ,提高对自己的要求; 9 ,向他人传授经验; 以上都是暂时能想到的,对我代码有提升的点。 突飞猛进当然有,但是质变来自量变。 比如说如何写注释的内容我们看了很多,别人的源代码也看了很多,然而还是写不好注释,直到我看到代码大全关于注释的介绍“注释负责解析 Why,代码负责解释 How 和 What”才豁然开朗。 比如如何写出安全的代码,那么你需要了解防御式编程; 比如对于复杂的状态管理,我们可以表格列表穷举法。。。 每天多学一点,那么几年后你就能鹤立鸡群,。。。 程序员开始的 2 年决定了以后的成长空间。。。。 如何利用隐喻。。。 以上都是《代码大全》这本书上有的,对我影响很大,但是如果只看这本书,那么还是不成的。 比如软件熵,生命周期,软件项目人力模型,这些《人月神话》的 “人民追随你是因为爱戴你”,“人在压力下无法思考”是《最后期限》的 既然你允许存在“突飞猛进”,那么也不要怀疑会存在“突然消失”。 |
![]() | 25 encro 2021-11-15 12:58:56 +08:00 ![]() 程序员或者所有行业的价值都在四个字------------“解决问题” 为项目解决问题 为公司解决问题 为顾客解决问题 为社会解决问题 而很多人做的不好,是因为他们找不到找不对问题,遇到问题无法解决,或者解决成本过高,或者在解决问题过程种又制造出了新问题。 |
![]() | 26 danhahaha 2021-11-15 12:59:44 +08:00 ![]() 翻墙 |
![]() | 27 huangzxx 2021-11-15 13:05:06 +08:00 ![]() 不要过度优化 |
![]() | 28 xLuoBo 2021-11-15 13:08:15 +08:00 via iPhone ![]() 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 ![]() 接触函数式编程和 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 ![]() 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 真实经历? |
![]() | &nsp; 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 ![]() 学会沟通,学会开会。这真的是所有程序员必备的技能。 沟通的概念,到现在为止我共事过的程序员里,真正能有自己理解的少之又少,有自己方法论的更是凤毛麟角。 |
53 xuanzizhe 2021-11-15 17:06:24 +08:00 ![]() 掌握左边的头发往右边搭看上去还很协调这门技术的时候~ |
54 ryan961 2021-11-15 17:12:20 +08:00 学 go |
![]() | nbsp; 55 nuobao 2021-11-15 17:25:19 +08:00 ![]() 接受不完美 |
![]() | 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 ![]() 前面再 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 ![]() @zzzzzzggggggg 是啊,因为很多人想象的看源码效果是几个晚上就掌握一个开源项目,一口就能吃成大胖子。读源码只能慢工出细活,只有边读边思考输出流程图和源码分析文章才算是读了源码,求快的后果就是读了跟没读一样(浪费时间)。 |
68 wuyufeng2333 2021-11-15 19:47:01 +08:00 @encro m |
![]() | 69 zxnv123 2021-11-15 19:49:00 +08:00 英语 |
70 auh 2021-11-15 19:53:56 +08:00 ![]() 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 ![]() 读书 + 实践 |
![]() | 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 |
![]() | 97 lniwn 2021-11-16 10:36:35 +08:00 ![]() @zzzzzzggggggg 我知道你说的哪个盘,但我破解的不是那个盘。我只是把它的登录逻辑用 python 实现了一遍,OD 主要是破解其登陆的签名算法。 |
![]() | 98 nuk 2021-11-16 11:25:46 +08:00 面向 github 编程,尽量抄别人的,节省的时间可以用来摸鱼。。 |
![]() | 99 PinkStarrySky 2021-11-16 11:36:27 +08:00 @nuk 没错, 你想把项目做好, 但是往往很多公司根本不给你时间, 只要最快速度交付, 那当然就是怎么快怎么来了. |