Finding my programming niche

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
    • ASP.NET
    • JavaScript
    • HTML5
  • Mobile Applications
    • iOS
    • Android
  • 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:

  1. My first programming project outside of school was a WPF application in C#
     
  2. 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
  3. 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.

Leave a Reply