I will be buying Visual Studio 2010 Professional when it comes out and I’ll actually want to start using it. The parts I want to focus on are C# and Python using the .NET and ADO.NET frameworks to develop Windows Services and GUI applications. I think it will become important to further my knowledge of various languages and my career. I still want to focus on PHP, JavaScript, (X)HTML, HTML5, and XML, but I think by extending my field of knowledge to general programming, I have better opportunities to be employed.
I currently know a little C, a little C++, and a little Java, but not enough to really focus on my resume. If my current employer told me to write a Java application. I’ll be able to do it, but it would take months while I relearn what I used to know and do mountains of research on how to implement the solution. Well, lets just shorten the explanation to say that if I had been using those languages, the solution would take weeks instead of months to implement.
Well, I didn’t know Python at all, and I was able to create a solution in days. I think that is more a feature of the language, than my mad skillz. If you have been programming before, then you can just “get” Python, because it is just that simple. That is part of the reason I want to further my understanding of it in Visual Studio.
By doing both C# and Python in Visual Studio I have both of the best worlds. Some solutions are easier in Python than in C#, so it makes sense to use Python. However, I still want to build the application with both. That is to say, I don’t want Python scripts sitting there available for people to look at or have to load Python runtime to execute Python scripts. I just want them both to work together.
One of the projects I hope to work on is a Windows Service (that is a pain in the ass to implement in Python, and you don’t really actually write a service in Python). So the Windows Service would be written in C# (well, I could write it using Python since the language has complete access to .NET framework and will be compiled, but it is better to use the right language for the job).
I currently have Visual Studio 2005 Professional and I’m impressed with Visual Studio 2008, but I’m going to wait for Visual Studio 2010 to come out before I purchase the next version. VS 2010 should have better dynamic language support allowing better integration of Python language support. I look forward to it and I also plan on buying books targeted to using VS 2010 Professional. Should be interesting to add two languages to my total.
I’ll be able to say, on my resume, I have full understanding of PHP, JavaScript, C#, and (Iron)Python. Well, after about two years of developing solutions using C# and Python. I’ll probably just leave off C/C++ and Java languages, unless I complete the WordPress PHP extension and maintain support for it. If I can do that, then I can actually say I have full grasp of five languages. I like that and I do think it is time I stop focusing, so much on PHP development. I understand it very well, so even if I don’t develop in it, I won’t forget how to use it.
I should also extend my JavaScript knowledge and experience. I use it so much now that I am probably high beginner or low intermediate level. I want to improve that to full intermediate level and closer to advanced level. That means being able to build solutions without doing a lot of research and without using a library like jQuery. I mean, I will still use jQuery, but it will be useful to know how to implement a solution without it, if required and without so much research. I think the mark of professional is not requiring so much research to do every little thing.
When I write PHP, I barely look at the PHP documentation, except for the most obscure functions and extensions. Event at that, I only need to see what the prototype is and I’m off creating a solution. JavaScript doesn’t have many objects or techniques, so it is reasonable to master them all in a short amount of time (like a year). The reason to use a library, is because there are minute differences between browsers that need to be addressed, preferably only once.
Mastering Python, means utilizing the libraries for the best and most efficient solutions. The iterations of my Python solution has went from highly inefficient to highly efficient, but it still isn’t where I want to have it. There are a lot of libraries, and thankfully, using them aren’t difficult. I do want to be able to create my own Python modules using C API for Python. Not every module for every application out there will be available and it might be required to build a module in C for use in Python. If that is the case, then I’ll need to know how to do that.
Generally, knowledge of the Python library and syntax, will come with years of experience. I’m just glad the ease of development is akin to PHP with creating solutions. I don’t think that by the time I’m 27 and I keep up with creating solutions in Python, I should be at the same level of Python development as I am with PHP.
I haven’t used C# that much, but it appears to be fairly straight forward, the difficult parts are creating GUI applications and working with the controls. If I can get that down, then I think I can master it in about 4 years as well. I don’t think 4 years will give me a mastery of C. I’ll still have to work on that with learning how to manage memory and using libraries and differing APIs to create solutions.
The goal for the next four years is to gain mastery of Python, for sure, shouldn’t be that difficult as long as I keep developing solutions using it. Also, C# and JavaScript. If I can work a little C here and there to complement what I already know and do it enough that I don’t have to keep relearning, then I should be fine for mastering it when I’m 31.
Possibly Related Posts:
- Easier APIs for WordPress
- Libraries Should Use Liberal Licenses
- Why Writing Documentation Wasn’t a Waste of Time
- Contradiction of Good Object-Oriented Design
- WTF Are People Still Writing PHP Template Engines