01 转变学习思维
首先想说的第一点:转变学生时代的学习思维!
不要把编程学习当做学生时代的应试考试来学了,三年模拟五年高考那一套在这里是行不通的!
技能学习理论为辅实践为主,因为实际操作经验,这些细节在书上是没办法体验到的。
理解代码比记住代码更重要,我们能理解代码是干什么用的就可以了。
拿游泳来说吧,需要预习吗?需要背动作要领吗?
基本不用吧,几岁大点的小孩都会游呢!都是是通过在水里的反复练习,教练手把手地传授动作,一点一点提高熟练度学会的。
02 不要说我会什么
“我会什么”这句话,其实是最虚飘飘的东西,但你要说,XX著名项目作者,那我一听就知道了。
① 学编程最快的捷径就是苦敲代码,积累代码量,一门语言写几万行的代码量,就上手了。
有问题,先文档,再stackoverflow,再技术文章。
② 增加自己的项目经验,面试的时候这就是加分宝典!
提到的积累代码量也好,基础也好,最终都是为“项目”、为“产品”服务的。
敲黑板!没有项目经验就造项目经验,有空多逛逛Github!github上遍地的源码分享,都可以为你所用。
github搜索项目:
③ 多结交一些同行大神,多认识一些人脉,不管怎样,直接通过人往往要比那些通过流程走容易的多。
④ 编程是一个需要不断学习训练的过程,尤其是新手需要尝试多种学习方式并总结出最适合自己的方式。
03 多修炼内功
这里的内功指——底层技术;
两点原因:
换代这么快的今天,是无法把每一个框架/工具都学习一遍的,底层技术就是你快速上手的瑞士军刀。
你怎么和别人拉开差距?单纯就靠使用框架的能力么?这些随便从培训班抽一个人可能都会做的工作无法成为你的核心竞争力。
为什么有的人学编程特别快?
可能不是因为他有多聪明,而是他内功扎实,也就是对计算机的知识体系有一定程度上的理解。
比如在你懂了计算机网络之后,就可以很快理解 RESTAPI,GraphQL,RPC 之间的异同,也可以明白即时通讯协议 XMPP,MQTT 的优劣。
比如你了解 Lambda 演算,编译原理,形式语言,也就能理解一个语言为什么要这么设计语法,为什么不能这么写。
比如你懂了数据结构,你就能理解数据库,搜索引擎中的细节原理。
所以你眼中的聪明人真的是天才么?
不排除真的有天才,但我想更多的是普通人,只不过他学的稍微比你多一点,知识体系比你更系统一点罢了。
04 不要小瞧基础
没有基本功的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。
Python/ target=_blank class=infotextkey>Python必备基础:
① Python程序:Python的基本介绍、sublime、vi编辑代码、helloworld程序、Python运行代码、Python的交互模式
② 变量、输入和输出、运算符:定义变量、使用变量、变量的类型,以及类型的转换、if、else、if满足时执行做条语句、关键字、运算符、标识符、驼峰法命名、print一次性输出多个变量的值
③ if、while、for:if比较运算符、and,or,if语句的注意点、not,if,elif的使用、if逻辑运算符、while循环、if嵌套、复合赋值运算符,for循环,break和continue、while嵌套中的break作用范围
④ 字符串:在内存中的存储方式、类型的转换和输入、组成字符串的2种方式、字符串中的下标及切片、字符串逆序。
⑤ 列表和字典:列表的引入、定义、C语言中的数组不同的点、列表的增删改查、for、else、列表的Append、extend、while、for循环遍历列表
专业深入方向的比如:
① Web开发:
熟悉MVC架构,掌握一些框架,比如Django、Flask、Tornado。除此之外还需知道一些SQL与NoSQL数据库。
② 爬虫开发:
熟练掌握HTTP、TCP/IP协议,熟悉常用的Http请求处理库与解析库。另外爬虫框架Scrapys在爬虫的应用方面非常广泛。还有Selenium,会用抓包工具,数据库也需要掌握。
③ 数据分析:需要学习NumPy、Pandas、Matplotlib等库。
05 良好的编码习惯
很多人会忽略的一点,对于新手来说,中英符号错误、空格错误、拼写错误、标点符号打错等都有可能导致Error消息或程序Bug。
Python好上手,但在Python中编写错误的代码也很容易
06 学会看代码
几年编程开发经验领悟到的一点:
学会看代码、知道如何调试代码非常重要!
刚开始学习编程,看到代码报错,就会茫然失措,脑子中立马闪出一个'funck'。纳闷为什么会报错?
会看代码不仅指认识就行,会看代码包含:分析代码编写的逻辑;尝试发现代码里的错误,寻找修复bug的方法.....
不要过于依赖教程给你提供的解决方案!要知道如何解决问题以及自己发现解决方案。
在自己编写还比较困难的时候,就先学习别人写的代码!先临摹,再创作。
最好是找大咖的代码来学习,学习其中的逻辑,学习举一反三!
其实解决编程代码问题也是有套路的,这个套路就是:
能不用百度就别用百度,你要学会在全球最大的技术问答平方:stackoverflow上搜索问题的答案。
从解决掉的每条错误消息中学习,不要只是修复错误就完事了,了解总结正在修复的代码有什么问题,下次再碰到同类错误就能够更快地修复错误。
07 多总结 分享 输出
我个人解决这个问题的办法就是做思维导图;
这个能帮助我快速清晰的把知识框架和内容过一遍,结合自己的理解和补充整理下来,然后逐步的充实自己的知识体系。
分享的话写博客、做开源项目都是很好的方式;
将自己学到的东西分享出来,一方面能检验自己是否掌握,另一方面还能加深自己的理解和认识。
比如学完之后做了一个笔记:对象详解
1)对象的组成:
对象=属性+方法 对象是由属性和方法组成的,属性可以理解为对象有什么,方法可以理解为对象能做什么。
2)对象的属性有哪些特征
对象的属性可以是抽象的属性
比如说洗衣机是一个对象,而且洗衣机是有颜色的,那么颜色就是一个属性,但是颜色却是个抽象的概念,因为它可以是红色、白色、黑色、蓝色等颜色。
3)对象的属性可以是另一个对象
比如说计算机是一个对象,而计算机有硬盘,那么硬盘就是计算机的一个属性,所以说对象的属性可以是另一个对象。
4)大对象由小对象所组成
比如说鼠标是一个对象,鼠标的滚轮是一个对象,鼠标里面的单片机是一个对象等等,这时候你会发现,鼠标这个大对象是由多个小对象组成的~
总之,就像剑客对其兵刃的喜爱一样,投入精力不断打磨,总是有回报的。