Tuesday, September 16, 2014

Software Development Game Plan

Software Development Game Plan

I am working in the Microsoft stack right now.  I've worked mostly with Microsoft technology, but I don't consider it to be the one and only option.  That would be limiting.

Before I started my first professional gig as a web designer, I learned the ins and outs of web pages by viewing their source and using Notepad to create my own web pages.  I still enjoy hammering out my own HTML, CSS, and JavaScript by hand.

In the past, I have developed web applications using PHP.  I've coded some basic console applications using C/C++ and have done a little bit of Java programming.  I've even written some ASM for a microcontroller.

C# is my Preferred Language, But That Could Change

I do like C#, but who knows what I'll be writing in the future.  My current plan does revolve around C# as my primary server-side language.  That seems like the wise decision, since I am most familiar with it in comparison to other languages that I've used.  HTML, CSS, and JavaScript are my go-to's for the client-side.

The plan:

  • Gain a deeper understanding of C# and the .NET Framework.
  • Grok design patterns in C#.
  • Have a solid understanding of SOLID.
  • Know ASP.NET MVC.
  • Get my pet project going, and implement it in multiple forms.
  • Work on learning other cool things:
    • AngularJS
    • SignalR
    • KendoUI
    • Onion Architecture
    • And the list goes on...

Gain a deeper understanding of C# and the .NET Framework.
I feel that I have been able to solve all the problems handed to me in the companies where I've worked.  But I'm starting to realize how much that I don't know.  I can blame working for small companies all I want, but that only goes so far.  The development was limited by me and I was alone.  I should have reached out to the community and saw that I need to learn more.

Grok design patterns in C#
I read/heard somewhere that the design patterns are often good habits that we, programmers, should adopt.  I get that.  Also, I see where it creates a common language to talk about potential solutions.  I've worked through some examples with mixed success.  I'll keep at it, until I grok them.

Have a solid understanding of SOLID
I need to understand SOLID and know how it can positively and negatively affect my code base.  I see the value in a lot of it, and I believe that it will help me improve my OOD skills.

Know ASP.NET MVC.
I am familiar enough with it, but need to complete a few more projects using that framework, so that I can be supremely comfortable with it.  I do like it a lot.  I've struggled with ASP.NET Web Forms over control issues.  With classic ASP, I had complete control over my web pages.  With Web Forms, the web controllers caused me no end of grief.  We've reached détente.  I am drawn to MVC, because it gives me back the control, and it seems to encourage OOD more than does Web Forms.

Get my pet project going, and implement it in multiple forms.
I've started working on a pet project.  I'd like to use the Onion Architecture to structure it.  I thought that it would help me design the project, so that I could spin off different versions of my project.  I intend to produce the following, but not limited to: ASP.NET MVC app, AngularJS app with a Web API back-end, WPF, and possibly a Windows Universal App.

Work on learning other cool thing...
Keep on learning.  Too many cool things to know, and not enough time.  Argh... Raspberry Pi, various microcontroller projects, NUI apps, IoT, robotics...  stop. Let me get a handle on the above stuff, before I keep going off on tangents.

Take care,
C.

No comments:

Post a Comment