Is it counter-productive to admit obvious weaknesses when applying for a position?
Describe yourself accurately enough to let the program organizers decide if you will benefit from the course. In that sense, yes, you should admit your weaknesses, but it's indeed counterproductive to actually phrase things that way - you are the applicant; it's not your job to decide what is a significant weakness.

You obviously think you are ready for the course and would benefit - let the organizers know what your reasons are, and why you are enthusiastic. If you are applying on the strength of being a good software developer in general, including a link to some public code you've written might help.

(And if you are feeling self-conscious about not having an undergraduate CS degree, go and get something like Cormen et al.'s "Introduction to Algorithms" and go through it cover to cover. You will hit most of the things you would be expected to know cold.)