导航:首页 > 程序命令 > 程序员代码恶搞500次

程序员代码恶搞500次

发布时间:2025-05-21 05:36:15

❶ 敲了 10000 小时代码,我也没能成为一名高级程序员

【CSDN 编者按】 Malcolm Gladwell在《离群索居》( Outliers)一书中曾言 ,要真正掌握某件事情,需要10000小时的练习。 而本文作者Greg Bulmash拥有40多年的编程经验 ,写了10000个小时的代码,却没能成为一名高级程序员。 为何一万小时定律会失败呢?他分享了自己的一些看法 或许他的经验能够对你有所帮助,一起来看看吧。

原文链接:

本文由CSDN翻译,转载需注明来源出处。

译者 | 章雨铭 责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

Malcolm Gladwell在《离群索居》( Outliers )一书中说,要真正掌握某件事情,需要10000小时的练习。其实,10000只是一个粗略的数字,而且这句话的含义也被过度简化了。我已经断断续续进行了40多年的编程。可能已经写了10000个小时的代码,但我甚至还未能成为一个优秀的程序员,更别提成为大师级的程序员了。

我认为有以下几个原因。首先,在这10000小时中,我主要学习了4种不同的编程语言,以及其他一些辅助语言。我从一种语言换到另一种语言时,发现它们有的概念可以互通,有的完全不同。而有趣的是,在这种语言中没有意义的概念可能用来构建它。

例如,javaScript没有本地链接列表实现,但如果在V8 GitHub库的src目录下搜索 "链表",会发现有76个commit提到了它。即使它们在语言本身中没有用C的链接列表,但会在引擎下使用C的链接列表。

每种语言都有自己的语法和特殊的实现方式,这些是必须要学习的,而不仅仅只是学习其概念。一种语言的最佳实践方式对于另一种语言来说可能不是最好的。在编译语言上我从来没有花过很多时间,几乎总是使用解释型语言,如BASIC、php、JavaScript、python。我学习过C#和Java,用Rust做过Hello World,但在Linux中从源码编译对我来说十分困难,所以我通常只是下载源码,按照教程中的指示操作,然后祈祷代码能够运行。

除了学习这些语言,我还学习了服务器技术和系统架构的基本概念,不是从编程的角度,而是从网络管理员或者说系统管理员的角度。而且无论是建立一个大型网站,在Flash中创建矢量图并将其渲染成位图,还是学习通过AWS解决方案架构师助理认证,我都已经做了很多次。但是很多东西我已经忘记了。我已经学会了这些语言的框架和库,如JavaScript的React和JQuery以及PHP的Laravel......然后也忘记了许多,因为我为完成一个项目学习了它们,然后就没有再使用它们。

即使写了10000小时的代码,也不意味着你能够轻易地在不同语言之间转换。当你真的进行转换的时候,你会发现10000小时没有那样神奇的魔力,因为另一个不可避免的原因:记忆衰退。正如我所说的,如果我停止使用一种语言,甚至只是停止使用它的一个功能一段时间,我就会像忘记 "高中西班牙语 "一样忘记它。我在高中时读完了西班牙语3级,在大学时考过了西班牙语4级,并获得了A。而现在,我可能只记得不到10%的内容。

例如,我几乎完全忘记了怎样使用常规动词连接过去式,更不用说不规则动词了。但是因为我以前练习的足够多,我知道自己的不足之处,所以我可能比刚开始学习的人更快地恢复以前的知识。但可能需要几个月的强化练习才能全部恢复。

十年前,我精通PHP,在一个定制的MVC框架中工作(由其他人创建),使用Doxygen来映射类的继承层次,并使用JQuery来构建前端的交互性。但我在7年前没用过PHP了,转而使用Node。现在,我需要花5分钟并且改正了一些语法错误,才在刚才提到的PHP副本中正确地写出一个Hello World。

去年12月时,我为freeCodeCamp的前端库认证建立了五个React项目,但在那之后,我就没有再编码React项目了。过去了两个月,当我开始准备面试的时候,我觉得我就像是React新手。如果我看到自己写的代码,能够很快理解。但是因为很多东西都只是我准备的辅助工具,很多我都忘光了,所以我需要回到文档中去开始一个新的React项目再开始工作。和新手相比,我只是走得更快。

这就是新手和已经入门了的区别。一万个小时可以让你成为一个小提琴大师。但是如果你每隔500小时就换一次乐器,并想要成为整个交响乐团的主角,那你不一定能够更胜一筹。所以为了强化和拓展你的技能,练习不仅要广泛,而且要持续。

10000小时是什么样的概念?是5年每周工作40小时,两年休息1周(假期、病假和休假都在这2周内)。你会发现有的工作招聘时要求在一个3年的框架内有5年的经验。5年似乎是成为专家所需的标准时间。因为对框架的无知和这种简化的标准,就会产生逻辑上的矛盾,一言以蔽之。

