百科问答小站 logo
百科问答小站 font logo



想知道那些编程大佬是不是代码都能记住,然后不用查百度就能啪啪啪打出来呢? 第1页

     

user avatar   yao-dong-27 网友的相关建议: 
      

2001年左右的时候,我大量做Windows客户端开发工作,巅峰时可以不看文档把 CreateWindow,CreateFont 这样复杂的函数参数都写出来,你们可以查下MSDN,看看这些函数参数是啥样的。

其实也没什么了不起,就是写得太多了,唯手熟而。

对编程这事来说,不熟练是写得太少,缺乏练习。

太熟练说明知识固化,技术深度广度不够,也不见得是好事。


user avatar   da-bao-zi-67-92 网友的相关建议: 
      

记不住,你知道我现在得用多少种语言?都记下来不干别的了。

你看到我们啪啦啪啦的敲代码,要是没有ide的提醒,我们可能真的只是在敲键盘或者在和MM聊天。

在软件里有个类型叫做:效率。

对,效率。这些是工作而已,当然用最高效的方式。


最后提醒一下:

编程这个事啊,最难的地方不是下手去写的时候。

当我下手去写的时候,说明我的构思、设想、理论、模型、异常解决方案……都已经在脑子里或者在其他的工具里存在了。

如果不做前期的这些准备,编程人员键盘上敲的最响的应该是“backspace”。

我工作了这么久,十多年老程序了,接触的语言不下十种,做架构、原型设计、现场开发,涉及项目大大小小不下30个,从最初的二指禅到现在的非对称六指禅,打字速度上也没啥提升,那也没耽误我产出。

所以说,一旦涉及到敲代码了,就没什么难的地方了,这个过程越快越好,恨不得让机器自己去生成。你以为模板语言为什么在大型项目里一直是香饽饽……

微软的vs和jetbrain都开始引入智能预测输入,是在侮辱程序员吗?当然不是,得谢谢他们把你打字员的属性压低了一些。



哎呀,跑题了。

我也不是大佬啊,答个什么玩意儿了,摸鱼去了。


user avatar   pythonpeixun 网友的相关建议: 
      

不需要死记,安装tabnine这样的插件,AI completions。

tabnine.com/


user avatar   tian-yuan-32-23 网友的相关建议: 
      

你坐在一个程序员对面听哈。

如果这哥们键盘敲的啪啪响,还时不时面露微笑。

别急着崇拜。

很多时候可能只是正在跟,测试组/美工组/产品组/运维组的美眉们聊天呢。

如果这哥们的键盘是有规律,有间隔的,咔哒……咔哒……咔哒,而且面色平静。

那么有可能是在拷贝&粘贴代码。

如果这哥们眉头紧锁,东张西望,键盘隔好一会才敲一会,然又是东张西望。

这才是有可能在开始编程。

用键盘敲击速度来评价的,不是程序员,那是打字员


user avatar   qiongmanong 网友的相关建议: 
      

这个世界,最厉害的编程大佬,只有一个,他的名字叫Jeff Dean。因为他真的不用百度,因为他是Google的大佬。


如果你不是Jeff Dean,但你却是一个程序员。那估计你最好的朋友,就叫Google, 其次可以是Stack overflow。

因为我们都是面向google编程,我不知道大佬们是不是会百度,但他们一定会Google!

真正nb的程序员,不是记住了所以的代码,而是需要写代码的时候,知道去哪里找。

看题主还刚开始,那咱们还是好好打好基础吧,有了一定的基础之后,你的这些困惑也就自然解开了呢。下面的回答时候刚开始入门的小伙伴们。

一个不是很了解CS(计算机科学)的人,该从哪里开始自学CS?


========================= 手动膜拜大佬分割线 ==============

下面咱们来看看Jeff Dean有多大佬吧,都来拜一拜!

Jeff Dean:(也称Jeffrey Adgate Dean)是一名美国计算机科学家和软件工程师,出生于1968年,毕业于华盛顿大学,主要作品有《MapReduce》等。

主要成就:

  • MapReduce 一个大规模数据处理系统
  • BigTable 一个结构化数据的分布式存储系统
  • Spanner 一个全球性的数据库系统
  • 参与谷歌的网络爬虫、索引、查询系统、AdSense、谷歌翻译的设计与实现。
  • 2009年当选美国工程院院士
  • TensorFlow 人工智能学习系统 项目负责人

