Need some JavaScript puzzles

O

Oltmans

Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer. I mean I'm looking out for programming
puzzles (e.g. Project Euler or TopCoder) but I'm looking out for
language specific puzzles that can make me a top-notch JavaScript
programmer. a) Any puzzles you can recommend? b) Any programs that you
can suggest that can make me learn JavaScript internals in greatest
depth.

Please recommend anything. I know some very best programmers lurk
around here so any help will be appreciated. Moreover, to people
who've been using JavaScript for sometime, please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.
 
T

Thomas 'PointedEars' Lahn

Oltmans said:
I'm learning JavaScript and I need some puzzles that can make me a better
JavaScript programmer. I mean I'm looking out for programming puzzles
(e.g. Project Euler or TopCoder) but I'm looking out for language
specific puzzles that can make me a top-notch JavaScript programmer. a)
Any puzzles you can recommend?

You will not become what you aspire to be by solving trivial puzzles. Find
a *real-world problem* that you want to solve. Try to solve it using an
ECMAScript implementation like JavaScript. There is no better exercise,
even if the scripted solution turns out not to be the best approach to solve
that particular problem.
b) Any programs that you can suggest that can make me learn JavaScript
internals in greatest depth.
Programs?

Please recommend anything. I know some very best programmers lurk around
here so any help will be appreciated.

I do not think they just *lurk* *here*.
Moreover, to people who've been using JavaScript for sometime, please
recommend programs that you wish you had done earlier to understand
internals in a better way. Thanks in advance.

I can recommend Mozilla Thunderbird to subscribe to, read, and post to
comp.lang.javascript using your real name.


PointedEars
 
O

Oltmans

You will not become what you aspire to be by solving trivial puzzles.  Find
a *real-world problem* that you want to solve.  Try to solve it using an
ECMAScript implementation like JavaScript.  There is no better exercise,
even if the scripted solution turns out not to be the best approach to solve
that particular problem.

Point taken. On a serious note, can you recommend some projects that I
should be working on in my spare time? Any ideas that you have. Thanks
in advance.
 
S

Steve Swift

Oltmans said:
Please recommend anything. I know some very best programmers lurk
around here so any help will be appreciated. Moreover, to people
who've been using JavaScript for sometime, please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.

Well, one recommendation would be to lurk around here. You'll get a
never-ending supply of "why doesn't this work?" questions. Since you'll
be facing some of these (of your own making), skill in working out why
something doesn't work can be quite handy. I probably spend more time on
the one thing that doesn't work than I do on the few things coded by me
that do work.
 
T

Thomas 'PointedEars' Lahn

Oltmans said:
Point taken. On a serious note, can you recommend some projects that I
should be working on in my spare time? Any ideas that you have. Thanks
in advance.

There are several open-source projects you could generally contribute to,
however I am afraid that without more-than-pedestrian knowledge you could
neither appreciate your participation in those projects as you would like
to, nor would it be likely that you could make a considerable contribution
to them.

IMHO, programming languages can be learned best like natural languages: by
using them in everyday life. Therefore, I (seriously) suggested you try to
use scripting to solve *your* problems first, those which bug *you* the
most. Start with the ones that look simple on the outset. Find them to be
more complex than you thought. Do not let yourself be discouraged, and take
your time to solve them eventually. Then use the experience gained to solve
even more complex problems.

When (not: if) you get stuck in the process, read *again* everything about
the topic that you can get your hands on (electronic material is cheapest
and readily available, but not always best; books are more expensive and
tend to be bad). Read it again. What is most important: Do not fall for
self-proclaimed gurus; compare your sources, verify what they are saying.
Look into the message, not at the messenger. If anything still remains
unclear, ask smart questions[1] about it.

This is how I started learning the languages a decade ago and it is still
serving me well.


HTH

PointedEars

P.S.
Please shorten, but do not remove attribution lines for quotations you leave in.
___________
[1] <http://catb.org/~esr/faqs/smart-questions.html>
 
H

Hal Rosser

Oltmans said:
Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer. I mean I'm looking out for programming
puzzles (e.g. Project Euler or TopCoder) but I'm looking out for
language specific puzzles that can make me a top-notch JavaScript
programmer. a) Any puzzles you can recommend? b) Any programs that you
can suggest that can make me learn JavaScript internals in greatest
depth.

Please recommend anything. I know some very best programmers lurk
around here so any help will be appreciated. Moreover, to people
who've been using JavaScript for sometime, please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.

OK -
Create a Bingo Game
or a Checkers game
or a Calculator like the windows accessories calculator
or a number-to-words (like writing a check) program without getting help
or all the above.
or if you like recursion, look at the "towers of Hanoi" puzzle.(google it)
 
D

dhtml

Oltmans said:
Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer. I mean I'm looking out for programming
puzzles (e.g. Project Euler or TopCoder) but I'm looking out for
language specific puzzles that can make me a top-notch JavaScript
programmer. a) Any puzzles you can recommend? b) Any programs that you
can suggest that can make me learn JavaScript internals in greatest
depth.

Please recommend anything. I know some very best programmers lurk


Only the best lurkers here!
o_O
:-D
around here so any help will be appreciated. Moreover, to people
who've been using JavaScript for sometime, please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.


