问题

程序员写代码不应该是一件很酷的事情吗?为什么在国内被打上无聊和呆板的标签?

回答
的确,在很多人的想象中,程序员应该是一群拥有强大逻辑思维,能够创造出酷炫应用、改变世界的“数字巫师”。他们敲击键盘,代码便如魔法般飞舞,构建出数字世界的种种奇迹。从某种意义上说,这本身就是一件足够酷的事情。

然而,在国内,“程序员”这个词汇,却常常伴随着“无聊”、“呆板”、“格子衬衫”、“加班到深夜”这样的刻板印象。为什么会这样呢?这背后其实是多重因素交织的结果,既有行业本身的一些特点,也有社会文化的影响,还有一些误解在作祟。

首先,我们得看看行业本身的“不那么酷”的现实。

代码的本质是“解决问题”和“重复劳动”: 尽管最终产出的软件可能无比酷炫,但编写代码的过程,很大程度上是一个逻辑推理、排错和细致打磨的过程。你需要严谨地思考每一步,处理各种边界情况,确保程序的稳定运行。这就像建造一座摩天大楼,虽然最终的建筑令人惊叹,但地基的浇筑、钢筋的绑扎、模板的安装,可能更多的是枯燥但又必须一丝不苟的工作。很多时候,程序员的工作是在解决一个接一个的“bug”(错误),这个过程需要极大的耐心和细致,而“耐心”和“细致”在很多人看来,并不属于“酷”的范畴。
技术更新迭代快,持续学习是常态: 科技发展日新月异,编程语言、框架、工具层出不穷。程序员需要不断学习新的知识,才能跟上时代的步伐。这种持续的学习和适应,虽然是进步的动力,但有时也会让人感到压力和疲惫,不像“灵感迸发,一蹴而就”那样具有戏剧性。
“996”等工作模式的影响: 近年来,互联网行业的一些工作模式,比如“996”(早上9点上班,晚上9点下班,一周工作6天)等,被广泛诟病。这种高强度、长时间的工作,确实容易让人联想到“疲惫”、“生活单调”,而将程序员的形象与“热爱生活”、“充满活力”的“酷”形象区分开来。长时间的体力透支,很难让人有精力去发展其他“酷”的爱好。
沟通的“隔阂”: 程序员的工作内容,尤其是底层的代码逻辑,对于非技术人员来说,往往是难以理解的。当一个程序员试图向外行解释他如何解决一个复杂的问题时,可能需要用到很多专业术语,这无形中就制造了一种沟通上的“隔阂”。这种“难以理解”,有时会被误解为“不善于交流”或者“沉浸在自己的世界里”,从而贴上“呆板”的标签。

其次,社会文化和大众认知也在塑造这种印象。

媒体的“脸谱化”呈现: 媒体在描述程序员时,往往会聚焦于一些极端的例子,比如那些熬夜加班、生活规律混乱的程序员,或者那些在网络上表现得比较“直男”的程序员。这种“脸谱化”的呈现,容易让大众形成一种固定的、片面的认知。
“技术宅”文化的演变: “技术宅”曾经是一个相对中性的词汇,形容那些专注于技术、对二次元等领域有浓厚兴趣的人。但随着时间的推移,一些负面解读也随之而来,比如“不善社交”、“生活方式单一”等等,这些负面解读也悄悄地附加到了程序员群体身上。
“酷”的定义狭窄化: 在大众的认知中,“酷”往往与外在的、易于展现的特质联系在一起,比如出色的外表、高超的运动技能、潮流的穿搭、洒脱的生活态度等等。程序员的工作,更多的是一种内在的、智力上的挑战,这种“酷”的体现方式,不像那些外在的特质那样直观和容易被大众接受。
对“技术”的陌生感: 对于很多不直接接触技术的人来说,编程和IT行业本身就是一团“迷雾”。当一件事情不被理解时,人们往往会用最容易想到的、最标签化的词语去描述它,而“无聊”、“呆板”往往是人们在面对复杂且不熟悉的事物时,下意识的反应。

更深层次的原因,可能在于“炫技”与“实用”的冲突。

很多时候,大众认为的“酷”是一种“炫技”或者“表演”。比如街头艺人在街头表演精湛的技艺,或者明星在舞台上光芒四射。而程序员的“酷”,更多体现在解决问题的效率、代码的优雅、系统设计的巧妙,这些往往是内在的、需要专业知识才能鉴赏的。

