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

2012-07-17 23:37:22 +08:00
 alanerzhao
最近在学习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;
————————————————————————————————————————————
省略之……会写的 不会写的都是一坨的获取,根本不会应用什么函数啊之类的,也没有什么思想,不知道如何提高这方面。如果有好的文章,或者教程,希望大家给推荐一下,关希望大家一起讨论,新手小白,还希望大牛海涵。
3565 次点击
所在节点    问与答
13 条回复
laskuma
2012-07-17 23:40:30 +08:00
top down design
Stanford Programming Methodology貌似是第六讲讲到了
cheshirecat
2012-07-18 00:47:38 +08:00
无论多丑陋,先做出来。再学重构技术。重构的常用招数不多,多练练就熟了。
sivacohan
2012-07-18 02:18:02 +08:00
1,先运行,再正确,再最优。
2,参照linux代码风格。当然你也可以选择其他的风格。
3,推荐一本书,如何求解问题 现代解决方法。
tylr
2012-07-18 02:23:44 +08:00
@laskuma 的确,教授的讲述让我受益匪浅
firsthym
2012-07-19 10:05:50 +08:00
基本没有捷径,只有多coding,study
laskuma
2012-07-19 10:11:11 +08:00
@tylr 我能吐槽下LZ挖了个坑就跑了吗。。
zooandzoo
2012-07-19 10:11:39 +08:00
慢慢来。。一次性写出高质量的代码几乎不可能。。。所有的程序都是有规律可循的。找出这个规律,那么你的代码就慢慢变得漂亮起来。
tioover
2012-07-19 12:53:44 +08:00
写个项目,不断重构,以前写的代码过一段时间会变得不顺眼,改顺眼了就提高了……
推荐《计算机程序的构造和解析》因为js有函数式的血统所以帮助非常大
fishleen
2012-07-19 15:12:10 +08:00
看Eloquent JavaScript的时候在想怎么书里的代码那么好看,后来发现其实是思想的问题,一开始就把函数作为优先对象来考虑就会比原来写得好看点,再后面慢慢提高
nikolai
2012-07-19 16:13:44 +08:00
我是去topcoder上面,从最初级的题目开始做起。

Ps:做了几个月还是跨不过初级啊- -#
alanerzhao
2012-07-19 16:19:55 +08:00
@laskuma 没有跑,还在纠结中
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
2012-07-21 15:17:29 +08:00
同为初学者,学习。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/42666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX