精华内容
下载资源
问答
  • 在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题? 以下为译文: 每个人都会在学习编程语言的时候,努力记住所有一切,这也不足为奇。虽然有些人可以过目不忘,直接...

    在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?

    以下为译文:

    每个人都会在学习编程语言的时候,努力记住所有一切,这也不足为奇。虽然有些人可以过目不忘,直接在脑海里就能想出问题的解决方案,但普通人却不能。特别是那些刚开始学习和探索编程世界的人,比如我自己。

    我逐渐了解到,记住所有你接触过的代码是一件不可能的事情!

    那么问题来了:我们该怎么解决这个问题呢?

    要明白你能做什么,而不是记住怎么做

    其实,代码可以构建的功能有无数种可能性!你可以设想通过代码构建任何内容,只有你想不到的,没有构建不了的。学习一种新语言是一件非常令人激动的事情。查看问题以及代码示例,并通过这些示例学习如何利用这种语言以及/新概念完成工作,这都非常重要,但我们无法记住所有的信息,不要做无谓的尝试!你可以在今后需要实现的时候,再反过来查看,刚开始的时候,你只需要记住这种概念可以实现什么样的功能。

    在我深入研究React.js时,这种方式给予了我的学业很大帮助。实现的可能性太多了,你有无数种方式传递props、创建新state、组合组件——实在太多了!就像一个大谜团!

    我了解到React可以实现非常多的功能,虽然我无法确切告诉你该如何做,但我知道存在这种可能性,这很重要。

                                   

    在需要时寻找所需的代码

    就像学说一门新语言,你知道自己想说什么,但你不知道该怎么说。编程语言也是如此!

    在我刚开始学习编程时,人们称Google为“终极工具”。那时我就在想:我使用Google已经很多年了……我错过了什么吗?

    后来才发现:重要的不是搜索内容,而是搜索的方式。无论你想寻找什么答案,网上都有,就看你怎样才能找到了!

    在用外语与其他人交谈,或用一门新语言编程时,你可以通过Google找到如何表达。你不必记住括号放在何处,或者这里是逗号还是分号。应该使用圆括号还是大括号这种问题很容易出错,而且也很容易解决!只需快速搜索,两秒钟就能找到答案。

    但是,我有几次因为未能写出完美的语法而感到内疚。有语法问题那就有呗!重要的是你知道自己要做什么,然后只需要记住该如何做即可!

                                  

    从何处下手?

    学习一门新的编程语言必然会令人不知所措,还会引起混乱。当有人说:“放手去做就好了!”时,我会觉得很迷茫,我该从何处下手呢?最终我发现:你永远也无法为需要构建的功能做好准备,你唯一能做的就是走一步看一步,先动起来。

    如果说每次没有遇到任何问题、不需要搜索任何技术、不需要寻求别人的帮助、也不必返工就能成功构建一个项目,我就可以拿到一美元的话,那么我告诉你……到目前为止我一美元也没拿到!

    犯错是学习过程中的一部分。犯错是学习、发展和提高程序员技术力的一部分。而学习故障排除和调试代码则更重要,而不仅仅听别人说:“我也遇到过这个问题,你所需要做的就是……”。

    我强烈鼓励你尝试自己解决问题。努力奋斗。不要害怕搞乱或破坏你的代码。必要的时候,可以重新构建整个项目。在学习新知识(例如编程)时,一遍遍重复才能学到真技术。一遍又一遍,直到你全部掌握为止。

                                          

    如何实现呢?

    找到你想要构建的东西,然后开始动手!不要犹豫不决。反复尝试和失败。当你不确定想要完成的功能时,请花点时间研究问题。分解成块。弄清楚如何解决每个块。然后,再想法把所有块聚拢到一起。如果你忘记了如何编写for循环,或者忘记了高阶函数会返回什么,那也无需担心。你可以参阅文档或指南,然后再继续。

    有时这是一个缓慢的过程,但非常值得。最终,你会越来越有自信,而且有很多想要实现的新想法。

    你会记住如何实现吗?不会。

    但是,你可以参考过往的项目, 在Google上寻找答案,或者阅读论坛。答案都是现成的,你需要做的只不过是找到答案而已。

    原文:https://dev.to/dylanmesty/why-you-can-t-and-shouldn-t-remember-everything-when-learning-to-code-3h53

    学习交流C/C++编程,提升自己的C/C++编程能力,欢迎关注笔者的微信公众号:C语言编程学习基地,进群一起交流学习~

    展开全文
  • 如何代码融会贯通?可能很多人只知道Java是一门编程语言,能用来做什么、怎么用、涵盖哪些知识点是一窍不通。在学习Java编程的过程中,会有一些比较难理解的知识点,下面一同来看看吧。 1、面向对象。学习Java,...

      没有基础怎么学Java编程?如何与代码融会贯通?可能很多人只知道Java是一门编程语言,能用来做什么、怎么用、涵盖哪些知识点是一窍不通。在学习Java编程的过程中,会有一些比较难理解的知识点,下面一同来看看吧。

    976ad8858b4566937b46f6f49f426b64.png

      1、面向对象。学习Java,你要了解Java面向对象的三大特征,即封装、继承和多态。看到一行代码你首先要想它的作用,想一下Java的语言特性,而不是只记住它的变量。你要明白自己要做什么,明白自己写这行代码的意义,熟练掌握Java的语言特点才能写出有效的代码。

      2、函数。在大学数学中,我们就接触过函数,但Java函数是具备特定功能的一段代码块,解决了重复性代码的问题。想要掌握Java函数,我们需要记住很多知识点,比如修饰符、参数、返回值类型以及自定义函数、函数的参数递归等。

      3、反射。反射机制就是Java语言在运行时拥有一项自观的能力,利用反射机制,在程序运行状态中,你可以动态获取任意一个类的所有属性和方法,也可以调用任意一个对象的任意方法和属性。

      4、IO流。Java的IO流根据不同条件可分为字符流、字节流和输入、输出流两大块。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

      在Java学习的过程中,会不断总结出了一套比较适合自己的学习方法,那就是要多背、多练、多问。对于没有什么基础的人来说,可以选择专业的学习,让自己快速入门Java开发行业。

    展开全文
  • 编程的重点不是死记硬背,而是如何应用。在编程学习中,会有一个误区,掌握知识和记住知识是两个概念。Python的知识点还是很多的,在学习初期的时候。做到心中有个印象,使用时不确定这个知识,可以查看学习记录,...

    知识学完就忘

    知识学完就忘,可以用开卷思维来弥补,毕竟是没有没有老师监考得。对于忘记的知识随时查阅。

    学编程的重点不是死记硬背,而是如何应用。

    在编程学习中,会有一个误区,掌握知识和记住知识是两个概念。

    Python的知识点还是很多的,在学习初期的时候。做到心中有个印象,使用时不确定这个知识,可以查看学习记录,提供两种有效的学习方法:用法查询笔记法和深度理解笔记

    用法查询笔记

    记住一点,不管用什么格式记笔记,目的只有一个,就是方便自己查询使用。

    例如算法运算符相关笔记

    通过小例子来说明不同算法运算符的用法,并且用注释说明

    再例如字典的相关笔记

    遇到自己没有涉及到的零碎知识点,也可以补充到笔记里,方便日后查看

    深度理解笔记

    有些知识光有印象还不够,还需要知道这些知识如何使用,所以要用深度理解笔记做总结。

    例如循环知识的理解笔记

    用法查询笔记解决的是知识点是什么的问题,深度理解笔记则侧重解决为什么要用以及怎么用这个知识点的问题。

    再例如列表和字典的例子

    深度理解笔记不是一蹴而就的,会随着对某一知识的理解程度加深而不断完善

    缺乏解题能力

    解题技巧因人而异,提供以下几步供大家做为参考

    a.分析问题,明确结果

    假设目标是在终端打印出九九乘法表

    b.思考需要的知识,或搜索新知识

    首先明确,打印信息就需要print()函数,不过千万不要写成这样

    九九乘法表是有一定规律,重复的结果,所以可以想到用循环来处理

    同时,数字是灵活变动的,所以用格式化字符串来为变动的数字预留位置会更方便

    c.思考切入点

    观察九九乘法表,会发现一个规律,每一行的等式离,第一位数会递增,第二位数则会保持不变,并且在第几行就会有多少个等式。

    d.尝试解决问题的一部分

    尝试一下打印出九九乘法表的第二行和第三行

    输出结果

    1 X 2 = 2 2 X 2 = 4

    1 X 3 = 3 2 X 3 = 6 3 X 3 = 9

    初步代码编写

    for i in range(1, 3):

    print('{} X {} = {}'.format(i, 2, i*2))

    for i in range(1, 4):

    print('{} X {} = {}'.format(i, 3, I*3))

    输出结果

    1 X 2 = 2

    2 X 2 = 4

    1 X 3 = 3

    2 X 3 = 6

    3 X 3 = 9

    输出结果不是我们想要的效果,所以要回到第2步重新思考

    怎么才能让print出来的东西不换行。这时之前学的知识可能没有很好的解决办法,这时就要用到搜索引擎了,谷歌或者百度搜索新知识。

    print()函数里有个参数'end'是用来控制换行行数和结尾字符

    实例

    print('hellp', end='')

    print('world')

    print('hello', end=' ')

    print('world')

    print('hello', end='!')

    print('world')

    输出结果

    helloworld

    hello world

    hello!world

    通过新知识可以把代码写成

    for i in range(1, 3):

    print('{} X {} = {}'.format(i, 2, i*2), end=' ')

    for i in range(1, 4):

    print('{} X {} = {}'.format(i, 3, i*3), end=' ')

    输出结果

    1 X 2 = 2 2 X 2 = 4 1 X 3 = 3 2 X 3 = 6 3 X 3 = 9

    但这还不是我们想要的结果,这时就可以使用print('')来控制换行

    for i in range(1, 3):

    print('{} X {} = {}'.format(i, 2, i*2), end=' ')

    print('') # 用来换行

    for i in range(1, 4):

    print('{} X {} = {}'.format(i, 3, i*3), end=' ')

    输出结果

    1 X 2 = 2 2 X 2 = 4

    1 X 3 = 3 2 X 3 = 6 3 X 3 = 9

    通过这样的方式,把所有的等式放在一起

    for i in range(1, 3):

    print('{} X {} = {}'.format(i, 2, i*2), end=' ')

    print('') # 用来换行

    for i in range(1, 4):

    print('{} X {} = {}'.format(i, 3, i*3), end=' ')

    print('')

    ......

    for i in range(1, 3):

    print('{} X {} = {}'.format(i, 2, i*2), end=' ')

    print('') # 用来换行

    for i in range(1, 4):

    print('{} X {} = {}'.format(i, 3, i*3), end=' ')

    但这还是很复杂,不过可以看出规律,同一结果重复了九次,我们可以用一层循环嵌套,来解决重复劳动。

    可以发现九九乘法表行数是固定的,范围是range(1, 10),而列数(等式)则是逐行加一,即第N行就又N个等式。

    完善后的代码

    for i in range(1, 10):

    for j in range(1, i+1):

    print('{} X {} = {}'.format(j, i, i*j), end=' ')

    print(' ')

    输出结果

    1 X 1 = 1

    1 X 2 = 2 2 X 2 = 4

    1 X 3 = 3 2 X 3 = 6 3 X 3 = 9

    1 X 4 = 4 2 X 4 = 8 3 X 4 = 12 4 X 4 = 16

    1 X 5 = 5 2 X 5 = 10 3 X 5 = 15 4 X 5 = 20 5 X 5 = 25

    1 X 6 = 6 2 X 6 = 12 3 X 6 = 18 4 X 6 = 24 5 X 6 = 30 6 X 6 = 36

    1 X 7 = 7 2 X 7 = 14 3 X 7 = 21 4 X 7 = 28 5 X 7 = 35 6 X 7 = 42 7 X 7 = 49

    1 X 8 = 8 2 X 8 = 16 3 X 8 = 24 4 X 8 = 32 5 X 8 = 40 6 X 8 = 48 7 X 8 = 56 8 X 8 =

    64

    1 X 9 = 9 2 X 9 = 18 3 X 9 = 27 4 X 9 = 36 5 X 9 = 45 6 X 9 = 54 7 X 9 = 63 8 X 9 =

    72 9 X 9 = 81

    注:解法不是唯一的

    其他解法

    for i in range(1, 10):

    for j in range(1, 10):

    print('{} X {} = {}'.format(j, i, i*j), end=' ')

    if i == j:

    print('')

    break

    作者:one

    来源:公众号One丨Python

    展开全文
  • 如何编出健壮的代码,java编程30条规则(二) 来源: 网络转载 时间:2009-6-15 (16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对...
    如何编出健壮的代码,java编程30条规则(二) 
    来源: 网络转载 时间:2009-6-15
    (16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不应是第一个行动,这样可确保在需要基础类组件的时候它们依然有效。

    (17) 创建大小固定的对象集合时,请将它们传输至一个数组(若准备从一个方法里返回这个集合,更应如此操作)。这样一来,我们就可享受到数组在编译期进行类型检查的好处。此外,为使用它们,数组的接收者也许并不需要将对象“造型”到数组里。

    (18) 尽量使用interfaces,不要使用abstract类。若已知某样东西准备成为一个基础类,那么第一个选择应是将其变成一个interface(接口)。只有在不得不使用方法定义或者成员变量的时候,才需要将其变成一个abstract(抽象)类。接口主要描述了客户希望做什么事情,而一个类则致力于(或允许)具体的实施细节。

    (19) 在构建器内部,只进行那些将对象设为正确状态所需的工作。尽可能地避免调用其他方法,因为那些方法可能被其他人覆盖或取消,从而在构建过程中产生不可预知的结果(参见第7章的详细说明)。

    (20) 对象不应只是简单地容纳一些数据;它们的行为也应得到良好的定义。

    (21) 在现成类的基础上创建新类时,请首先选择“新建”或“创作”。只有自己的设计要求必须继承时,才应考虑这方面的问题。若在本来允许新建的场合使用了继承,则整个设计会变得没有必要地复杂。

    (22) 用继承及方法覆盖来表示行为间的差异,而用字段表示状态间的区别。一个非常极端的例子是通过对不同类的继承来表示颜色,这是绝对应该避免的:应直接使用一个“颜色”字段。

    (23) 为避免编程时遇到麻烦,请保证在自己类路径指到的任何地方,每个名字都仅对应一个类。否则,编译器可能先找到同名的另一个类,并报告出错消息。若怀疑自己碰到了类路径问题,请试试在类路径的每一个起点,搜索一下同名的.class文件。

    (24) 在Java 1.1 AWT中使用事件“适配器”时,特别容易碰到一个陷阱。若覆盖了某个适配器方法,同时拼写方法没有特别讲究,最后的结果就是新添加一个方法,而不是覆盖现成方法。然而,由于这样做是完全合法的,所以不会从编译器或运行期系统获得任何出错提示——只不过代码的工作就变得不正常了。

    (25) 用合理的设计方案消除“伪功能”。也就是说,假若只需要创建类的一个对象,就不要提前限制自己使用应用程序,并加上一条“只生成其中一个”注释。请考虑将其封装成一个“独生子”的形式。若在主程序里有大量散乱的代码,用于创建自己的对象,请考虑采纳一种创造性的方案,将些代码封装起来。

    (26) 警惕“分析瘫痪”。请记住,无论如何都要提前了解整个项目的状况,再去考察其中的细节。由于把握了全局,可快速认识自己未知的一些因素,防止在考察细节的时候陷入“死逻辑”中。

    (27) 警惕“过早优化”。首先让它运行起来,再考虑变得更快——但只有在自己必须这样做、而且经证实在某部分代码中的确存在一个性能瓶颈的时候,才应进行优化。除非用专门的工具分析瓶颈,否则很有可能是在浪费自己的时间。性能提升的隐含代价是自己的代码变得难于理解,而且难于维护。

    (28) 请记住,阅读代码的时间比写代码的时间多得多。思路清晰的设计可获得易于理解的程序,但注释、细致的解释以及一些示例往往具有不可估量的价值。无论对你自己,还是对后来的人,它们都是相当重要的。如对此仍有怀疑,那么请试想自己试图从联机Java文档里找出有用信息时碰到的挫折,这样或许能将你说服。

    (29) 如认为自己已进行了良好的分析、设计或者实施,那么请稍微更换一下思维角度。试试邀请一些外来人士——并不一定是专家,但可以是来自本公司其他部门的人。请他们用完全新鲜的眼光考察你的工作,看看是否能找出你一度熟视无睹的问题。采取这种方式,往往能在最适合修改的阶段找出一些关键性的问题,避免产品发行后再解决问题而造成的金钱及精力方面的损失。

    (30) 良好的设计能带来最大的回报。简言之,对于一个特定的问题,通常会花较长的时间才能找到一种最恰当的解决方案。但一旦找到了正确的方法,以后的工作就轻松多了,再也不用经历数小时、数天或者数月的痛苦挣扎。我们的努力工作会带来最大的回报(甚至无可估量)。而且由于自己倾注了大量心血,最终获得一个出色的设计方案,成功的快感也是令人心动的。坚持抵制草草完工的诱惑——那样做往往得不偿失。
    展开全文
  • 一、学习有记录过程,通过博客总结学习的知识,用github来记录自己写代码的过程,有纸质笔记和电子笔记,慢慢进步...四、学习编程还要掌握以下:1-算法、数据结构-上课注意听讲,下课注重实践实践实践实践(记住)。...
  • 那么Java程序员如何做到爱上代码呢?小编建议给自己定下几条规则,帮助自己快速记住代码,会写代码,写好代码。最小化的时间写好代码,让写代码变成习惯每天强迫自己至少写半小时的代码,空余时间可以多借鉴下项目...
  • Java编程高手教你写出完美代码

    千次阅读 2019-05-27 21:47:52
    那么Java程序员如何做到爱上代码呢?小编建议给自己定下几条规则,帮助自己快速记住代码,会写代码,写好代码。 最小化的时间写好代码,让写代码变成习惯 每天强迫自己至少写半小时的代码,空余时间可以多借鉴下...
  • 对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情。如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助。 eclipse代码里面的代码提示功能默认是关闭的,只有输入“.”的时候...
  • (16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不...
  • 大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.183-NO.184内容是:NO. 195:在VBA代码中使用使用Getfile方法获取文件信息NO. ...
  • 利用cookie编程login.jsp 页面上的java代码:String name = "";String password = "";try{Cookie[] cookies=request.getCookies();if(cookies!=null){for(int i=0;iif(cookies[i].getName().equals("cookie_user")){...
  • 如何深入Delphi编程

    2011-07-02 15:43:16
    仅仅向窗体上扔几个构件,甚至不用动手写代码,就能很容易地做出一个有实用价值的程序,真是令人激动。但是,VCL只是Delphi的一小部分,Delphi的优秀远远不只是表现在VCL上。如果你仅仅停留在使用VCL这一阶段,那么...
  • 完成您的第一门编程课程,不确定如何继续吗?斯坦福地方代码规范小组共享路线图,包括要遵循的课程以及在何处查找有关这些课程的信息 请先阅读以下内容:我是斯坦福大学就地代码课程的部门负责人(这是他们CS入门...
  • eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能? 对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情。如果要IDE能够自动补全代码,那将为我们编程...
  • 如何一分钟记住23种设计模式

    千次阅读 2015-01-10 22:28:24
    我们这里不谈设计模式是什么,也不谈设计模式的好处是什么,更不谈设计模式的代码实现,只是想分享下如何快速的对这23种设计模式的名字有一个宏观把握,而这些名字基本上都是非常形象,极易见名知意的。 很多人会说...
  • 对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情。如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助。EcliPSe代码里面的代码提示功能默认是关闭的,只有输入“.”的时候才会...
  • [size=large]我看算法的时候只看伪代码的话,感觉太抽象,总记...《编程珠玑》的代码已经有C/C++的实现版本了,我在附件也贴出来了,但是,作为一个C++语言的入门者,因为还涉及到不知道如何链接C++的函数库等种种问...
  • 对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情。如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助。 EcliPSe代码里面的代码提示功能默认是关闭的,只有输入“.”的时候...
  • 对于编程人员来说,要记住大量的类名或类方法的名字,着实不是一件容易的事情。如果要IDE能够自动补全代码,那将为我们编程人员带来很大帮助。 eclipse代码里面的代码提示功能默认是关闭的,只有输入“.”的时候...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 331
精华内容 132
关键字:

如何记住编程代码