自学编程的技巧有哪些?

1.读>写代码>读>写代码(日复一日)

阅读代码(书籍,博客文章,开源代码)将帮助你查看解决方案,了解最佳做法,并大致了解语言或系统。但是在你这样做之后,你需要自己实际去写代码。可以是任何东西。可以是小的编码练习或业余项目,但确保你能将之付诸于实践,并用某种方式使用你学到的东西。如果你不这样做,那么你会发现自己面对编辑器会无所适从无从下手。

这方面的诀窍是让自己感到不舒服。这是相当痛苦的,但就应该这样。编码遵循80/20规则。花80%的时间在20%的代码或20%你所学的东西上。习惯于这种不舒服的感觉并克服它是关键。

这个迭代周期不应该以周为周期或以月为周期发生,而是应该以日为周期。知识等待使用的时间越久,知识这把斧头就越钝。等待学习新知识的时间越长,你就越难以将其融入到代码中。

我推荐阅读关于通用编程主题的网站是lobste.rs。上面有许多关于许多编程主题的文章。另一个好的网站是HackerNews,但网站时常偏离话题。

2.不要陷入僵局。请求帮忙

我最大的错误是在学习编程陷入僵局的时候用了太长时间。在被卡住时,我会花很多时间在一些愚蠢的东西或一些我根本上不明白的东西上。有时候我需要花费好几天时间才能完成这些工作,而原本我可以用这些时间做更多的事情和学习更多的东西,如果我能找到更好的解决方法的话。卡在一个东西上面超过一个小时基本上就是在浪费时间了。

我推荐三件事情以避免僵局。第一是试着总是阅读更多关于你使用的技术,并总体掌握正在发生什么。通常,当你陷入困境时,意味着你对需要澄清的事情做出了不正确的假设。第二是咨询互联网。这一点很显然,但依然值得一提。在网上查找并询问有过这个问题的人是一个非常重要的技能。Stackoverflow可以说是互联网上最好的网站。不要害怕在那里问自己的问题。通常,只要尽力正确地阐述你的问题就OK了。我真的希望以前我能多问些问题,但总是因为害怕会显得愚蠢而止步。我的第三个建议是向你认识的人请求帮助。通常,你或许已经理解了技术,而且有了问题,但是你可能需要更高层次的上下文才能真正解开谜团。不要胆怯,大着胆子上前去问吧。

例如,当学习Docker时,我花费了大量的时间从头开始重新构建图像。我从根本上不明白docker缓存,并用20分钟时间来等待单个更改到Dockerfile通过。我可能花了8个小时就用在等待构建上。如果我读过更多关于Docker或问一个知道的人,那么可能我早就搞明白了,还可以在更短的时间内学到更多。

3.为项目而工作

在我的经验中,没有什么可以与工作于自己的项目以学习编程更有用的了。除了一些例外,我所知道的所有真正优秀的程序员都有一个习惯就是工作于业余项目(这也可能发生在工作中!)。有了一个点子并试图实现这个点子是非常具有挑战性的。它需要很强的自律心。但是,通过尝试实际做一件事情,你可以学到如何分解问题并应用技术。你面对的各种问题,以及你如何解决它们才真正是所谓的编程。知道编程语言的每一个古怪细节的确是有帮助的,但它只会让你越来越落伍。此外,想要完成项目的驱动力是继续学习的动力。从业余项目获得的满足感远远超过你在抽象中学习东西的满足感。

我对于选择业余项目的建议是,选择你感兴趣同时你也有想法如何实现的东西。能够在开始之前表达实现总是有助于保持我的动力。在此旅途之中你一定会学到很多!

4.认识到深入钻研和搬运工之间的区别。相应地选择。

有两种类型的程序员:完美主义者和搬运工。有些人希望一切都是正确的,他们希望完美,他们希望遵循所有的最佳实践,并写出漂亮的优雅代码。他们想要理解每一行代码。有别于那些不管三七二十一,只要自己的代码能工作即可,即使对代码库有损害的人。平衡这两种技能是非常重要的。有时你应该深入钻研一个问题或项目,看看发生了什么。有时你应该让它工作即可,即使你不知道发生了什么。