Jeffrey Dean,简单来说,这货是Google牛逼的源泉之一。因为此人实在太牛了,于是出现了关于他有多牛的几个笑话,直接笑翻,和大家共享下。

  1. During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said, "P = 0 or N = 1." Then, before the interviewer had even finished laughing, Jeff examined Google’s public certificate and wrote the private key on the whiteboard.

当他被Google面试时,Jeff Dean被问及如果P=NP意味着什么。他说,“P=0 或者 N=1”。然后,在所有的面试官还没笑完之前,Jeff瞄了一眼Google的公共证书然后在白板上写上了对应的私钥。

  1. Compilers don’t warn Jeff Dean. Jeff Dean warns compilers.

编译器从来不给Jeff编译警告,而是Jeff警告编译器

  1. The rate at which Jeff Dean produces code jumped by a factor of 40 in late 2000 when he upgraded his keyboard to USB 2.0.

在2000年后段,Jeff码代码的速度突然激增了40倍,原因是他把自己的键盘升级到了USB 2.0

  1. Jeff Dean builds his code before committing it, but only to check for compiler and linker bugs.

Jeff还是会在提交代码前把它们编译一遍,不过这么做的目的只是为了检查下编译器和链接器有没有bug

  1. All pointers point to Jeff Dean.

所有指针都是指向Jeff的

  1. gcc -O4 emails your code to Jeff Dean for a rewrite.

gcc的-O4优化选项是将你的代码邮件给Jeff重写一下

  1. The speed of light in a vacuum used to be about 35 mph. Then Jeff Dean spent a weekend optimizing physics.

光在真空中的速度曾近是35英里每小时,后来Jeff花了一个周末对物理学进行了小小的优化

  1. Jeff Dean was born on December 31, 1969 at 11:48 PM. It took him twelve minutes to implement his first time counter.

Jeff出生于1969年12月31日的下午11点48分,然后他花了整整12分钟的时间实现了他的第一个计时器。(背景:计算机中的计时器数值通常被设计为从1970年1月1日0点0分0秒到当前为止的秒数)

  1. When Jeff Dean sends an ethernet frame there are no collisions because the competing frames retreat back up into the buffer memory on their source nic.

当Jeff向以太网发送一个数据包时从来不会有冲突,原因是本来要和它有冲突的包都默默撤回了缓冲区

  1. Unsatisfied with constant time, Jeff Dean created the world's first O(1/n)algorithm.

Jeff对常量的时间复杂度并不满足,于是他创造了世界上第一个O(1/n)的算法。(即随着问题规模的增大,其解决问题所花的时间会越短)

  1. Jeff Dean was forced to invent asynchronous APIs one day when he optimized a function so that it returned before it was invoked.

Jeff曾被迫发明了异步API,原因是经他优化后的某个函数会在调用开始前返回

  1. When Jeff Dean designs software, he first codes the binary and then writes the source as documentation.

当Jeff写软件时,他是直接码机器码的。写源代码只是为了作为文档使用。

  1. Jeff Dean wrote an O(n^2) algorithm once. It was for the Traveling Salesman Problem.

Jeff曾无奈写过一次O(n^2)的算法,其解决的问题是旅行商问题。(该问题是NPC的,即计算机中最复杂最难解决的一类问题,许多人相信这些问题是没有多项式时间复杂度的解的)

  1. Jeff Dean can beat you at connect four. In three moves.

Jeff在四子连珠的游戏中能赢你,在三步内

  1. When your code has undefined behavior, you get a seg fault and corrupted data. When Jeff Dean's code has undefined behavior, a unicorn rides in on a rainbow and gives everybody free ice cream.

当你的代码有不确定行为时,你通常得到一个段错误或者不正确的数据。当Jeff的代码有不确定行为时,孙悟空会驾着七彩云朵给每个人发免费的长寿仙桃

  1. When Jeff Dean fires up the profiler, loops unroll themselves in fear.

当Jeff触发程序的程序性能采样时,循环会因害怕而自动展开。

  1. Jeff Dean is still waiting for mathematicians to discover the joke he hid in the digits of PI.

Jeff依然孤独地等待着数学家们解开他在PI的数字中隐藏的笑话

  1. Jeff Dean's keyboard has two keys: 1 and 0.

Jeff的键盘多达两个键:1和0

  1. When Jeff has trouble sleeping, he Mapreduces sheep.

