I’m beginning to actively seek a job/internship/mentor as a (Python) developer. To be forthcoming, I’m outlining my ability here. I think I’m a good fit for some roles and not for others. I haven’t been able to talk shop with many developers and it’s hard to find metrics to measure yourself by in the coding world–mostly it seems like you just make something and get noticed for it.
I see a lot of jobs asking for “brilliant,” “amazing” developers. I’ve had my IQ professionally-assessed and I’m not embarrassed of it, but I don’t “own” brilliance. I’m smart, and I’m determined. I stick with problems. I’m not always brilliant, but I get it done.
General Programming
I can make things. I’ve made lots of CRUD apps. I’ve never moved sprites around the screen, but I can learn, quickly. I’ve done the first 50 Project Euler problems. My code is pretty clean. My app structure is probably not, unless required by frameworks. I like small, readable functions. My git skills are rudimentary. I love optimizing and clever code, but I’m not real familiar with “big O” and the like. My optimization is on a smaller, “common-sense and small improvements” scale. I haven’t done social integration, or worked with any 3rd-party APIs, but I think I’m already capable. I have to reference docs a lot. I don’t mind referencing docs. I’m a stickler for details. I can do FizzBuzz. I read programming blogs (love codinghorror, codingthewheel among others). I click virtually every Python link that makes HN. I read stackoverflow in my spare time for fun.
I currently code in a Linux environment, Vim (with very few mods) being my editor of choice.
Generally speaking, I’m no world-beater, but with less three months of full-time coding, I feel I’ll be a strong player in a web-app environment.
Here are some paragraphs being more specific:
Python
I’ve been coding in python for a few years now, however not in any real serious capacity. I’ve done a couple of trivial desktop applications using Tkinter and a couple of decently-sized web apps, mostly CRUD apps. I spent quite a while working on a port of an existing mess of disgusting code from PHP to Python, before I parted ways with the company. I’m no prodigy, and I have to reference docs a lot, but more exposure will definitely fix that. I can get things done, I just might take a while. I’ve completed the first 50 (and a handful of other) Project Euler problems in Python. For many of them I’ve done several versions, delving into optimization of my algorithms. I like to think I’m employable–I’m no lead/senior developer, but I can hack away at the small stuff. I’d love an entry-level job, and I’m certain my skill will increase to a high level in a short period of time. My very favorite feature is list comprehension. I like “one obvious way.” I think Python code can be beautiful in ways that other languages can’t replicate.
Django
Quite related to my Python entry above, but I’ve done a few trivial web apps in Django. I understand the basic flow of things, though I haven’t delved too deeply into things like middleware except when requirements led me there. Most of my web development happened in PHP prior to me being exposed to any frameworks. When I found them, I found Django first. It compelled me to learn Python because I was so taken with the idea–frameworks make me warm and fuzzy inside. I love the structure, I love having the basic outline of “what goes where” planned and accounted for ahead of time.
http://husng.sejje.net/ is a simple poker tool that I wrote using Python/Django.
Version Control
I have limited experience with Mercurial and Git. Limited in the sense that I’ve just used them for a couple of small personal projects, to learn them. I’ve never deployed with them, nor managed a complex app. I’ve been a linux user for over a decade, though, so I don’t have any problem adapting to command-line tools. I just need some hands-on to become more familiar, and probably a few minutes to add some aliases to my bashrc.
HTML/CSS
Self-taught HTML while in high-school. This was in 2000-2001, when people used frames and tables for layouts, and iframes were just becoming popular. CSS came later, and to me was an amazing gift bestowed by geniuses–it was the same feeling as when I first found php, so that I didn’t have to maintain a layout/menu in 25 separate HTML files. Design is not my forte, however. My HTML/CSS tends to be extremely functional: display the info in a more-or-less readable fashion. I grok HTML, and old CSS. All the new stuff, though–HTML5, CSS3–is relatively unknown to me. I can hack it together, but this is not my main interest. The box model is my arch-enemy, it never just goes where I want it.
PHP
I found PHP directly after I ported my site to use server-side-includes. I was so amazed that I immediately commenced an entire rewrite of my website. Databases were extremely powerful and superior to file-based-storage in so many ways. I’ve seen a LOT of php code, and coded 10+ CRUD apps using it–all relatively small by today’s standards. One site used CodeIgniter, though I feel I’m more competent than that might show–I have some experience with non-PHP frameworks, so I mostly “get it.” I haven’t used PHP much in the last couple of years, so it’s possible that my knowledge is lagging some, and I’ll be rusty with syntax.
One of my PHP sites is up at http://lmfao.us/, though I have no control over it any longer as my partner died quite a while ago and although someone (unknown to me) is renewing the domain (he controls it), the site is just languishing. It has auto-thumbnailing (intervention optional) and watermarking in the admin panel.
MySQL
I’ve used MySQL in quite a lot of projects, but they were all CRUD and had no use for scaling. I’m functional for sure, but I’m not knowledgeable in any advanced SQL. My SQL looks mostly like this:
“SELECT user, id FROM users WHERE location=’USA’”
I’m not able to troubleshoot MySQL performance issues beyond common sense: make fewer calls, use Google. Like anything else, though, I can learn this quickly–it has just never been necessary.
For two years all of my exposure to MySQL or any database has been abstracted through the Django ORM, so I’m pretty rusty at raw SQL.
Strengths:
I learn quickly, and thoroughly.
I like to understand how things work, which leads to intricate knowledge.
I’m smart.
I express my thoughts well, in both written and oral language.
I mesh well.
I have essentially zero worldly obligations, excepting a girl I can’t be without. No pets, kids, debts, homes.
I like hard problems.
I have staying power, I stick with problems.
I love coding.
I have opinions.
My word is good.
Passion comes easy.
I like good music.
Weaknesses:
I can’t design.
I can’t even match my clothes, except by rules I’ve been taught.
I avoid confrontation, sometimes at the expense of something important.
I don’t know Apple.
I’m not “colleged.”
I sleep a lot.
I hate voice calls.
I don’t like beer (but can definitely handle a mixed drink), coffee, energy drinks.
You sometimes have to dig for my opinions.
I miss pop-culture references.
Floating the box model.