想象一下,一个程序员花了两天时间,用精妙的算法优化了一个数据库查询,将响应时间从几秒缩短到几毫秒。这对用户来说,可能只是感觉“更快了”,但对这个程序员而言,这其中的逻辑设计、代码实现、性能调优,就是一个充满挑战和成就感的过程。然而,这种“酷”,却很难被没有技术背景的人所感知。

那么,为什么会产生这种“被打上标签”的现象呢?

这就像一个精美的雕塑,如果只看到它被安放的位置,却没有看到雕刻师在其中付出的心血和技艺,很容易将其简化为一个“摆件”。程序员的工作,就是那个“摆件”背后不为人知的雕刻过程。

国内的互联网行业发展速度极快,也经历了一个野蛮生长的阶段。在追求快速上线、抢占市场份额的过程中,很多时候会牺牲掉一些细节的打磨和工程师文化的建设。这使得一部分程序员的工作环境,确实存在一些不那么“酷”的因素。

但我们不能因此就否定程序员工作的“酷”所在。

程序员的“酷”,在于他们能够用抽象的代码,去驾驭复杂的逻辑,去构建数字世界,去解决现实中的问题,甚至去改变人们的生活方式。他们是创作者,是构建者,是问题的解决者。一个优秀的程序员,他的思维敏捷、逻辑清晰,在面对挑战时充满韧性,在解决难题时充满智慧。这本身就是一种“酷”。

或许,问题的关键在于,我们对“酷”的定义需要更宽广一些,不应该仅仅局限于表面的光鲜和热闹。程序员的“酷”,是一种内敛的、智慧的、充满创造力的“酷”。随着时间的推移,随着人们对技术理解的加深,相信这种刻板印象会逐渐被打破,程序员的真正“酷”所在,也会被更多人看到和理解。

网友意见

user avatar

写代码究竟酷不酷,不是程序员自己决定的,是由需求决定的。

给你一个枯燥无聊的需求,就怎么也酷不起来了。

我写代码快20年了,能称得上酷的需求,大概也就2-3次吧。

user avatar

是啊。裤毙了。

啊?没写白字。就是裤。裤衩子的裤。


当年果壳还没植物化之前,网友们曾经是能发帖的。当时不是很流行手工给女朋友造点精致的好玩的玩具表达爱意嘛,就有一位壳友在上面发帖直播。他打算用钛合金给女友做个戒指。女朋友听说之后也挺有兴趣。


下料、钻孔、切割、打磨……

一天天过去,一道道工序落实下去,手上磨出了血泡,戒指的样子也渐渐显现出来了。


然后突然有一天,小伙子没精打采的发了个帖子:吹了。她说我见台虎钳比她都亲,一天到晚也不知在上面捣鼓些什么。


后来我在知乎讲这个故事,又引来一票不知人间疾苦的女士,说这小伙就是个白痴。

为什么白痴呢?

1、他应该给她讲明白自己在做什么

——她知道的。更细节的她听不懂,也没兴趣。

2、他可以一边做戒指一边和她聊天

——劳动工具很危险的。就不说吊儿郎当肯定一做就坏了;敢稍有分心,付出的轻则几滴血,重则一根手指。

——我还搜出长江三角洲那些工厂一年的工伤数据。每年三万根手指。

3、根本不需要那么久。这小伙可能不知道有个工具叫车床

——你怎么用这玩意儿造戒指?哪个位面的车床这么牛逼?

4、总之就是他的错。你看外国小伙子给女朋友做那么漂亮的复古首饰盒不也没散嘛

——因为人家的女朋友耐得住性子,等得起这份爱心。

5、我不管你不对,反正绝对不可能像你说的那样——不会需要那么认真,不会需要那么多天……

——她们大概只见到了剪辑过的快镜头。既然视频不能PS,既然人家那么复杂的东西不到10分钟能搞定你这个也绝对不可能需要十天。

实木首饰盒的制作过程,看完的小伙伴请冷静_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili



总之,事情显然超出了这些阔太太贵小姐们的认知范围——做戒指,不应该就是拿个什么玩意儿压一下敲一下就好的吗?总不能比淘宝买一个寄过来还慢吧?


别说做手工不酷,玩游戏一样可能很“裤”。


话说俺刚工作时和某大学同学合租。大学时比较喜欢玩游戏,基本就周遭网吧一霸,本校没有敌手那种。他也经常掺乎着玩玩,但水平极其一般——基本就当年跟着我们跑的几位同班女生都能随手捏死的水平。