当Jeff失眠时,他Mapreduce羊群。(Mapreduce是Jeff的作品之一,这个分布式处理的框架算法是Google立足的根本之一)

  1. When Jeff Dean listens to mp3s, he just cats them to /dev/dsp and does the decoding in his head.

当Jeff听MP3时,他查看其中的二进制内容然后在他脑子里进行音频解码。

  1. When Graham Bell invented the telephone, he saw a missed call from Jeff Dean.

当贝爷在沙漠中逮到一个手机时,他发现手机里有个Jeff的未接来电。

当贝尔发明电话后,他发现电话里有个Jeff的未接来电。

  1. Jeff Dean's watch displays seconds since January 1st, 1970. He is never late.

Jeff的手表显示的数字是自1970年1月1日0点0分0秒以来的秒数,他因此从来不迟到。

  1. Jeff starts his programming sessions with 'cat > /dev/mem'.

Jeff在开始编程之前,会做'cat > /dev/mem'。(即把输入的内容直接导到内存中)

  1. One day Jeff Dean grabbed his Etch-a-Sketch instead of his laptop on his way out the door. On his way back home to get his real laptop, he programmed the Etch-a-Sketch to play Tetris.

有一次Jeff出门时错将草图画板当笔记本拿了。结果在他回家取笔记本的路上,他对画板进行了重编程以在其上玩俄罗斯方块

  1. Google search went down for a few hours in 2002, and Jeff Dean started handling queries by hand. Search Quality doubled.

在2002年,Google搜索曾挂了几个小时,于是Jeff站出来手动处理用户的查询请求。搜索准确度翻了番

  1. The x86-64 spec includes several undocumented instructions marked 'private use'. They are actually for Jeff Dean's use.

x86-64指令集中有一些没有被记入到文档的‘私用’指令。事实上,他们是给Jeff用的

27.mantri@mantri-laptop~$ rm -r / rm: cannot remove root directory ‘/’ mantri@mantri-laptop~$ su - jeffdean -c "rm -r /" I am extremely sorry. Removing root directory..

不解释

  1. Jeff Dean once shifted a bit so hard, it ended up on another computer.

有次Jeff移位移得太恨了,结果那一位跑到另一台计算机上去了

  1. Jeff Dean has gone to /dev/null and come back.

Jeff从/dev/null那涅槃了。(庞统啊~)

Jeff又从/dev/null那涅槃了。(擦!)

  1. Jeff Dean sorts his phone contacts by their vcard's md5 checksums.

Jeff通讯录的排序规则是按照联系人的md5值

  1. Jeff Dean doesn't kill processes, he slays them.

Jeff他不杀进程,他肢解虐杀它们

  1. The needle in haystack found Jeff Dean

海底的针会自己找上Jeff

  1. All of the Google App Engine is actually hosted from Jeff Dean's Nexus S

Google App Engine的服务器实际上是Jeff的Nexus S

  1. Jeff Deans’s keyboard doesn’t have a Ctrl key because nothing controls Jeff Dean.

Jeff的键盘压根就没有Ctrl(控制)键,因为没有什么东西能控制Jeff

  1. You name three pointers, Einstein, Euler, and Turing, when you de-reference them, all you get is Jeff Dean.

如果你命名三个指针分别为爱因斯坦、欧拉和图灵,当你查看它们的指向时,你看到的都会是Jeff

End


转载自:看了那些 Google 大神 Jeff Dean 的传说后,我跪了!


user avatar   zorrolang 网友的相关建议: 
      

程序员噼里啪啦打出来的绝对不是代码,那八成是聊天或游戏呢。我发现初学者都喜欢误解甚至神话比自己水平高的人,总是从表面看事物,不能清楚的认识到水平的差距到底来自于什么。比如我还回答过下面这个问题,你会发现把我回答里的“命令”直接都替换成“函数”或者“代码”来阅读也几乎没有违和感。

这说明什么?这说明这些都是同根性的问题。什么大神为什么可以记住这么多函数,为什么可以记住这么多命令,为什么可以那么快写出那么多代码,为什么可以那么快写出各种命令……等等这些问题都来自于初学者没有真正意识到和你们口中的“大神”的差距在哪。我上面回答中的论点对此问题同样适用,我就不再赘述了,如果有兴趣请移步上面链接去看,把“命令”都替换成你想问的方面。

限制一个人编程速度的绝对不是打字速度(除非你打字一指禅),你用再丝滑的键盘也提升不了你的编程速度,还不如一个真正有效的键盘垫,多少还能减缓你手腕得关节炎的速度。


