Fork me on GitHub
#introduce-yourself
<
2022-03-19
>
Michael Agres01:03:09

Hi. I'm Mike. I'm new to all of this. I've dabbled with programming for a very long time, but have often struggled to become consistently good at it, regardless of language I've tried. I'm joining this group to hopefully change that.

2
👋 5
eggsyntax02:03:24

Welcome! Clojure definitely has a friendly and helpful community, and we’re happy to have you 🙂 You might find the #beginners channel especially helpful (and maybe #programming-beginners?) — don’t hesitate at all to ask questions there. And if you’re having trouble finding what you need, feel free to PM me and I’ll point you in the right direction if I can. Hopefully you’re already aware of some of the learning resources for Clojure, like https://www.braveclojure.com/clojure-for-the-brave-and-true/, which is really well-suited to someone without much programming background. https://clojuredocs.org is also really helpful for looking up functions, since it tends to have helpful examples. There’s lots of other resources available as well, and again, feel free to ask if you have any trouble finding something that’ll suit your needs 🙂

Michael Agres23:04:46

@U077BEWNQ Thanks. As you can see from some of my other posts, I've been struggling with the exercises early into the Brave and True book. Besides 4Clojure, is there another learning resource, particularly one that focuses on how to break down programming problems using a functional mindset? I ask because I'm really lost and am flailing here.

eggsyntax00:04:47

It can be really tough to learn! I’ll say that Brave and True is probably the gentlest learning curve of any Clojure resource I’m aware of. One thing that makes it a bit trickier is that Clojure is rarely learned as a first language, and so fewer of the resources out there are aimed at people who are new to programming in general. One resource that you might find helpful is vlojure (https://vlojure.io/about/), which gives you an environment that shows the structure of Clojure code visually. The biggest thing I can suggest is to take things as slowly as you need to, and spend lots of time experimenting and playing around. Looking at some of your threads in #beginners makes me suspect that you may be trying to push yourself too fast. I’d recommend taking your time, and every time you learn a new bit, try it out with lots of variations in the REPL to see how it behaves in different cases. Like if you’re learning conj you could try things like

(conj [1 2] 3)
(conj '(1 2) 3)
(conj [1 2])
(conj)
(conj 1 2)
(conj 1 [2 3])
etc etc — ie get a good look at how something behaves in all kinds of cases, and what kinds of error messages you get if you give it the wrong input, and so on. Get a real feel for it, practice it a lot of times. Programming is definitely not the sort of thing where you read how to do something once and then you’re done — it’s more like a martial art where you learn how to do a move and then you practice it 100 times with variations 🙂. Learning to program is slow, and often painful in the early stages. If you have the resources, you might consider looking for a one-on-one teacher as well — that can be incredibly helpful! Another useful tip in my opinion is: if something’s giving you an error message, simplify it! Check the individual parts and see if they give you errors. Think in terms of divide-and-conquer; find the smallest, simplest thing that causes the error. Another option (and I say this as a fervent Clojure fan!) is to consider starting with a language that’s more popular and has way more beginner resources oriented toward a wide range of learning styles. That unfortunately isn’t Clojure, at least not until it has a larger community. Other than that: I’d just say, persevere! It’s normal and okay to get things wrong all the time (and most experienced programmers tend to also, just on a different scale!). It’s usually a matter of trying again in a different way, or breaking something down further, or looking for a way to simplify it.

Michael Agres00:05:24

Thanks for your advice, @U077BEWNQ Do you recommend reading anything LISP-related as a primer, such as The Structure and Interpretation of Computer Programs?

eggsyntax13:05:36

Definitely not The Structure and Interpretation of Computer Programs, which is a pretty difficult book. Paul Graham’s essays on Lisp are great for giving a sense of how Lisp is different and why that matters, but not so much practical insight. I’ve heard that the learning resources for https://racket-lang.org/ (a dialect of Scheme) are excellent, but I can’t confirm that first-hand.

Michael Agres00:05:21

Thanks. I'll stick with 4clojure and slow down (even start over) with Brave and True.

👍 1
Michael Agres00:05:53

It's just that, in this world of "Ultra-learning" or "4-Hour-Cheffing", and potential demands of the marketplace prompt someone to learn a technology as fast as possible to compete.

eggsyntax13:05:18

Ah, yeah. Programming is…not that.

Michael Agres15:05:25

Took me too long to realize that.

Torsten Scholz08:03:34

Hello everyone, after many years of abstinence, my love for Clojure got reignited by listening to a Clojure conference presentation (the only one 😞) at the German JavaLand 2022 conference. I am eager to learn what has changed in the last years and how the language and the ecosystem have evolved. Currently I am dipping my feet in the Clojure water by trying to write a little service for my web app architecture. It has already been such a bliss.

3
👋 8