Learning Lisp as a non prgrammer: AI to the rescue?

Edit - Corrected small mistake.

Hi there!

So I've been trying to learn Racket with the HTDP method as a non-programmer, and it's not going well...

The people of the Racket community are lovely and willing to help, but the so-called "beginners" section of their forum is so intimidating, I just feel embarassed asking stupid questions. That forum does *not* differentiate between "Newcomers to Racket", and "Absolute noobs"... They all go in the beginners section.

HTDP is much more difficult than advertised for self-learning, even though I'm totally fascinated with Lisp as a "tool for thought".

I stopped and resumed the course several times over the past four years, when it's supposed to take less than six months to complete it.

In my case, the lessons are clear and understandable, but the exercises are frustrating because they seem to have been written by a totally different person than the professor.

So I have two questions for you guys:

1) Is this a "sunk cost fallacy" type of scenario? Should I just admit that I'm not fit for this type of activity and let it go?

2) If not, do you guys have advice on how to effectively use AI as teacher? For now, I've just been asking for introductory explanations on the specific topics I'd be on, but that's it. Maybe there are more inventive ways of getting AI to help?

Anyway... Thanks for reading! Cheers!

Posted in: s/Lisp

๐Ÿ˜บ Nono

2024-12-16 ยท 1 year ago ยท ๐Ÿ‘ CarloMonte

4 Comments โ†“

๐Ÿ satch ยท 2024-12-16 at 23:13:

I'll have to disagree with @HanxBrix and say that while AI is a worse teacher than a real live person who knows the material and will talk to you, in most cases it's a lot better than nothing.

Strategies for effective learning with LLMs:

By following these guidelines, you should have a positive learning experience which allows LLMs to make knowledge and understanding accessible to you which wouldn't be otherwise.

โ€” ๐Ÿ™ƒ

PS - Don't give up!

๐Ÿš€ stack ยท 2024-12-17 at 01:17:

I've experimented with ChatGPT as a coding assistant, and here is what I've learned:

It is great if you know the subject, and just need a quick reminder. But it is often completely wrong. If you know the subject, you can ask again and it sometimes corrects itself. Again, you need to know enough to tell if it is hallucinating.

For instance: it is great as a manpage+ -- it provides examples of usage, and you can conversationally ask it about parameters, and it is mostly correct.

It is useful to provide boilerlplate. I asked it to write a particular kind of a unix domain socket server, and it gave me a couple of pages of C code, a good start. But it left out a crucial detail which made it not work, and it took me a couple of hours of research to figure it out.

When I asked it for some key binding advice for an editor, it was right on until it gave me entirely incorrect info. When I challenged it, it game me a different, incorrect binding 3 times, after apologizing profusely.

When learning spanish, it told me that 'esto' is the neuter form of the word, entirely wrong. Otherwise it gave me good advice, including what native speakers would say in particular circumstances. Although I don't know enough spanish to catch more subtle errors!

To summarize, it is nearly useless, and I laugh when I hear about the "AI revolution" and "programmers will lose their jobs" on the mainstream media news. Yeah, they will lose their jobs if they use ChatGPT to do their work.

If you are an expert, you can use it as a terrible assistant who knows quite a bit but will lie shamelessly -- at your own risk.

๐Ÿš€ stack ยท 2024-12-17 at 02:02:

Learning Lisp, you will encounter a few walls that you just have to push through.

- crawling through sexps and lists and trees

- really understanding bindings and closures

- macros

These are very different from anything else in other languages, and will break your brain.

It just means that you are doing it right!

It gets easier, and if you get through, you will understand that Python was created by a moron, and other things that you will have to keep to yourself.

PS I would strongly recommend switching to Common Lisp as soon as practicable. There are too many good reasons to go into here.

๐Ÿš€ stack ยท 2024-12-17 at 02:59:

Emacs lisp is a decent way to get going.

Although I chose to dive in head first into CL, after deliberating about whether to choose Common Lisp or a Scheme. CL was definitely the right choice, even though Scheme appears to be more minimal... Scheme completely misses the mark when it comes to practical coding, and especially, macros.

PS...I thought I was a seasoned programmer but then I learned lisp and realized I had spent my life just diddling around in the sandbox.