user avatar   yi-yang-91-9 网友的相关建议: 
      

你身边有一个编程大佬,你天天看着他疯狂啪啪啪敲代码。

你崇拜的不要不要的,自卑的不行不行的。

.......人家也许只是在撩妹子。

讲真,编码能力还真跟敲代码速度没多大关系,更多是算法数据结构、架构思维、debug能力等等。

编程不是打字,并不是越快越好,而是个四两拨千斤的活儿~

不少程序员号称一天能写几千行代码,这种大概率都是水货。

重点说下,什么样的程序员是大佬级程序员:

1.优秀的debug能力

普通程序员:编程我最牛,debug?我不太会!
高级程序员:编程有点慢,debug快速搞定,回家睡觉!
大佬程序员:基本不写业务代码,debug到飞起,全组的bug都由我搞定!

送大家一本算法笔记,这本书是一位阿里技术专家刷leetcode整理出来的,身边不少朋友学习了这本书最终应届拿到大厂Offer:

看看这本书的目录,非常经典

2.优秀的框架设计能力

普通程序员:类结构图和时序图?是什么鬼,需求来了直接撸啊!
高级程序员:写代码之前,肯定先画好类结构图和时序图啊,这样编码会更轻松。
大佬程序员:我的主要职责就是要把框架架构好,类结构图和时序图几乎是必须的!

3.规范的命名

普通程序员:我想怎么命名就怎么命名,代码世界我做主!
高级程序员:形成自己固定的变量命名规则,否则取名字就耗费不少时间。
大佬程序员:命名做得好完全可以起到注释的作用!

4.夯实的算法基础

普通程序员:算法是什么?我不会,但我依然写代码到飞起!
高级程序员:算法太重要了,无论是程序性能还是写出优美的代码,我得继续学习!
大佬程序员:算法和数据结构几乎是编程的灵魂!

顺便送大家一份硬核算法资料,程序员要想进大厂先从刷算法做起是个好方法,算法厉害的人进大厂非常容易,这里送一本阿里P8撰写的算法刷题笔记,身边不少朋友通过它加入大厂:

这本书的目录,非常经典:

5.基本编码素养

普通程序员:特么又编译不过?百度上还查不到解决方案?怕不是编译器坏了吧!
高级程序员:编译不过,查查google上其他大佬有没有遇到过吧。
大佬程序员:编译不过,这块之前好像碰到过,我应该有云笔记,再看看google和各种国外论坛怎么解决的

6.重视自测

普通程序员:什么?让我自测?我这样的天才写出来的代码还需要自测???
高级程序员:交付代码之前反复自测,这样能节省团队时间,也能减少线上bug。
大佬程序员:多写单元测试,多搞搞自测,代码质量自然保证,同时还能提升编码效率。

7.多看书多学习

普通程序员:什么?看书?看多少本书还不如我写一个项目。。。
高级程序员:看书尤其是计算机经典书籍,对提升技术能力技术认知帮助非常大,我有空就看计算机经典书籍!
大佬程序员:攻克那些计算机大部头多有乐趣,并且只有掌握这些知识才能洞悉编码底层原理。

另外我把大学和工作中用的经典电子书库(包含数据结构、操作系统、C++/C、网络经典、前端编程经典、Java相关、程序员认知、职场发展)、面试找工作的资料汇总都打包放在这了,这套资源可不是一般那种网上找的资源,是伴随我从学生一路成长为腾讯高级开发工程师,360技术经理、360技术总监、中小公司CTO的打包全套,非常宝贵!点击下方链接直达获取:

我已经帮大家打包好了,点击下方链接直接获取:

8.重视数据备份

普通程序员:数据备份?权限分离?多麻烦啊,我开发这么快,出问题再改呗,嘿嘿嘿。
高级程序员:数据备份太重要了,千万不能忘!
大佬程序员:权限限制、数据备份、云方案、统一入口、统一管理、监控告警等,这些几乎是必备的,不然真混不下去!

9.记录卡点问题

普通程序员:代码问题解决了,赶紧下班回家刷抖音!
高级程序员:终于攻克这个问题了,我得记录下,下次会更快的解决。

10.谨慎使用新技术

普通程序员:哇,新技术,好酷好炫,我要用!
高级程序员:新技术?还说的这么牛?先测试下,再观察观察,可不能直接用于线上环境。
大佬程序员:新技术哇,很兴奋!这周疯狂玩起来,看看是否适合我们的业务场景!

