[Tutor] [Slightly OT] Inheritance, Polymorphism and Encapsulation

Stephen Nelson-Smith sanelson at gmail.com
Wed Sep 19 11:26:31 CEST 2007


On 9/19/07, Michael Langford <mlangford.cs03 at gtalumni.org> wrote:
> I do think this is a good question for getting a sense of where a
> person's understanding is.  I wonder how much this understanding is a
> pre-requistite for being a good developer... not too much I hope!
>
> A good developer is a very loaded term. :o)
>
> There are a lot of good programmers who are bad developers. A lot of being a
> good developer is getting things done that work well enough to supply
> whomever is downstream from you at work.

Agreed - we discussed this at work yesterday when designing the
interview tasks for our new recruits.  On this point, I feel I score
highly.

> It also has to do with several things such as source control
> tools, ticket tracking tools, testing, debugging, and deployment as well.

Right - which is  the sort of stuff a fresh-faced university student
will take time to get up to speed with,

> You will find yourself making more informed choices on things and debugging
> things a lot better the more of this technical programming stuff you pick
> up. A good compiler/interpreter book and a lot of experimentation will
> really open your eyes on a lot of this, as will just doing your job while
> constantly reading reading reading about what you are learning and doing
> things like talk with your co-workers at lunch about hiring tests, and
> participating in online discussion boards.

:o) Yes - this is exactly what I feel, and try to do.  I'm lucky that
I work with some brilliant people.  I wasn't hired as a developer -
I'm a sysadmin who can also program.  I've been seconded to the
development team, and am loving it, but quickly realising how much I
don't know!

> In addition you should try doing really hard things that break or come
> really close to breaking the tools you use. But not too hard, you have to be
> able to *do* them after all. Learning how VM's and interpreters and
> compilers work, then understanding the concepts behind why they work that
> way really helps give you a framework to hang an understanding of what's
> going on in a program. One way to get this knowledge is to start far in the
> past and work forward. Another is to dive deep into something from today.

Inspiring advice! :)

> I will say if you're already in the workforce and not headed back out to
> school, the onus will be on you to pick up more of this. Much of the
> conceptual stuff you won't hear at work, except occasionally overheard in a
> discussion assuming you already know it. You'll have to ask questions, and
> you'll have to read up on it afterwards, because often your co-workers won't
> have the whole picture either.

Right.  And I must spend more time here again.  Since leaving my last
job most of my programming has been in Ruby (and now PHP and SQL).  I
sort of fear that my head won't be able to hold it all at once, so
I've neglected my Python studies!

S.


More information about the Tutor mailing list