V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
alanerzhao
V2EX  ›  问与答

如何提高一个编程初学者的逻辑和思想?

  •  
  •   alanerzhao · 2012-07-17 23:37:22 +08:00 · 3544 次点击
    这是一个创建于 4306 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在学习javascript,但是以前一直没有学过,虽然在大学学过C 语言,但也不是太深,现在一直从事前端工作主要是CSS/HTML方面,但发现没有JavaScript不行,所以就学习起来,但感觉自己的逻辑能力很差,看到一些效果根本没有思路。
    就是有思路的效果,我写的代码也很烂,就像下面一样。
    var iNum = 0;
    var getSlide = document.getElementById('slidetab');
    var getCont = getSlide.getElementsByTagName('div');
    var getwrap = document.getElementsByTagName('ul')[0];
    var getItem = getwrap.getElementsByTagName('li');
    var move = null;
    for (var i = 0; i < getItem.length; i++) {
    getItem[i].index = i;
    getItem[i].onclick = function () {
    getItem[iNum].className = '';
    getCont[iNum].className = '';
    getItem[this.index].className = 'active';
    getCont[this.index].className = 'show';
    iNum = this.index;
    }
    };
    //自动
    var tabBox = document.getElementById('cont-nav');
    var tabItem = tabBox.getElementsByTagName('li');
    var contBox = document.getElementById('cont-box');
    var contItem = contBox.getElementsByTagName('li');
    var oNum = 0;
    ————————————————————————————————————————————
    省略之……会写的 不会写的都是一坨的获取,根本不会应用什么函数啊之类的,也没有什么思想,不知道如何提高这方面。如果有好的文章,或者教程,希望大家给推荐一下,关希望大家一起讨论,新手小白,还希望大牛海涵。
    13 条回复    1970-01-01 08:00:00 +08:00
    laskuma
        1
    laskuma  
       2012-07-17 23:40:30 +08:00
    top down design
    Stanford Programming Methodology貌似是第六讲讲到了
    cheshirecat
        2
    cheshirecat  
       2012-07-18 00:47:38 +08:00
    无论多丑陋,先做出来。再学重构技术。重构的常用招数不多,多练练就熟了。
    sivacohan
        3
    sivacohan  
       2012-07-18 02:18:02 +08:00
    1,先运行,再正确,再最优。
    2,参照linux代码风格。当然你也可以选择其他的风格。
    3,推荐一本书,如何求解问题 现代解决方法。
    tylr
        4
    tylr  
       2012-07-18 02:23:44 +08:00
    @laskuma 的确,教授的讲述让我受益匪浅
    firsthym
        5
    firsthym  
       2012-07-19 10:05:50 +08:00
    基本没有捷径,只有多coding,study
    laskuma
        6
    laskuma  
       2012-07-19 10:11:11 +08:00
    @tylr 我能吐槽下LZ挖了个坑就跑了吗。。
    zooandzoo
        7
    zooandzoo  
       2012-07-19 10:11:39 +08:00
    慢慢来。。一次性写出高质量的代码几乎不可能。。。所有的程序都是有规律可循的。找出这个规律,那么你的代码就慢慢变得漂亮起来。
    tioover
        8
    tioover  
       2012-07-19 12:53:44 +08:00
    写个项目,不断重构,以前写的代码过一段时间会变得不顺眼,改顺眼了就提高了……
    推荐《计算机程序的构造和解析》因为js有函数式的血统所以帮助非常大
    fishleen
        9
    fishleen  
       2012-07-19 15:12:10 +08:00
    看Eloquent JavaScript的时候在想怎么书里的代码那么好看,后来发现其实是思想的问题,一开始就把函数作为优先对象来考虑就会比原来写得好看点,再后面慢慢提高
    nikolai
        10
    nikolai  
       2012-07-19 16:13:44 +08:00
    我是去topcoder上面,从最初级的题目开始做起。

    Ps:做了几个月还是跨不过初级啊- -#
    alanerzhao
        11
    alanerzhao  
    OP
       2012-07-19 16:19:55 +08:00
    @laskuma 没有跑,还在纠结中
    mengzhuo
        12
    mengzhuo  
       2012-07-20 13:48:47 +08:00
    js这种东西怎么可以四处赋值啊!!内存就是这样用完的有没有!!对象的命名怎么可以有动词!!this不能乱用啊!!
    应该四处的都是名词,然后这些家伙干了什么,blah,blah,像故事会啊!有没有!
    example.js:
    苹果 = new 树.成果()
    if (小红.吃(苹果) == 高兴){
    小红.亲(小明)
    //小明.脱衣服().上(小明.亲的对象) //XXX:太流氓
    小张.打(小明)
    小明.亲戚.每个人(function(){
    this.打(小张)
    if (小张.hp < 0)
    小张 = null //这样垃圾车才能回收内存
    }) //这里有个匿名函数,还有个人喜欢的forEach(每个人)加到Array prototype,这里是示意this的一种用法
    }
    this具体上网嗖嗖
    p.s.以下是我个人觉得比较好for循环:
    for( let i in apples){
    apples[i].makeJuice(
    }
    gadgetlab
        13
    gadgetlab  
       2012-07-21 15:17:29 +08:00
    同为初学者,学习。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1072 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.