Hi,

My question certainly stems from the imposter syndrome that I am living right now for no good reason, but when looking to resolve some issues for embedded C problems, I come across a lot of post from people that have a deep understanding of the language and how a mcu works at machine code level.

When I read these posts, I do understand what the author is saying, but it really makes me feel like I should know more about what’s happening under the hood.

So my question is this : how do you rate yourself in your most used language? Do you understand the subtilities and the nuance of your language?

I know this doesn’t necessarily makes me a bad firmware dev, but damn does it makes me feel like it when I read these posts.

I get that this is a subjective question without any good responses, but I’d be interested in hearing about different experiences in the hope of reducing my imposter syndrome.

Thanks

  • lohky@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    12 hours ago

    8/10 Server-side JavaScript

    7/10 Ampscript

    3/10 SQL

    There is something about SQL that I can’t get to click with me. I can run basic queries and aggregation, but I can never get nested queries to work right.

    All of these also assume I have access to documentation. Without documentation, all of them are like a 2. 🤷

    • houseofleft@slrpnk.net
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 hour ago

      I have advice that you didn’t ask for at all!

      SQL’s declarative ordering annoys me too. In most languages you order things based on when you want them to happen, SQL doesn’t work like that- you need to order query dyntax based on where that bit goes according to the rules of SQL. It’s meant to aid readability, some people like it a lot,but for me it’s just a bunch of extra rules to remember.

      Anyway, for nested expressions, I think CTEs make stuff a lot easier, and SQL query optimisers mean you probably shouldn’t have to worry about performance.

      I.e. instead of:

      SELECT
        one.col_a,
        two.col_b
      FROM one
      LEFT JOIN
          (SELECT * FROM somewhere WHERE something) as two
          ON one.x = two.x
      

      you can do this:

      WITH two as (
           SELECT * FROM somewhere
           WHERE something
      )
      
      SELECT
        one.col_a,
        two.col_b
      FROM one
      LEFT JOIN two
      ON one.x = two.x
      

      Especially when things are a little gnarly with lots of nested CTEs, this style makes stuff a tonne easier to reason with.

      • lohky@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        5 hours ago

        Wrap the Ampscript in an ssjs try/catch block and debug all your shit on a cloudpage. ;)

        Everyone that works in SFMC for an extended period of time hates SFMC. Or at least has a love hate relationship with it. I think Salesforce is the most worthless company in existence and John Mulaney’s anti-SF rant at Dreamforce brought a little light to my life.

        I very rarely actually use Ampscript anymore. Almost everything is done in ssjs in my instance. Thank fuck I’m not consulting anymore and don’t have to deal with other company’s stuff.