From: joswig on
On 24 Dez., 15:50, p...(a)informatimago.com (Pascal J. Bourguignon)
wrote:
> Bigos <ruby.obj...(a)googlemail.com> writes:
> > On Dec 23, 1:20 pm, gavino <gavcom...(a)gmail.com> wrote:
> >> I just don't kow if I can learn it.
>
> > Please don't despair. I think main problem with Lisp is changing the
> > way you think. When I started learning Lisp for the first time I have
> > felt like I am learning a different language. Other languages I have
> > learned so far seem to be so similar that learning another was not a
> > problem.
>
> > When you are learning Lisp you also have to learn quite lot of
> > advanced programming which might make things seem to be more
> > difficult.
>
> > I understand the way you feel. I have felt like this many times yet I
> > can't completely give up on Lisp. I saw some of it's power and I am
> > hooked now.
>
> > My advice is take some rest, let your unconscious mind work on it, and
> > after a while come back to Lisp, and you will notice that you will be
> > able to progress much further than before, and after several cycles of
> > giving up and returning to Lisp you will eventually become a proper
> > Lisper.
>
> LOL  Yeah right!  Give gavino ten years of rest to let his unconscious
> mind work on it!

Norvig's 'Teach Yourself Programming in Ten Years' ( http://norvig.com/21-days.html
) gets
a new meaning...

>
> > Good Luck
>
> > Jacek
>
> --
> __Pascal Bourguignon__                    http://www.informatimago.com/
>
> In a World without Walls and Fences,
> who needs Windows and Gates?

From: Bigos on
On 24 Dec, 15:05, "jos...(a)corporate-world.lisp.de" <jos...(a)lisp.de>
wrote:
> On 24 Dez., 15:50, p...(a)informatimago.com (Pascal J. Bourguignon)
> wrote:
>
>
>
>
>
> > Bigos <ruby.obj...(a)googlemail.com> writes:
> > > On Dec 23, 1:20 pm, gavino <gavcom...(a)gmail.com> wrote:
> > >> I just don't kow if I can learn it.
>
> > > Please don't despair. I think main problem with Lisp is changing the
> > > way you think. When I started learning Lisp for the first time I have
> > > felt like I am learning a different language. Other languages I have
> > > learned so far seem to be so similar that learning another was not a
> > > problem.
>
> > > When you are learning Lisp you also have to learn quite lot of
> > > advanced programming which might make things seem to be more
> > > difficult.
>
> > > I understand the way you feel. I have felt like this many times yet I
> > > can't completely give up on Lisp. I saw some of it's power and I am
> > > hooked now.
>
> > > My advice is take some rest, let your unconscious mind work on it, and
> > > after a while come back to Lisp, and you will notice that you will be
> > > able to progress much further than before, and after several cycles of
> > > giving up and returning to Lisp you will eventually become a proper
> > > Lisper.
>
> > LOL  Yeah right!  Give gavino ten years of rest to let his unconscious
> > mind work on it!
>
> Norvig's 'Teach Yourself Programming in Ten Years' (http://norvig.com/21-days.html
> ) gets
> a new meaning...

lol, brilliant: 10/10

From: Rahul Jain on
gavino <gavcomedy(a)gmail.com> writes:

> I just don't kow if I can learn it.

I gave up on you a few years ago... Good to see you're finally coming around.

--
Rahul Jain
rjain(a)nyct.net
Professional Software Developer, Amateur Quantum Mechanicist
From: Tim X on
Bigos <ruby.object(a)googlemail.com> writes:

> On Dec 23, 8:31 pm, Francogrex <fra...(a)grex.org> wrote:
>> On Dec 23, 2:20 pm, gavino <gavcom...(a)gmail.com> wrote:
>>
>> > I just don't kow if I can learn it.
>>
>> Huh? Common Lisp (or any lisp for that matter) is one of the most
>> straightforward languages. You write almost as you would write in
>> plain English... Maybe you should go try to learn assembly, then
>> you'll realize how simple lisp is (by comparison).
>
> For people who think in assembler learning Lisp can be difficult. I
> started with low level languages and maybe this is the reason why I
> had problems with Lisp. Lisp's syntax is very easy but changing your
> thinking habits can be difficult. There's a lot to unlearn.

To an extent, I think this is fundamental to what makes people like or
dislike a language - its not about whether its too verbose or terse,
uses static typing or dynamic, is OO, functional, procedural, has too
many/too few built-ins, is too large/small etc. Rather it is the extent
to which it easily maps to how someone thinks and solves problems. If a
language has a close fit with how you think and you are able to express
both the problem and solution in that langauge without also requiring a
lot of translation between your mental model and the language model, you
are likely to find the programming easier. You are also likely to grasp
solutions written by others in that language more easily. On the other
hand, if the fit is poor and you constantly have to translate between
your mental model and its representation by the language, you will
likely find the language frustrating and difficult. Understanding
code written by others will also be difficult.

This leaves you with two choices. either you continue to only use
languages which fit with your way of thinking and solving problems or
you learn additional new ways to think about problems and derive
solutions. The first is easy, but doesn't expand your problem solving
techniques or skills. The second is much harder, but comes with mroe
rewards as you learn different ways of thinking about problems, their
representation and their solution.

