
Exercism – Level up your programming skills - moesart
http://exercism.io
======
superbatfish
This looks useful for learning the basic syntax of a new language, but the
exercises look to be somewhat generic. Most of the exercises seem to be
duplicated across languages.

Once you've mastered the basic syntax and control constructs of a language, it
probably isn't worth your time to try a dozen different string manipulation
exercises.

Perhaps this is beyond the scope of what this site is aiming for, but, I would
hope for some exercises that help me understand what each language is commonly
used for.

Potential examples:

\- Swift: Learn to display and manipulate a GUI

\- Ruby: Learn to write a web application

\- Python/Julia/R: Learn to fit some data to a model

\- Javascript: Learn to use a web framework

\- Go: Learn to handle some network connections, concurrently. (I see they
have one exercise that emphasizes concurrency, which is a step in the right
direction.)

\- Perl/PHP/Bash: Learn to cry bitter, sorrowful tears.

~~~
ghostbrainalpha
>\- Perl/PHP/Bash: Learn to cry bitter, sorrowful tears.

This is a common misconception. PHP tears are actually almost sweet and not
bitter at all. The only saltiness comes from hearing the opinions of other
programmers talk about your primary language.

~~~
kod
Yeah, no, not when your primary language still can't get lexical scope right,
or distinguish between arrays and hashtables.

~~~
Will_Parker
The lack of distinction between array vs hashtable isn't a big deal. Array as
a map from integers to items works fine in practice. Even speaking of
algorithm performance, it's fine for the uses you have on a web server. (Any
other use of PHP is clearly insane. :) )

You speak like someone who hasn't worked much in PHP. When you do, a lot of
quirks and flaws really bother you and slow down during everyday tasks, but
the ones you mentioned aren't they.

~~~
mcny
> a lot of quirks and flaws really bother you and slow down during everyday
> tasks

Would you mind sharing a few that bother you? q

~~~
Aeolun
The fact that `false` isn't always false. Or that '0' or 0 or null are all
'false'.

There's a bunch more quirks in Zend Framework that I use every day that are
much worse than all the rest of PHP though.

------
IamNotAtWork
I just signed up and while it looks like a great resource I really wish they
would grade your submissions on pass/fail based on the test cases that are
included with each module. I thought it was weird that I submitted something
that was not passing but it didn't complain... because if that's the case, why
even submit? As a commentator I would like to know if I'm commenting on
solutions that are passing or failing first, before writing any comments. Just
my thoughts.

~~~
lmcnish14
One reason to submit before it passes is so that you can see how others did
it. If you're learning a new language and don't even know where to start, it
can be useful to get help from others first then try to implement it yourself.

~~~
Jnnz
Isn't that cheating?

~~~
cavanasm
IIRC, exercism doesn't really encourage completing things for points, and
didn't especially heavily gamify the learning process. Copying answers really
just seemed like shortchanging yourself when I was using it.

------
rdoherty
Been using this for a few weeks to practice for interviews, it's a slick
setup. Unit tests setup to test all input and output, plus since you download
the exercises you can use your editor of choice.

While there isn't much reviewing going on, I've found it useful to poke
through a few other submissions for exercises (especially the ones with
comments). I've learned a few things from other users' code.

------
cstoddart
I love the site, but I have yet to have any of my submissions get reviewed by
anyone else. Great concept, but maybe there is more they could do to encourage
experienced developers to review the submissions.

~~~
jetti
I signed up last week and have been using it to learn Erlang. I have some
experience with Elixir so Erlang isn't totally foreign to me. I'm experienced
dev and have only commented on 1 submission. The problem with commenting on
submissions is that I'm learning the language as well so there lacks the
authority of knowing what would be the <INSERT LANGUAGE> way.

~~~
macintux
Thanks for the reminder; I used to do some Erlang commentary on the site, will
go look again.

------
Axsuul
This looks pretty cool. And since it hasn't been mentioned here yet, Advent of
Code 2017[0] is ongoing right now and there's still enough time to catch up.
But you can always go back to years 2015 and 2016 to sharpen a new language
on.

I've been learning Elixir for this year's challenges and it's just the right
amount of challenge required for understanding the idiomatics and
idiosyncrasies of a language.