一个专业的开发人员,有多少的工作时间是花在电子邮件和会议上的?又有多少时间在真正编码和思考编码问题?当我在微软写文档的时候,我的经理说,不管怎么算,你一天中大概只有一半的时间花在实际的生产工作上。其余的时间会花在一些琐事上,比如回复电子邮件、开会、进度/状态报告、在IM上回答随机问题或者和别人闲聊......

所以我只有20%的时间是在写代码,因为其他80%的时间是在写文档和教程,这意味着我平均每天只写了一个小时的代码。在使用浏览器中的开发工具进行调试方面,我曾经是个天才,因为我在这方面经验丰富,还经常为新版本进行更新。但是,虽然当时所有的开发控制台的快捷键,我都烂熟于心,但在我离开微软的7年后,我基本上已经把它们忘得一干二净了。

事实上,自从我进入开发人员关系部后,我每天花了10-20%的时间写代码,其余的时间写教程,为会议讲座和网络研讨会制作文件,制定建立和培养开发人员社区的战略,制定展示新功能的最佳方法,以及处理各种人——产品经理、内部工程师、外部开发人员、产品营销经理、需求生成和社交媒体经理、律师、公关和公司政策执行者的问题。

最后要记住的是,你不会花整整一万个小时学习新东西。如果你在学习小提琴,你可能会花上几百个小时来学习一些初级的作品。在你学习新东西之前,你已经掌握了一些初级的东西,并且在反复练习直至完美的过程中,

学到很多,并且将你学到的这些用于学习新事物。所以这一万个小时中的大部分时间都是强化的。

在编程中,这就像多次编写相同的To Do单页应用程序。前几次你可以参考教程,但最终你必须能够在没有任何参考的情况下写出它。这就像一边看着乐谱一边慢慢演奏《欢乐颂》,然后记住如何演奏,然后准备在演奏会上演奏。

但是,当你需要在截止日期前交付一个项目时,你有多长时间来进行强化练习?在许多公司,不会给你提供扩展技能和强化编码的时间,需要你利用额外的时间来完成。一些公司会给你10%的时间或20%的时间来做独立的项目,但很少有公司希望你把这些时间花在单纯的练习上。

新的框架、新的最佳实践方法、新的语言、新的模式产生的速度不断加快,在这种情况下,仅仅是在新的方面取得合格的成绩,都会像和职业选手一样演奏《欢乐颂》的困难。

你需要平衡强化和 探索 的时间,特别是当你每天编码的时间少于50%的时候。你必须不断地通过练习来进行强化,建立心理肌肉记忆,直到你能在睡梦中解决它们。小提琴几百年来都没有实质性的变化,但编程却在不断变化。成为一个特定语言的大师级程序员意味着要坚持更长的时间。你不得不在非工作时间进行强化练习,完成任务,努力成为一个优秀的程序员,或者跳槽到另一个能够给你充足时间练习的公司。

哪怕你5年或者10年后都没有成为大师级的程序员,也没有关系,因为好好地做一万个小时比看起来更难完成。

❷ 求一个简单又有趣的JAVA小游戏代码

具体如下:

连连看的小源码

package Lianliankan;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //

分别记录两次被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。

对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20 代表一个空格,而 0x74 代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256 个不同的位模式中的一个模式。

在计算机中,字符由不同的位模式(ON 或 OFF)表示。每个字节有 8 位,这 8 位可以有 256 种不同的 ON 和 OFF 组合模式。对于使用 1 个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256 个不同的字符。2 个字节有 16 位,这 16 位可以有 65,536 种唯一的 ON 和 OFF 组合模式。使用 2 个字节表示每个字符的程序可表示最多 65,536 个字符。

单字节代码页是字符定义,这些字符映射到每个字节可能有的 256 种位模式中的每一种。代码页定义大小写字符、数字、符号以及 !、@、#、% 等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。

虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。

如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。而且,在代码页间不停地转换需要花费大量的处理时间。

❸ 涓轰粈涔堢紪绋嫔啓浠g爜镄勫伐璧勯偅涔堥珮锛(鍐欎唬镰佺殑宸ヨ祫楂桦悧)


