In a nutshell: We programmers are spoiled with fast feedback loops while marketing, promotion, branding need a lot more time to bring us results.
First of all many people in the tech community talk about "marketing" while the are primarily talk about promotion or branding. (See also marketing vs. promotion.)
Regardless it is not easy.
As a programmer you have a compiler that gives you almost immediate feedback on the validity of your code. You can write tests to verify that the important parts of your application work as planned. You can set up a Continuous Integration (CI) system so even if you forget to run all the tests the system will do it for you.
The rules in the compiler are fixed and usually well documented. So you can learn them and once you learnt them you can keep using them until you change your environment.
All this means that you have a very fast feedback, you can improve very quickly and you can see progress all the time.
Marketing and promotion
The rules are unclear and they are changing all the time. Other people do their own marketing/promotional work that impacts your results. The feedback can only be measured in months by which time it is unclear what is the connection between action and results.
Not only that, but in many cases the results can be only measure of the cumulative work.
Programming vs. Marketing
In programming a single character change can have a huge impact on your code (fixing or breaking something). You can make that change, run your CI system and get the feedback within minutes or hours.
In marketing and promotion you need to repeatedly do something for several weeks or months till you can start to see the impact.
So in this line of work, or better yet, in this part of your work, you need to accept that in order to see results you need to do it consistently for a long period of time.
Published on 2020-07-03 by Gabor Szabo