• 冒险村物语
  • 英雄无敌3塔防
  • 驾考家园手游

零基础如何自学编程?

2022-03-17

首先要选定编程学习的方向,例如 C、C++、Java、Python、JavaScript 等等编程语言,你最好先去查一查都有哪些编程语言,每种编程语言都侧重于哪些方向,例如 JavaScript 主要用于 Web 前端开发,Java 主要用于后端开发,也是安卓开发的基础,Python 在数据分析和机器学习等方面有较好的应用。不同的方向有着不同的吸引力和特点,你多了解一下,选一个自己感兴趣的。

接下来就是学习编程,那么在看书学习的过程中,有一点要记住:不要无脑照着别人的代码敲,重要的是思考,是学习编程的思想!照着别人代码敲一遍除了让你看得仔细点,练了打字外其它并没有任何帮助 — 和自己盯着代码仔细看是一样的,这样的学习效率是不高的。

重要的是学习编程思想,这个功能是怎么实现的,为什么这么实现,作者是怎么想到的,其次才是敲代码,学习好了思想以后,你可以自己敲,模仿敲,再对照着检查自己代码中存在的问题。

自学编程主要有以下几个阶段:

看书、看博客、学课程或者看视频等模仿着书上或者博客的代码,进行复现,复现不重要,思考才是关键 ⚠️思考学习别人思路后,脱离书本和博客,完全自己实现功能自己实现一些 DEMO,看别人项目代码,与别人讨论,提升代码能力在别人的框架和要求下,写代码实现业务自己负责别人设计的模块的实现独立设计业务模块并开发实现负责大项目框架设计和拆分,带领别人进行开发其他高阶的架构和管理工作,已经不仅仅是代码能力了

那么在自学编程的前期和中期,能够完成前五项就是取得了很不错的效果了。

学习过程中的建议:

初级程序员,涉猎广泛,但都是浅尝辄止。这是很多人面临的问题,而在编程学习则是需要实际操练,加深体会,不断深入的一个过程。在这个回答里,我想说一下初级程序员应该如何提高。

1. 让编程成为一个习惯

想要培养一项技能的最好的办法,就是将他融入到我们的生活并成为我们的爱好。其实说白了,就是让这个爱好成为一个习惯,一天不去做这件事情,都会觉得少了什么。在不知不觉中,这个习惯会像滚雪球一样积累起来。

对我来说,养成这种习惯首先就是要对“拖延症”说不。比如,你想锻炼下自己的写作能力时,但是没有好看的本子,没有好的灵感,没有安静的环境....总之就是找各种理由一拖再拖,最后就不了了之了。

为自己设定一下,每周拿出几天,每天拿出几个小时,编程学习就这样慢慢步入正轨。

2. 将每天的学习过程拆分成小块

对待编程学习,我们没必要像健身狂人那样一口气做到筋疲力尽。与其直接编程2小时,我们完全可以先做40分钟、然后休息5分钟,整个过程重复4次。很明显,40分钟这样的短周期更容易坚持也不会带来多少压力。

不过这样的方式应该配合更为灵活的执行思路。如果你感觉状态很好,而40分钟才刚刚完成热身,那就继续做下去并努力让自己抓住这种状态。向大家推荐蕃茄工作法,这是种学习新型技能的良好机制,推荐各位认真了解。

3. 学好基础知识

在确定好学习方向和技术栈之前,你可以多做尝试,学不同的语言。但是当你学到一定程度,知道自己对哪个方向更感兴趣的时候,就不要广撒网了,一定要专注于你所选择的领域,做深做精。认真系统化地学习相关语言知识。当然,这不是让你就知道看书,你要看书的同时结合项目实践,进而对自己的掌握程度得到反馈,知道自己哪里不足,再继续学习,如此反复,详见第四点。

4. 学练结合,从做项目中找知识漏洞

当你选好方向,认真学习基础知识后,学习一部分的知识,就结合项目做一些实践,已明确自己哪里不足。并且做项目能增加学习乐趣,给自己提供一些正反馈,让学习变得有趣,让自己有足够的动力继续学习。

5. 阅读别人的代码

学习编程不能闭门造车,经过这几年的编程学习,我认为想要提升编码水平的最佳途径就是多看、多写。看别人的代码,看一些程序员大佬写的代码,看一些标准库的源码,仔细思考他们的编程思维和编程方式,以提升自己的编程思维和编程方式。阅读别人的代码也确实是快速提升代码水平的一个技巧。

当然,也有一些提升阅读别人代码速度的技巧。很多时候读代码靠的不是阅读文字速度,而是理解的速度。我把自己理解的影响速度的原因列举出来。

1. 对整体的思路没有概念

2. 对类库不熟悉,包括方法调用不熟悉

3. 不理解里面的一些算法

4. 中途停顿时间太长,接过来后没有形成一个系统的思路。

阅读的方法是先整体再局部。目前我们知道了那些因素影响到了速度也知道了阅读的方法。那下面就开始一个个击破难度。

1. 把握整体有个大体的框架在脑海中,此时根据里面的文件名和文件夹,从入口文件大段大段看就可以,知道这段或者这个文件的作用就可以。很多写得好的类库都是思路很清楚,非常有助于从整体理解, 此时只需要知道这个文件和这个方法是什么作用就可以,还不到细细研究的阶段。

2. 对类库不熟悉那么会引起阅读时候左右查资料,影响速度。此时应该先把不熟悉的类库全部整理出来,一次性过一遍,然后到对应的官网查用法就可以,注意,此时不用全部看,只需要查调用到的地方什么意思,弄明白调用的意思即可。

