我是导哥,Java后端开发,半个全栈,自由少年。如果您阅读了这篇文章,恭喜您!无论你是初入编程领域的新手,还是工作多年的老手,这篇文章都会对你有很大的帮助。建议看到最后。相信我!肯定会有收据的。在本文中,我将尝试为大家带来更多不一样的编程技能提升实用指南。如果您觉得本文对您有用,就不要白嫖了!点击观看或点赞,是对我最大的鼓励。欢迎转发,让更多人看到这篇文章,一起变强!先说说我自己的情况吧!我从小学就开始接触计算机,但是直到上大学才接触到编程。整个大一都很迷茫,编程很少,不知道如何提高自己的编程水平。大二的时候,我加入了学校的一个技术组织。从此,我才真正开始了我在大学疯狂的自学编程之路。在自学编程的路上,Github绝对是对我帮助最大的。大二开始接触Github。当时就觉得上面好的学习资源太多了。大三下学期,我也想过尝试做开源!然后,我从比较好的Java学习和面试指南入手。到目前为止未知,我所有的开源项目都积累了近90kstar,获得了4.6k关注。说起Github其实挺惭愧的!因为我的大部分项目都没有英文版本。其实如果要开源,本着开源的精神,最好有英文翻译。好的!让我们开始写作吧!想自己编程变强的朋友记得多做笔记。1、在选择合适的电脑学习编程之前,至少需要一台稍微合适的电脑!关于电脑的选择,我觉得不会纠结买Mac还是Windows。作为一个用过Windows4年,Mac用过1年的人,客观来说,两者对编程效率的影响并没有你想象的那么大。尤其是在你的初学者编程阶段,根本没有太大的区别。Mac的性价比较低,一本合格的Mac开发书12000起。虽然确实更好,但是在选择电脑的??时候还是要根据自己的实际经济情况来决定。另外,一定不要选择内存低于8g的电脑。有条件的话最好有16g。2、六大黄金原则很多人可能会认为,我们学习编程,首先要找到一门编程语言开始学习。比如我在大学的时候,第一次接触到C语言。我不这么认为!就我这个从大学一路学编程的人来说,我觉得学编程的第一步应该是搞清楚学编程有哪些必要的网站?我们是怎么查资料的?我们如何解决问题?国内外哪些技术社区比较好?...除了第一次,你必须明白学习编码不是参加考试。2.1.了解学习编程的常用网站了解了学习编程必备的网站后,可以更好地自学。一般情况下,初学编程的同学往往需要在课后继续学习。一是因为你可能只是学编程,老师教的东西你根本听不懂。二是因为程序员这个行业本身就需要不断的学习。三是因为大学里教的东西往往与社会的实际需要脱节。只有自学才能让你的技术和社会保持一致。推荐几个我经常用来学习编程的网站:中大慕课有很多名校的课程和国家精品课程,比较适合我们巩固编程的基础。例如,下图是南京大学软件工程的大学选修课。b.MOOC上有很多免费课程比较适合入门。另外,如果你需要实战项目的视频资源,也可以在MOOC.com上找到(MOOC付费!!!)。C。Bilibili是的,你没有看错!看B站也可以学习!B站有很多优秀的学习资源和优秀的UP主比如Guide。d.LeetCode国内的公司也开始慢慢向国外的面试方式靠拢。手撕算法已经成为很多大公司的标配,不管是社招还是校招。LeetCode官网是我们刷题的必备网站。在你初学编程的阶段,经常可以到上面找一些简单难点的算法题来做。e.极客时间是一个付费学习社区,主打付费学习(极客时间私聊我要钱!)。但是,大多数课程的质量都很高。我自己也看过里面的很多课程,很多课程都是Java领域的人物讲授的。2.2.开阔你的视野,一个好的技术社区是你成长的助推器。只有了解了国内外有哪些好的技术社区,才会有机会认识更多更好的程序员,多见一些对自己的事情有帮助。而不是说整个人的思绪都局限在学校里。这一点很重要也很重要!比较好的技术社区有:Github(排名第一!开源项目交流社区),Stackoverflow(一个编程领域的问答网站,该网站允许注册用户提问或回答问题)。和知乎很像,主要区别是StackOverflow可以打分)、v2ex、掘金、csdn、segmentfault、知乎....3.学会使用谷歌搜索,提高学习和解决问题的效率更高层次。知道你需要使用谷歌搜索,可以让你的学习编程和解决问题更上一层楼。如果您真的无法越过那堵墙,请尝试Bing搜索。2.3.学生时代不要把学习编程当成考试。你可能也发现了。很多成绩特别优秀的同学其实并不擅长编程。在大学里,那些编程能力最强的人往往是那些成绩一般的人。为什么会这样?我觉得主要是思想转变的问题。很多人在学习编程的时候,总觉得我应该把这个API和这个库的用法写下来。这样学的结果只有一个,那就是你会很不舒服!因为这些根本不是死记硬背的东西!真以为这是班级考试!你得从如何用所学知识解决实际的编程问题出发,站在做实际项目的角度去学习。以我自己为例:我平时写Python,基本都是看官方文档或者一些书上教的语法。如果它在任何地方都不起作用,我会检查一下。2.4.不要害怕看英文文档最新的资料/技术大多来自国外,基本上大部分都是英文的。据说90%以上的程序员都不习惯直接阅读英文文档,会选择阅读别人的翻译/总结或者书籍。但是书籍或其他人的翻译/总结会比较慢,难免个人主观因素影响翻译效果。这时候很多人会说我英文不好!我根本看不懂英文文档。不用担心!有道翻译和谷歌翻译是您最好的老师。如果你使用的是Chrome浏览器,我也建议你安装一个MateTranslate插件。本插件对网页阅读英文文档太友好了,可以一站式翻译你的网页和标注的文字段落。使用效果如下图所示:2.5.多看优秀代码而不看优秀代码,是很难提高自己写的代码质量的。虽然你需要看更多优秀的代码,但不要被“最佳实践”所束缚。很多时候,没有适用于任何场景的“最佳实践”,也没有灵丹妙药。有哪些好的代码值得学习?以Java为例,如果不知道看什么源码,可以从JDK的几个常用合集入手。另外推荐看一下Dubbo,因为感觉简单一些,模块分的很清楚,注释也比较详细。搞清楚了RPC的基本原理,知道了如何自己实现一个RPC框架,就好像没有那么难了。另外,任何一个框架的源码都是10w+,不可能全部看完。要选择比较重要的地方去看,比如看Spring源码,一定要看IoC和AOP,才能知道一个SpringBean是如何一步步创建的。如果想看SpringBoot源码,就需要知道SpringBoot的启动机制是什么,以及SpringBoot是如何实现自动配置的。2.6.多读好书一定要多读好书!《重构》、《代码大全》、《代码整洁之道》是程序员的标配和必读书籍。看书比零散地看一些文章更有系统性。当然,网上也有很多比较系统的学习资源。比如你想学习Java,可以看看我开源的JavaGuide(《Java学习+面试指南》涵盖了大部分Java程序员需要掌握的核心知识)。3、选择合适的编程语言入门初学者学习编程的第一步就是选择适合自己的编程语言入门。选择时,无非要考虑以下几点:难度:一般建议编程初学者选择Python、C、Java等稍微简单一点的。发展前景:确定好自己想学习的编程语言的发展前景。比如相对于PHP,我绝对推荐你去学Java。市场需求:有市场需求,就会有更多的就业机会,相对容易找工作。薪水高低:薪水高低其实和编程语言关系不大,而是和个人的实际能力有关。不过,同样能力的一些编程语言的薪水确实略高一些。以下数据来自TIOBE官网整理的2020年7月编程语言排行榜,也可以作为大家的参考。从统计结果可以看出,C、Java、Python的实力还是很强的,三兄弟基本上常年都是前三(Java和C经常争第一)。另外,R语言的进步也非常快,同样值得关注。再来看看PYPL指数。该指数数据主要描述了编程语言的流行程度,具体的流行程度是通过分析GoogleTrends得到的。从统计结果可以看出,Python、Java、Javascript稳居前三。让我们来看看平均工资水平和编程语言的使用年限。此数据来自StackOverflow2019调查。我们需要特别注意的是Go语言。Go语言背靠谷歌,所以薪水比较高也就不足为奇了。而且国内很多大公司比如腾讯越来越多的使用Go来进行项目开发。相信看完上面这么多关于编程语言的介绍,你一定能够选择适合自己的编程语言来学习和深化。4.不要被编程语言束缚编程语言只是一种工具。我们确实需要一门自己擅长的编程语言,但不是任何时候,我们都得用这门编程语言来做每一件事。比如Java适合做网站开发,Python更适合做数据分析。选择正确的语言做正确的事很重要。再比如,如果你想做全栈开发,你可能还需要掌握多种编程语言。以我自己为例,也算是半个全栈开发了。我主要用Java做后端开发,用Javascript做前端开发。5.多练习。我见过很多人学编程一年多,敲出来的代码可能不到1000行。然后,如果你让他用他学到的编程知识做点什么,他就上当了。学习编程,提高编程能力最直接的方法就是实践!保持练习!尤其是在编程的初期,代码量的积累是极其重要的。比如你学习Java后台开发,你能不能根据所学的知识独立搭建一个网站?再比如,你了解了某个框架的原理之后,你能不能模仿写一个简单的?在实际的项目开发中,我们比较忌讳造轮子,但是在实际的学习过程中,造轮子绝对是最受益的。无害!比如我之前了解了RPC的原理之后,自己写了一个简单的RPC框架。我的RPC框架肯定比不上Dubbo这么成熟。但是,当我自己写RPC框架的时候,加深了我对RPC框架的理解。在实现的过程中遇到了很多问题,也在解决问题的过程中提高了自己的编程能力。总而言之,造轮子是一种特别能提高自己系统编程能力的方法。多实践并不是说遇到问题就直接开始写代码,或者不学习理论知识。问问自己为什么,而不是什么。例如,在选择技术时,相同的功能可能有不同的解决方案。是不顾项目实际需求随波逐流选择,还是自己做详细对比?想当然了,一定要根据自己项目的实际需要,多方比较后再选择!“说话很便宜,给我看代码”很好,但请不要忘记思考!换句话说:多写代码固然好,但不要贪多!6、多练内功不要执着于框架,多花时间练内功——底层技术。很多人认为,在学校学的数据结构与算法、计算机组成原理、操作系统等,到了工作后就再也用不上了。然后,我想当然地认为这些东西并不重要。如果你暂时觉得这些东西没什么用,很可能学习某项技术只是表面功夫。比如:要想看懂一个框架或者类库的源码,就必须要懂数据结构!想要培养和提高解决问题的能力,那么算法一定是必备的!为什么要练内功?技术更新快:几年前我们可能还在用Spring基于传统XML开发。现在几乎每个人都会使用SpringBoot作为提高开发速度的开发工具。比如几年前我们在使用消息队列的时候可能还在用ActiveMQ。现在几乎没人用了,现在比较常用的是RocketMQ和Kafka。在技??术更新如此之快的今天,你不可能把每一个框架/工具都学到一边。底层技术是您快速入门的瑞士军刀。懂底层技术的人更有竞争力:现在程序员那么多,你怎么拉开和别人的差距?是单纯的靠框架的使用能力吗?这些从培训班随便选出来的人都可能做的工作,并不能成为你的核心竞争力。以Java为例,底层技术有哪些?算法与数据结构、计算机网络与操作系统(适用于任何编程语言的底层技术);框架的源代码;Java程序运行的基础——JVM;......7.多总结、多分享、多输出总结知识不是按照老师的说法把你所学的东西完整整理,而是自己的理解和补充的结合。分享自己所学,一方面可以检验自己是否掌握,另一方面可以加深自己的理解和理解。分享和输出的方式有很多种,我推荐一些最常用的,也是我最常用的学习方式。7.1.写博客可以养成博客输出的习惯。之前写过一篇文章为什么写博客:程序员写博客重要吗?.简单来说,主要有以下几个原因:对知识的理解更深,知识体系更完整督促/强迫自己学习,可能会带来不错的经济收入提升个人影响力,有更多机会写好博客会成为加分项对于面试这时候,你一定很纠结:我应该在哪里写博客?作为一个从大二就坚持写博客,期间折腾了无数次个人网站的人:我建议先找一个好的博客平台比如掘金,然后在博客平台上写博客,然后就可以自己搭建了博客网站。这时候你一定又在纠结了:我应该如何搭建自己的博客?emmm……这部分应该特别好,朋友们好好做笔记吧!我想推荐一些构建博客网站的最佳和最常用方法。想要一个免费的高速个人博客网站的朋友不要错过。构建难度需要服务器易用性SEOHexo简单不需要中等一般Vuepress简单不需要简单友好Docsify简单不需要简单不友好Wordpress中等需要简单友好Halo中等需要简单一般来说,我还是推荐Vuepress和Docsify。关于如何使用Docsify搭建自己的博客站点,我也写了一篇文章教大家搭建:《手把手教你搭建一个文档类型的网站!免费且高速!》。而且,我还提供了配套的视频教程。很贴心!记得给攻略点个赞哦!拥有自己的网站后,您可以将文章整理成系列,然后部署在自己的网站上,随时可以阅读。您还可以将文章同步到其他博客平台,扩大您的影响力。我整理了7个常用的技术平台供大家参考:7.2.项目组内部分享一般公司都会有内部的技术讲座和博客平台。可以在公司或项目组内部组织技术讲座,既可以增加存在感,也可以提高自己的表达能力。你也可以把自己的博客分享到公司内部博客平台,让你写的东西被更多人看到!7.3.对于开源项目,你可以在Github上分享很多东西,比如你的学习笔记,你做过的实际项目,你造的轮子……(不推荐资源,太容易侵权了)。虽然,现在Github只是被很多人简单的当成了一个引流工具。不过总的来说,Github整体的技术环境和氛围还是很不错的!另外,最好弄个英文版的项目,项目代码中的注释也应该是英文的。毕竟是开源的,最好能遵守开源的精神,用世界通用的语言(这个我自己没做好,反省一下!)。总结这篇文章,从我这些年自学的角度说了很多。看完这篇文章,我很高兴,即使你只学会了使用谷歌搜索,但我希望这篇文章能影响更多的人。另外,文章讲了很多编程领域不争的事实或正确的姿势,比如:学生时代不要用考试的方式学编程,多练习,造轮子是一种方法尤其可以提高你的系统编程能力等。说了这么多,如果你在平时的学习中没有使用这些学习编程的正确姿势,这篇文章对你的帮助可能会非常有限。