1. write a function return the binary representation of a given number
in "ON" and "OFF". For example, if the input is 47 (101111 in binary),
it should return "ON OFF ON ON ON ON".
 
D

Dr J R Stockton

NO. Real-world problems are generally either trivial or complex, and
neither is appropriate for practice. OP, choose instead problems
which, at your current state of knowledge, are on the verge of
difficulty. When you approach the ability to do a real-world non-
trivial problem that you want to solve, set it aside; the risks of
including someting bad and not realising it or not bothering to fix it
are too great. Instead, choose a problem of sufficient fifficulty
which you do not need to solve, so that you can throw away the
solution. Don't assume premature competence.

Tackle problems that you really need to solve only when you know
enough to be reasonably sure of making a good job of them.
Please shorten, but do not remove attribution lines for quotations you leave in.

Ignore that : people give attributions for a purpose, and full
attributions are useful in various ways that Thomas Lahn does not
understand. Remember, be is not psychologically normal, as is obvious
from reading a selection of his replies. Perhaps he is the Kaiser
reincarnated; perhaps something worse.
 
S

showellshowell

Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer. [...]

[...] please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.

One of the first Javascript programs that I wrote lives here:

http://webstervanrobot.com/ (only tested on Firefox)

The program implements a small programming language on top of
Javascript that allows a robot to move around a grid of streets and
avenues.

It got me acquainted with the following concepts:

creating objects
manipulating DOM
parsing strings
implementing data structures
responding to events
setting up callbacks and responding to them
variable scoping (this, var, etc.)
cross-browser pain (which I have punted on so far)

If you're learning Javascript, this might be a fun program to hack on,
because it's all self-contained and not tied to any domain, and I'm
hoping to make it a useful program. It really is a "Javascript
program," as opposed to code that lives within a larger system, for
better or worse.

Some challenges:

1) Make it work on a browser other than Firefox.
2) Change the world to be rendered on a canvas instead of tables.
3) Add scrolling to the world.
4) Add new capabilities for the robot.
5) Add new syntax to the programming language.
6) Simply play around with the code, try to restructure it to your
liking.
7) Get the program to have a mode where you can click on it to see
the internal data structures that define the world.

Yes, I'm subversively asking for help with my program, but the program
was written with the intention of helping people learn Javascript (and
programming in general). It's free software.

Cheers,

Steve
http://webstervanrobot.com/
 
D

Douglas Crockford

Oltmans said:
Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer.

Dmitri showed me this one:

Define function add such that

add(3)(4)

returns 7.
 
J

Jorge

Dmitri showed me this one:

Define function add such that

     add(3)(4)

returns 7.

javascript:alert((function add (p) { var a=p; return function (p)
{ return a+p } })(3)(4))
 
J

Jorge

You don't need to create an extra variable.

function add (first) {
    return function (second) {
        return first + second;
    }

}

Damn it!
(but that took you an hour hehe)
 
O

Oltmans

You don't need to create an extra variable.

function add (first) {
    return function (second) {
        return first + second;
    }

}

But hey!
Don't spoil the fun for the OP by posting the solution!

@Douglas:
I'd also appreciate more puzzles if you know any. This kind of (simple
but interesting) problem is a godsend when you're teaching kids.

I absolutely agree with you. We need some puzzles like that. I really
liked that puzzle. This is exactly the kind of puzzle that I wanted to
solve. I mean a puzzle that would force me hard to think about the
language constructs and this one just did that.

Also, I thank others who posted their invaluable comments.
 
O

Oltmans

Dmitri showed me this one:

Define function add such that

     add(3)(4)

returns 7.


Douglas,
I really appreciate you jumping in the discussion. I really was
looking for such a puzzle that can force me think hard about language
constructs and that one just did that. There are many puzzles that you
can solve to improve your algorithmic skills but I was not looking for
those. And I guess your puzzle was dead on. I agree with other people
i.e. if you know more such puzzles like that then please let us know.
Any puzzles that will make me think hard about how to use the
JavaScript constructs. Please post more such puzzles. It will be a lot
of fun. Thanks again.

P.S: You're my JavaScript hero :) I'm even on the verge of finishing
"Little Schemer" just because you recommended it.
 
K

Karl Tikjøb Krukow

Oltmans said:
Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer.

I think the best way for you to learn JavaScript depends on your
background. What other programming languages do you already know well?
 
P

Peter Michaux

Hi guys,
I'm learning JavaScript and I need some puzzles that can make me a
better JavaScript programmer. I mean I'm looking out for programming
puzzles (e.g. Project Euler or TopCoder) but I'm looking out for
language specific puzzles that can make me a top-notch JavaScript
programmer. a) Any puzzles you can recommend? b) Any programs that you
can suggest that can make me learn JavaScript internals in greatest
depth.

Please recommend anything. I know some very best programmers lurk
around here so any help will be appreciated. Moreover, to people
who've been using JavaScript for sometime, please recommend programs
that you wish you had done earlier to understand internals in a better
way. Thanks in advance.

I highly recommend the following thread starting with this post:

http://groups.google.com/group/comp.lang.javascript/msg/28559592272d4e54

The whole thread is

http://groups.google.com/group/comp..._frm/thread/9848ec5004c19c97/28559592272d4e54

Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top