this post was submitted on 08 May 2024
26 points (100.0% liked)

Ask Experienced Devs

1235 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

I'm really enthusiastic about anything involved with Unix/Unix-like operating systems and their ecosystems (Mostly Linux and a bit of BSD variations). I also know a couple of programming languages including C, C++23 and OCaml. But other than doing a couple of tiny projects mainly to practice my programming skills in the languages mentioned above, most of my experience is theoretical and it comes from reading books, blogs and watching conferences.

I'm interested in gaining "actual" experience by doing systems programming related projects but I'm not sure how to get started. How do I decide on which topic to choose? A topic which would not be too overwhelming and actually achievable? And how do I gain the background knowledge needed to implement a project without ending up copying and pasting everything from existing implementations?

Thank you!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 6 months ago (3 children)

The reality is that you can't. So accept that going in and realize your learning will be iterative.

You'll be overwhelmed, that's OK. Copy paste code until you get something working. Here's the key. At that point stop, go back and understand the code you copied, why it works, and then try to rewrite it differently now that you know what worked.

Metaphor for writing. Start with a quote, then paraphrase it. Do that enough and you'll start to be able to adlib and come up with your own solutions.

[–] [email protected] 5 points 6 months ago (1 children)

Personally, rather than copy-pasting code, I like to actually copy it by typing it out, especially if I'm still learning the syntax of a new language. It just makes you read the code much more attentively than glancing over it after it's already written.

[–] [email protected] 3 points 6 months ago

Absolutely. That's a fantastic way to do the "copy/paste" I definitely think it helps when learning new language.

[–] [email protected] 2 points 6 months ago (1 children)

That's a very good point. Thank you!

[–] [email protected] 2 points 6 months ago
[–] [email protected] 2 points 6 months ago

I learned something very valuable relatively early in learning how to program: sometimes, if you do things you don't understand enough, the understanding will come as a byproduct of just doing the thing.

I had been stuck in a "i must understand the fundamental nature of everything i do before i do it" mindset, so this was quite revelatory to me.