每当你花费太多时间在某个东西上时,那就问问自己:我应该采取哪种方法?在大多数情况下,你会想取中间值。你想提供一个好的、坚实的解决方案,同时你可以自信地理解和修改,但没有耗费荒谬的时间。随着你作为开发人员的成长,你会更好地明白什么时候就此离开就可以,以及什么时候需要以某些方式完成。

就个人而言,我喜欢我的项目80%完美。如果你的项目是绝对100%完美,没有一行代码让你觉得尴尬,那么很有可能你已经花了太多的时间。

5.与其他程序员交谈

学习编程的一个很好的方法就是和其他的程序员交谈。不必谈论任何特定的内容。可以是你正在学习的东西,可以是你认为很酷的东西,可以是你正在工作的东西,皆可。你会发现很多程序员并不喜欢只是聊编程。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你将了解到其他人是如何看待编程的。你会发现,你认为理所当然或从来没有考虑的事情在人与人之间是非常不同的。

如果你没有什么可谈的,那就回到编辑器战争或tabvsspace的话题。

6.尝试一切。如果搞不懂的话,那就等6个月。

最后,我要说的是,一直以来在我身上发生着这样的事,我尝试过很多东西,但我就是不理解。在用30分钟尝试新的东西后,我会停下来。我想这在起步时是很正常的。但是,我记得很多次,在6个月后(或3个月或9个月),我会回到同样的问题或技术上,弄清楚如何使用它。这是因为我又掌握了一些我以前不具备的知识,或者因为它只是另一种方式的框架。等待一段时间,然后回去,总是一种最有用的方法。

这方面的一个例子是学习如何使用终端。我记得很长一段时间我都害怕碰到终端,因为我不知道如何使用。我花了一段时间并按照步骤定期地使用它和理解它。当然,如果我认识可以向我解答的人,或者找到一个好的资源来学习,这样的事情就不会发生!

结论

