As someone who has known about Clojure for a long time but only recently
started programming in it, Clojure seems particularly easier to learn by
building something with it, as opposed to reading about it. Perhaps this is
because the language, ecosystem, and indeed the general approach to
programming in Clojure is made of small building blocks.

My analogy - Clojure seems to be more like a set of legos, whereas OO
languages seem to be more like a train set.

The flexibility of legos might seem complex if you are looking for a top
down *how-to* narrative, but fundamentally, you don't need much instruction
to start sticking them together. The simplicity of working with legos
remains. Any kid can do it.

The photo on the train set box more immediately shows you how the whole
thing goes together, so the train set might seem more simple at first. Yes,
you need to read the instructions and follow them precisely, but that's
sort of ok. The complexity comes later, when the tracks supplied in the
train set, and maybe the train itself, *get in your way*.

So I'd suggest reading a book to understand the fundamentals if you haven't
already, Clojure for the Brave and True or Carin Meier's book Living
Clojure are both good, and then as soon as possible start sticking
functions together like those lego blocks to build something. From one
perspective, that's more complex because you don't have the train set laid
out for you, but from another, it's more simple, because composing
functions together is always simply composing functions together.

I've found Practicalli https://practicalli.github.io/ to be a very helpful
springboard to get through the initial steps needed to get something to
work, and have been really happy to be able to work with Datomic Cloud
using the recently released dev-local version, with allows for local
storage.




On Mon, Sep 28, 2020 at 10:32 PM Baye <sowso...@gmail.com> wrote:

