The title itself is a recipe for disaster. Also this is a semi rant.

Yesterday I was informed that I will have the honour to implement the core functionality - which is an interface layer to use the driver of a very expensive hardware shit - of the software I’ve been working on as a frontend dev.

There are two possibilities for the language: C++ or C#. The one that was proposed/imposed is C#, which I know nothing of, while at least I have some hobbyist experience with C++; when asked if I could take some time to familiarise myself with C# I was basically laughed in the face, saying I will learn on the field and at least some of them have some experience with it.

Should I insist to go with C++, or is that an even worse idea in an already fucked up situation?

  • Lmaydev@programming.dev
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    1 year ago

    C# isn’t too complicated tbh. A lot of things are done for you i.e. memory management.

    Honestly if you’re not a cpp pro that seems like it would go worse as there are so many ways to shoot yourself in the foot.

    You should be able to learn c# as you go.

    ChatGPT is a great resource for this. If you paste in a snippet and ask it to explain you’ll get a decent answer with enough context for follow up questions or things to Google.

    You can also ask it to explain how to do things. As long as it’s pretty general.

    Getting paid to learn is always great in my experience.

  • MagicShel@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    This doesn’t feel like a disaster to me at all. This is an opportunity to grow and learn new things and new ways of doing things. It looks like your environment is very supportive and understanding that it will take some time and effort to get up to speed and are offering mentoring. And businesses often have valid technical or non-technical reasons for using a particular software stack - for example C# developers are likely easier to find than C++ developers which makes hiring easier in the future.

    My suggestion is to take some deep breaths reset your perspective. Yes, sometimes it’s not fun to push outside of your comfort zone, and it sounds like that is creating a lot of anxiety for you, but you’ll do fine. This is very similar to how I got started professionally programming 25 years ago.

  • planish@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    C++ is a worse idea, it is not a good web backend language.

    C# is pretty easy. As long as your boss doesn’t expect you to magically already be good at the thing they refused to allocate time for you to train in, you probably can just start trying to glue bits of C# web API examples together as your first project.

  • amio@kbin.social
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    Other team members already being familiar with the other alternative makes it a better bet already. Besides, C# is fairly nice, it’s arguably much easier to learn than C++, C# and similarly (or more) high-level languages have been focused more than C++ in a lot of education, etc.

  • JackbyDev@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    What do you mean? Your team says they’re going to help you learn as you go. I think you’ll be fine. Be proactive when asking questions, you’ll be fine! Just set expectations. Make sure your manager knows you don’t know this language and tell them you can learn as you go with assistance but you’ll need some time before you’re very productive.

  • kurosawaa@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    Have you used Java before? It’s not a big leap from Java to C#, most of the concepts are the same. At least C# is a memory safe language, although I’m not sure if you’re unfamiliar with the code base and languages if it really makes a difference which language you use here. Hopefully your coworkers can help hold your hand a bit here, this situation sucks.

  • FlumPHP@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    What language are you familiar with? Switching between the C-style OOP languages is honestly pretty straightforward.

  • jadero@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    If you’ve been working the front end, you know what the backend is supposed to provide, so you might have been picked because see you as a domain expert. Don’t be surprised if you end up acting as a leader in that regard.

    And C# isn’t that hard. I earned my living with Visual Basic, Access, and VBA until thrown into a C# job. Other than the damned braces and semicolons, it wasn’t that big a deal.

  • DieguiTux8623@feddit.it
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Tell me you are employed by an Italian IT company without telling me you are employed by an Italian IT company. While reading “I will learn on the field” it reminded me of my previous employer who was very fond of this “learning on the job” approach. To the clients’ detriment who had their expensive software developed by inexperienced programmers.

  • heartlessevil@lemmy.one
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    It’s not a fucked up situation. I’m a Ruby developer and I got hired in a Scala shop with no experience. It took just a couple weeks to get up to speed and everyone was understanding.

    Since you know programming principles already, the difference between languages is mostly in their APIs. But even experienced developers spend half their time reading docs about APIs. It’s nothing out of the ordinary.

  • MalReynolds@slrpnk.net
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    1 year ago

    Depending on the (API) complexity and speed requirements it might be useful to start by implementing in plain old C. Easy enough to add on class structures later (i.e. transcode to either of those options) if needed. Also consider Rust, as long as you’re going to learn something, it’d be nice if it was current and forward facing.

  • 0x01@lemmy.ml
    link
    fedilink
    arrow-up
    0
    arrow-down
    4
    ·
    1 year ago

    You have copilot? You’ll be fine if so, just throw down comments for what you want it to do and tweak it when it doesn’t compile.

    • heartlessevil@lemmy.one
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      Please do not follow this advice. For one, copilot is terrible in general. For two, using it without being able to vet the codes correctness is a recipe for disaster.