11.重视warning

普通程序员:warning算个什么啊,一样编译通过快速上线,美滋滋,无视~
高级程序员:认真对待代码中的warning,它们虽然不致命,但却是精益求精的好机会。
大佬程序员:warning极其有趣,它可以帮助我深挖代码中的细微问题,并解决小概率bug。

12.控制不合理需求

普通程序员:需求都冲我来,我是超人,接接接,做做做。
高级程序员:把感觉不靠谱的需求放到最后做,可能到时候需求就变了。
大佬程序员:我需要给产品和老板最合理的需求边界建议,这样可以加快团队速度。

13.积极主动的精神

普通程序员:这个Bug不是我的,我不管,谁的谁负责!
高级程序员:主动改Bug,不管是不是你的,当然,不是你的改完要想办法让老板知道。
大佬程序员:不管我主不主动,大家都会主动找我解bug。

14.重视日志Log

普通程序员:打Log太麻烦了,有这时间还不如多写几行代码!
高级程序员/大佬程序员:Log要尽可能规范,比如要写时间和分类,要能重定向输出。

15.重视计算机英语能力

普通程序员:英语有什么用,我又不去外企,不学!
高级程序员/大佬程序员:多学英语,无论是Google还是stackoverflow,又或者各种官方文档,流利的英文阅读,和习惯性英文搜索,能帮你超越90%的程序员。

16.做好单元测试

普通程序员:单元测试?没做过,有用吗?不是有测试吗,为什么还让我自己测?
高级程序员/大佬程序员:单元测试很重要,它至少有这几个好处:方便后期重构、优化代码设计、文档记录(单元测试本身即是文档)、具备回归性(随时随地测试)。

17.别造无意义的轮子

普通程序员:我就喜欢造轮子,造轮子牛逼就是技术牛逼的最好体现!
高级程序员/大佬程序员:模仿造轮子是学习编码很好的方法,但熟练后就别疯狂造了。

最后,再次推荐这份硬核算法资料,对于程序员而言,算法是重中之重,这里送一本阿里P8撰写的算法刷题笔记,身边不少朋友通过它加入大厂:

看看这本书的目录和排版!相当经典!

要是觉得不错的话,那就帮我 @findyi 点个赞,一键三连呗,硬核码字不易。


user avatar   you-qing-31 网友的相关建议: 
      

Update: 注意了一下真是每做完一个东西要关十几个浏览器 tab

知乎上年薪 7 位数程序员飘过

工作中一样一直在 Google 和 Stackoverflow,偶尔 Quora。百度和 CSDN 是不用的,没用

不只是我,周围年薪几百万,甚至上千万的程序员也是这样

至于题主为什么会有这种困扰,那是因为题主以为编程就是调调 API,做东西熟练,不知道高级点程序员都在干什么,高级软件工程师都是在干什么

程序员都是背很重责任的,或者开发出重要功能,或者解决某个技术设计问题,或者保证服务在特定环境下保持运行,或者扩展底层基础设施,等等等等,大家都是在做高度抽象化,同时严谨落地的东西,至于 API 背的熟不熟,没必要浪费脑容量

没必要纠结这些东西。当然,很多渣渣公司面试喜欢考这种题,类似孔乙己知道某个字多少种写法


user avatar   Ivony 网友的相关建议: 
      

都2021年了,你还在用记事本编程吗?


如果不是的,难道你的IDE不会给你提示吗?


user avatar   davidtsang 网友的相关建议: 
      

经常用的记在笔记软件或者blog上。

不经常用的google。




     

相关话题

  0基础开始,Leetcode200道题要多久左右? 
  为什么要有指针? 
  如何用代码画出一只齿轮? 
  毫无编程基础的小白准备学习C语言,用VC6还是VS2015? 
  如何把一段简单的代码变复杂? 
  如何看待第三方百度云Pandownload作者被捕? 
  中文编程什么时候才能在中国崛起?英文编程是不是总有一个学习转换的过程使慢一拍? 
  你在 GitHub 上看到过哪些有意思的 Issue? 
  程序员写代码不应该是一件很酷的事情吗?为什么在国内被打上无聊和呆板的标签? 
  程序员必须掌握哪些算法? 

前一个讨论
引进特斯拉,到底是为了什么?
下一个讨论
为什么 Java 和 JS 等语言需要 VM,不能直接操作内存堆栈空间?





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利