6 ms·
> If you can't start riding a bike without stabilisers or someone holding it, then you're never going to learn to ride well. In German: "es ist noch nie ein Me
by lispm 2y ago
> If you can't start riding a bike without stabilisers or someone holding it, then you're never going to learn to ride well.
In German: "es ist noch nie ein Meister vom Himmel gefallen". We all start somewhere, we go to school, we have teachers, we have trainers/coaches, we have mentors, ...
I don't think studying it alone will help, best is with people around. Parents and friends will help us to learn how to ride a bike. They will give an example, they will give feedback on our attempts, they will propose what and how to try to master it. After the initial basic hurdle is done, then comes a lot of practice. But again, best by being embedded in a community. Learning such skills is a social activity.
There is a lot of pedagogical material to learn programming with Lisp, Logo, Scheme. I had courses about software development, using languages like PASCAL, LISP, Scheme and others. We got exercises and feedback. We got access to computers, cpu time and an environment for coding. I looked around and setup my own tools and wrote stuff with it. I discussed this stuff (code, environment, architecture, styles, ...) with a friend.
> perhaps this stuff that's easy for me is hard for others, and I should not blame them for them finding it hard?
Lot's of people are frightened by thinking/hearing that it is hard, while in fact it actually isn't.
For example one of reads that German is very difficult for native English speakers. There are a lot of justifications given for that. The actual data says something different. German is very near to English, English even is a Germanic language: https://en.wikipedia.org/wiki/Germanic_languages https://en.wikipedia.org/wiki/Germanic_languages
The actual ranking: https://effectivelanguagelearning.com/language-guide/language-difficulty/ https://effectivelanguagelearning.com/language-guide/languag...
Trying to learn Lisp without actually trying to write code, sounds like trying to learn a language without actually trying to speak with people. Possible, but unnecessary hard.
We need to make our brain adapt to the new language by moving into an environment, where the words connect to the real world and thus to meaning.
Maybe just allow yourself to think: Giving feedback is not "blaming". That's an early concept needed for moving forward.
- lproven 2y agoI think you are wrong. Let me try to demonstrate with a parallel example. > "es ist noch nie ein Meister vom Himmel gefallen" My best guess is: A master does not ready from heaven fall? One does not instantly become a master? Different people find different skills easy. So: ich kann ein bisschen Deutsch spreche. Nicht so viel, und mein Deutsch is nicht gut; es is sehr, sehr schlecht. Aber fur meine Ferien es genug ist. Ich hat drei Tage Deutsch gestudiert, unt es war in 1989. Drei tage, am ein bus vom Insel Man nach der Rhein. I am fairly good with languages. I can communicate in 6 foreign languages. Currently, I am studying Czech, because my wife is Czech, and I would like to be able to speak with her family, some of whom speak no English, or German, French, Spanish or anything else I speak at all. Czech is really hard. It makes German look like an easy beginner's language. In place of German's 4 cases, Czech has 7; in place of German's 3 genders, Czech has 4. (Czechs think there are 3, but really there are 4. Polish has 5.) I am somewhere past A2 level Czech, beginning B1, and I can hold a simple conversation, mainly in the present tense. But I started at age 45 and it took me about 5 or 6 years of work to get to this level. Basic tourist German I got in about 30 or 40 hours of hard work when I was 20 years old. I am not bad at languages. I am terrible at mathematics and very poor at programming. I used to be capable and proficient in BASIC and fairly good in FORTRAN. I managed a simple RLE monochrome image compression and decompression program in C, and an implementation of Conway's Game of Life in Pascal, and that is the height of my achievement. I am pretty good at getting other people's code working, though. Enough to be paid to do it for decades. I find Python quite hard -- weird complicated stuff like objects comes in early, and nasty C syntax peeks through even simple stuff like printing numbers. Lisp, though, switches from just about comprehensible code to line noise very quickly after the level of "Hello world". I got hold of a copy of SICP. It's famous. It's meant to be really good. I could not follow page 1 of the actual tutorial. Perhaps you know it. In section 1.1.1, it says: « (+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) which the interpreter would readily evaluate to be 57. We can help ourselves by writing such an expression in the form (+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) following a formatting convention known as pretty-printing, in which each long combination is written so that the operands are aligned vertically. The resulting indentations display clearly the structure of the expression.6 » The "helpful" pretty-printed part is incomprehensible to me. Section 1.1.1 is about where I gave up. I think that this kind of issue is not just me. Again: I submit that a bunch of people good at a very difficult skill are badly over estimating how good ordinary folks would be at it. Most people can't program. Most people can't do mathematics. Most people are not good at this stuff. The people that can do maths and can program mostly can only program in simple, infix-notation, imperative languages. Functional languages, or even prefix- and postfix-notation, is a step further than I suspect that 99% of humans can go. And the attitude of those who can do it to those of us who can't do it is really not pleasant.
- lispm 2y ago> Most people can't program. Most people can't do mathematics. Most people are not good at this stuff. No doubt about that. SICP is the wrong book. SICP is for people who are good at maths. Most of the examples are maths related. That's a well known complaint about the book. Often such maths-heavy introductory courses filter out the students who are not good at maths. On purpose. SICP is not for beginners learning Lisp programming. SICP was an university introductory course book for computer science. It was developed out of maths-heavy CS lectures. Various other books tried to improve it both to make some of the topics easier to learn or to make it more advanced in programming language technology. Easier SICP from Brian Harvey https://www.youtube.com/watch?v=cuTOo_Kj4U0&list=PL91cR71aKpekVP06eFbMMAnjMBPotEf7E https://www.youtube.com/watch?v=cuTOo_Kj4U0&list=PL91cR71aKp... or him adopting this stuff to Logo: Computer Science Logo Style. https://people.eecs.berkeley.edu/~bh/ https://people.eecs.berkeley.edu/~bh/ Or his book "Simply Scheme": https://people.eecs.berkeley.edu/~bh/ss-toc2.html https://people.eecs.berkeley.edu/~bh/ss-toc2.html But what you are looking for is a book for a software developer wanting to learn practical Lisp programming with different examples.
- kazinator 2y agoAlthough the SICP is an awful book, the thing in section 1.1.1 that OP refers to where it presents formatting an expression: (+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6)) is a decent point. I mean, how could they present this differently? Pretty much any Lisp book should explain this stuff the same way. Look, we have these parentheses and that's what the machine cares about, but we split across and indent like this. If someone finds that reformatting to be incomprehensible and unreadable, virtually no different from the original one liner, they may have some cognitive issue (a form of dyslexia or something like it). Likely they will struggle with programming in any language. I don't suspect it's "cognitively typical" not to find the visual structure of the above formatting to be obviously helpful.
- lproven 2y agoI disagree. I was fine with Pascal, Fortran, minimally competent in C, and happy in half a dozen dialects of BASIC, which remains my preferred language.