⾃学4年多Github上斩获90kStar!聊聊⾃学习编程的正确姿势!
如果你看到这篇⽂章,恭喜你!不论是初⼊编程领域的⼩⽩,还是已经在⼯作⼏年的⽼⼿,这篇⽂章都将对你有很⼤的帮助。建议看到最后。相信我!⼀定会有收货。
这篇⽂章我会试着给你带来⼀个更加不⼀样的编程能⼒提⾼实战指南。如果你觉得这篇⽂章对你有⽤的话,也不要⽩嫖好吧!点个在看或者赞就是对我最⼤的⿎励。欢迎转发让更多⼈看到这篇⽂章,⼀起变强!
先来说⼀下⾃⼰的情况!我从⼩学就开始接触电脑,不过到了⼤学之后才接触编程,整个⼤⼀都很迷茫,编程很少,也不知道如何提⾼⾃⼰的编程能⼒。⼤⼆的时候,⾃⼰加⼊了学校的⼀个技术组织,⾃此之后,便真正开启了⾃⼰疯狂的⼤学⾃学编程之路。
⾃学编程路上,Github 绝对对我帮助最⼤。 我在⼤⼆就开始接触 Github 了,当时就觉得上⾯有太多不错的学习资源了。到了⼤三下学期,⾃⼰就想着说要不也尝试着做⼀下开源呗!然后,我就从⽐较好⼊⼿的 Java 学习和⾯试指南⼊⼿。 到⽬前未知,我的所有的开源项⽬累计接近 90k star,并且收获了 4.6k 的关注。
说到 Github 其实也挺惭愧的!因为我的⼤部分项⽬都没有提供英⽂版本。实际上,如果你要做开源的话,本着开源精神,最好能有⼀份英⽂翻译版。
好的!下⾯我们就开始正⽂!想要⾃⼰编程变得更强的⼩伙伴记得多记笔记。
1. 选择⼀个合适的电脑
学习编程前⾄少要有⼀个稍微适合⼀点的电脑吧!
关于电脑选择,我觉得不要纠结是买 Mac 还是 Windows。作为⼀个使⽤了 Windows 开发 4 年,Mac 开发⼀年的⼈客观地说,两者对于编程效率的影响没有你想的那么⼤。特别是在你初学编程的阶段,是完全没太⼤区别的。
Mac 的性价⽐更低,⼀台合格的 Mac 开发本 1 万 2 起步。虽然它确实好⼀些,但是选择电脑的时候还是要根据⾃⼰实际经济情况来决定。
另外,⼀定不要选择内存低于 8g 的电脑,有条件的话最好能 16g。
2. 六个黄⾦原则
很多⼈可能会觉得说,我们学习编程,⾸先是要⼀门编程语⾔好好开始学,⽐如我在上⼤学的时候最开始接触的是 C 语⾔。
我觉得⾮也!就我⾃⼰作为⼀个从⼤学⾃学编程⼀路⼀路踩坑的过来⼈来说,我觉得学习编程第⼀步应该是要搞清楚学习编程有哪些必备的⽹站?我们是如何查资料的?我们是如何解决问题的?国内外有哪些技术社区⽐较好?…
初次之外,你还要搞明⽩学习编程不是参加应试考试。
2.1. 了解常见的学习编程⽹站
了解学习编程有哪些必备的⽹站之后,你才能更好地进⾏⾃学。
⼀般情况下,但凡是初学编程的同学,往往都需要课后进⾏持续学习的。⼀是因为你可能刚学编程,⽼师教的东西你听不明⽩。⼆是因为程序员这个⾏业本⾝就需要不断学习。三是因为⼤学⾥⾯教的东西往往和社会实际需要脱节,只有⾃学才可以让你技术和社会不脱节。
推荐⼏个我常⽤的学习编程的⽹站:
a.中国⼤学 Mooc
上⾯有很多名校的课程和国家精品课程⽐较适合我们夯实编程基础。⽐如下图是南京⼤学的⼀门关于软件⼯程的⼤学选修课。
b.慕课⽹
上⾯有很多⽐较适合⼊门的免费课程。另外,如果你需要实战项⽬视频资源的话,也可以在慕课⽹到(慕课⽹打钱)。
c.哔哩哔哩
是的,你没看错!看 B 站也能学习!B 站上⾯有很多优秀的学习资源以及优秀的 UP 主⽐如 Guide 哥。
d.LeetCode
国内的公司慢慢开始向国外的⾯试形式靠拢,⼿撕算法已经是很多⼤⼚的标配了,不论是社招还是校招。LeetCode 这个⽹站的话,是我们平时刷题必备的⼀个⽹站。
在你初学编程的阶段,也可以经常去上⾯⼀些简单难度的算法题来做。
e.极客时间
主打付费学习的⼀个付费学习社区(极客时间私聊我打钱哈!)。不过课程的质量⼤部分都挺⾼的,我⾃⼰也看了⾥⾯很多的课程,并且很多课程都是 Java 领域⼤佬级别的⼈物讲的。
2.2. 拓展视野,好的技术社区是你成长的助⼒器
了解了国内外有哪些⽐较好的技术社区之后,你才有机会认识到更多更优秀的程序员,看到更多对你有帮助的东西。⽽不是说,整个⼈的思想都局限在学校。这点是很重要很重要的! ⽐较好的技术社区的话有:Github(稳居第⼀位好吧!开源项⽬交流社区)、
Stackoverflow(⼀个程序设计领域的问答⽹站,⽹站允许注册⽤户提出或回答问题。和知乎很像,重⼤的⼀点不同是 Stack Overflow 可以对问题进⾏打分)、v2ex、掘⾦、csdn、segmentfault 、知乎…。
3.学会使⽤ Googgle 搜索,学习和解决问题效率提升⼀个档次
知道了要使⽤ Google 搜索之后,你学习编程的和解决的问题可以提升⼀个档次。如果你实在是⽆法越过那道墙的话,可以试试必应搜索。
2.3. 不要把学习编程还当做学⽣时代的应试考试来看
你或许也发现了。很多成绩特别特别优异的同学,他们的编程能⼒其实并不好。在⼤学的时候,那些编程能⼒最强的往往是那些成绩⽐较⼀般的。
为什么会这样呢?
我觉得主要是⼀个思维的转变问题。很多⼈学习编程的时候,总是想着我要把这个 API 记下来,把这个库的⽤法记下来。这样学习,导致的结果只有⼀个那就是你会很难受!因为,这些根本不是要死记硬背的东西啊!真还当这是上课考试啊!你要从如何⽤你学的东西来解决实际编程问题出发,站在做⼀个实际的项⽬的⾓度来学习。
拿我⾃⼰来说:我平时也会写 Python,基本就是⾃⼰看着官⽅⽂档或者⼀些书籍的教的语法跟着写。如果哪个地⽅不会了,我就去查⼀下。
2.4. 不要害怕阅读英⽂⽂档
⼤部分最新的资料/技术都是国外那边的,基本上⼤部分都是英⽂的。据说 90% 以上的程序员都不习惯直接看英⽂⽂档,都会选择看别⼈的翻译/总结或者书籍。但是,书籍或者别⼈的翻译/总结都会⽐较慢,⽽且难免会有个⼈主观因素影响翻译效果。
这个时候很多⼈就会说了我的英语不好啊!完全看不懂英⽂⽂档。
别担⼼!有道翻译和⾕歌翻译就是你最好的⽼师。如果是使⽤ Chrome 浏览器的话,我还推荐你安装⼀个 Mate Translate 插件。 这个插件对于⽹页阅读英⽂⽂档太友好了,可以⼀站式翻译您的⽹页以及标记的⽂字段落。使⽤效果如下图所⽰:
2.5. 多看优秀的代码
不看优秀的代码,你写的代码质量很难提⾼。
虽然要多看优秀的代码,但是也不要被 “最佳实践” 所束缚,很多时候实际是根本不存在适⽤于任何场景的“最佳实践”,没有银弹。
有哪些优秀的代码值得学习呢?
拿 Java 来说,不知道阅读什么源码的话,可以先从 JDK 的⼏个常⽤集合看起。另外,我⽐较推荐看 D
ubbo 的,因为感觉会稍微相对容易⼀点,模块划分清晰,注释也⽐较详细。搞清楚了 RPC 的基本的原理,知道如何⾃⼰实现⼀个 RPC 框架之后,看起来就没那么吃⼒了。
另外,随便⼀个框架的源码都 10w+⾏了,都看⼀遍是不可能的。要挑选⽐较重要的地⽅看,就⽐如看 Spring 源码的话你⼀定要看 IoC 和AOP,要知道⼀个 Spring Bean 是如何⼀步⼀步被创建出来的。你要看 Spring Boot 源码的话就要知道 Spring Boot 的启动机制是
啥,Spring Boot 是如何实现⾃动配置的。
2.6. 多读好书
⼀定要多看好书!像《重构》、《代码⼤全》、《代码整洁之道》这类书是程序员标配、必读的书籍。
看书相⽐于零散的看⼀些⽂章学习更加系统。当然,⽹上也有很多⽐较系统的学习资源,⽐如你要学习 Java 的话,可以看我开源的(「Java 学习+⾯试指南」⼀份涵盖⼤部分 Java 程序员所需要掌握的核⼼知识)。
3. 选择⼀门适合的编程语⾔⼊门
初学编程第⼀步就是选择⼀门适合⾃⼰的编程语⾔⼊门。
选择的时候,⽆⾮是要从下⾯⼏点考虑:
1. 难易程度:⼀般建议初学编程应该选择⼀门稍微简单点的⽐如 Python、 C、Java。
2. 发展前景 : 确定你要学习的编程语⾔发展前景是不错。就⽐如相⽐于 PHP ,我肯定更推荐你学习 J
ava。
3. 市场需求 : 有了市场需求之后,⼯作岗位才会多,⼯作也会相对容易。编程入门先学什么自学
4. 薪资⽔平 : 薪资⽔平实际和编程语⾔不是那么相关,和个⼈实际能⼒相关。不过,相同能⼒下某些编程语⾔的薪资确实要稍⾼⼀些。
下⾯这份数据来⾃ 官⽹统计的 2020 年 7 ⽉份编程语⾔排⾏榜,也可以作为你的参考。从统计结果可以看出,C、Java、Python 还是很强势的,这弟兄仨基本常年就是前三(Java 和 C 经常争第⼀)。另外,R 语⾔的进步也很快,同样值得关注。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论