![]() |
| ||
| I have gotten into software development, and I love it. In fact I want to be good at it so badly that it's almost as if it has a taste and I want to experience it. There is a good and a bad to that. There is of course nothing bad or wrong about wanting to do that, and it's certainly a good thing to want to do. I have some great ideas that I think will benefit people, and they deserve to be made available to whomever desires. My problem is, I don't have the time for full-time college, and can't afford any kind of specialized course, so I am left to finding and reading books and just grinding it out through trial, error and practice. That's mostly OK with me. So, what, you might be asking, is the problem? What's the "bad" side to this? Well, consider web development. I can remember when professional web developers were charging up around 500 dollars (or more) per page to build web sites (and a page was considered to be as much as could be printed on a standard, 8.5 x 11 inch sheet of paper). It was nothing for a fully fleshed web site to cost ten grand, or more. Now, however, you can buy some very slick-looking templates for fifty bucks, and there are some pretty nifty programs that can make quick work of tossing together a website that's passable enough in many cases to make it less worth it to pay someone thousands of dollars. What this has done is put the title "web developer" within the reach of almost anyone. You need little more than a creative eye; the technical side (HTML, CSS, scripting, etc.) can be done for you behind the scenes. A lot of purists take issue with the fact that some guy changes a few titles on a FrontPage template, drags and drops a few pics, and HUZZAH! He's a web developer. That's understandable; I mean why should a trained, truly knowledgeable web developer lose a contract job to some guy who has mostly just gotten fairly good with NetObjects Fusion (no offense to Website Pros or their program) and wouldn't even recognize HTML if a line or two of it fell out his nose? It hasn't quite gotten this way with software development. Yet. But there are programs (the latest version of Microsoft Visual Studio is a good example) that make programming far, far easier than it used to be, so that many people (like me, for instance) can rather easily build powerful applications that, for look and feel and functionality, rival what "real" professional programmers can do. And if the program does it's job, does the user even need to care that the source code is a mess under the hood? I don't know much about many "best practices", and why should I learn? In the situation I am in, I'm concentrating on learning no more than what I need to know to be able to get my program to do what I need it to do. If I have redundant code because I don't know how to take advantage of classification and inheritance, so what? If my database has inefficient table arrangements because I lack the know-how to create efficient relationships, so what? If I store program settings in an Access database because I don't know how to use XML or if I just leave off any program customization altogether, big deal, right? Not only that, but computers are so fast these days that even moderately bloated code isn't going to create enough of a performance drag to really affect many users. So my program looks great and does what it says, but boy, is it shoddy and junked together. But since the user doesn't deal with source code, it's hard to really care. It's not that I don't care at all, but it's that, without a structured learning environment, I am going to tend to take the path of least resistance. Now, how is that a beat-down for you? Well, if I happen to distribute my work, and you happen to wind up with one of my programs, you might have a less secure, less optimized, less flexible program. Of course, this might mean that you wil just stop using it and use something that is in all ways better. But I have seen enough sloppily-written programs become quite popular to know that it's possible for me to be successful in spite of myself. That creates a hardship for those of you who are sacrificing time and scads of money to actually learn what I might not even know is there to learn. The idea that my programming "skills" might be just as marketable as yours (because the IDE handles so much of the nuts and bolts) will actually decrease the overall marketability of many genres of developers, especially the freelance ones, I think. Having said all that, maybe I am being too hard on myself. Maybe the more I learn, the more I will seek to know those things that are being taught in universities. Maybe the software development world needs to be more accessible to those who have great ideas but can't afford formal education. Maybe some of you professionals are cutting corners and ignoring best practices too. I want to be a really good programmer, honestly. I can only hope the allure of carrying the title and making some nice money doesn't blind me or make me do only that which is expedient. Otherwise, there's some beat-down coming! |