I want to properly get into other programming languages like Java and C#, but I keep going back to Python because it's so much more familiar and I'm comfortable with it. :(

What do? Do others have this kind of problem too?

  • 1
    Uninstall Python. Download an IDE, a compiler and a course for some other random language and finally shut down internet.

    Now you can learn ;)
  • 6
    For me personally, the way I break my comfort zone is undertake a new project and do it in the new language or framework. Hence I'm forced to learn till the new language becomes the new comfort zone 😂
  • 2
    You might want to look at my rants about go, but that’s the way I’m learning : I want to create a shortcut manager for bash, and it’s the perfect excuse to learn golang.
    Heavy documenting any line I’m writing (especially if I copied it) and all putting in the same file works well for me because I don’t have to navigate files to find a function, and try to ask myself features to extend the knowledge of the language.

    When I’ll be confortable with, I’ll rewrite it from scratch with MVC patterns and good documentation
  • 1
    I like to learn a new language every now and then to exercise my brain muscle. The more languages you learn the more of an internal understanding of the general concepts you can build, which makes it easier to learn other languages.

    Languages reuse 90% of the concepts from each other, so once you get to a certain point you just have to learn a few new ideas here and there.

    I’m learning Rust right now and am loving it because of its control over memory and mutability and its thread safety, but it’s definitely a more advanced language.

    Python is great because it’s logical and consistent and doesn’t have a lot of cruft. But moving from a dynamic language to a restrictive language like C# or Java probably seems like a lot to take in.

    It’s hard to give advice without knowing what you’re looking for, but if you just want to learn a new language I suggest watching intro videos on YouTube until you find one that speaks to you and then just dive in.
  • 1
    @S-Homles-MD by restrictive I meant the language preventing you from doing things that would otherwise be possible but it doesn’t let you “for your own sake” (e.g. referencing random memory).

    Assembly doesn’t do that at all so I would actually consider it a completely unrestrictive language in that sense.

    Not that I’ve ever written anything in assembly. I’m not that crazy. 🙂
  • 1
    @devios1 Yeah, no, I've definitely noticed the thing with learning other languages becoming easier (saved my hide in the course mentioned in some of my previous rants.)

    As someone who's self-taught and far from anything resembling a person who actually knows CS stuff, things like those you mentioned (memory control, mutability, thread safety) just confuse me and I honestly find it kind of intimidating. I'd love to learn those parts of languages too, but I don't even understand the concepts themselves, and that makes it difficult to know where to start or what to do next. :/

    And I have poked around a teeny bit in both C# and Java, so I know what the generic structure of the languages are, but to be perfectly honest, Python has spoiled the fuck out of me. :(
  • 0
    @S-Homles-MD I figure I might've laughed too if I actually knew what you're talking about. :P
  • 0
    @S-Homles-MD Thank you for bothering with explaining. 😁
  • 1
    @Navigatr Learning new stuff is always intimidating, don't let that discourage you. Just think how awesome it will feel when you can say you've mastered it. :)

    When I first learned programming, it was in C, so memory management was just part of the job. There was no avoiding it. Back then it was very manual too: malloc() to allocate a chunk of memory and free() to release it again when you're done. As the programmer that was your responsibility, and forgetting to do that was called a memory leak. Even the question of whose responsibility it should be to free memory was controversial and there were different philosophies.

    Suffice it to say it was not very sustainable and memory leaks were one of the most common sort of bugs in C code (as they were harder to catch than more obvious failures because you often don't notice anything wrong right away).
  • 1
    So it was only natural that more modern languages would try to fix this glaring problem by introducing automatic memory management, and now most languages today, memory is barely a thought at all.

    But therein lies the problem: we've made programming languages *too* lazy, and now they are so high level you can't really get a feel for what is actually happening on a lower level.

    Mind you that's fine for a lot of situations, but being somewhat of an old school coder myself, I still feel comfortable when I'm able to control (or at least understand what is happening with) memory on a lower level.

    I don't think I'd go so far as to recommend it per se, or suggest that every programmer should understand low level memory management, but it is one of those things I'm grateful that I did manage to pick up.

    Though I've only just begun learning it, so far Rust has impressed me with a good balance of control, safety, and convenience, and I'm especially excited about multithreading in it.
  • 1
    @devios1 I didn't know that! :D The only thing I had picked up on was just the obvious excessive and unnecessary usage of memory, but I've had no idea exactly how that happened and I've honestly been worrying sometimes if I've managed to do that without knowing since I have no one to point out my errors.

    I'd love to pester you with questions, if it wasn't an annoying and kind of rude thing to do. :P Thank you though, I love learning how these things work!
  • 0
    @Navigatr Ask away, I don't mind at all. I can't promise to necessarily have an answer to everything, but I'm more than happy to share what I do know. :)
  • 0
    @devios1 Oh and yeah, I know that it's kind of baked into most languages these days, but I still feel like understanding those things would make me understand more of other things, being able to recognize patterns and why certain functions do things a certain way.
  • 0
    If you want to advance and learn new things, you need to go outside your comfort zone. Entrepreneurs are told this all the time. I feel it applies to a lot. I’m an introvert but pushing myself out of my comfort zone has always brought me good things. Go outside of your comfort zone and you may find new opportunities.
  • 2
    @devios1 The thing is that I don't think that that continued conversation would work that well in the comments here, but I don't want to be "that guy" and ask for your discord or something just to be annoying. 🤣

    @RichardH Yeah, no, I totally know this, it's just frustrating sometimes. I tend to learn best by challenging myself with a project and learning the things I need as I go, I'm just having a tough time knowing where to start and stuff.
  • 1
    @Navigatr I totally understand that. I’m the same way. I originally learned HTML, PHP, and MySQL by deciding I wanted to create a website with shopping cart from scratch. That was maybe 10 years ago. Ha!
Add Comment