473,769 Members | 2,143 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

A Pythonic Way to Measure and Improve Your Programming Skills?

(inspired by a thread on the psf-members list about Python certification)

Those who know me know I am no fan of the programmer certification industry
and I agree that your typical certificate arrangement, e.g. to show HR to get
that box checked in your candidate file, so a company can skip responsibility
in vetting a candidate, is un-Pythonic. However, I do think we need a good
answer to the engineering manager or team leader who asks, "how do I know this
person knows Python?", and to the candidate who thinks, "I believe I'm good at
Python but am I as good as I think?".

The first case primarily cares about the reputation of the testing facility
within the industry, so that if they choose wrong, they are absolved of blame.
The latter two are often honestly looking for some guidance on bringing good
people in-house or to step-up their programming skills.

As Python use spreads, it becomes more important for the community to provide
benchmarks for measuring skill levels, to avoid Python being relegated to the,
respectfully, lightweight programmer category e.g. PHP or perhaps Ruby on
Rails (not Ruby the language).

Prior to PyCon I'd been thinking about some kind of campaign, service or
documents, that I call "So you think you know Python...". My initial idea was
for use by Python programmers, who are honest with themselves, to have a way
to measure their knowledge. We all run into or are programmers who think they
are hot-stuff, especially those of us who work solo as many in our community
do, but when put side-by-side against others, fall a bit short. PyCon can
have that effect, with so many smart people in a small area. ;-) But the
objective isn't to denegrate these programmers but to provide a measuring
stick, along with an educational roadmap, so they can make wise choices.

The rapid growth in use of Python is going to lead to a shortage in Python
programmers, unless we manage the supply side as well. The manager wanting to
find and hire good Python programmers is not an adversary seeking to use
certificates to commoditize our community, but an ally in helping us get
industry respect and career opportunities using our favorite language. We
need to behind what he asks for to see what he needs.

I've been carefully watching Crunchy, about which a talk was given at PyCon,
for writing tutorials that, with its "doctests" feature, could be used to
propose tests that pass and require a candidate to write an acceptable
program. This week I was prototyping an "rst2crunch y" tool, that let's you
write Crunchy scripts in reStructured Text, rather than HTML. Crunchy needs
more features, such as a user login facility and measurement facilities to
store test submissions for review by experienced Python programmers after they
pass. From what I hear on the edu-sig list, André Roberge and Johannes
Woolard are tackling these but could use more help. Johannes in particular
was a student for Google's Summer of Code 2006 and I believe is looking for
sponsorship for 2007.

But perhaps Crunchy is not the ready answer in this case, so I'm looking for
suggestions.

With regard to how a manager can know a person is good at Python, besides
looking at their portfolio of work, we could stake out conceptual areas of the
language or libraries about which a programmer should be conversant. This
might be a document, with example questions but carefully focused on what lies
behind those questions, so an interviewer can come up with his own questions
and avoid rote memorization. This conceptual map could also eventually form
the basis of advanced-placement in schools that goes beyond those terrible
Visual BASIC test questions. And for the Python programmer who wonders if his
knowledge is broad enough and wants to improve him or herself, the conceptual
map could have links/recommendations to training materials on specific topics.

Join me on the advocacy list and let's discuss this further.

You can join at:
http://mail.python.org/mailman/listinfo/advocacy

Jeff Rush
Python Advocacy Coordinator
Mar 9 '07 #1
0 1279

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
958
by: Steven D'Aprano | last post by:
It has been suggested to me off-list that my response(s) to Bill Mill in the "is this pythonic" thread were rude and hostile. If that is what people saw in my posts, then I apologise, because that wasn't my intention. In fact, my comments weren't especially even aimed at Bill -- they were intended as more general comments about finding a balance between dismissing questions by pointing to the Python references, and guiding the
3
3031
by: Anand | last post by:
Hi Iam keen interested to improve my skills in c programming. Now Iam familiar with all the syntax and concepts. My main idea is to know how entire c compiler behaves in all circumstances(i.e for all kind of programs). Also I want the "Tips and Tracks" of C. With this current knowledge how can I improve my skills. Is there any speical book to develop these attitudes? Can anyone help me ! Regards, Anand.
4
1799
by: Carl J. Van Arsdall | last post by:
It seems the more I come to learn about Python as a langauge and the way its used I've come across several discussions where people discuss how to do things using an OO model and then how to design software in a more "Pythonic" way. My question is, should we as python developers be trying to write code that follows more of a python standard or should we try to spend our efforts to stick to a more traditional OO model? For example, in...
9
2109
by: uttre | last post by:
hai to all, i did some programming in Lisp (6 months) & next i want to learn C++. i searched all the archives of "comp.lang.c++" & ACCU too & decided "C++ Primer" 3/e as my text book. (unfortunatley i tried but Accelerated C++ is not available in India, not even "C++ Primer 4/e). anyway, my question: I want to start doing math only for learning the following skills:
0
1068
by: kirby.urner | last post by:
Greetings Pythoneers: Per usual, I've been walking this talk in Portland "Open Source Capital" Oregon revolving around Python as a math learning language, viewing math as an extensible type system (like Python) with such well-known inhabitants as Vector, Polynomial, Polyhedron and so on. Whereas I've been adjunct faculty by day, piggy backing on Portland State's bookkeeping, our Saturday Academy is in the midst of transitioning to an...
16
2531
by: Andy Dingley | last post by:
I'm trying to write rot13, but to do it in a better and more Pythonic style than I'm currrently using. What would you reckon to the following pretty ugly thing? How would you improve it? In particular, I don't like the way a three-way selection is done by nesting two binary selections. Also I dislike stating the same algorithm twice, but can't see how to parameterise them neatly. Yes, I know of .encode() and .translate(). No, I...
11
1735
by: alf | last post by:
two ways of achieving the same effect l+= or l.append(n)
1
1288
by: bluefox | last post by:
HI, I'm rather a newbie in Java, anyone knows where i can help around in the net communities to improve my skills? thanks...
8
1455
by: tony | last post by:
Hi, now I've known the basics about C++. What I can do is pretty limited. I've known something in Java: 1.Networking(Socket, RMI, Servlet) 2.Database(JDBC) 3.GUI (Java Swing) 4.and some others APIs... I'm wondering how can I do all of the above in C++. And I've heard that reading source codes can help one improve its programming skills, but I don't know how to
0
9579
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10208
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10038
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9857
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8867
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5294
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5444
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3558
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2812
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.