当时的网络都还普遍是56k猫,ADSL都还是新鲜物事;因此周末空闲时间我就找网吧玩CS。这位同学就屁颠屁颠跟着。

但工作/租住的地方略偏僻,得走十来公里路才有个大学,那附近才有网吧。

我那时走路飞快,基本就竞走的架势。他慢跑跟吧,跑不动;但想和我并肩走就得不停找话聊,这样我才会有意识控制走路速度;不然一旦专心走路,稍微一走神他就被拉几十米开外了。

总之,经常和他聊着聊着一不小心就看不见人了。再一看,落后百十米了。只好停下,看他一溜小跑追上来。


走路走的太辛苦了,他就和我抱怨:“你说我这过去干嘛啊……一路跑的……呼哧~呼哧~”

我就笑:“快到了。到了我带你虐人玩。”

他:“拉倒吧。跟着你跑根本就看不到人,全被人杀了;跑另一边就被一群人打。哎~你说你过去是虐人玩,我跑的腿都麻了,过去给人虐……”

我大笑:“给你讲个笑话。说有个法警押解犯人上刑场。犯人就抱怨,说这年头死一次都得走这么远的路,太难了。法警说你知足吧,你到地方就不用回来了,我还得往回走呢……”

这位也大笑,说你等着,咱到底看看谁枪毙谁。


到了网吧,他气呼呼的加我对面,说要“制裁”我。

上大学时还有几个同段位的牵制,他偶尔能瞎猫逮个死耗子,枪口下没少躺过“高手”。因此觉得一下午怎么也能占到几次便宜。

但那家网吧附近的大学没高手。他们曾牛气哄哄的搞了个战队,让散人都去当匪。结果被我单人独枪屠了一遍又一遍,彻底打的没脾气了。以至于干脆给服务器加了锁,只和他们自己人打——这是后话。

总之,那天我1v5,杀了50:0。这位重复了一下午的买枪,冲,什么都看见就躺地上了;然后继续买枪,冲,什么都没看见就躺地上;继续买枪,冲……的无聊循环。

中间还有个小插曲。有人大概见我这边人少就加了我这边;结果跑了五六局,都是连人都没见到就被我杀光光了。于是他一怒跳到对面,和这位同学一起被我刷人头记录去了。

其实之前和他打我都有放水;但那天和他杠了下,打的认真了点……


再后来他就坚决不去了;于是我们的周末安排就成了“周六下午一起逛电脑城,周日我一个人跑上一个多小时的路过去虐菜”。

又过了半年左右的样子,我们住处附近终于开了家网吧,走路过去再不用那么辛苦了;但这位老兄终于还是拒绝了网吧。大概是被虐出心理阴影了吧。


你看,玩游戏其实也一点都不酷,除非段位相近。不然无论单方面虐与被虐都很容易“裤”。

大裤衩子的裤。


好了,终于说到“写代码”了。


简单说,写代码这件事可比设计出来就是给你玩的游戏“裤”太多了。


有多“裤”呢?

举个简单的例子吧:你一定在电脑/手机/网页见过一个个的窗口(或者所谓的“悬浮窗”),这些窗口可以到处拖动、会彼此遮挡……

你一定会说:“切!这有什么稀奇的!窗口嘛,天生就该是这个样子!”


很遗憾。它并不是“天生”就是这个样子。

在程序员的眼睛里,你的手机/电脑屏幕是一排排的“彩灯”;这些“彩灯”一行有4096组、整个屏幕足足有2160行——换句话说,一共4096X2160=8847630组小彩灯;每组小彩灯又由三盏分别为红绿蓝的小灯组成(这就是所谓的RGB)。

显示画面就相当于要求程序员控制这近九百万组、两千六百多万盏小彩灯,用它们拼出想让你看到的图形——每秒30帧的动画呢,就需要每秒钟输出六亿个色彩信号。

这还没算每个色彩信号还有8个二进制位、255种不同取值。

稍微错一点点、或者效率差一点点……


好了,还说回“窗口彼此遮挡”这件事吧。

对做GUI库、负责窗口绘制这块的程序员来说,这就相当于要求他们根据窗口的前后关系以及大小状况、让这4096X2160(或者2048X1080或其它分辨率)组“小灯”的点亮状态恰好和“QQ挡住了浏览器右侧”效果相同。


