Fork me on GitHub
#improve-getting-started2021-08-25
>
pez14:08:50

I think @alexmiller should be added as well, but I also think he is invited everywhere 😃

pez14:08:15

Also @yogthos might be interested.

pez14:08:13

I asked around at Pitch for people who had just started with Clojure and immediately got in contact with such a person. We agreed to try an async interview and I wrote down some questions. The respons was a cheerful “Great questions!” so I think it might be something to build from. Sharing them here so that we can collaborate on improving on the list.

mefryar00:08:50

@pez Here is a first draft of a Google Form version of your questionnaire: https://forms.gle/ZLDqBNXCnkm7hksG8 / https://docs.google.com/forms/d/12pOyLmSxMuZs_OGP5Lv4vOPKY-Z08oQy0vfNJtGJIXg/edit?usp=sharing. I have modified it slightly, consolidating some questions and adding others. I still have not yet filled it out myself, which I think will likely lead to further revisions. (Unfortunately, I might not get time to do that until next weekend.) For additional inspiration beyond your questionnaire, I drew from the https://www.surveymonkey.com/results/SM-S2L8NR6K9/ and the https://insights.stackoverflow.com/survey/2021. I would welcome your feedback on how to improve the form!

pez19:09:36

@U0257BH5Y22 thanks for doing this! I think we can replace all those quantitative questions about age, sex etcetera with one question where we just ask the respondents to describe themselves a bit if they like. The nature of the questions isn’t such that we will get a lot of answer that we need to tabulate across various dimensions. I think we will get a much better idea of who the respondent is if they describe themselves in whatever way they like. So a questions like If you like, please tell us a few things about yourself, e.g: Where do you live? How old are you? What are your hobbies? Whatever, or even nothing.

mefryar15:09:06

Thanks, @pez. I can see the value of having a more qualitative prompt about demographics. I'll let you know once I've made that edit.

mefryar19:09:33

@pez I've now edited the form to replace the quantitative demographic questions with a single qualitative question. I've also filled out the form myself and you can view the responses https://docs.google.com/forms/d/12pOyLmSxMuZs_OGP5Lv4vOPKY-Z08oQy0vfNJtGJIXg/edit#responses or in a https://docs.google.com/spreadsheets/d/17E0zLsFXvZILTpRn8S-ruSI1DtTPfjcK4vlcs0c_9_g/edit?usp=sharing. I'd welcome any thoughts you have about next steps. A couple of questions I have: • Does seeing my responses make you think of any additional edits you would like to make to the form? • Should we just focus for now on gathering responses and then summarizing what we learn in this channel?

pez20:09:20

Robocode! I didn’t know you could use Clojure to create robots. Sorry for totally derailing this, but Robocode happens to be something I have spent A LOT of time with. I once started https://robowiki.net/ and am still visiting https://literumble.appspot.com/Rankings?game=minirumble now and then to see that my Pugilist is still competing in the top. 😃 (Haven’t been Robocoding for more than a decade though.)

2
mefryar16:09:33

Super cool! Robowiki was very helpful in that project. I wound up just doing a Clojure implementation of https://robowiki.net/wiki/Walls_(robot) (cleverly named Enclojures) that beat my colleague's much more ambitious attempt to create a robot from scratch.

mefryar16:09:00

As a potential next step for the form, I could share with newly onboarded Nubank engineers to get more data points. What do you think?

pez16:09:18

Yes, that sound like an awesome next step!

👍 2
mefryar00:09:59

Posted! I'll let you know when we get responses.

pez14:08:37

Welcome! I don’t know how to advertise this channel, but it would be great to have everyone who cares about this subject in here.

Jakub Holý14:08:53

Awesome initiative, thank you!

Jakub Holý14:08:14

Perhaps mention at least in #beginners?

porkostomus19:08:56

Delighted for this, because I feel I am a "perpetual beginner" even though I've been learning Clojure for 5 years now. I'm an oddball in that I didn't come to this language with much programming knowledge at all, so my "beginner" experience feels very different from the experiences I usually hear about from others.

cp4n20:08:59

I was, and still am, a little fuzzy about editor support. I've been using emacs so far and just trying to figure things out as I go (plus emacs is kind of fun), but then I have been wondering about VS Code with Calva. There seems to be a whole lot of effort that has gone into getting you started and just being ready out-of-the-box. Which sounds pretty great. But then the surveys I have seen seem to show that not nearly as many Clojurians use it compared to emacs or intelliJ. Not really sure why that is? Are there differences or shortcomings that beginners should know about before settling with one editor vs another?

