Questions on learning curve

2 views
Skip to first unread message

Danij...@gmail.com

unread,
Jun 19, 2007, 1:51:25 AM6/19/07
to Django users
Hello everyone,

A few days ago I got an idea to build an online turnbased game (like
thecrims.com) for example.
I am pretty much a novice when it comes to PHP so I started to look at
Ruby on rails to maybe make my development easier and faster.
Stopped with Rails and found Django.

Now, maybe a stupid question but for how long does it take to really
understand Django/Python and start actually creating some code for the
game?

Do I have to read XXX amount of Python books to be able to be
productive ?

What is really bugging me is that everything that has to do with
computers/script/web/programming takes a long time. I am more of the
hands on type of guy and get easy frustrated.
Even though its fun from time to time to built and create something,
but what is bothering me is the time it takes to develop something.

A house can be built in 2 months, but a advanced script with design
etc can take up to 1 year...something is wrong here =)

So can someone let me know what I should do to be able to create such
a game?

Cheers to all

Kenneth Gonsalves

unread,
Jun 19, 2007, 2:03:22 AM6/19/07
to django...@googlegroups.com

On 19-Jun-07, at 11:21 AM, Danij...@gmail.com wrote:

> Now, maybe a stupid question but for how long does it take to really
> understand Django/Python and start actually creating some code for the
> game?

from what i see on the IRC channel, you can pretty much start
producing your game by day 3

>
> Do I have to read XXX amount of Python books to be able to be
> productive ?

not at the outset - you can do the django tutorial and the python
tutorial, both together would take you about three days. Then you can
be productive - but to continue to be productive you will have to
keep working on your python continously.

--

regards
kg
http://lawgon.livejournal.com
http://nrcfosshelpline.in/web/


Kelvin Nicholson

unread,
Jun 19, 2007, 2:11:36 AM6/19/07
to django...@googlegroups.com

> Now, maybe a stupid question but for how long does it take to really
> understand Django/Python and start actually creating some code for the
> game?

There are only parts of python you really need to learn to use Django,
and other parts can be learned later. I read the book Beginning Python
-- From Novice to Professional in about three days, then took about
three days to go through the Django tutorial and the Django book. After
that my first project was redoing my blog, which I felt totally
comfortable with.

I haven't hit any limitations since then.

My .02c,

Kelvin


Brian Luft

unread,
Jun 19, 2007, 3:35:06 PM6/19/07
to Django users
In my opinion, claims of learning curve time are somewhere between
mildly and wildly exaggerated. In my opinion the actual learning
curve will depend on a number of factors including but not limited to:

* Knowledge of Python
* Familiarity with web application development
* General software engineering knowledge
* Understanding of RDBMS systems
* Familiarity with Object-Relational Mapping (OR/M) systems
* Understanding of Model-View-Controller (MVC) concepts
* Desire to understand the underlying principles and specifics of the
framework.
* Willingness to learn new concepts

Let me briefly clarify my points here. Python is generally considered
to be easy to learn and work with but you will probably have the most
success if you understand some of the higher-level features of the
language and how best to leverage them. Any application framework
(web, desktop, or otherwise) aims to abstract away the lower-level
functionality and turn repetitive tasks into boilerplate code.
Generally speaking, the more serious of an application you are
attempting to create, the more important it is that you understand the
underlying principles and what tradeoffs are incurred by use of the
framework.

Some people are perfectly happy to live "in ignorance" and just
concentrate on relying on sample applications and tutorials to build
off of. This is perfectly OK - you want to enjoy the process right?
Chances are that the end result will suffer when evaluated from an
architectural standpoint: security, stability, flexibility, and
robustness. In many situations this can be acceptable. Also, a
framework is not always the panacea that developers initially assume
it will be. A developer picks up a framework and thinks "this will
make development easier since a lot of functionality I need is already
provided for me". However, depending on the complexity or
requirements of your application you may find that some aspects get in
the way of what you are trying to accomplish. Design decisions within
the framework may hamstring certain functionality you are after. The
framework may be geared toward many aspects of your development needs
but may fall short in others. When met with these obstacles you need
to decide on a strategy. Are you a framework purist - do you want
everything to be coded consistently within the paradigm of the
framework? Are you willing to hack the framework with your own
customizations? Are you OK with developing certain portions of your
application without using the facilities of the framework? Whatever
you decide will take some committment in terms of research and work.

As for your analogy about building a house, there is also an implied
expertise and I think you are taking for granted all that goes into
creating a well-built house. Just like a software application there
are internal systems that need planning and coordination. To say that
one could go out and build a house in two months is a big assumption.
I'm not a contractor but I would be proud just get up 4 walls and a
sink. My father worked at a lumber yard and hardware store for a
period and at one point we decided to add on a bedroom. Even though
my dad spoke with contractors all the time and already had the
knowledge of what specific materials to use, it was still an all-
summer project. Have you ever hung drywall on a ceiling? Ever laid
tile or carpet? My dad is a pretty smart guy but we still ended up
with things that were a half inch off here and there. You're talking
about putting something together with multiple rooms, plumbing
requirements, staircases, fireplaces, windows of all shapes and sizes,
custom architectural features, considerations in building materials
ranging from pipe thickness to wiring, meeting building codes, knowing
when to bring in materials... Anyone who can accomplish this in a two
month time span does so by relying on a tremendous amount of personal
experience and having made and learned from many, many mistakes in the
past. There is a reason that so many different types of contractors
exist: plumbers, electricians, drywall specialists, roofers, floor
specialists, etc. Each of those jobs requires a particular skill set
and knowledge. The moral of the story is you get what you pay for. If
you're looking to cut corners or go for the easy win then you're best
off lowering your expectations a bit.


Finally, when people say it takes X amount of time to get up to speed,
that is completely relative. You need to decide for yourself what a
unit of time represents. When people say a few days does that mean a
few full days or a few days of dedicating an hour or two of leisure
time after work? So for each "piece of the puzzle" that you need to
overcome I would plan on spending a few solid days or few weeks of
leisure time reading tutorials, surfing through the user
documentation, and lurking on user mailing lists. That does not mean
you can't be productive in the meantime, but I think you'll get the
most enjoyment when you have a comprehensive understanding of both the
technologies and concepts you are dealing with.

-Brian

Jeremy Dunck

unread,
Jun 19, 2007, 4:09:13 PM6/19/07
to django...@googlegroups.com
On 6/19/07, Brian Luft <luft...@gmail.com> wrote:
>
> In my opinion, claims of learning curve time are somewhere between
> mildly and wildly exaggerated. In my opinion the actual learning
> curve will depend on a number of factors including but not limited to:

You should make this a blog post and put it on Reddit. :)

mail....@gmail.com

unread,
Jun 19, 2007, 4:25:37 PM6/19/07
to Django users
Seconded... and to compound on the fallacious house-building
analogy...

Before you build anything, you have to have surveys done, blueprints
created, probably some ground clearance/prep, probably need to
negotiate utility hookups... all that stuff will take months before
the first worker swings a hammer.
And even when all the prep is done, all the materials are delivered
and nothing goes horribly awry (ha!), you still won't get much more
than the framework done in two months unless you've got a small army
working on it.


On Jun 19, 3:09 pm, "Jeremy Dunck" <jdu...@gmail.com> wrote:

tonys...@gmail.com

unread,
Jun 19, 2007, 5:04:27 PM6/19/07
to Django users
One stumbling block I think really adds to the learning curve for many
people is one's level of familiarity with command line operations and
server configurations.

On Jun 19, 1:51 am, "DanijelS...@gmail.com" <DanijelS...@gmail.com>
wrote:

Reply all
Reply to author
Forward
0 new messages