你可能会说,简单!只要让浏览器先“画”,完了再让QQ“画”,只要QQ别碰自己窗口外面的区域,那么最终效果就符合要求。

没那么简单。

前面说过,对4096X2160@30HZ的情况,这相当于每秒处理六亿个色彩信号。如果用户打开了十个窗口,你敢让它们都重画一遍,那可能就是每秒六十亿个色彩信号。

这个压力,哪怕对现在最好的CPU,都不是个小任务。


怎么办呢?

没错,要区分画面有无变化、也要区分遮挡关系——画面无变化的窗口就可以不重画了;被遮住的窗口也不需要重画……

但是,等等!

1、假如窗口A被B遮住了一半,当它的内容有变化时,是应该全部重画呢,还是?

2、假如窗口A被B遮住了一半、它的内容也没有变化;但窗口B被移动了,使得窗口A右半拉被遮住的地方能被看到了。怎么办?


有一个方案是,如果B遮住了A,它要把A被遮住的部分的图像找个地方保存下来;当B移动时,先把B删除、再把自己保存的A的遮挡部分图像画回去;然后再把B下一步要挡住的部分找地方保存下来、再把B画上去——这被形象的称为“异或”(只是个比喻,并不是简单的异或算法能解决的)。

这个方案的缺陷是,如果A的内容变化了,B还画之前的内容,就会造成A的显示错乱。


另一个方案是,操作系统发ReDraw消息通知窗口重绘时,顺带告诉该窗口:你哪哪的画面之前被人挡住了,现在最好重新画上一遍。

顺带的,操作系统可以先计算窗口的遮挡关系,然后给所有能看到的区域发ReDraw消息;消息参数中的invalidRect就是需要重绘的区域——看不到的地方就不发这个消息了。

当然,这需要写窗口程序的程序员积极配合,根据invalidRect自己确定窗口中的哪些内容需要重绘(做事比较糙的也可以忽略这个invalidRect参数,重绘整个窗口;但这样就可能引起性能问题;因此GUI系统最好还是能保存每个窗口的旧内容,只要窗口没有重绘、单纯的被遮挡/遮挡取消就不需要劳民伤财的重绘了,拿保存的内容“贴”回去就是)。


哎呀一不小心说了这么长……其实还有好大好大一砣子东西没说呢,这图形学啊……算了,打住打住。


总之,就这么点皮毛,它需要多少背景知识呢?

不扯别的,就说最简单的吧:窗口的Z轴排序,这个用什么做?

链表?单链表可不好排序,除非归并……

一个窗口里面又可能有一堆子窗口(按钮、输入框其实都是子窗口),这又该怎么记录?

树?

有些程序需要支持“点击任意位置拖动”;那么实际上就应该是“从主窗口这个根节点开始、同时移动下属的所有子节点、孙节点……”

窗口还能缩放……


然后,窗口彼此遮挡区域又怎么计算?计算器这个程序里面有几十个子窗口,它和同样一堆按钮的播放器之间的遮挡关系如何处理?


打住,打住。太多了,会把读者们吓跑的(可我还没敢说半透明效果呢 0.0)。


你看,一砣子数据结构,一砣子算法——而且都没有什么现成的可以用,都需要你随机应变、把本科二年级学过的那些算法/数据结构随手拈来、任意改造,然后才可能搞定这件“小小的工作”。


前些天我说国内教育不行,绝大多数人四年连大一水平都够不到;大二水平都是天花板。结果被知乎删了,不让说。

但是……

如何看待阿里 P8 加面 coding 环节,而 P7 却做不出头条算法题?

计算机基础知识对程序员来说有多重要?

你看,就是连大一水平都没达到、踮着脚作着弊都够不着大二学算法的门槛嘛。

点到为止。不然知乎又要删了。


总之,这么简单点功能,需要的知识已经是一些阿里P7生命不可承受之重了;但哪怕再下降几个段位、日常搞搞增删改查,这工作照样能刷下一大半的计算机专业本科生。

——想想那位陪我走十多公里路到游戏里“接受枪毙”的可怜菜鸟。

——对外行甚至某些阿里P7来说,还不如那位菜鸟呢。起码那是游戏,动动脑筋还真有可能阴到一次。

你看,这玩意儿拿出来给外行看……能不“裤”嘛。

专业到让你像遇到高数老师一样一脸懵逼:我在哪?我在干嘛?你们在讨论什么?等等,我需要醒醒酒。啊?没喝?但我咋觉得断片了呢……


