Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Resources for a self taught developer to "fill the CS gap"?
9 points by talkingquickly on Aug 23, 2011 | hide | past | favorite | 5 comments
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?




If your looking specifically for "CS" then you need to start thinking of the problem differently than Python/Dijango.

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.)


I would look at the curriculum of most computer science programs.. you'll see subjects like discrete mathematics, computational theory, statistics, etc.

I would say however, if you want to specialize more in Python/Django you might want to look into a software engineering track as computer science tends to be much more theoretical in nature.


Do a lot of reading and work on projects which stretch you. This doesn't depend on whether you have a CS degree - the field is fairly equal-opportunity that way.

Algo and math is probably where you will be weak compared to someone who completed a formal CS program. How about adding Skiena's "Algorithm Design Manual" to your reading list?


http://ocw.mit.edu/courses/electrical-engineering-and-comput...

A broad answer to a broad question... What you will want to investigate depends on what you are trying to do.


A better title might be "Ask HN: Resources for developers without a computer science background to fill skill gaps" I can't change it with the Edit option unfortunately.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: