Author: way0utwest

  • Fixing Impostor Syndrome

    I think that most of us feel like an impostor at some time in our lives.  We will get asked to do something we’ve never done, with others expressing confidence in us. We may tackle the task, or we may not. We may succeed or we may not In any of those cases, we may still feel like an impostor, someone that isn’t really qualified to do this thing. Many of us continue to feel this way in our careers, suffering from impostor’s syndrome.

    While I know that I’m good at my job, good at working with SQL Server and teaching others to do so, I still suffer from impostor syndrome at times. There are periods where my mind wonders if I’ve just gotten lucky and slipped through some evaluation process. Maybe my knowledge hasn’t been well tested. Will someone like my boss, or their boss, question my skills at some point and get rid of me? Will I be able to find another job if that happens? Can I really compete with others out there? This isn’t a constant or regular feeling, but I do experience it at times.

    I work with technology, helping customers better manage their database software. However, I also work in marketing, which is a completely different kind of job. Someone in my company posted an article about impostor syndrome for marketing, which I found fascinating. This could be written for technologists or, perhaps, any other profession. Read through it and think about a few things that I saw in the article.

    If you feel you don’t have the knowledge you need, you’re not alone. I think that’s very true in technology, where it feels that the pace of change from vendors, from peers, and what you might read in the media (including here at SQL Server Central) can make anyone feel as if they don’t know as much as others. I do try to acknowledge to myself that others feel as I though. It’s slightly comforting, but not a lot. Especially when I converse with some amazing experts. Discussing execution plans with Grant or T-SQL with Jeff or HA with Allan can cause me to question my knowledge and success.

    The second thing to think about is how poor the state of the industry can be. Whether this is the skills of others or the architecture of software, systems, or databases. How often have you seen software that’s been purchased or deployed and you question the decisions that got it to this state. Are you amazed at how many problems you see? Do you start to question the skills of others? I know at SQL Server Central we try to help others, but I can also be amazed at the lack of knowledge out there about what I’d consider to be simple topics. At the same time, I recognize others may be in a different place in their journey. Having empathy and compassion keep me answering questions. The need to keep answering them reminds me that I do know quite a few things.

    Lastly, education helps. I constantly experiment and build demos of different things. Often these are learning experiments. I don’t know that I become an expert in many of them, but learning more about how something works, or increasing the depth of knowledge in some area I’ve worked help me to build confidence to tackle the challenges I face (or my customers face).

    The article notes that marketing is an imprecise science. I think software can be that way as well, despite the growing number of “engineers” in our industry. Like marketing, there are no shortage of people who think they know it all, or use boisterous, blustery, loud discussion to convince others that they do. Even hen their choices or design might be suspect or perhaps their approach is outdated. One of the tenets of DevOps is that we continuously learn and experiment. I try to apply that to my own knowledge, and find it can help me feel like less of an impostor some days.

    Not all, but there’s always tomorrow, and I usually find that these feelings pass with time, especially when I apply myself and continue to grown and learn.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher, Spotify, or iTunes.

  • Daily Coping 9 Sep 2022

    Today’s coping tip is to let go of self-criticism and speak to yourself kindly.

    This tip follows on nicely from yesterday’s tip, just the other side of that one. I wanted to criticize myself recently for not having a bit more content prepped before my vacation. I was gone for 8 days, and while I had content scheduled for the time away, and for a day after I returned, I didn’t have any beyond that, which puts me in a bit of a crunch.

    My career at SQL Server Central is running the site like a newspaper, which means things scheduled out a week or two in advance. Trying to pull content together a day or two before it’s needed is hard. It is also very stressful. I returned from vacation with 2 days of things, but not 4 or more, which meant that I needed to do some editing for articles and some writing for editorials.

    Some weeks editorials flow and I can write 3, 4 or more. Others I struggle to produce one. I returned from vacation with 3 days to write an editorial or two (hopefully more) and relieve the stress.

    I started to chastise myself for not having 1 or 2 more prepared for the next week and then stopped. That wasn’t helpful, and instead I decided to tell myself that I’ll come up with something interesting to say and just set aside some time to start writing.

    I started to add a daily coping tip to the SQL Server Central newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

  • Daily Coping 8 Sep 2022

    Today’s tip is to notice the things you do well, however small.

    I think I have a lot of room for improvement, and it’s easy to self-criticize and find things that I ought to do better. As my wife would say, don’t should on yourself, and I try to follow this advice.

    I do quite a few things well, some of which aren’t big, but they are helpful to others. I work very hard to meet deadlines, which means I also work to not overcommit myself. I practice my presentations a number of times to ensure I can deliver them smoothly and audiences enjoy the talk while learning something. I try watch for places that I can help others, both inside Redgate and in the community, looking to provide information that can clarify how some bit of technology works, and including references where possible.

    I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

  • Replacing NULLs in a Left Join–#SQLNewBlogger

    I saw someone ask a question on how to replace NULL in a left join and decided to write a post. I realized this is one of those simple things that people new to SQL might not get.

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers. Here are some hints to get started.

    A Left Join Example

    Let’s create a table of customers and orders with a few values in each. This is common, where we have customers that we might add as prospects in some CRM type system. Then we link orders to customers.

    Use this code:

    DROP TABLE IF EXISTS dbo.Customer
    GO
    CREATE TABLE dbo.Customer
    ( CustomerID INT NOT NULL IDENTITY(1,1) CONSTRAINT CustomerPK PRIMARY KEY
    , CustomerName VARCHAR(20)
    )
    GO
    INSERT dbo.Customer (CustomerName)
    VALUES
       ('Joe'),
       ('Bob'),
       ('Sally'),
       ('Amy')
    GO
    DROP TABLE IF EXISTS dbo.OrderHeader
    GO
    CREATE TABLE dbo.OrderHeader
    ( OrderID INT NOT NULL IDENTITY(1,1) CONSTRAINT OrderHeaderPK PRIMARY KEY
    , CustomerID INT
    , OrderNote VARCHAR(100)
    )
    GO
    INSERT dbo.OrderHeader (CustomerID, OrderNote)
    VALUES
       (1, 'Initial Order'),
       (1, 'Re-order'),
       (3, 'Initial Order')
    GO

    Potentially, we have customers without orders. If we use an inner join, we only see customers with orders. Using the left join below, we see all customers with their corresponding orders.

    SELECT
       c.CustomerID
    , c.CustomerName
    , oh.OrderID
    , oh.OrderNote
    FROM
       dbo.Customer AS c
       LEFT JOIN dbo.OrderHeader AS oh
         ON oh.CustomerID = c.CustomerID;
    GO

    I see these results:

    2022-09-02 14_00_08-SQLQuery6.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (58))_ - Microsoft SQL Server

    This works, but really, I’d like to clean up the results to show something better.

    Looking for NULLs

    I can use a couple of functions to look for a NULL value in my results. Both ISNULL and COALESCE can help here. ISNULL is for a single expression and replaces NULL with value, while COALESCE works by returning the first non-NULL expression. I’ll use ISNULL here and in another post look at COALESCE.

    Here’s a better query that replaces one value with a NA and another with a blank.

    SELECT
       c.CustomerID
    , c.CustomerName
    , ISNULL(oh.OrderID, 0) AS OrderID
    , ISNULL(oh.OrderNote, 'No orders placed') AS OrderNote
    FROM
       dbo.Customer AS c
       LEFT JOIN dbo.OrderHeader AS oh
         ON oh.CustomerID = c.CustomerID;
    GO

    Here are the results. Note that I return a 0 for the OrderID. This is because the result set is a numeric, and I need these types to match.

    2022-09-02 14_04_37-SQLQuery6.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (58))_ - Microsoft SQL Server

    I could also return a string if I cast all OrderIDs to strings, as shown below.

    SELECT
       c.CustomerID
    , c.CustomerName
    , ISNULL(CAST(oh.OrderID AS VARCHAR(20)), 'N/A') AS OrderID
    , ISNULL(oh.OrderNote, 'No orders placed') AS OrderNote
    FROM
       dbo.Customer AS c
       LEFT JOIN dbo.OrderHeader AS oh
         ON oh.CustomerID = c.CustomerID;
    GO

    This produces these results.

    2022-09-02 14_05_29-SQLQuery6.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (58))_ - Microsoft SQL Server

    Both cases clean up the NULL values with something that makes more sense to a person looking at the data in a report.

    SQLNewBlogger

    This was a post inspired by a question I saw. This is how I’d solve the issue, and decided to share that knowledge more widely, both to help others and also provide an example of where I might have a hiring manager ask me about this from noticing my blog.

    This post took about 15 minutes to write. You could easily do this on your blog.