a view of the Marsh

...: Chatter by Year

2020

July

2016

October

2014

March

February

2013

September

July

June

March

February

January

2012

December

November

October

September

August

July

June

May

April

March

February

January

2011

November

October

July

June

May

April

March

February

January

2010

December

November

October

September

August

July

June

May

April

March

February

January

2009

December

November

October

September

August

July

June

May

April

March

February

January

2008

December

November

October

September

August

...: Chatter by Keyword

ASP.NET

Browsers

Business

Cascading Styles (CSS)

Charity Work

Community

Definitions

Design

Education

Ethics

Firefox

First Post

Hockey

I.T. Events

Internet Explorer

Junk mailer/poster

Life

Microsoft

MS Access

Music

Other sports

Printers

Programming

sci-fi

Software

Speaking/Presentations

SQL

Survey

Teaching

The Marsh

Tips & Tricks

Tools of Trade

U.S. Events

Visual Basic (VB.NET)

Web Design

World Events

Ziva

...: Marsh Chatter

A Definition: 3 Levels of Programming Knowledge

In my work with information technology, I see 3 levels of programming knowledge. Sure there might be some blurry lines amongst the levels and even many sub-levels in each, but these generalizations help me understand who someone is and how to work with them in business.

Triangle used as a methaphorI arrange the levels as an upside-down pyramid for 2 reasons; as you move down each level 1) there are less people in each role and 2) there is more "pressure or responsibility". An upside down pyramid is a good metaphor for this arrangement, in that if the first level people don't do their job the entire pyramid crashes. If the second level people don't do their job, only the third level people are affected.

So let's see what those levels are...

Third level - Get the Job Done

Best represented by the person who just wants to get a solution to their question - these people are everyday people using a computer. There are a lot of them. They don't want to know about the how or why... they just want it to work. These people are your family members, your co-workers in business, and your employers & customers. These people think second levelers are "Wizards".

Second level - Build and They Will Come

Best represented by most developers today. They are interested in and tasked with building the applications used by the third level. The second level people are interested in best case and speed for programs using the tools available to them (e.g. the how). These people may or may not have Computer Science (CS) degrees and in fact... many do not. They are people who have significant high level programming knowledge gained over time from work experience (OJT), reading books, or in programming courses. These people know they are not "Wizards".

First level - Beyond The Curtain

Best represented by the programmers who know the bits & bytes. They work at the deeper levels of programming and their work creates the tools used by the second level. They know the "why" of code. They have Computer Science (CS) degrees and probably more advanced architecture, operating systems, and other degrees - usually at the doctorate level. These people "are Wizards".

Where do I fit?

I am definitely a second level. My one experience of working with Assembler was enough to steer me in a different direction. Working with our higher level developer tools, I can create things and teach those at the second & third levels how to expand their knowledge and abilities. I primarily learn from the work of my peers at the second level and those at the first level.

Learning from Third Levelers?

People at the third level have a way of expanding my teaching abilities... the same way that children surprise adults. No, I am not calling those at the third level… children - in fact, those at higher levels usually "humble" those at lower levels. We may think we know more - but those around us… adjust our thinking!