当前位置:网站首页>几个对程序员的误解,害人不浅!
几个对程序员的误解,害人不浅!
2022-06-10 16:13:00 【Hollis Chuang】
Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!
在很多人眼里,程序员是一类高薪、“高危” 的职业。他们穿着格子衫、顶着一碗超帅的光头,能修电脑、能黑网站、简直无所不能。。。
但直到我自己当上程序员,才发现其实很多都是对程序员的误解。除了外行的误解外,还有很多来自于程序员同行的误解。今天这篇文章呢,我想结合自己的学习 / 工作经历和感悟,分享下我对这些误解的看法,当然也希望给程序员朋友们一些实质性的建议和启发。
外行的误解
1. 程序员为啥工资那么高?人均年薪百万?
作为达不到平均的一方,我觉得这句话伤害不大,侮辱性极强。
程序员平均薪资可能的确稍微高了一点点,但是年薪百万真的是幸存者偏差了,真的极少数程序员(尤其是只凭技术的程序员)能做到这个地步。如果你拿我和小马哥去平均,那我还人均千万、人均上亿呢对吧?
2. 发量代表水平?
之前很多同学看我视频都吐槽说:“你为什么还有头发,你个菜鸡!”
我觉得这句话伤害不大,侮辱性极强,如果发量代表水平的话我应该比在座的大多数同学都要浓密才对。
所以有没有种可能,是因为太菜,需求做不出来、Bug 改不完,所以才经常熬夜加班、精神压力极大,导致头发熬没了呢?
咳咳,别骂了别骂了,是我本人了。

3. 感觉程序员的手速都很快?
我觉得这个要分情况。拿我自己来说,我一般在 2 种情况下敲键盘比较快:
要么是在写贼简单的、不用动脑的重复代码(比如增删改查)
要么就是在回消息聊天
所以有没有种可能,程序员的手速是通过摸鱼、怼产品、重复劳动、或者是平时打游戏打得多而提升的呢?
不过毕竟要经常敲代码,所以程序员的手速通常都不慢。
4. 程序员都是 996 吗?
我记得我之前不怎么加班的时候,就有同学在我视频下评论:你为什么不加班?
这个问题直接把我问懵了,好像我真的觉得自己应该加班,不加班是罪过。

我想说其实程序员也是有个人时间的。至于为什么程序员经常会加班呢?我觉得主要是以下几点:
首先是我们的程序代码是越写越多的,写的越多,系统越复杂,Bug 就越多。就拿我自己来说,刚做项目一周的时候,就那几行代码,Bug 多好查。但现在项目做了一年多了、用户也多了,很多陈年老 Bug 慢慢被发现了,而且经常牵一发而动全身。
第 2 点是程序员对排期的错误估算。我发现一个有趣的事情,需求是做不完的,你需求做的越快,新需求来的就越快;而且我们很多时候只考虑了做需求的时间,没有考虑改 Bug 的时间。但现实却有可能是改 Bug 的时间比开发的时间还要长。所以可能的话,还是别把需求排太满,预留一部分时间改 Bug。
当然还有很多其他因素,比如不会拒绝需求、不会跟产品 battle;缺乏经验、写的系统不利于维护、或者身边的人都很卷你不好意思走等等。总之加班是由很多方面决定的。
5. 重启可以解决 Bug?!
对不起,我觉得这个并不是误解。。这是真的!
以前我遇到过一些莫名其妙的 Bug 就死扣到底,但后来我就学聪明了,先重启一下编辑器、重启下软件,说不定就好了。因为 Bug 不一定是你造成的,可能真的是编辑器的 Bug。
大家就理解为电脑死机后,重启一下就又能开机了。原理应该是差不多的(将程序置于初始化状态)?
同行的误解
1. 算法和数据结构不重要?
有很多程序员是这么认为的,觉得工作中也用不到自己写算法,用个现成的函数、类库,或者上网抄一段就能搞定对吧?
但事实上,有些时候并不是你用不到算法,而是你缺了一些知识,根本想不到可以用算法去更好地解决问题。比如同样是存储和查找 20 万 个单词,没学过算法,用数组也能存、也能顺序查找,但是时空间都存在浪费;那如果你知道前缀树或者其他数据结构,就可以大幅节省存储空间、提升查找效率。
我觉得自己学的知识越多,反而会越觉得基础才是最重要的。因为上层的技术不断发展、不断迭代和淘汰,但是底层原理、编程思想、基本功一般是不会变的。
当然也有同学问是不是前端就不用学数据结构和算法了呢?只能这么说,这一块在前端面试的比重的确不大,时间紧大家可以优先以技术框架学习为主,但是有空了还是要好好补一下基础。
2. 写程序应当追求完美?
我觉得这句话对一半,应该是追求 特定条件下 的最优解。
没有工作经验的同学会觉得程序就要完美、看见你程序有 bug 了、写的不好看了、前人留屎山代码了,多少都会嫌弃。