I've found that with all the languages I've studied, there have only
been a few which have really been chalanging and have taken extra
effort. Without exception, all of them have affected how I think about a
problem and the solutions I come up with. The rest have merely been of
short-term interest. My first language was C and while I haven't used it
in any serious work for many years, it is still the language I have a
lot of fondness for. My second language was assembler and it was the
language that really clarified for me what was actually happening. It
helped me understand why some high level language constructs are slow,
resource hungry etc. My third language was smalltalk, which helped me
understand the benefits of modularity, encapsulation, ,
modeling/simulations etc. Next was prolog. This one took some time to
really understand and showed me a completely different way to think
about problems and solutions. This was the first language where I really
got one of those 'Ah!' moments. I can still clearly remember the day
when the penny dropped. Then came lisp. For me, this was/has been/is
possibly the most challenging language I've looked at. It was also the
first time I had a number of false starts. While I found the syntax easy
enough, much of the rest, particularly the application of the language,
has been quite a struggle. However, it has also been the language which
has held my interest for the longest. Unlike prolog, there hasn't been a
big Aha moment where it all fell into place. There have been lots of
smaller moments of insight. Likewise, there wasn't a point where
suddenly it all became a lot easier. One day, I jus noticed that I was
no longer thinking "how do I express this in a lispy way" - I realised I
was just thinking and coding. there was no real translation between how
I thought about the problem and how I expressed it. I would just sit
with the REPL open and start typing as I was thinking and suddenly,
there it was. It wasn't necessary pretty, efficient or elegant, but it
was there and able to be refined. I also found about this time that I
could just read code written by others. Despite this, I've still only
touched the tip of the iceburg - still a lot to learn and understand.
However, I now do feel taht I'm able to use the language to explore
problems and solutions. For me, this is quite different and refreshing
compared to how I had always approach a problem and its solution.

I'm not sure whether I've learnt to think in a way that suits lisp or
I've learnt enough of lisp for it to suit the way I think. What I do
know is that it has given me a feeling similar to the first time I ever
wrote a program. I've also found that when I run into something which
I'm having problems expressing/solving in lisp, it is almost always
because the crucial bit I need is a construct that either I've not
learnt to use or have forgotten. the solution is usually found by
looking at the hyperspec or studying code written by others.

There are not many things in life I'm absolutely certain about. However,
I am certain that all of these different languages have made me a better
programmer. concepts and techniques used in different languages or with
different paradigms have bled into each other. I have a wider range of
techniques and models to apply during problem solving. While I doubt
life will be long enough to allow me to become a true master of the art,
making the effort to try languages which are quite different has
certainly improved my skills. The last couple of years studying lisp has
also had the benefit of new inspiration and countered some of the
negative aspects of having worked as a programmer in corporate land for
the last 20+ years, which can leave you rather disillusioned.

My advice to anyone like Gavino, who is finding it too difficult is to
give up! If you really have the desire to learn lisp, you will come back
to it later. If you don't, then you probably never really had the drive
to do it. If you have the mindset of it being a difficult task that you
suspect you cannot achieve, you will almost certainly fail. If on the
other hand, you find it hard but rewarding or interesting or in some way
fulfilling, then keep at it. At some point, you will likely realise you
have arrived, but not quite know when.

It can sometimes help to examine your motivations for wanting to learn
lisp. I've known a few people who have attempted to learn it and failed
because their motivations were wrong. They wanted to learn it because
they thought it would make them appear to be more 'hardcore' or smarter
or more of a rebel or it wold make them stand out from all the java code
monkeys etc. Motives like these are largely misdirected and unlikely to
provide a level of sustainability that will get you there. Your motives
need to be oriented more towards a desire to udnerstand the language and
its paradigms, extending your approach to problems, how you think about
them and how you represent and solve them. There shold be motivation to
find new ways to do things or doing things that are new and could not be
done or easily done, with existing techniques/knowledge. for a
programmer, its another tool that will either allow you to do what you
do better or more efficiently or it will allow you to do new things that
were not practicle with your other tools.

For the OP, I don't think you have a true desire or the motivation to
put in an honest effort. I've seen many posts to this group from
you,nearly all of which consisted of vague wishy-washy questions like
"Why is lisp good" or something else that just smells of flamebait. I
don't recall seeing any questions with anything specific, such as
requests to explain a bit of lisp code or even requests for pointers on
which library to use or asking if some behavior was a bug etc. In short,
nothing of substance and no evidence of any effort to find answers other
than to fire off vague questions to this NG.

Tim
From: Rob Warnock on
Bigos <ruby.object(a)googlemail.com> wrote:
+---------------
| Francogrex <fra...(a)grex.org> wrote:
| > Huh? Common Lisp (or any lisp for that matter) is one of the most
| > straightforward languages. You write almost as you would write in
| > plain English... Maybe you should go try to learn assembly, then
| > you'll realize how simple lisp is (by comparison).
|
| For people who think in assembler learning Lisp can be difficult.
| I started with low level languages and maybe this is the reason
| why I had problems with Lisp. ...
+---------------

Hah! I think it very much depends on *which* assembler(s) you learned
originally. My first machine was an LGP-30, where there was very little
difference between absolute machine language and assembler [the low 4 bits
of each instruction mnemonic character *were* the 4 bits of opcode!!],
my second was an IBM 1410 [but that's another story], but my *third* was
a DEC PDP-10 -- *the* ultimate assembler language for Lisp!! A CONS cell
was a single word; CAR & CDR were single machine instructions ["HLRZ" and
"HRRZ", respectively]!


-Rob

-----
Rob Warnock <rpw3(a)rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607