Skipped the Basics?
I am writing this post, because I think there are a lot of people like myself out there, who missed the OS wars. That’s right, a lot of people missed out on a lot of things like knowing the difference between Unix and Dos, writing shell scripts or batch files. For many, the GUI is all they know of how a computer works. And that is not a bad thing.
Back in the day, there were so many different ways of operating a computer that is was almost not worthwhile to learn them. Everybody from Colleco to Tandy were introducing their own computer, with an “operating system” built into it. But eventually standardized operating systems emerged, like Windows and OS, and some kind of normalcy was created. Computers became accessible to everyone. But frankly, I wasn’t too interested in these operating systems, nor Object Oriented programming, and I went away for a long time to do other things. That’s my story.
But today I think a lot of people missed out on the whole “getting in there with the command prompt” thing because they arrived on the computer scene after the GUI had already become quite mature. So outside of hacking a game or two, they are not very comfortable with what lies under the glossy surface of the graphic OS. If you are not sure what a command prompt is, or how to write a bat file, you probably could get along just fine up to now.
However, if you happen to be a developer of Flash applications, there is a very good chance that you could have become very good at what you do without learning the basics of computers. There, I said it, and no disrespect intended. But things have changed, and they are going to change a good deal more in the near future. Here is what I’m talking about.
With the advent of Flex2, Adobe pushed the whole Flash-dev planet into a new orbit. Perhaps it was inevitable. Even before Flex 2, smart people had figured out how to compile AS2 using MTASC, and free alternatives to the Flash IDE emmerged, like Flashdevelop. I remember being amazed at the speed of the compile using MTASC, it was a real eye-opener. Now you could use a build tool like ANT to not just assemble your flash files, but do a multitude of other tasks as well.
But while tools like ANT and SVN are commonplace in dedicated computer development courses, they are simply not talked about, understood, or even thought of in the design courses that Flash is commonly placed into in colleges. So again I say, you could get really good at Flash, without really understanding the basics. And that is going to be a problem now, because really smart people who DO know the basics inside out, are starting to notice Flex and Flash. As an example, note this article that mentions Flex support being integrated into .NET visual studio. That’s right, the Microsoft boys are coming…and the JAVA guys, well they’re already here. These guys already understand things like compiling markup language into byte-code, automating builds, versioning, etc. They’ve been doing them forever. If you are a typical Flash dev, you have a very different path to the grail, that looks a bit like this;
college or self-taught > animation > simple timeline > code on timeline > ‘include’ files > write simple classes > learn to use imports > external code editor > think you know OOP > crappy versioning > good versioning > Actually know OOP > external compiler > build tools > batch files, regex, etc. > Agile, XP, Scrum > design patterns > test first development > continuous integration
As you can see, it can be a long and winding, sometimes torturous path…simply because there really aren’t that many roadmaps or pointers for people who arrived at programming unconventionally. That is unfortunate, because a lot of this stuff is really not that difficult to pick up, if someone just shows it in a way that is clear, gets to the point, avoids jargon and produces something fun.
Don’t get me wrong, I think there is real value in learning the actual language, the speech, of programming. You do need to know what a mutator and an accessor is, for instance, to have an intelligent conversation with other programmers. The problem is that in many cases, knowledge of these terms is taken for granted by texts and tutorials. You can be too advanced for the beginner level, but baffled by the language used in the intermediate to advanced articles. It’s a tough spot to be in alright.
But not to worry. Half of making rapid progress is knowing what you don’t need to know. A good article, or a mentor, can help you cut years off of stumbling around seeking answers. I’ll do my best with this blog, but there are many resources out there that can help you advance your learning. Stay tuned for my upcoming series of articles.
