views:

156

answers:

3

I am a C# programmer, but like to crete/invent/architect things. Since I am in the technology industry I am sure I would like to architect new programing languages, frameworks or languages. Can you advise me on the correct steps to enter this field? My dream would be to work with teams who architect SQL Server or other databases, or .NET Framework. I have 3 years towards my BS in CS with Mathematics specialization, which i can finish and continue to MS degree if needed.

+7  A: 

[Long way]

Try to apply to places like companies and research institutions where these things emerge. if you're accepted, and if you don't get lost in processes and politics, you will finally get to contribute to design something.

[Average way]

Join some open source project and contribute to it. If it flies, you'll may be able to find a way to influence the project architecture.

[Short way]

Start your own project now and you will be your designer, architect and everything you want to be.

Developer Art
The asker used the word "career" in his question, which I'm pretty sure involves an income of some sort, so your last two ways are out.
MusiGenesis
Not entirely true. I've done a TON of open source work, and I can't even count the number of times I've been hired on a contract because a company was already using my code internally. If you build something of commercial value and release it as open source, you may not be monetizing it directly, but that doesn't mean you can't make money from it.
Bob Aman
+2  A: 

I would advise spending an extensive amount of time using existing frameworks to solve real problems to learn what makes things difficult and frustrating in a framework vs valuable or powerful to the consumer of the framework. I believe that being a consumer of frameworks would certainly make a person a better creator of frameworks.

Gratzy
+2  A: 

I don't think there is really a shortcut or direct route to this if that is what you're looking for. The best way to reach this point would simply be to gain a lot of experience developing real software and adhering to best practices.

Once you have a solid grasp of how software systems are to be designed and are familiar with OTHER frameworks, it will be much easier to properly develop your own. After all, how do you expect to make better tools for developers if you haven't used these tools yourself? You need to be able to identify the problems in existing frameworks and implementations so you can improve upon them.

Since you mentioned SQL server, I imagine you're somewhat interested in web development. There is the ASP.Net MVC project that is hosted on Codeplex. You could start by creating some basic asp.net applications, and when you find some features you find lacking, you can develop them yourself!

Contrary to what a few others have said about you requiring income to learn this, I do not find that to be true. If you have a true passion for software you will find time to develop these frameworks and improve upon the tools you develop with as you are developing software using said tools (or finding you need tools that do not exist).

jcm