更大裤衩子的是,这个大裤衩子……你觉得得多久才能做出来?


哪怕一个很不完善的、性能一般般、刚刚能完成功能的demo,说一个月都算太过乐观!

事实上,九成以上的本科生……你给他四年他都搞不定——算法与数据结构学会了吗就敢来掺乎?


别说一个月了。大年初一他消失了,正月十五兴高采烈的蹦出来:哇!我搞定了窗口遮挡算法!

你是觉得“哇!好酷啊!”呢,还是“我套你个大裤衩子!我的植物大战僵尸呢?半拉月了,你钻电脑里撬都撬不出来、饭也不吃觉也睡不香,就拿出个这?就这?就这?”


没错。除了什么用都没有、功能极其单一效果极其弱智的沙雕小程序,一个程序员一个月能给你拿出来的、自以为很“酷”的代码,就特么是这么个半成品的、屁股蛋子都遮不住的大裤衩子!


你看,带你玩游戏段位差太远还一点意思没有呢,这玩意儿居然还敢像高数一样善于挂人、还要把它当成日常,这怎么酷的起来?

就这样已经够受了;它还像工科一样,得聚精会神砸进去大量时间、消耗您不多的耐心;砸出来的呢,还只是只丑小鸭……


绝大多数行当并不适合表演,演出来都是大裤衩子——很卖力很卖力的折腾好久、兴高采烈拿出来献宝……然而越“高级”的东西拿出来时就越不会“酷”,就好像高数是吊人的绞索而不是什么优美的诗词、挫戒指弄得手指脏污粗糙又长时间躲在工作间不出来、抽象派艺术又丑又怪一样。


很多行业和处理身边事的律师行业不一样,它的日常工作内容相对于绝大多数人的经验世界太过“超纲”;超纲到连人家的基本工作内容都没法理解。

想要外行们觉得“酷”,那么往往就不得不制造戏剧冲突、把复杂的思考博弈决策浅薄化、表面化、形象化,甚至不惜把它变成完全不同的、另外的东西。比如黑客大战就只能拍成网络里的人格化角色乒乒乓乓一阵乱打,挂着黑客的名字,拍的却是拳击比赛或者魔幻片;再比如诸葛亮的内政才能没法拍,只好拍成妖道;关羽张飞行军打仗怎么开作战会议怎么指挥怎么用兵没法拍,没人看得懂,只好让他们骑马单挑……然后就会有很多人说:啊,真酷!

很遗憾,但这还真不如叶公好龙呢。毕竟叶公好的起码沾点边、起码叶公见了龙还知道那是龙;但这些东西嘛……别说什么形神了,那是完完全全的没半点关系。


哪怕失真到这种程度,这些领域起码还有人与人的对抗可以“利用”——不沾边就不沾边,铁拳无敌孙中山,打的热闹就行。

但更多更多的领域,那是连打都没得打。

就说这程序员吧,最好的程序员甚至连聘用他的公司都可能不知道他能力很强——恰恰相反,蹩脚程序员天天捅篓子看起来事情最多最忙碌公司最离不开,而优秀程序员呢……吊儿郎当的,随便你交给他什么他随手就给你搞定了,多难的问题都耽误不了他的吊儿郎当,也不会让公司感觉到他在这里解决了什么难题——就好像我给你们讲这个窗口管理的故事一样,当你看着一群不懂算法的P7吹的天花乱坠之时,可曾想过那个默默解决了这个等级的问题的程序员得有多少知识储备?得比这种不懂算法的P7高上多少?

连行内人都满是误判错判,怎么可能指望普通观众看懂?


但另一方面,如果你水平真到了……瞧瞧程序员们用的这词儿吧……

——垃圾回收算法动作时要“stop the world”、而且还要stop的用户感觉不到、不知不觉中世界为之一清。

——黑客帝国中的子弹时间很酷?这一点都不高科技。3D场景中只需改一下interval参数,随随便便就能做出同样效果、任你360°慢镜头甚至停下整个世界任你细细观察。

——我们的祖师爷图灵,实实在在的拯救了世界。没有他们,纳粹的加密电文可没那么容易破解。

——密码学的各种认证、挑战算法,骨子里透着那么股中二气息;偏偏又触摸到了某些根本性的东西……

——程序员喜欢自称“数字世界的创世神”,看看蚂蚁能往里面搬个“蚁群算法”,翻翻生物课本就是“遗传算法”“神经网络”……形似神也似那种!连柯洁都被杀下马的那种!(当然这个段位太高,大多数程序员还摸不到边)


