For the past 9 months, I have been programming in C#. I started with C# at my co-op with Rovisys. Specifically, I have been enthralled with WPF, building desktop applications in C# and xaml. I started out programming in c++ at school, and really had no idea the wealth of opportunities in programming that were out there. I knew of some, but really had no idea which ones interested me.
- Web Development
- Mobile Applications
- Desktop Applications
- OS X
- WPF (Windows)
There are a whole slew of technologies that I would love to experiment with and learn about, just out of pure enjoyment, but also for the potential to work with them in the future. There are many more, but I have included those which have interested and intrigued me (even if I actually know little to nothing about actual development in them).
I have recently been recruited for a project in Android development. Android apps are built on Java, but I’ve been thinking about Mono. Mono would let me build Android apps in C# (There is also a library for Mono called MonoTouch, designed for building iOS applications in .NET (C#)).
I have to ask myself why I have been so drawn to .NET, and additionally, why I have been so drawn, within .NET, to WPF applications. It’s highly likely that the reasons are:
- My first programming project outside of school was a WPF application in C#
- My first job was as a co-op, surrounded by a group of mentors (essentially), who I also would now call friends, who helped me and encouraged me in learning these technologies, and who also enjoy the technologies themselves
- I have practiced it more than any other, on my own, and at work
I am definitely open to trying new things, and I know that it’s possible that I’ll find a language or technology that I love even more than C# and WPF. I go back and forth on this though. Relating this back to my upcoming Android development project, should I stick with the native Java, or adapt my skills in C# with Mono to develop in a language that I know (better than any other) and love?
It is still early in my career. So the question is: Should I explore more and new languages and technologies or should I focus on what I love, refine my skills, and explore more later? What do you think? What did you do?
Edit: After writing this, I thought about posing the question at Programmers.StackExchange, but found that it had already been asked.