Giter Club home page Giter Club logo

Comments (9)

kytrinyx avatar kytrinyx commented on September 25, 2024

@kuza55 I'm still at work, so I can't address this at the moment, but I saw that you closed it. Did you find an answer somewhere else?

from rust.

kytrinyx avatar kytrinyx commented on September 25, 2024

Ok, done for the day.

Exercism absolutely does aim to create a pathway to mastery in each language--but the tracks are community contributed, and it often takes a bit of time (and feedback!) to figure out how to smooth out the rough edges and improve the exercises.

Usually when launching a new language track the exercises are based off of exercises in other language tracks--thing can be a useful way to get started, but it also means that there's a good chance that some things won't really show off the language features really well, or that something that is easy in one language is harder in another.

In languages like haskell, elixir, go, and ruby, we've tweaked and re-arranged. Rust, PHP, and Java are still very new, and so it's more likely to not quite have found a good balance.

Here's the current progression: https://github.com/exercism/xrust/blob/master/config.json#L7-L29

We're grateful for suggestions on how to rearrange things to improve the experience.

from rust.

kuza55 avatar kuza55 commented on September 25, 2024

I closed it since I felt like I was just complaining with no real point.

I have some more concrete things:

a) Rust's string handling is pretty crappy; lots of the exercises require lower casing things, and the library support for this is pretty terrible, if you check out the anagram solutions you'll see that it takes at least 4 functions, or two nested loops to lower case a string. You can see the steep drop in completion rates (35 -> 10), though I'm not sure if that's typical

b) The Allergies exercise is particularly non-obvious since you need to realise that you need to add #[derive] declarations to your enum for equality and casting to work. Again there's a drop in completion from 8 -> 10

c) In general, the tests do not give function signatures. Eventually you figure out what the tests are looking for, but this seems completely backwards, in one case making the definition was actually interesting (specifying lifetimes), but mostly it's trying to figure out what types the tests are expecting from their implicit type usage.

d) Nucleotide Codons is particularly badly documented. The mappings should be explicit.

Out of all the exercises I have done (15 so far), the grade-school one has been the most enlightening, not because of any code I wrote, but because of code I was not able to write. I tried to write a test that would result in a data race with my implementation, but Rust wouldn't let me. I'm not really sure how to capture this here though.

from rust.

pminten avatar pminten commented on September 25, 2024

Regarding nucleotide-codons, that was a bit of an oversight on my part. I meant to add a link to the relevant wikipedia page but forgot that. Should be fixed soon.

from rust.

kuza55 avatar kuza55 commented on September 25, 2024

I don't think you should link to the wikipedia page, you should put all the details there, I don't care to have to learn anything about DNA when I'm trying to learn rust. Just put the shortcode mappings right there.

from rust.

pminten avatar pminten commented on September 25, 2024

I would say that isolating the technically important bits from a problem statement and background information is part of the skills you need to be a programmer. As exercism aims to teach programming and not just "how to do X in language Y" making you practice this skill is sensible.

from rust.

kuza55 avatar kuza55 commented on September 25, 2024

Fine, maybe I'm not your target audience, but I would point out that I get enough of that in my day job, I just want to learn about rust specifically.

from rust.

etrepum avatar etrepum commented on September 25, 2024

You're absolutely welcome to contribute exercises, or modifications to exercises, that you feel would do a better job introducing someone to Rust. Exercism is all community sourced after all. One of the best ways to learn something is to (attempt to) teach it. I've gotten a lot of value out of building out the Haskell track and providing code review.

In the first pass of implementing most of these exercises I found it much quicker and easier to do a shallow port from one language to another, rather than reconsidering the design to suit the language. It takes the efforts of people like you to take it to the next level and make specific suggestions or pull requests to improve the track.

from rust.

kytrinyx avatar kytrinyx commented on September 25, 2024

The same happened in the Ruby and Go tracks. At first it was completely slap-dash, and then as people got stuck or frustrated or bored we moved things around and made them more rubyish or goish, or just more interesting.

from rust.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.