《十年自学编程成才(编程小白必看).docx》由会员分享,可在线阅读,更多相关《十年自学编程成才(编程小白必看).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、十年自学编程成才(编程小白必看)1.前言我是herosunly从985院校硕士毕业现担任算法研究员一职。CSDNboke专家2020年度boke之星TOP。曾获得阿里云天池比赛第一名等Top名次拥有多项创造专利。对机器学习以及深度学习拥有自己独到的见解。曾经辅导过假设干个非计算机专业的学生进入到算法行业就业。最近有几个初入编程的同学咨询我怎样学好编程。其中以及有个同学的对话让我对新手学编程有了新的认识。为了帮助更多的同学特意共享给大众同学学编程是不是十分容易呢我没有觉得呢为什么会这么想呢同学网上不是有很多几小时或几天精通编程的课程吗我信息不对称真的是可怕。一时也讲不清这个问题等我过几天写篇bo
2、ke给你看吧。之所以不少同学会轻易相信是不良商家们针对人性的弱点(急于求成)进展巧妙的营销。那么问题来了学习编程的正确姿势是什么呢是时候拿出我初学编程读到的经典文章?十年度自学编程成才?。2.十年度自学编程成才2.1为什么每个人都是匆匆忙忙的不管是在书店里还是在boke网站中总不免会看到几个小时学会某门编程语言(C、Java、Ruby等)的书籍或帖子。假如在亚马逊中搜索标题为teachyourselfhours书籍发表时间在2000以后就会找到512本书。大众在学习编程时总是想着急于求成似乎编程要比其他事情要更简单。Felleisen等人在?HowtoDesignPrograms?一书中表示他
3、们也深切感受到了这种趋势并且说明糟糕的编程习惯是很容易形成的。让我们分析一下在24小时内学会C到底意味着什么呢在24小时的时间内是没有充足的时间完成重大的程序因为调试往往比开发要花更多的时间。没有过多理论的编程学习是学不到过多内容的。所以这本书更多的讨论的是浅薄的内容所以无法让读者进展深入的理解。正如AlexanderPope所讲浅尝辄止往往是一件很危险的事情。在24小时内可以学完C的局部语法但是无法学到怎样去实际应用它。简单地讲假如是一个Basic程序员在24小时学习之后他可以使用Basic风格的C代码但是无法体会到C的优点。那有什么意义呢AlanPerlis曾经讲过假如一门编程语言没有影响
4、开发者的思维方式那么这门语言就不值得学习。另外一种观点是讲由于工作需求必需要学习一局部的C(或Javascript)只是为了完成既定的工作。那么这就不是在学习编程而只是完成任务。从个人的经历来讲假如仅仅想用24个小时学好编程那肯定是从入门到放弃了。2.2十年度时间学习编程(刻意练习)研究人员Bloom、Bryan以及Harter、Hayes、Simmon以及Chase说明要成为任何一个领域的专家至少需要投入十年度的时间就比方下象棋、编曲、发电报、绘画、弹钢琴、游泳、打乒乓球和科学研究。成功的关键在于刻意练习那什么是刻意练习呢刻意练习不只是重复的进展练习更重要的是要对超出自己才能范围以外的事物进
5、展练习。详细步骤是勇于尝试进展事前以及事后分析并且及时修正错误。然后进展不断地重复。看起来是没有捷径的即使是莫扎特在四岁时已经是音乐天才也花费了13年度以上的时间才产生了世界级的音乐。在另外一种音乐类型上1964年度披头士乐队凭借一连串的热门单曲以及EdSullivan的表演一炮走红。但实际上从1957年度开场他们就在利物浦、汉堡等地的小型俱乐部进展表演。固然他们很早就表现出了吸引力但第一个非凡的成功之作SgtPepper是在1967年度发行的。MalcolmGladwell说明要想在一个领域内获得成功需要在该领域上投入一万个小时而不是跨越十年度。HenriCartier-Bresson那么有
6、另外另外一个衡量标准前10000张照片是最糟糕的(在他的年度代里没有数码相机现如今人们一周就可能超过标准)。真正的专业知识往往要消耗人的一生SamuelJohnson讲过任何的卓越只能通过一生的努力来实现少量的努力是绝对无法到达的。AndChaucer那么感慨道“生命如此短促学习之路却是如此之长。希波克拉底(西方医学奠基人)的名言是生命短暂,艺术长存。当然没有哪个数字是准确的答案。假设所有技能例如编程、下棋、以及演奏音乐都需要花费一样的时间来掌握是并不合理的不同人掌握同一门技能花费一样的时间也是不合理的。正如K.AndersEricsson教授所讲“在大多数领域即使是最有天赋的人也需要花费大量
7、时间才能到达专家级程度。一万个小时只是给你一个概念一个天才假如每周练习10到20个小时的时间仍然需要数年度时间才能到达专家级别的程度。假如大众对刻意练习感兴趣可以再深化浏览刻意练习一书2.3程序员成功之路以下是走向编程成功之路的一些有效方法(抛砖引玉祈望每个同学都能找到最合适自己的方法)要对编程感兴趣就要从中不断地获得快乐。保证编程足够有趣这样才能让你花10年度的时间或10000个小时在上面也不觉得枯燥无味。动手编程。最好的学习方法是边学边做。常言道“人的最高功力并不能通过做一天以及尚撞一天钟这样的重复经历获得但是最高的功力可以通过有针对性的日复一日年度复一年度的训练来获得。并且“最有效果的学
8、习需要有针对性的任务这些任务的难度还要因人而异并且有合理的反应渠道并可以根据这些反应作出相应的改良。这些观点引用自?CognitioninPractice:Mind,Mathematics,andCultureinEverydayLife?这本书里。以及其他的程序员沟通浏览别人的代码。这比看书或参加培训课程要重要。假如可能的话建议在大学里系统学习计算机知识或再读个研。这样更容易获得工作时机进而更容易获得对该领域更加深化的解析。假如有时机直接去工作也能获得一样的经历。无论是什么情况死读书肯定是不行的。计算机科学不会让你成为编程专家就像学习画笔以及颜料不可能让你成为画家一样。这是EricRaymo
9、nd讲的他是NewHackersDictionary字典的。很多程序员大佬的学历并不高他们仍然创造了不少伟大的软件。以及其他的程序员一起介入工程。在工程中努力成为最出色的程序员。在当最出色的程序员的时候可以尝试指导工程用自己的视野来启发别人。假如你是工程中最差的那个要学习牛人们在做什么假如他们不喜欢做的你要拿来做。接手并推进别人的工程。理解其别人写的代码。假如别人有没有考虑到的问题你能理解并修复这些问题。考虑并设计你的软件让这些软件容易被别人维护。学习至少6种编程语言。这6种语言中包括一种支持面向对象的语言(例如Java或C)一种支持函数式编程的语言(Lisp,ML或Haskell)一种支持语
10、义抽象的语言(Lisp)一种支持声明标准的(Prolog或C模板)还有一种支持并发的(Clojure或者Go)。记住在“计算机科学中在“计算机这个词语。理解执行一条指令要花多长时间从内存中取一个字要考虑缓存有没有命中的情况要多久从硬盘中连续读字节要多久在硬盘中寻址定位要多久参加语言的标准化工作。这可能是有关ANSIC委员会可以能是缩进的风格是两格缩进或者四格缩进。无论怎样你能从中学到其别人对语言的爱好也能解析到他们热爱的程度甚至也许能知道一点他们为什么他们会这样认为知道何时能从标准化语言的工作中脱身越快越好。弗雷德布鲁克斯在他的书?没有银弹?中给出了三条建议尽早地系统地识别出顶级设计师每个人给
11、分配一个职业规划的导师让成长中的设计师有时机相互商讨武艺有一局部人天生就有成为伟大设计师的潜质然后能做的最好的事情就是去正确引导他们。艾伦佩里斯一针见血地讲假设每个人都可以学会雕刻那就得教米开朗基罗哪些事不要去做。对于伟大程序员也是如此。Perlis认为伟大的人有一种内在的特质这种特质往往比承受训练更重要。但是这些特质是从哪里来的呢与生俱来的还是通过后天勤奋而来的正如动画片?料理鼠王?里的幻象大厨AugusteGusteau讲的那样“谁都能做饭但只有那些无所畏惧的人才能成为大厨个人认为可以把练习的态度转变成心甘情愿的奉献就跟耐心培养自己的孩子一样。这样往往就更容易走向成功之路。3.扬帆起航讲了
12、很多了有没有比拟详细的学习方法呢那必须安排上啊咱们就以学习Python为例首先我们要正确认识自己的编程程度。先做个简单的分类。把同学分为没有完好学过根底语法和学过两个类别。首先讲下没有学过根底语法的同学其中包含正在学习根底语法的同学请在学习经过中保持“爱玩的心态可以尝试将不同的操作进展组合详细该怎样操作呢举几个栗子请大众看到例子后考虑并理论验证例子如下所示四那么运算的组合a1a*1赋值运算b(a1)函数体与部分变量x10deffoo():print(x)3.1Python系列专栏以上例子皆是抛砖引玉(甚至我们可以在键盘上乱打一通然后猜一下会不会报错报错的话会在哪里报错)祈望大众能在学习语法中自
13、主构建新的例子进而加深对原有知识的理解。新手可以订阅系统讲解Python学习方法以及语法的专栏。最后再讲下已经学过Python语法的同学。既然已经系统学习过语法了那就请开场实战吧。在实战经过中请记得也是在玩也不是在做枯燥乏味的练习题。就像玩游戏一样学会了根本的操作就开场敞开玩耍吧。那么问题来了终究进展什么样的实战呢选择非常之多可以用Python来创立游戏例如使用来创立植物大战僵尸等小游戏可以通过爬虫完成各种自动化操作。例如CSDN自动点赞与评论、自动收取蚂蚁森林能量等。爬虫合适于绝大多数人在实战以及学习经过中会对Python、前端、后端都有更加深入的理解。下列图为每天早上7点15分自动偷取能量的截图想要学习爬虫的同学可以订阅我的专栏当然如今如火如荼的机器学习方向也是一个不错的选择。但相对来讲门槛要比之前的方向更高一些。想要学习机器学习的同学可以以订阅我的专栏以及。3.2Python知识图谱要在任何领域成为一等一的高手构建属于自己的知识架构是至关重要的。那么就有同学会问那什么是知识架构呢知识架构描绘了知识点之间的联络和知识学习的成长道路。为了帮助大众入门以及进阶推荐CSDN官方提供的Python全栈知识图谱祈望能帮助大众早日成为Python届的顶级高手。为了鞭策自己不断的进步学习我也自己购置了一份感觉确实很有用无图无真相祝大众早日成为编程大神一起加油
限制150内