初学者怎么开始写代码?

可以先从抄开始,然后做题,基础学完做项目。

只要在抄代码的时候,带着脑子,就可以从抄的过程中理解并掌握代码的工作原理和基本概念,抄代码可以让我们了解一些常见的编程模式和技巧,帮助我们更好的理解编程语言和框架的用法,加深对编程概念的理解。

一、抄代码要注意三点

理解:不管是跟着教程,还是开源项目抄代码,都要以理解为主。不然就跟学生时代抄作业一样,抄半天考试出一样的题都不知道怎么写。

验证:跟着敲出来代码,验证别人说的对or不对,很多时候照着抄也会出错。最后输出结果和预期不一样的时候,我们是否可以解决?——我见过很多抄源码的遇到问题就问我怎么办,我想说你不自己调试,永远不会。

demo:或者是说输出,把别人的变成自己的这是一种本事。这样可行,换一种方式呢?

关于抄代码这个事情,给你们分享Openresty的作者受访时候说的:

回过头看,抄书是我自学编程的法宝。话说抄书这种学习方法是我意外间发现的。初三时,我酷爱化学,总是缠着当时的 初中化学老师提各种奇怪的问题,老师拗不过,借给我一本他当年大学时用的课本《 分析化学》。我如获至宝,爱不释手,但借的书总要还,但又不能立马消化,于是我便抄书,抄了整个暑假,结果意外地发现了抄书的奥妙——那就是延缓阅读速度,不至遗漏每一个重要的细节:眼到,手到,心到。 其实不仅书抄得,代码也抄得。记得我刚进入淘宝时,想学习 Nginx 源码。于是白天上班就对着 Kindle 抄 C 源,同时就已暗记于心;晚上回家在房子里来回踱步,在脑海中反复回放白天抄过的源码,直至融会贯通,深得其奥妙。

二、边学习边做题

笨办法学Python》,大家对这本书都不陌生吧,其实这本书中所说的笨办法就是强调大家动手练习的能力,通过大量的练习来掌握编程语言。这种方法看着很简单,其实一点也不笨,可以说每天坚持练习是学编程的不二法门。

这里只是用这本书举例,黑马程序员的每一套基础入门教程当中,每一个知识点,均有配套的习题。学习资源如下:

前端:不得不学的是HTML+CSS+JS;后面还要学习热门框架vue等,和后端相关的Node.js

前端的学习应该怎么规划?38 赞同 icon-default.png?t=N4HBhttps://www.zhihu.com/question/265374511/answer/2217655227

后端:编程语言是基础,建议选择Java,额外掌握另一门语言的应用推荐Python、Go语言;

全新Java学习路线图275 赞同 icon-default.png?t=N4HBhttps://zhuanlan.zhihu.com/p/352898163

数据相关:大数据开发相关建议学习Python;数据分析相关主要学习Python+5个数据库;

零基础怎么学Python?要学多久?29 赞同 icon-default.png?t=N4HBhttps://zhuanlan.zhihu.com/p/426762954

另外很多人觉得C语言和C++是一个开发的必学内容,大家可以看:

C++学习路线以及知识整理汇总381 赞同 icon-default.png?t=N4HBhttps://zhuanlan.zhihu.com/p/372962992

三、做项目

每一个阶段的学习结束后,我们都会建议学生以项目作为收尾。首先可以通过项目查漏补缺,其次可以通过项目了解业务-熟悉部署-从问题中学习。

关于GitHub上的Java项目

篇幅有限,我们暂时先分享Java的,需要其他总结整理的小伙伴可以直接私信我。

四、如何学项目,看源码

1、在准备看一个开源项目源码的时候,需要先了解项目的背景、功能以及相应的API。这步就是为了理解整个项目的功能做准备的,也是为了后面重点看哪些模块做准备的。

2、查看项目的REAME.md文件。有些项目把设计文档和架构图放到md文件上面,这样可以让我们对项目有一定的宏观认识。比如:immer

3、查看项目的整体文件结构。比如下面提到一些重点需要查看的文件:

  • package.json,可以从这个文件看到整个项目的入口文件、开发/测试/发布编译的各种命令,也可以了解到项目的依赖库、工具以及框架等等。
  • webpack/gulp/rollup配置文件,从这个文件里面可以看到项目整体的工具配置,也包含入口文件以及编译之后的代码文件,以及一些配置项的功能

4、知道一些默认莫名的文件规则,比如:

这期间哪怕你遇到一些文件你不知道有什么用,有2个方式可以了解到

1、直接用google搜该文件名,往往能找到相关答案,比如.eslintrc.js:

2、进去看文件内容,一般会有注释,如果都没有的话说明这个文件往往不是很重要,可以先忽略。

Google查找这个开源框架的官方介绍,了解以下信息

  • 框架有几个模块
  • 模块的作用
  • 模块之间的联系
  • 每个模块的核心类(在阅读源码的过程中,着重看核心类)

对哪个模块感兴趣就去写个小demo,先了解一下这个模块的具体作用。

debug进入看具体实现。(这里面可以充分使用IDEA的调试功能)

  • 第一遍是走马观花,简略看一下调用逻辑,都用了哪些类;
  • 第二遍需有重点地debug,看看这些类担任了架构图里的哪些功能,使用了哪些设计模式
  • 第三遍debug,把主要类的调用时序图以及类图结构画出来,对着时序图分析调用流程

注意的点:

阅读源码时,最好画出时序图和类图

注释是一手资料,好的注释往往已经说明了它们的设计原理和使用场景


快来和黑马程序员一起来学编程吧,主打一个有问必答,免费答疑。如果你想找到一起自学的小伙伴也可以通过我找到组织哦!

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值