Learning new technologies
January 7, 2007
I’m in the midst of learning multiple new technologies, and I think I have to stop, or at least slow down. A personality trait I’ve had for a long time is taking on too many multiple projects at the same time, and in the last year or so I’ve been realizing it gets my nowhere. My ‘free’ time over the last year has been spent:
- working on some small projects in PHP
- doing some part time development work (again, PHP)
- learning ruby/rails
- learning various PHP frameworks (cake, for example)
- learning the YUI AJAX toolkit
- learning .net (c# specifically)
- learning java
- putting out infrequent podcasts at webdevradio.com
- attending local user groups (web development, ruby, java, php) and running a mysql group
As you can probably tell, my time is extremely divided, and I’ve not been able to prioritize things as well as I’d have liked. I’m intentionally slowing down PHP work, except for *at* work, where it still accounts for about 30% of my time (primarily maintenance of existing code, with one new section of code rewritten since September), and will likely not seek external consulting work.
It’s not that tough a decision to make, as I don’t see much more happening in the PHP space that excites me. The big thing these days is ‘MVC’ frameworks, which, while it was crude by today’s standards, was something I was doing with the logicreate project almost 6 years ago now. The language itself in the 5.x series is, for me, rather a disappointment, as the project has felt more adhoc since the 5.0 release (inconsistent exception support, for example). Perhaps if PHP6 works with the parrot VM as its been rumored to, or a standalone PHPVM comes in to play, I’ll have my interest rekindled in it. The odd thing is, my interest in keeping up with PHP started to wane right around the time it got a ’second wind’ as it were, and more conferences and high-profile news items started happening on a regular basis.
Most of my experience is still in the web space, and that’s the most logical place for me to start looking at other tech, which is where the Ruby/Rails interest came from. I’ve followed the basic tutorials, and put together some demo projects for myself, but haven’t got in to full scale public projects with it. I think the ‘webrick?’ server it comes with isn’t intended for production use, so I’d need to set up some other web server, or get in to proxying Apache or something similar, and it’s likely not worth it at the moment. For any public work I need to do in the short term - anything paid, I should say - will likely still be PHP, simply because of the knowledge factor. I don’t want to be experimenting on someone else’s dime if I’m not comfortable maintaining it.
I’ve also been doing some basic development work with Java and .NET. Rather than simply do web apps, I’d like to take advantage of each platform’s ability to do desktop apps. Biggest initial problem I have is that I have no real pressing need to do any desktop apps. Once you get past the ‘hello world’ stuff and get the basic syntax differences, you need a real project to work on - at least I do. And at work, they’re primarily a Java shop, so that might be where more of my energies will be focusing over the next few months. There’s easier support there (being able to bounce questions off people in the same room), and more chance of finding a need for a desktop Java app. Having said *that*, like most companies, the desktops are all Windows, there’s a basic AD and Exchange server setup, and all that stuff. So, really, the infrastructure is more in place to roll out and support a .NET-based app, and the IT dept is more suited to support that. But the engineering/development side is not ready/willing/able to go that route, so I’m up a creek there a bit.
While the ASP.NET route is attractive, as it would combine the C# learning and the web experience in one swoop, to have a public server to test on will end up costing me $ every month. If I can find a cheap host I may shell out and start doing some public testing of things. However, I’m used to having root under Linux and being able to install anything I need at a moment’s notice - going back to a shared account would be an odd feeilng indeed!
I’ve built a small time tracking/note taking app for play in C#, and will be expanding that in the coming months, and might do a java port of it just to see how different they’d be, or at least how different *my* code turns out.
I realize this is basically just ramblings here, but it’s got to be something which other people face as well. When thinking about getting in to new technologies, how do you find useful projects/ideas to train with?
Did you like this post? Buy me a hot chocolate!
Posted in 




January 9th, 2007 at 12:41 pm
It sounds like you are where I was at several years ago. PHP just didn’t excite me anymore and I was missing a lot of develop opportunities other than web such as desktop applications, mobile applications, and more. Being in a windows shop, it made perfect sense to learn and do .Net. It turns out to have been one of the smartest things I’ve done.
If you continue to dabble in this, that, and a little of this at the end of the day you don’t have any deep understanding of one platform over another, it just makes for good conversation and provides ideas on how the other half lives. At least that is how I look at it. When I play with something else other than .Net I try to take something away to apply to .Net. Maybe it is architecture, maybe it is object design.
I think if you started exploring the .Net platform, you would find as I did that it is a huge platform and there is plenty of things to learn and play with just in the realm of .Net. This may satify your “tickering” habit as it did mine.
Just take SQL server for example. You can play with writing your own CLR stored procs in C#, reporting services to generate reports, sql server integration services and analysis services. You could honestly spend all your time in learning all the things that plug into SQL Server if you wanted.
The .Net platform isn’t just about building web sites. Smart Clients (desktop applications which are deployed with ClickOnce and leverage SOA) are just going to get better when windows vista takes ahold a case in point would be too look at the new Yahoo messenger built with windows presentation foundation ( http://messenger.yahoo.com/windowsvista.php) . The Windows Presentation Foundation is going to make things really come to life. Not to mention WPF/E which will run in a browser on IE, Firefox and Safari. I guess think of it like macromedia I guess.
If you want a place to host with try http://www.WebHost4Life.com/default.asp?refid=dotnetpimp (WebHost4Life). That is who I use and they provide everything you’d want really. The only time I needed something done from them as root was to provide a directory with different permissions which they took care of with a helpdesk ticket.
January 9th, 2007 at 4:22 pm
It did take - not sure exactly what the deal was there, so I posted your original one.
Yeah, I’d read one of your posts awhile back, and I’m largely in the same place. I’m in a java shop now, but am not getting the opportunities to do enough java to interest/challenge me.
I know it’s not just about building websites, but given that that’s where most of my background lies, and it’s the easiest to ‘distribute’ (no real distribution) that’s probably where I’ll focus more .net development time.
My issue in new tech - specifically the .net and java stuff - is finding anything worthwhile to do, beyond the initial ‘hey, that’s how you do it’. I’ve built a small timekeeping tracker for myself in c#, and will probably port that to ASP.NET, more just as an intellectual challenge. It’s an issue of finding stuff beyond the ‘hello world’ and basic tutorials to sink your teeth in to - something with real purpose. You’re in a good position to do that because it’s what you do every day.
I’m not in that position right now, and trying to find ways around that to learn new tech in an applied fashion is more challenging.
I can’t quite say I’ve given up on PHP, as I still use it on a regular basis, but the direction they’ve taken in the last couple years has really been frustrating to people who saw more potential, and it’s not something I will be pursuing intentionally.
Thanks for the feedback. I should be seeing you @ codemash next week.
January 9th, 2007 at 5:30 pm
I know you know of MSDN (http://msdn.microsoft.com) , but honestly there are tons of sample applications you can download or ideas for you to build upon there. Since you are into asp.net stuff, I would suggest taking a look at doing something creative with Live. Maybe build a map with pin points of places you’ve visted or whatever (you get the idea). Also checkout http://www.codeplex.com which is an open source repository similar to SF.net but uses the tools .Net developers are more familiar with (team system for versioning for example). You may find some projects you could get behind which is a great way to learn too.
I agree with your problem. Sitting and staring at a blank screen without something to code for real is hard. Another idea for you to play with is maybe create some type of plugin for Live Writer (which is what a lot of folks use to post articles to their blogs). You’re pretty creative I’m sure you could come up with something.