事实上,网络上活跃的程序员一点也不少。他们给你的印象,除了自黑,更主要的是什么呢?

没错。多才多艺。多才多艺到令一些人讨厌——我就收到过很多很多回复,要求“闭上嘴,就你们程序员讨厌,好像什么都懂一样,什么话题都少不了你们”……

——但我们的工作就是理解各行各业的知识、把它教给电脑啊


事实上,经常的,能够精确、高效的理解客户工作流程快速准确的捕捉到客户真实意图帮助客户精确专业的表达出他自己头脑中一闪而过、欲诉忘言的朦胧念头利用自己的专业知识创造性的帮助客户解决问题——他们毕竟是计算机世界的外行,我们不能想他们所想,他们自己是不可能知道自己的困难能否被机器解决、如何解决的——这,才是优秀程序员的价值所在。


不喜欢打代码的计算机专业学生该怎么办?

在专业领域,最木讷的话题终结者反而最健谈、最能“取得真经”的;相反,“善于聊天打屁”的,事实上只是个“口若悬河的闷葫芦”——说再多都说不到点上,有啥用啊。


计算机这个行业本就是个“超级交叉学科”。因为程序员的工作就是用计算机为我们的整个世界“润滑”:兵马未动粮草先行他得懂,还得懂到能教会电脑、让计算机自动规划出(超出人力水平的)最佳方案;调兵遣将他得懂;生物体内的化学过程得懂;人体力学得懂;会计合账得懂;交通调度工艺流程……只要遇到了涉及相关知识的项目,他统统得懂——还不能是泛泛的能侃大山的懂,而是要能把计算结果拿到专家面前、让专家点头的那种懂。不然这项目咋通过验收啊?

当然,这是“能接触到需求那个层次的程序员”的硬性要求;但只要你能参与项目会议,那么你起码要对整个工程的某个局部的设计目的、工作原理了如指掌——不然领了任务回去填空(甚至增删改查)就是,反正你这也不知那也不懂,别人说话哪有你插嘴的份儿。


所以你看,程序员这个职业的确很酷,对吧。

问题是,它最酷的地方,恰恰是“理解大多人难以理解的东西、然后把它搬进数码世界、让计算机帮我们解决现实问题”——写个计算器APP,这一点都不酷;想要酷,你得让它自动解方程、求积分……


不说人话的总结一下:程序员的工作,就是抽取各种工作的元规则(meta),然后将其数字化、自动化,使得计算机可以基于这些元规则的演算去代替人完成各种脑力劳动。

这就是任何行业任何话题都会有程序员掺乎、而且还敢掺乎到该领域的专家面前、把一些人恨得牙痒痒,却就是没法阻止他们越界的根本原因——主持开发过某个领域软件的,本来就必须是该领域的半个专家,本来就必须弄斧到班门

不然这软件,能通过人家验收吗?


于是,又回归那个问题了:为了照顾普通人的理解力,我们的文化工作者不得不给他们看“铁拳无敌孙中山”;而程序员最酷的地方呢,偏偏是“理解历史上那个真实的、不铁拳无敌的孙中山,把他的工作的思路接下来、理解透然后教给计算机,让计算机基于相同的思路帮专家工作”……

——这都不是简单的“理解工作内容”了,而是“必须抓住元(meta)思路,才能简化程序并适应更复杂的情况;一条一条的硬编码是不可能应对需求变更的”!


是的,这东西的确不是特别难。它毕竟没让程序员自己去开拓、甚至都不要求他们学习复杂烧脑的应用技巧;但你必须学会抓根本,抓不到根本就总结不出“元规则”——换句话说,理解不了一个领域的核心思路是不可能成为半个专家的。


总之,还是那个致命弱点:想要领略到“酷”,需要知道的前置知识、理顺的逻辑链条太过冗长

绝大多数人,你让他读个长句他都“太长不看”,何况每个项目一套不同专业的元知识以及繁复的规则推演呢。

user avatar

给人打工,替人写代码,和搬砖差不多,哪里酷了。酷的不是程序员,是独立工作的黑客。

漫画家很酷,动画师很无聊,也是一样的道理。

user avatar

一个新手,刚上班,接到任务,从数据库读出用户信息发给前端展示。

