this post was submitted on 13 Jul 2023
15 points (100.0% liked)
Learn Programming
1640 readers
1 users here now
Posting Etiquette
-
Ask the main part of your question in the title. This should be concise but informative.
-
Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.
-
Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.
-
Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/
Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
C# is what I use at my day job and I think it's a very good language. It's feature rich (some people make fun of it for the fact the language team keeps adding new features). If you are familiar with Python and Typescript, that means you are reasonably familiar with object-oriented design. So, depending how you look at it, it may be very rewarding (since you will be able to quickly build on things you already know) or boring (since conceptually you will be mostly doing OOD). If you are interested in this path, Kotlin may be another interesting language which looks quite similar to C#.
Functional programming is all the rage now. So, if you want a real challenge that will help your programming skills no matter what, you may want to start looking into a language in this family. Haskell and F# come to mind. But there are many others.
Rust is also very trendy. In some instances it's replacing C and C++. It makes one think about lower level details of software. It's also a good language to learn if you want to be familiar with WASM. So, it may be an interesting challenge to take. Lemmy is written in Rust, so you may as well contribute to the platform. There is a lot to be done :)
If you don't already feel proficient in SQL, that would be an important skill to obtain along the way. Databases aren't going anywhere and it's a whole different world.
That said, you may want to focus on general things like design patterns and development methodologies (TDD, etc.) to broaden your horizons. Writing code is one thing. Writing high quality code with few bugs is a difficult thing to do and a great skill that only comes when one understands the best practices of software engineering.
Hopefully this helps. Good luck with your endeavors.
This was really informative, thank you for taking your time!
No problem. In another comment I saw that you said you "[n]ever wrapped [your] head around dot net". If that's the case, I would suggest you looking into it (or something similar) before going into the more advanced (functional programming, C/C++/Rust) route. You can try to implement a backend in C# to one of your projects and see how .NET works (BTW you need to be looking at .NET Core, not the older .NET Framework stuff. Anything after .NET 5 is fine). Or you can try implementing a Lemmy/kbin clone. İn my experience, completing a project is critical to learning. Of course everybody learn in a different way, and you know you better than anyone else.
One last note: learning different languages is not really that important unless the language changes the way you think. Again, good luck :)