the mid level slump

I'm currently reading The Practice of System and Network Administration. So far it's a good book, but unfortunately I'm already familiar with a lot of the concepts. During the chapter on Security Policies, I thought of something: I know what a Security Policy is, but I've never actually written one. That's when I got the idea of a mid-level slump. I consider the following symptoms of a mid-level slump:

I'll illustrate the symptoms in an example (key points are italicized):

During work today, there was a short discussion on training classes. I remembered reading about a Python Bootcamp and thought it would be fun to go. I've been scripting with Python for two years. I've written some really cool stuff on my own and I'm able to understand and hack other projects to fit my needs. Going through the syllabus, I realized if I went, I would leave learning absolutely nothing. Taking into consideration the depth of what would actually be covered in 5 days, I was able to mentally check off every item. This made the class seem very disappointing and I decided to not take it.

But it's Python. It's a huge language. There're several things either listed on the syllabus or not that I could spend months (not days) learning. The problem is, I've just never spent time with those items.

I consider myself in a mid-level slump with Python.

Now that the problem has been acknowledged, it's time to solve it. I've thought of a couple ways to do this:

Review the skill and narrow the scope Flipping through Beginning Python, I can see a few topics I'd like to have more expertise in: XML Processing, GUI's, and mod_python. But do I actually need to learn these?

The main reason I use Python is for System Administration scripting. I tend to use the command line as much as possible -- especially with sysadmin-type tasks -- therefore, it's safe to say GUI's would be a waste of time. mod_python is used with almost all types of Python web programming, but I already find PHP adequate for my web needs. Finally, there's XML Processing. This has to do with parsing text and information -- now that's something that I could benefit from.

So I've narrowed three topics down to one single topic. This allows me to focus more time on XML Processing, go more in-depth with it, and since I can use it with System Administration, it benefits me more.

Jump to the advanced documentation Maybe all I need is just a little boost. This is similar to moving the average student to the advanced level classes in an adapt-or-die type scenario. Think you know MySQL? Go read Pro MySQL and get back to me.

Actually get hands-on experience I can read all day long about Python, but that knowledge will never be meaningful unless I apply it. When I started learning Python, I read two beginner books before I ever wrote a single line of code. When I finally fired up a terminal session, all I could manage was:

print "Hello, World!\n"

It was like learning all over again.

Secondly, hands-on experience helps find all those undocumented caveats, tips, and tricks. How would I have ever known Python's tarfile module reads the entire file into memory unless people hadn't been able to access the fileserver due to all system resources being preoccupied (True story).

Experience is the definitely best way to get out of a mid-level slump. The day you can honestly retire a skill is when you're absolutely sure you've done it all -- and that's nearly impossible to do. For example, if you think you're a good web developer, post in a forum offering help. There's a very good chance someone will contact you with a project you've never thought of before.

Implementing the above ideas should help break the mid-level slump. It's a nasty place to be, but once you're out, making it to Advanced-level is all the more easier. Also, staying at mid-level is probably the worst thing you can do for your career. After a while, the repetition and monotony will wear you down to absolute boredom. Personally, I'd rather do a complete career change and start back at zero than be stuck in mid-level.

Tags: , , , ,