[0] [http://adventofcode.com/](http://adventofcode.com/)

------
inopinatus
I attended a talk recently given by Exercism's creator (Katrina Owen) about
the trials and tribulations of being an open source maintainer, and how
success can turn a technical problem-solving delight into a thorny people-
management tarpit. A process that programmers may not initially possess the
skills to handle.

One big takeaway was how thankless and un(financially)compensated the task
often is. If you find Exercism useful, I strongly recommended clicking the
"Donate" button at the top.

------
lewis500
Can someone tell me what this has over, say, Codewars and Leetcode? It seems
like there are not too many practice problems yet.

~~~
Kaivo
The biggest upside compared to other code challenges I tried (HackerRank,
CodinGame) is that the code is ran on your machine, and the pass/fails are
from unit tests. So you code using your editors in a real development
environment rather than in a web based sandbox.

Also, as the checks are from tests, there are no single right answer. I've
seen some code challenge services (can't remember the name) that would mark
fail if you didn't write it exactly as they were expecting, to the line break.

~~~
lewis500
that indeed could be an advantage. on codewars it sometimes takes a while for
tests to run.

------
drdrey
I didn't think I would enjoy this, but I do:
[http://exercism.io/submissions/4778291c472d4c60b79360e02dd75...](http://exercism.io/submissions/4778291c472d4c60b79360e02dd7556f)

~~~
flavio81
Wonderful, well played sir!

------
jetti
I really enjoy this site. I signed up last week to help me learn Erlang and am
using it to brush up on my Elixir. One thing that stinks is the
inconsistencies between the languages. For instance, Erlang uses rebar3 to run
the tests "rebar3 eunit" whereas Elixir makes you use the "elixir xx.exs"
command, meaning you have to point to the test file. It isn't that bad except
a lot of the test files have really long names. That being said, it is a minor
gripe I have with the site and I have otherwise enjoyed it.

~~~
samb1729
Try `mix test`, assuming you have a mix project.

~~~
jetti
That's what I'm used to but it doesn't come with a mix project, which is
frustrating. It is just the ex file with the code and the exs with the test.
If I have time, maybe I'll do others a solid and try changing the tests to use
mix (if that's even possible as an outsider)

~~~
matt_kantor
> if that's even possible as an outsider

It's all open source. Check out
[https://github.com/exercism/elixir](https://github.com/exercism/elixir). I've
made some minor contributions in the Rust track and found the maintainers very
pleasant to work with.

~~~
jetti
Awesome, thanks! I'll start trying to help.

------
mmanfrin
Similar to this, I'd recommend people check out Codewars, which has challenges
that you then submit and get compared/graded against others' solutions. It's a
real neat way to learn other ways of achieving some solution than the one you
came up with.

[https://www.codewars.com/](https://www.codewars.com/)

------
rhexs
Thank you. Been looking to dive further into rust but needed some challenges.
Unfortunately leetcode doesn't support it. :(

------
Exuma
Awesome, I was just teaching someone to code and a lot of the coding
challenges are super lame. I really like these.

------
graeme
I run a business on wordpress, but can't code. I want to learn some php and
javascript to be able to better work with my programmer, and make some small
modifications myself.

How suitable would this be?

Note: I have learned in the past, for about six months, went through K and R's
C book, Udacity's intro course, and made some python scripts which are still
in use on my site. But, that was five years ago, so I've forgotten everything.

So, I'm not exactly a total beginner, but I currently am unable to do anything
through neglect.

~~~
acomjean
If you have a local wordpress meetup it would probably be worth it to go down
there and check it out. Its useful to find someone to ask questions of and
maybe they offer some training.

The bostonphp group (Now almost defunct, excepting training) ran a class on
setting up and running a drupal site, which was good. They had people that run
drupal sites helping with the class so if you had questions there was someone
knowledgeable). That being said, I've never run a production drupal site, but
I feel like I have some idea whats involved.

Many years ago I took a redhat kernel extension programming class. Again with
someone knowledgable teaching the class, it was quite helpful. Since it was
all people from my workplace in the class we were able to ask the relevant
questions about the scheduler and other information we needed.

~~~
graeme
Ah, great idea, thanks! I found a local wordpress meetup.

------
flavio81
Yesterday the page worked just fine, today all pages give me "Application
Error", any news on if they are addressing this?

------
flavio81
It includes detailed pages for Common Lisp, Julia, Racket, most ML languages
and Haskell.

I'm satisfied. Very comprehensive language list.

------
dotdi
I came here specifically to write some things that other people already said,
so here is a TL;DR:

The idea is great: have a test suite and program your exercises against it.
But in my opinion, exercism makes you write a lot of __non-idiomatic code __.
There is value in that, but only so much.

------
sdruskat
Great concept promising potentially more in-depth experiences than the
cpomtetition. I think that the single point of failure of the site would be
failure to build a large enough community of reviewers.

------
aleksm97
The tasks are good, but I wish it was graded and you could list the top
submissions by likes and speed etc. Something like codeforces where you can
learn from the best by studying their code..

------
agbell
Exercism is great at building code review chops. Assuming if you are in an
active language community and have finished a number of challenges.

------
xster
This is basically Ruby Koans for every language?

------
rezacks
No HTTPS enabled?

------
caseymarquis
What I'd love to see is a series of case studies on software architecture with
lessons learned.

~~~
vlunkr
That seems totally unrelated.

------
voiper1
hmm. a lot of exercises but how hard will they be? I like codewars kyu levels.

~~~
hugja
They're working on Exercism v2 that includes the difficulty level on the
exercises:
[https://v2.exercism.io/tracks/lua/exercises](https://v2.exercism.io/tracks/lua/exercises)

~~~
stefs
so exercism v2 is served over https but v1 is not. strange.

------
channprj
Quite Interesting.

------
surrey-fringe
No thanks