> Great, Thanks!
>
> On Monday, September 28, 2020 at 11:23:49 PM UTC+3 ch...@techascent.com
> wrote:
>
>> Oh, well then I don't see what you are waiting for :-).
>>
>> Here are some interesting and more stats-focused libraries that may be
>> interesting to you -
>>
>> * kixi stats <https://github.com/MastodonC/kixi.stats> - Clojury
>> statistics - written by Henry Gardner, the author of the aforementioned 
>> Clojure
>> For Data Science
>> <https://www.amazon.com/Clojure-Data-Science-Henry-Garner/dp/1784397180>
>> * fastmath <https://github.com/generateme/fastmath#statistics> -
>> Carefully chosen and curated fast JVM mathematical primitives
>> * clojisr <https://github.com/scicloj/clojisr> - R <-> Clojure bridge
>> * Anglican <https://probprog.github.io/anglican/index.html> -  a
>> probabilistic programming language
>> * Bayadera <https://github.com/uncomplicate/bayadera> - MKL, GPU
>> enhanced probabilistic programming system.
>>
>> Enjoy :-)
>>
>> On Mon, Sep 28, 2020 at 11:57 AM Baye <sows...@gmail.com> wrote:
>>
>>> Hi Chris, Thanks! I will check out the mentioned resources.
>>> Just to be clear, the only language I know well is Stata. I am still a
>>> very new to python, so I don't have any baggage to take with me as I have
>>> not invested enough time.
>>> Given I am philosophically convinced of the long term benefits of
>>> Clojure from talks, my only apprehension was whether I will be able to do
>>> most things in Clojure as in Python. But my interest, in programming is not
>>> limited to data science/ML...I  am potentially interested in building apps
>>> (web/desktop, etc) for potential future projects in education, health etc..
>>> On Monday, September 28, 2020 at 8:39:06 PM UTC+3 ch...@techascent.com
>>> wrote:
>>>
>>>> There are hybrid options available in the form of
>>>> https://github.com/clj-python/libpython-clj -- I am one of the primary
>>>> authors of this tool.
>>>>
>>>> One pathway perhaps is to use clojure to do your scraping and
>>>> orchestration (and frontend display) and just use python from command line
>>>> scripts to do some ml.
>>>>
>>>> For Clojure and data science there is SciCloj:
>>>> https://scicloj.github.io/
>>>>
>>>> My opinion is that learning Clojure independent of data science  is a
>>>> worthy and substantial task - functional programming, the JVM, Java,
>>>> Clojurescript, Reagent are all pretty big subjects.  libpython-clj has a
>>>> new-to-clojure
>>>> <https://github.com/clj-python/libpython-clj/blob/master/docs/new-to-clojure.md>
>>>> page that lists some resources for helping with this.
>>>>
>>>> Happy to help more and really happy to see new people.  I think Gary's
>>>> response is spot on and just wanted to elaborate that we have tools that
>>>> are specifically designed for helping people transition from Python to
>>>> Clojure without needing to walk away from their Python knowledge base.
>>>>
>>>> Chris
>>>>
>>>> On Mon, Sep 28, 2020 at 11:08 AM Baye <sows...@gmail.com> wrote:
>>>>
>>>>> Got it. Thanks again for your time!
>>>>>
>>>>> On Monday, September 28, 2020 at 8:05:32 PM UTC+3 Gary Trakhman wrote:
>>>>>
>>>>>> Not only the language and the techniques you intend to apply, but the
>>>>>> larger language and library ecosystem.  For most people, Clojure is best
>>>>>> used when you
>>>>>> have familiarity with the JVM and existing java core libraries and
>>>>>> 3rd-party libraries, and some IDE/editor environment with enough features
>>>>>> to be productive, but
>>>>>> those are extra things to learn.  Something like Scheme/Racket used
>>>>>> for SICP is a great teaching language because all those decisions are 
>>>>>> made
>>>>>> for you and
>>>>>> you can focus on the abstract content in the book instead of getting
>>>>>> bogged down in tooling.
>>>>>>
>>>>>> As for data-science/ML, it has good tools, it's just not the most
>>>>>> widely used language by data scientists.
>>>>>> Check out Clojure for data science:
>>>>>> https://www.amazon.com/Clojure-Data-Science-Henry-Garner/dp/1784397180
>>>>>>
>>>>>> For the most part, I'd expect production-scale data science tools to
>>>>>> wrap java ones with a better/clojurey interface.
>>>>>> There's some other tools I'm not familiar with, eg
>>>>>> https://github.com/originrose/cortex, but there are definitely
>>>>>> people doing data science in clojure.
>>>>>>
>>>>>> On Mon, Sep 28, 2020 at 12:55 PM Soule S <sows...@gmail.com> wrote:
>>>>>>
>>>>>>> Thank you for your insight. By " learning more than one thing at a
>>>>>>> time", do you mean data science/ML and the language itself? If so, then 
>>>>>>> I
>>>>>>> want to clarify, I have a solid foundation in data science; I am 
>>>>>>> trained in
>>>>>>> the most advanced topics in econometrics (Statistics). My apprehension 
>>>>>>> is
>>>>>>> mainly whether closure has good tools to do those. I know Python does.
>>>>>>>
>>>>>>> Thanks again
>>>>>>>
>>>>>>> On Mon, Sep 28, 2020 at 7:40 PM Gary Trakhman <gary.t...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Clojure is a fine language to learn on, but there are going to be
>>>>>>>> some complex details along the way. I think there are 2 approaches
>>>>>>>> to entry into programming that you might consider.
>>>>>>>>
>>>>>>>> You can start with the basic fundamentals of computation and work
>>>>>>>> up into software engineering. For that, clojure is
>>>>>>>> very similar to a teaching language, 'scheme', and people can work
>>>>>>>> through books like SICP:
>>>>>>>> https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html
>>>>>>>> with it.
>>>>>>>> If you follow that strategy, you'll eventually have a good
>>>>>>>> foundation of understanding to build on, but it might not feel very 
>>>>>>>> useful
>>>>>>>> in the first year.
>>>>>>>>
>>>>>>>> Another strategy is to hack up small demos of individual
>>>>>>>> techniques, like numerical methodologies or data visualizations.  This
>>>>>>>> would go more
>>>>>>>> along the data-science/ML track. While it can be done in clojure
>>>>>>>> and there are books on the topic, you might have an easier time in 
>>>>>>>> python
>>>>>>>> if you're going down that path.
>>>>>>>>
>>>>>>>> I would say if you start with clojure, you're going to be learning
>>>>>>>> more than one thing at a time and the learning curve is steeper. 
>>>>>>>> Whether
>>>>>>>> that's worth the cost depends on your goals and market conditions.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Sep 28, 2020 at 12:13 PM Baye <sows...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> I am new to programming. I have started to learn C++ and even some
>>>>>>>>> python
>>>>>>>>> My background is Economics. I have strong quantitative background
>>>>>>>>> (Math and Econ) and I know STATA.
>>>>>>>>>
>>>>>>>>> In general, I would like to use programming
>>>>>>>>> (1) for ML/AI in economics topics+other utilities such as
>>>>>>>>> webcraping, and other data driven analyses
>>>>>>>>> (2) for it, fintech matchmaking platforms
>>>>>>>>>
>>>>>>>>> In particular, I just recently discovered I love programming. I am
>>>>>>>>> old (35) as a beginner but I have set a goal to become a fully capable
>>>>>>>>> programmer by 40...Hopefully I can learn 2 languages well enough by 
>>>>>>>>> then.
>>>>>>>>>
>>>>>>>>> If jobs opportunities are present then, I can switch careers
>>>>>>>>> although I still like my career path. I could always use my 
>>>>>>>>> programming
>>>>>>>>> skills for either my job, a start up, or become a full fledge 
>>>>>>>>> prgrammer.
>>>>>>>>>
>>>>>>>>> Online research has led me to think that Clojure might be an
>>>>>>>>> excellent language to focus on because they say it is an excellent for
>>>>>>>>> rapid development (If I want to use it for a start up, lone 
>>>>>>>>> developer),
>>>>>>>>> data-driven (econ and ML), and provide a path to be a great 
>>>>>>>>> programmer.
>>>>>>>>>
>>>>>>>>> My Apprehension is that Clojure doesn't seem widely used so might
>>>>>>>>> issues with doing ML projects with few libraries (compare to Python 
>>>>>>>>> for
>>>>>>>>> ex), and future job prospects, etc...
>>>>>>>>>
>>>>>>>>> Anyway, I welcome any insights/advice, tips.
>>>>>>>>>
>>>>>>>>> Thanks in advance,
>>>>>>>>> Baye
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "Clojure" group.
>>>>>>>>> To post to this group, send email to clo...@googlegroups.com
>>>>>>>>> Note that posts from new members are moderated - please be patient
>>>>>>>>> with your first post.
>>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>>> clojure+u...@googlegroups.com
>>>>>>>>> For more options, visit this group at
>>>>>>>>> http://groups.google.com/group/clojure?hl=en
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "Clojure" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to clojure+u...@googlegroups.com.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msgid/clojure/10bd1d68-78f9-472b-8de3-5be96f6804a7n%40googlegroups.com
>>>>>>>>> <https://groups.google.com/d/msgid/clojure/10bd1d68-78f9-472b-8de3-5be96f6804a7n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "Clojure" group.
>>>>>>>> To post to this group, send email to clo...@googlegroups.com
>>>>>>>> Note that posts from new members are moderated - please be patient
>>>>>>>> with your first post.
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>> clojure+u...@googlegroups.com
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/group/clojure?hl=en
>>>>>>>> ---
>>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>>> the Google Groups "Clojure" group.
>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>> https://groups.google.com/d/topic/clojure/dbYOgLKDGv4/unsubscribe.
>>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>>> clojure+u...@googlegroups.com.
>>>>>>>> To view this discussion on the web visit
>>>>>>>> https://groups.google.com/d/msgid/clojure/CAJvqBXgPpyPvDdjRNzbL-%2Bqjj-CFxYg%3D0ypSX5--iqFemH%3D-7w%40mail.gmail.com
>>>>>>>> <https://groups.google.com/d/msgid/clojure/CAJvqBXgPpyPvDdjRNzbL-%2Bqjj-CFxYg%3D0ypSX5--iqFemH%3D-7w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Clojure" group.
>>>>>>> To post to this group, send email to clo...@googlegroups.com
>>>>>>> Note that posts from new members are moderated - please be patient
>>>>>>> with your first post.
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> clojure+u...@googlegroups.com
>>>>>>> For more options, visit this group at
>>>>>>> http://groups.google.com/group/clojure?hl=en
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Clojure" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to clojure+u...@googlegroups.com.
>>>>>>>
>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/clojure/CAKbuZvmqikY7DByRagFvOEKd5P74XCQnEP%2B2C9uDYULPS3CMZQ%40mail.gmail.com
>>>>>>> <https://groups.google.com/d/msgid/clojure/CAKbuZvmqikY7DByRagFvOEKd5P74XCQnEP%2B2C9uDYULPS3CMZQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Clojure" group.
>>>>> To post to this group, send email to clo...@googlegroups.com
>>>>> Note that posts from new members are moderated - please be patient
>>>>> with your first post.
>>>>> To unsubscribe from this group, send email to
>>>>> clojure+u...@googlegroups.com
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/clojure?hl=en
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Clojure" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to clojure+u...@googlegroups.com.
>>>>>
>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/clojure/207f4333-27c7-41e8-b807-d03a4ff8d2edn%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/clojure/207f4333-27c7-41e8-b807-d03a4ff8d2edn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+u...@googlegroups.com.
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/clojure/82141286-5368-4c68-b330-7514801897a4n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/clojure/82141286-5368-4c68-b330-7514801897a4n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/8815f275-1bd5-4c05-9d96-cb236a108bf5n%40googlegroups.com
> <https://groups.google.com/d/msgid/clojure/8815f275-1bd5-4c05-9d96-cb236a108bf5n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAGHrs%3D96VLjUnZqLk5_OeCdnEq_%2BC%2Bkjcf-%2BetPknsniH%2BYmNQ%40mail.gmail.com.

Reply via email to