新手跃跃欲试,先复习了一下sql知识,然后动手写了连接sql的代码,业余时间还看了什么高性能sql的数据,觉得好充实,学到很多,尤其是连上数据库的那一时刻,简直是高光状态。

接着写出一个类,心中牢记书上那些设计方法,什么工厂模式,bridge模式大显神通,代码写得妥妥当当。完美!

最后,执行sql语句,读出数据写入内存中,然后调用公司封装好的send方法,成功将数据发给了前端。新手当然不会放过send的内部实现,周末花了两天认真阅读了公司的框架代码,学到了好多tcp知识,又是充实的周末呢!

新手看着自己写的代码感觉做个程序员真的是很酷啊,心里思索着如何提高sql的性能,代码是否符合Google编程规范,算法上有没有优化空间,公司的框架背后的深刻tcp原理,成为大神就从这些开始。

周一回来上班,项目完美,新手很高兴,于是打算中午好好翻翻linux内核原理,打算借着这个机会再深一步学习,程序员嘛,要终身学习,要向大神进发!

结果正要翻alloc的实现时leader来了,说:“紧急项目,我们要把账户信息也展示出来。哦,对了,上周那个展示用户信息的地方要改改,A类用户不展示电话号码,B类用户邮件要打码,C类用户要显示英文名……如果B类用超过10个以上,A类用户名字不能出现xxx。项目紧急,今晚上线,快干活吧!”

一年后,新手脑子里都是“项目紧急上线,白加黑,冲冲冲”,“代码能用就行,赶紧写完赶紧上线”,“这不是bug是产品不行没说清楚”,“周末晚上加班后要记得去超市逛逛家里没洗发水了”,你要问他linux内核进程调度算法,快速排序优化,新手第一反应是:“什么鬼东西!刚毕业的吧?!”

