An Important Question When Moving into Unknown Programming Territory
So you’re about to undertake a project that you have little experience with (whether it be the language) or little knowledge about at all. The first question to ask oneself is “What level do I need to be working at?”
Now, let’s say I want to write a web application, and I choose to use python-django. We start with a problem, say, ‘how do I create a user-login interface (i.e. a standard across websites - e-mail activation, etc). First, you should consider what levels are available to you. In this case, the levels (from top down) are as follows:
Django-App (Pre-Built)
Django-App (customized with Python)
Combingin Pre-Built Python Libraries That Each Do A Significant Piece (i.e. loggin in to website, storing a session)
Develop Using much smaller Python Modules that Each Do A Smaller Piece (handle an http request, parse html)
… (more levels)
Using C/C++ To Build Python modules and work with those
(lower than this is absurd for common web stuff usually!)
Often, developers can strangle themselves because they start working at too low of a level, instead of searching for higher-level solutions that will either work out of the box, or work with a small bit of customization (my preferred way). While more control is great - time is almost always a factor (plus if you use django, then you probably subscribe to the DRY principle (Don’t Repeat Yourself), and do this anyway!)
So before you start your next project, do your research (usually in the form of multiple google searches) and make sure you are operating at the correct level.