A bachelors' in computer science doesn't make you a good computer scientist or programmer any more than a bachelors' in physics makes you qualified to call yourself a physicist.
In the hard sciences you're expected to take your masters while assisting more experienced scientists in their research. That's where you learn the actual skills you need. Your bachelors' is just the background knowledge you need so you can start learning at the feet of scientists more experienced than you. Your PhD is where they hopefully let you loose to do some research or work on your own. That's the traditional apprentice-journeyman-master approach to education, and it's worked for centuries.
It's understandable that a lot of students that take up CS have to cut their education short by skipping the last two steps of the masters, doctorate process because the opportunity cost (4-6 years of wages) is just too great. Education ain't cheap, unless you're on a scholarship, and they might have families to feed. So they have to learn on the job, and hopefully find one with colleagues or a process that would give them a chance to learn the skills they might have gotten through formal education.
Rather than bemoan the inadequate experience or skills of a freshly minted CS bachelor's degree holder, it would be more productive for the more experienced developers to guide and train them, impress on them the value of continuous learning while at the same time showing compassion and patience as they get their first taste of real-world software development.
Nobody gets to be an master before first being an apprentice.