编程感悟

注:本文旨在将自己的编程经历做一个个人记录和整理,而非给他人以什么启发。且本文的中心集中在如何从0到1进行跃变!


一、编程等级分类

编程就像玄幻小说里的修行,你对它越是热爱,投入的时间越多,你的水平上升的就越快!按照武侠小说里面的剑客分级,编程也存在等级。


程序猿等级划分

对于上图,由于本人等级只在程序猴阶段,只做如下解读:
1、从0到1,学习曲线陡峭,但只要坚持总会有收获
2、不要过多的追求工具,把项目跑起来才是真道理,不要怕折腾

二、编程入门之初阶——怎么学习编程?

怎么学习编程?

第一步:上网搜索(推荐知乎)学习该语言的经典教材、视频和网站
第二步:把视频啃一遍,将视频中讲解的代码自己手动地敲一遍,同时把一些基础的语法点做一个注释;啃大部头,将里面的代码敲一遍,对所有代码注释一遍。最好对一些学到的知识勤做笔记和总结。
第三步:做完上 面的两步,就可以看懂一些基础的项目,即便看不懂,通过上网搜索也可以解决相应的问题。在GitHub上找些简单的项目练练手,熟悉一下一个项目的基础文件结构体系,以及别人是如何管理自己的项目的。还是老办法,读懂项目的从注释开始,由于是小项目,一般不会存在官方文档之类的材料,如果项目作者写了readme文档,可以拿来参考。
第四步:做纠错小文档;这个文档主要记录的是语言管理官方的错误记录,如果在编译时如果出现“errorXXX:XXXXXX”类型的错误,自己去相应的官网查找解决办法,这个文档一般也是大部头!只是我们买的大部头(如C++ Prime)更系统一点,而官网的help只有在自己遇到问题时查找的手册,当然大部头也可以充当手册!

三、编程入门之进阶——怎么做项目?

总是在敲一些简单的代码是不会有进步的,通过初阶的练习,我们已经获得如下几点技能:
1、如何获取资料
2、如何解决问题
3、语言的基础语法(数据类型、控制结构、函数调用、文件调用)
4、项目的基础结构
接下来,我们需要做项目,才可能达到对一门语言精通的境界。初阶就像是中文学习里面的拼音、汉字、造句、关联词、写作文;而进阶则是写小说,不是一两篇文章这样的小玩意,而是需要把自己关在房子,没日没夜地构思才可能做到的。0不难,1也不难,难的是0到1这一进阶跳跃!

第一步:将知识落实到项目实践中去,项目实践涉及到框架和平台,也只有落实到这一步,我们所写的代码真正活了起来!通俗地讲就是,如果学习JAVA,那就落实到android上写一个APP;如果学习C,那写一个图形交户界面(虽然C不适合开发图形交户界面)或者是买一块开发板做一些实际的应用,实现一些简单实用的功能,如图片预览软件、图片格式转换软件等;如果学习JS,那么开发一个网站或者管理一个博客,实现一些简单的特效和功能,给博客添加一个推荐功能等。这些简单的项目,看起来很简单,但实则有很多要躺的坑,当时这些坑都已经被别人趟过,你需要的就是跳进去,然后沿着前人的路爬出来。做项目的好处就是,你得解决问题,也许网上的教程都很优美,但是到了你的电脑上,一切就完全不同,这也不对,那也不对的,那么就自己动手解决问题吧,但不了把系统删了重新装一个!-

第二步:至于项目怎么找或者如何选择?
1、你可以根据自己写代码时遇到的问题,写一个轮子来解决这个问题(新手一般不推荐这样);
2、或者上官方的论坛找点项目来练手,一般开发工具的官网都会提供一些项目供开发者实践;
3、最后肯定是GitHub了,那里有很多的开源项目可以进行实践和交流。

如果平台和框架十分明确的项目和学习,我建议直接找官网例子和文档进行学习,如果你学习android,而非java,(当然啦学习android肯定需要语言基础),我建议直接找官网案例和文档学习,没必要自己开启一个项目,或者在GitHub上找大工程,如果自己语言基础有点薄弱,可以采取对项目进行注释的方法进行学习。在对项目文件结构十分清晰的情况下,建议从注释代码开始,再到代码阅读,再到主动参与项目开发。