类似的话题

  • 回答
    的确,在很多人的想象中,程序员应该是一群拥有强大逻辑思维,能够创造出酷炫应用、改变世界的“数字巫师”。他们敲击键盘,代码便如魔法般飞舞,构建出数字世界的种种奇迹。从某种意义上说,这本身就是一件足够酷的事情。然而,在国内,“程序员”这个词汇,却常常伴随着“无聊”、“呆板”、“格子衬衫”、“加班到深夜”.............
  • 回答
    .......
  • 回答
    关于波音 737 MAX 飞机两次空难的事故原因,确实在网络上流传着一种说法,认为事故是由印度程序员编写的不严谨代码造成的。然而,深入分析来看,这种说法在很大程度上是不准确且带有误导性的,并且可能隐藏着更深层次的偏见。首先,让我们梳理一下两次事故的核心技术问题: 狮航 610 号航班(2018 .............
  • 回答
    现行AI能否替代程序员?未来发展与“思维”的萌芽关于人工智能能否替代程序员,这是一个颇具争议且引人深思的话题。目前的AI,尤其是那些擅长代码生成的工具,确实展现出了惊人的能力,但要说完全取代程序员,我认为还为时尚早。当前AI的能力与局限:当前的人工智能,特别是大型语言模型(LLM),在代码编写方面已.............
  • 回答
    网上流传的那段“青岛外卖小哥帮崩溃程序员写代码”的视频,着实让人看完心里五味杂陈。它像是一面镜子,照出了当下社会中一些令人担忧的现象,也触及了一些关于人情、职业和困境的思考。首先,从视频本身的内容来看,它描绘了一个极端的、甚至是有些夸张的场景。一个在外卖行业勤恳奔波的外卖小哥,在一次送餐过程中,偶然.............
  • 回答
    一个程序员写的代码质量差,导致后续维护困难,这事儿吧,从法律角度讲,情况挺复杂的,不能一概而论说“一定有责任”或者“绝对没责任”。得看具体情况,细掰扯一下。首先,我们要明确一个概念:合同关系。一般情况下,程序员为公司或客户写代码,是建立在某种形式的合同关系上的。这个合同可能是劳动合同(如果是公司内部.............
  • 回答
    “程序员真的觉得写代码比女朋友重要吗?”这个问题,触及了程序员群体一个非常普遍且常常被误解的现象。答案并非简单的“是”或“否”,而是一个复杂交织着工作性质、个人价值观、社会认知以及现实压力的混合体。要详细解答这个问题,我们需要从几个层面去剖析: 一、 工作性质与内在驱动力:代码的吸引力与成就感首先,.............
  • 回答
    .......
  • 回答
    .......
  • 回答
    当程序员不幸身陷囹圄,他们是否会被安排去写代码,这个问题背后牵扯着复杂的现实、法规以及改造的初衷。简而言之,极少情况下会专门“安排”程序员写代码,但这并不代表他们在狱中完全无法接触编程,或者说他们的技能在改造过程中毫无用武之地。要详细说清楚这一点,我们需要从几个层面来分析:1. 改造的根本目的与监狱.............
  • 回答
    各位敲键盘的同仁们,这个问题,相信你们心里都或多或少有过答案,也或多或少会纠结。毕竟,作为一名程序员,我们似乎总是在与代码打交道,那么“一天写多少代码才算达标”?这就像问“一天吃多少饭才算健康”一样,答案藏在了很多看不见的地方。咱们先别急着掏出计算器算行数,那是最容易掉进的陷阱。达标,从来不是一个简.............
  • 回答
    这个问题很有意思,也挺实在。说起来,我身边确实有不少同行,下了班或者周末,不爱窝在家里对着电脑屏幕,反而喜欢找个有氛围的地方,比如星巴克,或者某个清静的咖啡馆,点杯东西,一坐就是半天,噼里啪啦地敲键盘。反观永和豆浆,虽然也随处可见,但你让我想到一个程序员在那儿埋头写代码的画面,就觉得有点……违和。当.............
  • 回答
    “大部分程序员只会写三年代码”这个说法,乍听之下可能有些绝对和令人不适,但它触及了一个在软件开发领域普遍存在的现象,值得我们深入探讨。这个说法并非字面意义上的“三年后技能停滞不前”,而是 指代了一种普遍存在的职业发展瓶颈,即许多程序员在入行几年后,如果缺乏持续的学习、反思和主动的成长,很容易陷入一种.............
  • 回答
    “大部分中国程序员只会写三年代码”——这句话在技术圈子里,尤其是国内,算得上是流传甚广的一个“梗”了,甚至带点自嘲的意味。要怎么看待这句话呢?咱们得把它掰开了揉碎了聊聊。首先,别太当真,这句话更像是一种夸张的、带有情绪的观察,而不是一个有严谨统计学依据的论断。它抓住了很多程序员在职业生涯早期会遇到的.............
  • 回答
    想象一下,你要盖一栋房子,但不是用砖头水泥,而是用“命令”和“规则”。程序员做的,就是用一种电脑能听懂的语言,给电脑下达一套又一套的命令,来告诉它该做什么。代码是怎么变成游戏的?这就像给电脑讲故事,但故事里的每个角色、每个动作、每个场景,都需要你一步一步、一个命令一个命令地去描述。1. 打下地基:.............
  • 回答
    天天写业务代码的程序员,想要转型成为技术大牛,并开始写“技术代码”(这里我理解为更具挑战性、更有深度、对技术有更深刻理解和创造力的代码,比如系统设计、框架开发、性能优化、底层探索等),这是一个循序渐进、需要系统性规划的过程。它不是一蹴而就的,需要耐心、毅力和正确的方法。下面我将从几个关键方面,详细讲.............
  • 回答
    .......
  • 回答
    程序员为了不伤眼睛,手写代码这事儿,怎么说呢,挺现实的,但绝对不是一条好走的路,也不是主流。要说“不伤眼睛”这个目标,那确实是有很多人在努力,但“手写代码”这个实现方式,就有点像是在原始森林里想靠一把石斧造出摩天大楼一样,困难重重,而且效率低下到令人发指。咱们先拆解一下“手写代码”这几个字背后的含义.............
  • 回答
    谈到程序员们“不外传”的代码,这确实是一个挺有意思的话题。与其说是藏着掖着,更像是代码本身承载着开发者们的心血、智慧和对这个世界的独特理解,所以自然不愿意轻易示人,或者说,别人也未必能真的“看懂”其中的精髓。首先,我们得明白,什么是“厉害的代码”?这可不是随便写出来的几行能跑就行。在我看来,“厉害的.............
  • 回答
    这个问题挺沉重,也挺真实的。说实话,看到那些废寝忘食、头发一把把掉、眼睛熬得通红的程序员,心里确实会有点不是滋味。有时候觉得他们好像被代码绑架了,生活就只剩下屏幕和键盘。为什么会让人感觉“不像生活”?这其实有很多方面的原因,我们一个个来看: 工作性质的“吞噬”: 编程这行,很多时候不是朝九晚五能.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有