I'm a self taught programmer without a computer science background but some development experience both as an in house developer and a freelancer. Recently I've been doing a lot of work in Python (some standalone and some Web stuff with Django) and I'm looking for ways to specialise more in Python/ Django development and particularly to fill any knowledge gaps likely to have crept in through not having a CS background.
Has anyone out there been in a similar position and if so what resources have you found valuable to "fill the CS gap" and generally ensure credibility as a developer without a CS background?
Take a problem and break it down to what you think are it's smallest components. Now break it down even more beyond what you think and once you get there, break it down way beyond that.
In your case, since you know Python, the question you must ask next is "how does the interpreter process my Python code?" In short, learn how the Python interpreter works. After that, figure out, how the Python interpreter was made by a compiler and so forth. Inside each of those items are treasure troves of algorithms, ideas, theory, etc that would fill years of curriculum at a standard university.
If there's a hard part that you don't understand, don't ignore it or facde it into an API, study it and see what it does and by the time your done, you'll probably have enough knowledge to create your own interpreter for your own computer language.
(Note: This is only one idea. There's many ways to approach this problem.)