1锛屽苟涓嶆槸镓链夊啓浠g爜镄勫矖浣嶅伐璧勯兘楂桡纴宸ヨ祫楂樼殑镰佸啘浠呴泦涓鍦ㄤ簰镵旂绣琛屼笟锛岃繖鏄琛屼笟镐ц川鍐冲畾镄勶纴鍜屽矖浣嶆棤鍏炽
姣斿备綘濡傛灉鏄宓屽叆寮忓伐绋嫔笀鎴栫数瀛愬伐绋嫔笀锛屾搷c璇瑷锛屽湪宸ュ巶骞叉椿锛屽嵆鍐欎唬镰侊纴鍙堟哕鐢佃矾锛屽伐璧勫彲鑳藉彧链15000銆备絾濡傛灉浣犳槸浜掕仈缃戠爜鍐滐纴鍙浼歴pringboot锛屾垨钥呭彧浼历ue锛屽伐璧勫ぇ姒傜巼瓒呰繃20000銆傝屽悗钥呯殑鎶鑳芥按骞冲拰鐭ヨ瘑鍌ㄥ囨槸杩滀笉濡傚墠钥呯殑銆
2锛屾槑鐪间汉閮界煡阆撹繖涓嶆槸涓涓钖堢悊鐜拌薄锛屾墍浠ヨ繖绉嶆儏鍐垫e湪琚绾犳c
瑕佹眰浣庯纴鏀跺叆楂桡纴蹇呯劧鍐呭嵎锛屾墍浠ヤ簰镵旂绣琛屼笟鍗峰埌璧烽烇纴杩欐槸甯傚満璋冭妭镄勬坠娈碉纴钥岃繎链熷浗瀹朵篃寮濮嬩娇鐢ㄦ敛绛栨浔浠舵潵绾犳h繖绉岖幇璞°备互钖庣紪镰佽兘锷涗细鍙桦缑镀忓姙鍏杞浠朵竴镙峰钩甯革纴鍐欎唬镰佷细鍙樻垚涓绉嶅伐鍏锋妧鑳斤纴钥屼笉鏄涓氩姟鎶鑳斤纴鍙闱犲啓浠g爜𨰾块珮钖镄勬棩瀛愪笉浼氩お涔呬简
鍐欎唬镰佺殑宸ヨ祫纭瀹炶缮鍙浠ワ纴閲戣瀺琛屼笟骞冲潎宸ヨ祫链楂桡纴镰佸啘娆′箣锛屾垜瑙夊缑镰佸啘宸ヨ祫楂树富瑕佹槸锲犱负浠ヤ笅鍑犵偣铡熷洜锛1.
镰佸啘鏄涓涓闇瑕佷笉鏂瀛︿範镄勮屼笟锛岄棬妲涜缉楂桡纴澹佸瀿杈冮珮锛氭瘆濡傝村悗绔璇瑷钖э纴链镞╃殑asp锛屽埌asp.net,php,java,go,python,windows链嶅姟鍣锛屼簯链嶅姟锛屽井链嶅姟锛岄珮骞跺彂绛夌瓑銆
鍓岖涔熸槸涓镙凤纴浠庡紑濮嬬殑鍒囧浘浠旓纴鍒癹Query,鍐嶅埌鐜板湪镄勪笁澶ф嗘灦vue,angular,react锛屽悇绉嶆祻瑙埚櫒鍏煎癸纴绉诲姩绔镄勫悇绉嶈惧囷纴闇瑕佷笉锅灭殑瀛︿範镓嶈兘璺熶笂鎶链鍙樻洿镄勮剼姝ャ
鍦ㄦ妧链鍗囩骇镄勫悓镞讹纴浣犺缮鏄寰埚氱殑镞ュ父宸ヤ綔浠诲姟闇瑕佸畬鎴愶纴杩欐牱浣犲氨鍙鑳藉湪涓嬬彮镞堕棿铡绘彁鍗囱嚜宸憋纴镓浠ユ垜浠鍙浠ョ湅鍒扮湡姝g殑澶х烇纴閮芥槸澶村彂寰埚皯镄勶纴杩欎笉鏄寮鐜╃瑧锛屾槸鐪熺殑镡澶灭啲鍑烘潵镄勚
链钖庡啀璇翠竴鍙ワ纴鐜板湪闅忕潃锲藉朵笉锅灭殑镓揿帇鐩鍓岖殑浜掕仈缃戝法澶达纴镓舵寔浼犵粺琛屼笟镄勪簰镵旂绣杞鍨嬶纴鎴戠浉淇′簰镵旂绣镄勭孩鍒╄缮鍙浠ュ啀钖冧簩鍗佸勾锛屽勾杞讳汉锛屽傛灉浣犳兂褰撶爜鍐滐纴濂藉ソ瀛︿範锛岃缮鏄涓嶉敊镄勚傚纰涓涓変簲骞达纴链堣柂涓娄竾锛屽簲璇ヤ笉闅俱
钖冮潚鏄ラキ镄勫矖浣嶏纴浠桦嚭宸ㄥぇ锛屽綋铹跺洖鎶ヨ侀珮锛屽惁鍒栾皝骞插憖锛熷彟澶栵纴绋嫔簭锻樿缮寰楁湁涓瀹氶棬妲涳纴蹇呴’鏄纭曞+鎴栨湰绉戞瘯涓氱敓锛屽苟涓旓纴链変竴瀹氱殑缂栫▼鑳藉姏锛屼笉鏄涓鑸浜鸿兘浠庝簨镄勮屼笟锛屾墍浠ュ伐璧勮缉楂樸
35浠ュ悗灏卞け涓氢简[鎹傝劯][鎹傝劯][鎹傝劯]
镆愮渷浼氱爜鍐滀竴涓链埚彧链4200鍏冿纴绉熸埧1300鍏冿纴鐢熸椿璐逛氦阃氲垂绛夋潅鏀1500鍏冿纴涔拌祫鏂椤厖鐢500鍏冿纴骞磋交浜猴纴鍐嶆湁鍏朵粬鑺辫垂200鍏冦
锲犱负鍒颁简35锘烘湰涓婂埌浜呜浆鍨嬬殑镞跺欎简锛岄潚鏄ラキ镓浠ラ珮镣癸纴鍏锷″憳宸ヨ祫涓嶉珮锛屾姠镌钥冧简锛岀▼搴忓憳娌″缑锷炴硶镓嶅共銆
楂桦暐楂桡纴涓嶅姞鐝鍙埚伐璧勯珮闾e彨楂桡纴锷犵彮闾e氨鏄钥楄垂瀵垮懡𨱒ユ崲阍憋纴鍙涓嶈繃浣滀负绋嫔簭锻樿兘寰楀埌杩欎箞涓涓鐢ㄥ垮懡鎹㈤挶镄勬満浼氾纴浠旂粏绠楃畻鐪熺殑楂桦悧锛岄珮浠杕gb
IT琛屼笟涓轰粈涔埚伐璧勯珮锛
锲犱负涓嶉渶瑕佸埗阃狅纴娌℃湁鍒堕犳垚链锛屾病链夌‖浠舵垚链锛屾病链夊师𨱒愭枡鎴愭湰銆
鍞涓镄勭‖浠舵垚链灏辨槸涓鍙板嚑鍗冨潡阍辩殑鐢佃剳锛屽敮涓镄勪汉锷涙垚链灏辨槸绋嫔簭锻樸
镓浠ワ纴鍒╂鼎灏遍珮涓镣癸纴璧氱殑阍遍兘鏄镰佸啘镄勫伐璧勚
杩欑嶈傚康鍏跺疄链夊緢寮虹殑璇瀵兼с备竴鏂归溃锛屼簰镵旂绣鍦ㄦ渶杩戝崄𨱒ュ勾楂橀熷彂灞曪纴镟濆厜鐜囦篃杈冮珮锛屾墍浠ユ櫘阆嶈や负鍐欎唬镰佺殑宸ヨ祫閮介珮銆备絾鏄锛屽叾瀹炶缮链変竴浜涜屼笟杩滃湪鍐欎唬镰佷箣涓娿傛瘆濡傞噾铻嶈屼笟锛屾暀镶茶屼笟绛夌瓑銆傚綋铹朵粠浜嬬紪绋嫔伐浣灭殑鐩稿规潵璇村姞鐝閮戒笉灏戯纴濡傛灉绠楁椂钖骞朵笉浼氭瘆鍏朵粬琛屼笟澶氩氩皯銆
锲犱负杩欎釜宸ヤ綔锛屽规槗鑴卞彂锛屽伐浣沧椂闂撮暱锛屾敞镒忓姏楂桦害闆嗕腑锛屼笓涓氲佹眰閮芥瘆杈冮珮銆傝槠铹堕┈榫欑幇鍦ㄦ瘆杈冨氾纴浣呜屼笟姘村钩灏辨槸杩欎釜镙峰瓙銆

阅读全文

与程序员代码恶搞500次相关的资料

热点内容
java前叉 浏览:288
frankwolfe算法 浏览:72
如何设置app屏幕锁 浏览:204
唱戏机程序加密 浏览:233
天眼查微信小程序源码 浏览:446
海口Python开发工程师招聘 浏览:624
怎么删除状态栏的新建文件夹 浏览:970
天翼没有装路由器怎么加密 浏览:948
如何用app翻拍1寸照片 浏览:351
安卓如何把手机wifi搞坏 浏览:32
水果app源码 浏览:685
安卓微信怎么扫码登陆lol 浏览:688
编译预处理指令和头文件 浏览:12
编译原理课后练习答案 浏览:567
单片机控制液晶 浏览:812
中国手机币app如何下载 浏览:901
编译销售人员工资 浏览:134
坦克世界被服务器针对制裁怎么办 浏览:63
安卓手机如何限制单个app流量使用 浏览:506
大厂招32岁的程序员吗 浏览:446