3. 遇到不熟悉的算法此时就要静下心来,如果有注释可以根据注释来理解,如果没有那么也是一样的思路,想整体了解这个算法再细分进去了解,这一步只需要静下心里是可以理解的。

4. 中途不能说看一个小时,停了4个小时再接着看,或者是今天看一点点,隔了非常长的时间再看第二部分。最好是趁热打铁。

里面核心的地方还是从整体到细节的方法,掌握到了整体阅读细节才有意义,有时候知道了整体一些细节的地方清楚了,总之没有不努力就能理解的代码,上面的方法只是帮助你可以轻松些阅读,只是努力是必须的。

6. 寻找良师益友

学习编程的一个很好的方法就是和其他的程序员交谈。这不仅能够帮助我们多获得一种思维方式,同时也能够以更为愉悦的感受完成学习任务。至于内容没有特定的要求,可以是你正在学习的东西,也可以是你认为很酷的东西,更可以是你正在工作的东西。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你能了解到其他人是如何看待编程的。

7. 写技术文章

如果大家学习了一种新的编程概念,但不能确定自己是否已经真正掌握,可以写技术博文加以检验。或者是在技术博客网站上搜索,找找是否有人提出了类似的问题,然后给出您自己的答案。如果答案不对,那么讨论的过程能够有效加深理解。这样的过程,能给我们带来宝贵的经验,同时也能帮助他人。

值得提醒的一点,别因为自己刚刚涉及编程而有所顾虑。罗马不是一天建成的,出色的程序员也是一样。只要您对问题有所了解,就不妨给出自己的答案——无论对错,这都将成为一次宝贵的经历。

8. 保持耐心

对于人生来说,其中任何目标的实现都离不开耐心。编程学习就如其它任何学习任务一样,都需要反复努力并投入大量时间。

在这个过程中,您一定会经历高潮与低谷——别被这些曲线影响了心情。接受已经发生的一切,并尽可能避免其中不好的部分。就像打高尔夫球一样,我们的手感总在不断浮动,但只要坚持到底,您最终总能成为一个大神呢~


推荐一些程序员学习网站:

0. GitHub — 开发者最最最重要的网站:https://github.com

这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。

1. Stack Overflow — 解决 bug 的社区:https://stackoverflow.com/

开发过程中遇到什么 bug,上去搜一下,只要搜索的方式对,百分之 99 的问题都能搜到答案。在这里能够与很多有经验的开发者交流,如果你是有经验的开发者,还可以来这儿帮助别人解决问题,提升个人影响力。

2. 程序员客栈:https://www.proginn.com/

程序员客栈是领先的程序员自由工作平台,如果你是有经验有资质的开发者,都可以来上面注册成为开发者,业余的时候做点项目,赚点零花钱。当然,如果你想成为一名自由工作者,程序员客栈也是可以满足的。只要你有技术,不怕赚不到钱。很多程序员日常在这里逛一下,接一点项目做。很多公司也在这发布项目需求。

3. 掘金 — 帮助开发者成长的技术社区:https://juejin.im

现在国内优质的开发者交流学习社区,可以去看大佬们写的文章,也可以自己分享学习心的,与更多开发者交流。认识更多的小伙伴儿,提升个人影响力。

4. v2ex:https://www.v2ex.com/

V2EX 是一个关于分享和探索的地方,上面有很多各大公司的员工,程序员。你想要的应有尽有。

5. 博客园:https://www.cnblogs.com/

博客园创立于2004年1月,是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。很多早期的高质量内容都在博客园。

6. Medium:https://medium.com/

国外优质文章网站,Medium 的整体结构非常简单,容易让用户沉下心来专注于阅读。上面有很多高质量的技术文章,有很多厉害的人在上面发布内容。

7. Hacker News:https://news.ycombinator.com/news

国外优质文章网站,上面有很多高质量的技术文章,有很多厉害的人在上面分享内容。

8. GeeksforGeeks:https://www.geeksforgeeks.org/

GeeksforGeeks is a computer science portal for geeks。(感谢@三三白白的补充)

除了这些论坛,程序员还有一些必备网站:

0. Google:https://google.com

这个不用多说了吧,查资料,有问题,Google 一下。当然,能访问的人自然会用,访问不了的人,可以用必应或者百度吧。

1. 算法学习 LintCode:https://www.lintcode.com/

算法学习网站,上去每天刷两道算法题,走遍天下都不怕。

2. 算法学习 LeetCode:https://leetcode.com/

也是算法题网站,同上。

3. 算法学习 LeetCode 中文站:https://leetcode-cn.com/

这个是上面算法题网站的中文站点,英文不好的可以刷这个,英文好的推荐去刷英文网站的题目,还能提升英语能力。

4. 牛客网 — 面经和刷面试题:https://www.nowcoder.com

各个公司的面试题和面经分享,找工作前认真刷一刷,一定会有很大收获!拿到心仪的 offer!

5. Web 开发练习题:https://www.freecodecamp.org/

这是国外发起的一个 Web 开发学习的网站,从简单到深入,一步一步带你学习 Web 开发。就像一本练习册,并且当你完成相应的内容后,会得到相应的资格认证。

6. 百度前端技术学院 — 前端开发项目库:http://ife.baidu.com

学前端的看这里,百度官方推出的前端开发学习技术学院,题目从简单到困难,如果你把里面的题都做会了,找个 BAT 的前端工作不成问题的。


人气推荐

知识阅读

精彩推荐

  • 游戏
  • 软件
查看更多>>