其实真实工作下,我们没办法把程序写到完美,往往是空间和时间的权衡,比如 HashMap ,用内存换查找效率;或者人力成本和资源的权衡,比如花钱买现成的服务、节省开发时间;再或者是需求和实现的权衡,比如天天都让你做紧急需求,你还有空去优化架构、有空去追求极致的性能么?对不对,代码屎山就是这么来的。
所以这里就要求我们在写代码之前先做调研设计,多思考几种方案、权衡利弊,然后从中选择相对的最优解。同时也希望对别人写的代码多一些包容,把你放在别人的场景下,你未必能做得更好。
3. 代码量等于水平?
在学校的时候,我的确是这么认为的,当时经常跟舍友吹牛逼说我今天又写了多少行代码。但现在仔细回想一下,绝大多数可能都是复制粘贴、增删改查。
进了公司后我才发现,真正写代码的时间很少,像前期的需求评审、跟产品 Battle 啊、方案设计、技术选型啊、沟通、资源协调更重要,也往往更花时间。在你想清楚要不要写代码、怎么写代码后,再去写代码,那时你会发现只不过是一种翻译工具而已。
而且就我观察下来,一般职级越高、工资越高、能力越强的人,写的代码反而越少。并不是他们写不出来,而是他们已经写的太多了、已经有了很多经验、更懂得去利用工具来脱离重复的工作,比如写个自动化脚本、重复代码生成工具之类的。
还有一方面原因是公司需要他们去做更重要的事情,从底层的执行慢慢转变为上层的决策,比如刚刚说的方案设计、或者系统架构。大佬定了个框架,写个 Demo,剩下的就交给我们小码农对吧。
所以代码量是无法真正权衡水平的,在做需求时多去思考更合理的解决方案、写代码时尽量避免重复劳动,才是我们要追求的,
4. 技术决定程序员的水平?
我觉得这个误解和上一个很像啊,如果你觉得程序员的工作就是写代码,写的多、写得快就是强者,那你就真的把自己当成码农了。
我觉得衡量优秀程序员的标准绝不止有技术,比如问题的解决能力,同一件事,你完成的比别人快比别人好;比如业务理解能力,给你一个需求,很快就能判断它是否合理、梳理清楚流程;比如沟通能力,你能够很好地维护用户、组员、同事、跨部门合作者的关系,从杂乱的消息中提取出有效信息;比如产品思维,你能给出更好的建议来推动产品发展;比如管理能力,善于组织成员、推动团队发展。再比如分享表达能力,能把自己学会的东西清晰地讲出来、让别人也能理解,我觉得很酷的事情,也是我一直做分享的原因。
完
我的新书《深入理解Java核心技术》已经上市了,上市后一直蝉联京东畅销榜中,目前正在6折优惠中,想要入手的朋友千万不要错过哦~长按二维码即可购买~

长按扫码享受6折优惠
往期推荐
“因一条 Linux sudo 命令,我的 Twitter 账号被封了!”
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号

好文章,我在看️
边栏推荐
- sql注入报错之注入原理实例解析
- Fiddler设置断点
- Calling subroutines from other modules in VBA - call a subroutine from a different module in VBA
- 复利最高的保险产品是什么?一年要交多少钱?
- 亦舒作品经典语句
- Embedded development: five challenges in wireless update using MCU
- VBA判断一个长字符串中是否包含另一个短字符串
- Facebook AI | 从数百万预测结构中学习逆向折叠
- SOA架构/测试阶段接口描述语言转换方案
- How to make a simple Snake game with pyGame
猜你喜欢

Embedded development: five challenges in wireless update using MCU

Smart Scenic Spot Video Monitoring 5G Smart lamp Gateway Network Integrated pole

Webdypro layout control cannot be used_ SAP LIUMENG

postman常用断言
![[web security self-study] section 1 building of basic Web Environment](/img/f8/f2d13c2879cdbc03ad261c6569bc1d.jpg)
[web security self-study] section 1 building of basic Web Environment
PHP实现多张图片上传功能的示例代码

MFC基础知识与课程设计思路

Eliminate if Five ways of else

Build a leading privacy computing scheme impulse online data interconnection platform and obtain Kunpeng validated certification

毕业季:致走向辽远未知的你
随机推荐
【玩转华为云】鲲鹏DevKit迁移实战
KDD 2021 | MoCL:利用多层次领域知识的分子图对比学习
再联合 冲量在线与飞腾完成合作伙伴认证,携手打造信创隐私计算生态圈
Xinsi technology performed well in the Gartner application security test key capability report 2022 and won the highest score among the five common use cases
新思科技助力以色列Visuality Systems推进安全“左移”
Take you to play completablefuture asynchronous programming
Eliminate if Five ways of else
Cannot locate a 64-bit Oracle Client library:The specified module could not be found.
How to own your own blog website from scratch [Huawei cloud to jianzhiyuan]
Technology sharing | quick intercom, global intercom
Nat. Rev. Drug Discov. | AI在小分子药物发现中的应用:一个即将到来的浪潮?
Rethinking atlas revolution for semantic image segmentation (deeplobv3) personal summary
Knowledge based bert: a method to extract molecular features like a computational chemist
Fabric. JS activation input box
Carry forward the past and forge ahead into the future, multiple residuals | densenet (I)
Webdypro layout control cannot be used_ SAP LIUMENG
【无标题】
Fabric. JS zoom canvas
面试题-笔试
Docker安装Redis镜像详细步骤(简单易懂,适合新手快速上手)