Jakub Holý09:08:24

I think Calva's market share is lower b/c it is the youngest of the three and b/c many current devs had prior intellij/emacs knowledge and stuck with the editor. Myself I use Cursive primarily but now also Calva partly (b/c it starts so much faster :))

cursive 3
calva 3
seancorfield20:08:00

@cp4n I think the main thing with Emacs (and Cursive to some extent) is that a large number of developers who came to Clojure historically were either older and/or had Java backgrounds so they already used Emacs or IntelliJ so those are natural for them when learning Clojure. I think anyone coming from a Lisp background is also likely to be an Emacs person. If Clojure had always attracted younger developers, or folks with less Java background, we might see a very different pattern.

seancorfield20:08:17

So, yeah, momentum as @deleted-user says.

seancorfield20:08:17

VS Code is probably the fastest-growing editor usage segment in the Clojure world today. My path to VS Code/Calva was from Atom/Chlorine, Emacs/CIDER (on and off for years), LightTable, Eclipse/CounterClockWise, SublimeText/TextMate and a command-line REPL. I'd used Emacs on and off for twenty years by the time I switched away from it to Atom.

seancorfield20:08:30

My usual recommendation is: use the editor you're most familiar with if it has a Clojure integration available, else use VS Code/Calva.

deleted20:08:26

vim-mode doesn't play well with calva and I have some key bindings that make it work a little better

Adam Stokes21:08:17

Hey @pez! As I'm going deeper into clojureland I've been keeping notes on things that I learn, do you think it would be a good idea to have a git repo to store that knowledge to potentially be later used in some sort of website/cookbook/blog posts?

pez08:08:58

Clojure from Language X. I like it!

Eric Boatman21:08:24

My biggest headache as a beginner is "Verbage". You have this beautiful language with all this powerful "List" processing. But its hard for a beginner to know what type of "List" they should be using ... do you use a List, Vector, Map, Hash-Map ... and while a lot of the commands are interchangeable for working on "Lists", not all are ... and then I accidently nested two types, and then it gets even more complicated. TLDR: I find the hardest part is figuring which list represents my data the best and gives me the best tools/commands to use.

Jakub Holý09:08:18

Could we say: • use maps for associative data (where map == hash-map) • use vectors for ordered data literals • only rarely you want to explicitly create a list; you will use the Clojure sequence abstraction and lazy lists a lot but indirectly, because they are returned by the sequence functions • use set if you do not care about order but need to make sure there are no duplicates Would that be helpful for a beginner? An explanation of "sequences" and how they differ from vectors/list and few words about laziness would be necessary but somebody has surely written that already.

👍 3
Eric Boatman16:08:03

@U04V70XH6. I've read those before when I was initially trying to learn Clojure, but in the beginning they didn't register with me. The article about sequential collections and hashed collections is what I was looking http://for.It would have been nice if http://ClojureDocs.org had a tutorial style link that when I was researching/googling into, assoc, map, keys, val, etc that lead me to those two or similar articles. Sort of a "If you are trying to do this, do you understand what you are/should be doing with these Collections" kind of help. And now I know Collections is a good way to describe all the types of "Lists" associated with Clojure. Which will help me going forward.

3
Jonor21:08:59

I've felt confused over the naming conventions for dependencies and how they relate to the names in the namespace declarations. Also whether you could navigate and browse the namespace contents somehow to get a discoverable overview of the functionality.

Jonor21:08:53

Mostly I think setting up and understanding the tooling has been a hurdle to me, which Java version to install on Windows, all the configuration options and alternative command line tools, what does Lein, CIDER, Shadow-js, Figwheel actually do in the background, what does a profile, session and so on mean. I think it would help with more experience of the JVM world.

Jonor07:08:37

Yes, thanks for the tip/nudge in direction of WSL 2 and VS Code, it could be that it is the most friendly "native" environment now if the IDE integration works out of the box. I think what could have helped me the most would be an accessible online environment with a platform tooling set up and managed, and a capability to support the full process of constructing and deploying a working web application. Maybe we are getting there. https://www.youtube.com/watch?v=ywUZOOzLX3c

seancorfield16:08:26

@ULD86RW5N I think the VS Code/Calva Gitpod work is heading in that direction...?

👍 3
👀 3
seancorfield23:08:32

Added the two logging bots so we won't lose future conversations!

❤️ 3
seancorfield23:08:55

(I hope someone is taking copious notes here since all this good stuff prior will be lost in a few days!)

pez05:08:27

I was relying on logbot, but forgot to add it of course. facepalm