第三步;如果开发项目遇到了问题怎么办?
1、找项目官网和官方论坛,要知道就你那狗屎运,还没有能够让你发现一个新BUG的可能!
2、如果是平台或者框架的问题,一般官网也会提供相应文档和学习工具供你学习!
3、GitHub上的好项目一般会提供文档和开发案例,GitHub上还有一个开发者问答集,可以查看别人遇到的一些问题和解决方案。
4、很多时候不是项目的问题,而是你的开发环境配置存在问题,项目中内含的项目文件,你没有导入或者安装!导致官网没有问题而你有!建议使用Goole搜索查看相关的英文解决方案。

第四步:如何开发项目?
由于目前能力有限的问题,自己造轮子还是不可能的,所以只能复现别人的项目,然后根据官方的文档,添加一些自己的功能了!即便是这样简单的项目开发,也是困难重重。所以需要做的也就是把项目看懂,知道如何对项目进行修改,通过对项目的修改,将整个项目吃透!之后再具体到查看原作者是如何实现自己的功能,是否拿来作为自己模板。

将项目看懂的关键在于明白项目的文件结构体系,项目中每个文件到底是干什么用的,里面到底含有哪些东西和功能,我们并不需要将每一行代码都懂,我们可以将其看作一个黑匣子,只需要知道怎么使用就够了。更近一步说还是要明白项目的数据走向,数据之间是如何实现交流和参数传递的。

关于如何看懂文件体系和数据走向,如果官方文档对整个项目的进行彻底的解析,那当然好;如果没有,那只能采用试错,改改这个参数,看看有什么效果;删删那个文件,看看有什么BUG等等。通过这样的练习,我们就可以试着自己按照自己的需求来添加一些自己想要的功能了。

代码阅读三板斧:
第一步:将代码跑起来:只有代码跑起来啦,有相应的输出结果,才有开发的动力啊!
第二步:注释、修改、增添、调试:对于没有文件结构体系介绍的项目,读开源项目就得从功能入手,整体把握不了,就单点突破。
第三步:如果是平台、框架、函数库的原因,我们用的更多的是官网的文档和搜索引擎

最后一点建议:大项目的代码,不是通读可以解决的,因为代码量太大啦不是几百行,也不是几千行,而是几万行。所以就需要一个好的编辑器,能够让我们从函数调用的地方跳到函数定义的地方,从而了解该函数的作用;或者全局搜索工具,知道再哪些地方调用了该函数,以及该函数如何使用。借助这一工具,将能很快项目中已有的功能,提取出如何实现自己功能的办法。

在实现这些项目的时候,会发现原来还有好多要学,语言之外的框架和平台才是立足点。解决一个问题的同时,往往需要学习好几门知识!总之,学习就是一件痛苦的事情,但是作为一只立志要成为程序猿的程序猴,除了学习和折腾自己,还能干啥?

进阶总结

提升方法:做注释;写学习总结和博客总结,对自己所学到的知识作总结和归纳;如果你想练习自己的口头表达能力开直播吧!

学习渠道:传统的纸质书籍和电子书、广受推荐的开发视频、搜索引擎、优秀的技术博客、专业的技术论坛、含有大牛的QQ群和公众号。

注意事项:由于知识产权的问题,在开发项目的时候,一定要注意知识产权的问题,我们自己的项目,我们可以随便给别人使用,但是别人的项目,我们就不能随意妄为了!即便使用,至少也要加个链接标注一下;更无耻的是一些人,还声称自己是原作者,别人是抄袭的,不要脸!更有甚者,甚至还申请专利,不让你用,强盗逻辑!

四、编程感悟

个人体验最深的一点:别太追求一些与自己想去往的地方无关的东西。虽然我们对很多事情都很好奇,但是人的精力和时间都是有限的,我们只能选择那么几样东西,来奉献我们的一生,所以你一定要明白自己目前最应该提高的是什么!

初学者纠结到底该选择什么编程语言时,不如选定一门,把项目做起来,目前而言python应该是最好的入门语言;既然选择好了一门语言,就该选择一个好的编译器和编辑器,对于一个小白而言,如果时间很充裕,我们不妨都尝试一下,看看自己喜欢什么,但是我得提醒你,这些大牛们推荐的编译器或者编辑器都是挺折腾人的,虽然它们真的很好用,如果你想学python,那就下载一个官方的python进行训练,就行了,如果你选了C/C++,用codeblock或者xcode足够了,你还没到做项目的阶层呢!就好比一个年轻的剑客拿了一把重剑,剑是好剑,但是你根本使不出它的威力,何必呢?也许你不会听我的劝的,那就用你的耐心和不怕折腾来检验你是否有资格称为一个合格的程序猿吧!

你可能感兴趣的:(编程感悟)