这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃。当然,说说容易,因为学习编程有时可能会令人非常沮丧!不要担心。这是正常的。每个人都经历过这样的心情。

 




  • 鎬庢牱鑷缂栫▼?鏈夊摢浜鏁欑▼?
    绛旓細鑷缂栫▼闇瑕佷竴瀹氱殑鑰愬績鍜屾瘏鍔涳紝浠ヤ笅鏄竴浜涘缓璁細1.纭畾瀛︿範鐩爣锛氶鍏堬紝浣犻渶瑕佹槑纭嚜宸辨兂瑕瀛︿範鐨缂栫▼璇█鎴栭鍩熴傚父瑙佺殑缂栫▼璇█鍖呮嫭Python銆丣ava銆丆++绛夛紝鑰岄鍩熷垯鍖呮嫭Web寮鍙戙佹暟鎹瀛︺佷汉宸ユ櫤鑳界瓑銆2.瀵绘壘鍚堥傜殑鏁欑▼锛氭湁寰堝鍏嶈垂鐨勫湪绾挎暀绋嬪彲浠ュ府鍔╀綘鍏ラ棬缂栫▼銆備竴浜涚煡鍚嶇殑鏁欑▼缃戠珯鍖呮嫭Codecademy銆丆oursera銆...
  • 鏈変粈涔堣嚜瀛鍐欎唬鐮佺殑鏂规硶?
    绛旓細2.涔︾睄鍜屾暀鏉愶細璐拱涓鏈粡鍏哥殑缂栫▼鏁欐潗锛屽銆奝ython缂栫▼蹇熶笂鎵嬨嬨併奐avaScript楂樼骇绋嬪簭璁捐銆嬬瓑锛岄氳繃闃呰涔︾睄鏉瀛︿範缂栫▼璇█鐨勫熀纭鐭ヨ瘑鍜鎶宸銆3.鍙備笌寮婧愰」鐩細鍔犲叆寮婧愰」鐩紝閫氳繃闃呰鍜屼慨鏀逛粬浜虹殑浠g爜鏉ュ涔犮侴itHub鏄竴涓緢濂界殑骞冲彴锛屽彲浠ユ壘鍒板悇绉嶅紑婧愰」鐩紝骞跺弬涓庡埌鍏朵腑銆4.瀹炶返椤圭洰锛氶夋嫨涓涓嚜宸辨劅...
  • 瀛︿範缂栫▼涓鑸鎬庝箞鍋
    绛旓細鍙︿竴涓ソ澶勬槸锛屼綘鍙互鍙戠幇鍒汉鍦ㄥ紑鍙戦」鐩湁鍙兘纰板埌鍝簺闂锛岀劧鍚庡浣曡В鍐冲畠浠傝繖浜涢棶棰樺湪浣犲紑鍙戦」鐩殑鏃跺欙紝涔熸湁鍙兘浼氱鍒般傚洜姝よ繖鏄竴涓緢濂界殑鍊熼壌鏈轰細銆5銆佸弬涓庣ぞ浜缂栫▼ 瀛︿範鍐欎唬鐮佷粠鏉ヤ笉鏄滀竴涓汉鍦ㄦ垬鏂椻濄傚鏋滀綘瑙夊緱涓嶉渶瑕佷换浣曞府鍔╁氨鍙互鍒涘缓涓涓洿澶х殑搴旂敤杞欢锛岄偅涔堜綘灏遍敊浜嗐備簨瀹炰笂锛岀紪绋嬫槸...
  • 鎬庝箞鑷缂栫▼
    绛旓細缂栫▼鏁欏瑙嗛鍙互璁╀綘杩呴熸帉鎻$紪绋嬶紝浣嗛氬父姣旇緝鐢熷姩銆佹祬鏄撅紝涓嶆垚绯荤粺銆傝屼功鏈槸姣旇緝绯荤粺锛屾繁鍏ワ紝浣嗘槸鏋嚗锛屾墍浠ユ渶濂界殑鏂规硶鏄功鍜岃棰戠粨鍚堛備簩銆侀夋嫨缂栬緫鍣瀛︿範缂栫▼鏈寮濮嬬殑涓鐐瑰氨鏄壘鍒颁竴涓嚜宸辩敤鐫涔犳儻鐨勭紪杈戝櫒锛岃繖閲屾帹鑽怱ublime Text3鍜孨otepad++锛屼箣鍚庢湁閫傚悎鑷繁鐨勫彲浠ラ殢鏃舵洿鎹備笁銆佺啲鑷缂栫▼闅惧厤閬囧埌...
  • 濡備綍鑷缂栫▼?
    绛旓細瑕佺啛鎮缂栫▼鑼冨紡,灏ゅ叾鏄潰鍚戣繃绋嬪強闈㈠悜瀵硅薄杩欎袱绉;瑕佸箍娉涢槄璇,澶氱敤缂栬瘧鍣ㄥ強IDE(缃戜笂鏈夎澶氬厤璐圭殑)缁冧範缂栫▼銆傞夋嫨涓绉嶇紪绋嬭瑷銆傚垵瀛﹁呬竴瀹氳浠庝富娴佽瑷寮濮瀛︿範锛屾瘮濡備腑绾ц瑷C鍜孋++銆傝繖涓ょ璇█鏄换浣曚竴鍚嶅悎鏍笺佷笓涓氱殑绋嬪簭鍛橀兘蹇呴』鎺屾彙鐨勶紝鍥犱负瀹冧滑绉板緱涓婃槸杞欢寮鍙戠晫鐨勪富娴併備絾鏄渶濂戒笉瑕佷粠楂樼骇璇█寮濮嬪...
  • 濡備綍鑷缂栫▼
    绛旓細瑕佺啛鎮缂栫▼鑼冨紡,灏ゅ叾鏄潰鍚戣繃绋嬪強闈㈠悜瀵硅薄杩欎袱绉;瑕佸箍娉涢槄璇,澶氱敤缂栬瘧鍣ㄥ強IDE(缃戜笂鏈夎澶氬厤璐圭殑)缁冧範缂栫▼銆傞夋嫨涓绉嶇紪绋嬭瑷銆傚垵瀛﹁呬竴瀹氳浠庝富娴佽瑷寮濮瀛︿範锛屾瘮濡備腑绾ц瑷C鍜孋++銆傝繖涓ょ璇█鏄换浣曚竴鍚嶅悎鏍笺佷笓涓氱殑绋嬪簭鍛橀兘蹇呴』鎺屾彙鐨勶紝鍥犱负瀹冧滑绉板緱涓婃槸杞欢寮鍙戠晫鐨勪富娴併備絾鏄渶濂戒笉瑕佷粠楂樼骇璇█寮濮嬪...
  • 鑷缂栫▼鏈変粈涔堟妧宸鍚?
    绛旓細鎴戣寰鎶宸灏辨槸锛氭棭鐐瑰啓椤圭洰锛屽疄鎴橈紱澶氱湅浠g爜锛瀛︿範鍒汉锛涘彟澶栧濂界悊璁虹煡璇嗭紝绠楁硶锛屾暟鎹粨鏋勪箣绫荤殑銆
  • 缂栫▼濡備綍鑷
    绛旓細瀛缂栫▼鍏ラ棬寤鸿锛1.瀛︾紪绋嬭浠庢牴鏈嚭鍙戯紝浠庣悊璁轰笂鏉ヨ锛岄渶瑕佸箍娉涚殑闃呰銆備簡瑙g畻娉曠殑鍗氬ぇ绮炬繁鍜岃绠楁満鐨勫熀鏈悊璁恒2.浠庡疄璺典笂鏉ヨ锛岄渶瑕佹湁骞挎硾鐨勭粌涔狅紝缁冧範鐨勫箍娉涘湪浜庣粌涔犱笉鍚岀殑鍐呭銆傜劧鍚庡氨鏄垱鏂扮簿绁炲拰鏁板鎬濈淮鑳藉姏锛岃繖浜涢兘鏄渶瑕佸煿鍏荤殑銆傚熀纭瑕佹墦濂藉缂栫▼瑕佸叿澶囦竴瀹氱殑鍩虹銆3.閫昏緫鎬濈淮鑳藉姏鐨勫煿鍏汇佸...
  • 鑷缂栫▼璇ュ浣曞叆鎵
    绛旓細4銆佸浜庝笉鍙樼殑鐭ヨ瘑鐐归渶瑕佽儗涓嬫潵銆傛瘮濡傚父瑙佺殑璇硶鏈烘瀯绛夛紝灏ゅ叾鏄湪鍒氬紑濮嬪涔犳椂锛屽ぇ閮ㄥ垎鍐呭閮芥槸璁茶В璇硶鍑芥暟绛夛紝杩欎簺閮芥槸鏍瑰熀銆傛病鏈変粈涔鎺屾彙鎶宸锛屽氨鏄儗涓嬫潵銆5銆佸ぇ閲忛」鐩拰浠g爜缁冧範銆傚娌″浼氾紝鏈鐩存帴鐨勬柟娉曞氨鏄幓鍋氱粌涔狅紝瀛︽妧鏈氨鏄幓瑙e喅闂锛屾妸闂瑙e喅浜嗭紝鎶鏈氨鏄鍒板浜嗐鑷缂栫▼闇瑕佹敞鎰...
  • 扩展阅读:自学编程做外挂 ... 自学编程入门10秒学会 ... 什么人不适合学编程 ... 什么时候学编程最好 ... 少儿编程有必要学吗 ... 怎样学编程零基础入门 ... 初学编程必背50个 ... 个人自学编程怎么入门 ... 编程一般要学多久 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网