I am quite greedy for expertise. I am always looking to increase my knowledge and improve upon my skills. It is surprising how rarely career advice mentions the importance of gaining expertise. Maybe they just assume you have the expertise when you graduate from college and begin looking for a job. Your value in the job market depends heavily upon your expertise and skill set. At least this is true in the Information Technology industry.
Unfortunately I don’t have the time to study all the software and technology that I would like. I would like to learn how to customize several shopping carts and open source web applications. I would like to learn more PHP. But unless someone is paying me to work on a project using PHP or a project to customize a shopping cart, I just don’t have the time to conduct the necessary research and training. It takes a considerable investment of time to learn new technology and you really need to be realistic about how much you can handle. Therefore it is necessary to pick and choose. You need to evaluate the popularity of open source web applications and programming languages and choose just a few to specialize in.
There are a few areas where I need to improve upon my existing expertise. I need a firmer grasp of SQL. I know SQL quite well except for some more complicated queries using Inner and Outer Joins. Recently I had the occasion to explore ALTER statements to change a table design through queries. I usually do that using the SQL Server Enterprise Manager but sometimes you have really limited access to the database. I’m tempted to learn Oracle but most of my clients cannot afford Oracle so this is something I shouldn’t be too greedy for.
I’ve been using Visual Studio 2003 a lot for a current project so I’ve invested more time learning how to be more efficient using this IDE. I used to do a lot of my programming in FrontPage or Ultra-Edit but now I use Visual Studio. Maybe I should buy a book devoted to Visual Studio to really delve into its inner workings.
I have been investing a lot more time in polishing my ASP.NET skills. I’ve been doing a lot of work with XML. I’ve learned how to convert a dataset into XML and store it in a memory stream. Storefront 6.0 uses XML in a memory stream to store a lot of data so it does not have to make repeated database connections to retrieve basic information. I recently learned how to export that site XML to a file. This will be very useful in debugging my Storefront customizations because now I can see if database changes are reflected in the data that is kept in memory as XML.
One aspect of programming that I really need to master is object oriented programming. VB.NET now supports OOP but you really don’t need to create a class for most web applications. Creating a class for every object just creates extra effort. Most of the time you are not going to be reusing an object beyond the one web page. That being said, every ASPX page in an ASP.NET web application is technically an object with its own class and you need to deal with many built-in classes. However, I rarely create a class from scratch so that is something I need to practice. Storefront 6.0 uses a great many stand alone classes to represent objects like customers, order items, shopping carts, etc. Since some Storefront customizations require me to add new members, methods, and properties to existing classes I am finding it necessary to struggle with OOP.