logo for basementcommunity

basement
community

search

wall of shame

basement community turns 2!!! check out the anniversary thread for some updates and come say hi! thanks everybody for posting here and have a good holiday season

software Learning a new programming language

deleted_user

joined some time ago

avatar

deleted_user

joined some time ago

content has been deleted

edited 5/6/2023, 1:52 am

joined apr 10, 2023

avatar

im sorry

joined apr 10, 2023

i've also been mucking around with rust on and off for the last year or so, so i may not be the best expert on it or anything. I think something neat to work on is to go and make (or study examples of) a lot of the basic data structures. in most languages making a linked list or whatever is really simple/boring but for rust its a good way to learn specific concepts like lifetimes and to mess around with the different 'smart pointer' types

edited 5/3/2023, 4:58 am

joined dec 4, 2022

avatar

joined dec 4, 2022

rust is next on my list to learn. i want to rewrite the basement community API in it to practice, but also want to learn some kind of embedded systems stuff with it too

posted 5/3/2023, 3:26 pm

joined feb 18, 2023

avatar

joined feb 18, 2023

For me there are some general things I do and the rest depends on the focus of the language. With a language like Rust you would expect to make more foundational things, so I think it's worth taking a look at. That's also where you're more likely to find the parts that sting with Rust, i.e. when you actually want/need unsafe code.

It's very popular to say things like "Most programmers shouldn't need unsafe" and so on but I think you're doing yourself a disservice if you don't look into those things. The truth is that foundational things need to be done with unsafe sometimes, so it's not good enough to try to perpetually dodge it.

In any case the things I usually look into with most languages (not in any particular order):

  • codewars.com

  • Working with BSD sockets in the language (a nice resource for exercises here is ProtoHackers where you can solve specific tasks for protocols, etc., and it'll be a nice testing ground for your socket knowledge)

  • Parsing a file format of some sort (Windows: get info about executables by reading the PE format, do the same for Linux/MacOS with the ELF format and Mach format, respectively)

  • Consume C libraries in the language

  • Optionally export C functions from the language

I used to always write a Torrent downloader that downloaded torrents from an RSS feed and a watch list but then I kind of stopped torrenting as heavily and I didn't need to download the absolute latest stuff anymore so it fell off from a usefulness standpoint. I do recommend finding a similar endeavor, though, because it makes a lot of sense to have something that you can keep working on that is simple enough to re-implement in new technologies.

edited 6/7/2023, 10:27 am

software Learning a new programming language