I don't know about you, but I approached the software industry in a very indirect and resistant way. Every since I received my first computer for my 13th birthday, I knew I was going to pursue a technology related career. I know, that is a very broad and ambiguous goal but it was what it was. Ironically, I had tried simple programming early on and didn't think it was for me. Instead, I decided to take the hardware/networking career path. I started reading every related book I could get my hands on. I quickly learned that having certain certifications would give me more legitimacy so I started taking the tests. I became A+ certified, Net+ certified, I became a Microsoft Certified Professional (MCP) and I think you get the picture. The more I learned, the more intrigued I became with what technology could do for me, my family, my future family and others around me to improve quality of life. It only took me a "few years" (I'm a little slow) in this part of the industry to realize that if I wanted to use electronic hardware to improve on inefficiencies I had recognized, I would need to learn how to program into it want I wanted it to do.
Ah yes, I finally got back around to the point of this post! What software language should I learn to use first? Again, I think I took the harder path in learning about the world of software programming, but that's just me. You have probably heard of BASIC; not Visual Basic, but plain ole DOS based BASIC. That was my first language. It's a great first step in learning the "BASIC" concepts of programming, but not at all very useful in actually doing anything. I moved on to it's big brother Visual Basic. I later tried Delphi, FORTRAN, Pascal and JAVA. At this point, I found JAVA to be my favorite language. I liked that it was compiled once and could run on any operating system and processor chip set. I thought I had found the holy grail of software languages, but as most of you have already discovered there are always trade offs in whatever language you choose to use. With JAVA, the major trade off at the time was it's sluggish runtime. You see, in order to run on any platform, it created a Virtual Java Machine between the operating system and the low level machine code. This takes up more resources and therefore would sometimes show up as delayed responses to user input. There are other pros and cons, but that was the main one.
Later on in my college career, I took classes on PHP, SQL and C#. Now considering the fact that somehow I had not learned more about the C and C++ languages up to this point unknowingly had left huge holes in my understanding of language concepts. If I could start over, I would have learned C++ first. Historically, many of the other languages I had learned first were derived from the C and C++ language. It has objects, classes, static data types, inheritance, polymorphism, functions, constructors, destructors, you name it it's in there! If you are starting down the software development path, I would highly recommend starting with the C/C++ language. It will help you learn more about Object Oriented Programming than any other language I can think of. I promise you if you do, other languages will be so much easier to learn. I hope someone out there finds this to be useful information. I know this would have been for me. Until next time, code like a wild west cowboy and try not to shot yourself in the foot.
Sunday, March 1, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment