Get initials from name input by user
The compiler doubles as a code-analysis tool

Compiling your file like: gcc usename.c -Wall -pedantic Warns you of a bad practice in your code:

usename.c:12:5: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
     fgets(userName, NAME_LEN, stdin);


You should use the return value to check if input reading happened correctly.

Small helper function to increase readibility

The line   

userInitials[++pos] = userName[i] - ('a' - 'A');


is not so immediate to understand, I suggest writing a tiny function:

char to_uppercase(char letter) {
    return letter - ('a' - 'A');
}


and calling it like:

 userInitials[++pos] = to_uppercase(userName[i]);


The C99 Standard and variable scope

All major C compiler support C99, I suggest using the appropriate flag to enable it and write:

for(int i = 0; userName[i] != '\n' &amp;&amp; userName[i] != '\0'; i++)


to shorten the scope of i.

Excellent parametrization

You defined a constant for NAME_LEN and named it meanigfully instead of sprinkling a random number all over your code, excellent!

For further improvement I suggest using a 

static const int NAME_LEN = 80 + 1


For reasons discussed here.