Live data from Hacker News

Launch HN: CodeCrafters (YC S22) – Practice writing complex software

codecrafters.io

201–207 of 207 posts

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#201

Great idea, any plans for more complex creations? Git/Redis/Docker are excellent 101s but it'd be cool to see this solid format applied to more technically challenging projects. Though I appreciate it's targeting juniors.

Next week a new course is dropping (Build your own grep — which involves building a Regex Engine). Some more upcoming ideas are here: https://vote.codecrafters.io/ What would some examples of projects that'd be suitable for your skill level?

The grep one sounds pretty fun actually, it's less about "skill" imo and more that I'd love to see your concept expanded to some of the less travelled parts of programming. Runtime linker/loaders, compilers, display drivers, VMs, VMMs, symbolic execution stuff. Maybe a build your own eBPF course or clangd?

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#202

This looks great! What languages are supported? Are the tests language agnostic, or is the coursework specific to a subset of languages? I see reference to Rust, Go, Python and JS...but am unsure if this would be useful for something like Clojure, where I can produce JS, JVM or compiled code, that could be tested against, but wouldn't expect an imperative pseudo-code explanation of an algorithm to be helpful for expl…

Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page ( https://app.codecrafters.io/tracks ) to see the courses available against each language. As a 2-person team, we're prioritising making a complete experience for Go, Python & JS for starters (our most popular languages). So far, our tests are language agnostic. Our testers are written i…

Looking at your tracks page, is there a part of your site that explains what the differences are between Beta and non-Beta Tracks as well as what the stage counts signify? Or maybe just something in the FAQ that explains what your concept of a "stage" is in detail would be useful.

For example, why is Rust in Beta while Go isn't despite having the same number of stages? I'm assuming the determination is made based on something else, but do you go into what that is?

Rust is probably the language I'm most interested in using your site to learn and it currently has as many stages completed as Go (according to your tracks page), but you didn't mention it in your list of priority languages. Are stages user-contributed? Is that why Rust has more stages than Python or JS?

Is there anything that would stop a user from using any language without major impediments or hurdles?

Sorry for all the questions. I've just been really excited about seeing this platform develop!

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#203
post #202

Earlier quoted context omitted.

Thanks for the great question. We support ~14 languages at the moment and are working on adding more. You can visit our tracks page ( https://app.codecrafters.io/tracks ) to see the courses available against each language. As a 2-person team, we're prioritising making a complete experience for Go, Python & JS for starters (our most popular languages). So far, our tests are language agnostic. Our testers are written i…

Looking at your tracks page, is there a part of your site that explains what the differences are between Beta and non-Beta Tracks as well as what the stage counts signify? Or maybe just something in the FAQ that explains what your concept of a "stage" is in detail would be useful. For example, why is Rust in Beta while Go isn't despite having the same number of stages? I'm assuming the determination is made based on…

Great questions. If you see that a language track has a particular course available (e.g Docker on Rust track), it means it's good to go. There are no hurdles to going through the stages. When a track is marked as beta, it typically means that the solutions & explanations for some stages on that language are coming soon — or that it doesn't have all the 4 courses supported in that language yet.

You might also enjoy checking out our OSS repo where any one can contribute language support. We prioritise supporting different languages based on user demand, but if you want to get your hands on a particular language right away, we accept PRs from the community. https://github.com/codecrafters-io/languages

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#204

This is a really cool idea! I may check this out. One concern I have is that it looks like you're having people rebuild Unix command line tools. Tools which have a tendency to look at the world in one particular way. Unfortunately, that way is not very good to users. I'm really concerned about how many different programming courses, from boot camps to graduate level CS courses, push this narrow view of programming. I…

Thanks for your question. If I understand right, you mean for example projects that involve a frontend web component? That's on the cards (e.g we have Build your own React on the pipeline). There are unique challenges to making that experience predictable, so we're focusing on the "console-based" projects for now. There's also often a "subjective" nature when reviewing/testing UI so we need to think through the ideal…

> If I understand right, you mean for example projects that involve a frontend web component?

Ack! No! I mean native applications written in styles other than the prevailing Unix way of writing native applications. It can be any other form, just something that's well written but not using Unix-isms.

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#205
post #202

Earlier quoted context omitted.

Looking at your tracks page, is there a part of your site that explains what the differences are between Beta and non-Beta Tracks as well as what the stage counts signify? Or maybe just something in the FAQ that explains what your concept of a "stage" is in detail would be useful. For example, why is Rust in Beta while Go isn't despite having the same number of stages? I'm assuming the determination is made based on…

Great questions. If you see that a language track has a particular course available (e.g Docker on Rust track), it means it's good to go. There are no hurdles to going through the stages. When a track is marked as beta, it typically means that the solutions & explanations for some stages on that language are coming soon — or that it doesn't have all the 4 courses supported in that language yet. You might also enjoy c…

Thank you! This was very helpful!

Re: Launch HN: CodeCrafters (YC S22) – Practice writing complex software

#206
post #168

congrats on the launch! I'll definitely be trying the rust course over a free weekend. Is there a way to opt out of the leaderboard, hide it? This sort of 'challenge-ification' is strongly not for me.

We don't have an opt-out yet, but we'll certainly consider. Curious — why isn't the 'challenge-ification' desirable to you? It feels pressurising? Please feel free to email me if you prefer to keep it private! sarup@codecrafters.io

(sorry for the slow reponse. lack of notifications from HN)

> It feels pressuring?

Exactly. These sorts of things always end up demoralizing to me. I'll never be on there, there's always a bigger kid on the playground - but having it shoved in my face daily isn't a positive reminder. I can't commit the time, money, intelligence, et c. Let me go at my own pace and not feel bad for being slow :)

Post reply on HN