3 ms·
The first thing for me was coming up with a solution to a problem that I had at my last job and seems to be a problem for others: Windows Installer creation sof
by jetti 10y ago
The first thing for me was coming up with a solution to a problem that I had at my last job and seems to be a problem for others: Windows Installer creation software. There doesn't seem to be a good option that doesn't break the bank and is easy to use (Wix and NSIS are free but there is a learning curve). I normally code in C# and that is what I'm using for my main project (the installer creator) and I fell into the old tech of WinForms since that was what I'm used to. I decided to learn XAML and WPF and that has made things so much easier. It was just pushing myself to try and improve the UI experience of my application that allowed me to improve.
I'm passionate about compilers and dev tools so that leads me down paths to other languages/frameworks to get my job done in the most efficient way. I like the more niche/obscure topics such as manipulating IL for .NET as well as injecting byte code into already made assemblies. Because of that I'm taking an indepth look at the CLR and CIL so that I can better understand how that whole system works. Now, this probably won't land me a job but it does help me stay motivated. With this knowledge I'm planning on making a decompiler/code injector/debugger for .NET dll/applications that are already compiled and shipped. I also have an idea for a programming language that I'm in the process of designing. I'm thinking of what languages to use for that because, while I'm most comfortable in C#, there are better languages to use to create compilers (I'm currently thinking of Nemerle or F#) that target the .NET framework (which again would increase my CIL knowledge)
At the end of the day think of what your passion is that could be solved with code and go do it. Pick a language you haven't used before or some framework that is new to you. It will make the project go slower but you would end up having learned a new technology.