Two months have gone by. At this moment I’m not sure a “career”
alone is what motivates me and keeps me going with learning to code. I think it’s
… the code. I’m a geek. I love this. I love computers. I love motherboards, CPU’s,
GPU’s, I’m an avid builder and hobbyist, and I love following tech sites. I
love what’s inside. Development is just one more thing. However it’s more
intimate. It’s at its deepest level. It was going beyond what I’m used to
because it’s going inside and being
able to give life to something. It’s wanting to know why. So I am happy where
I stand at sixty days with C#.
So where am I?
Ok, well I can’t be the software development “judge” and
deem what I have mastered and how much of a “rock star” coder I think I am at
the fundamentals … but I would have to make the statement that I am pretty much
there. I have been exposed to every
fundamental element of the C# language. I will say again – fundamentals – of the
C# 5.0 language. However my education … has only just begun. And I hope it to
never end.
- Access Modifiers, Namespaces, and Scope
- Reference vs Value Types
- Boxing and Unboxing – Stack vs Heap
- Methods w/Polymorphic features – virtual/override
- Extension Methods
- Objects and Classes – Partial Classes – Abstract Classes -Inheritance
- Interfaces
- Structs and Enums
- Decision making – conditionals
- Exception handling
- Operator overloading
- Anonymous types
- Asynchronous programming – async & await keywords
- Generics
- Collections
- Generic Collections – .. List<T> .. Stack<T> .. Queue<T> .. HashSet<T> ..etc there are more of course.
- Using iterators to loop through these collections and understanding the IEnumberable<T> generic interface and its GetEnumerator() implementation.
- Delegates and their role with –
- Events
- Lambda Expressions
- Language Integrated Query – LINQ
As stating in other posts, Pluralsight has
been a huge help with amazing instructors like Scott Allen, Shawn
Wildermuth, Jesse Liberty, Dan Wahlin, and so many others.
Books from Adam Freeman and John Sharp as I listed in the last post. The most I
really learned from a book was in John Sharps book Microsoft Virtual C# 2013 Step by Step. This book broke every
component of the language down step by step and provided helpful coding
examples with real world scenarios in developing .NET applications with C#. Again,
I recommend it for any beginner developer just now trying to tackle the
language or a more seasoned developer who may want to inspect an element of the
language more closely.
So Where from here?
Well coding of course. I will always try to
master these core fundamentals and put them into practice by choosing an area
of the language to focus in. For me right now it is Web Applications with
ASP.NET MVC, Web API, and Entity Framework. For others it may be Windows Store
Apps, Windows Phone 8.1 apps using XAML, or even WPF and classic Windows Forms.
That’s the beauty with this language, it is used EVERYWHERE. In fact you
don’t even have to stick with just Windows. With the help of Xamarin you can develop applications
across Windows, Android, and even iOS using just one language – C#. Oh and don’t
forget video games and entertainment with Unity! There’s more than that, you
really should go check out how many solutions there are for developing video
games of all different sizes with C#.
So I will continue to code and stay fluent with
the fundamentals of the language while exploring new areas of the .NET
framework. Right now I am working my way through the Adam Freeman book I
mentioned in the last post and am actually choosing ASP.NET MVC to develop my
personal site and portfolio with, using Windows Azure as the hosting service; which
I would recommend using. It’s affordable, scalable, and of course integrates
nicely and directly with Microsoft tools like Visual Studio and WebMatrix. I will
also be reading the legendary C# in Depth
by StackOverflow.com legend, Jon Skeet. And while coding and reading I’ll
always be watching the latest trends online and following blogs, watching
videos, and reading as much as I can. After learning the fundamentals of this
language I now want to study good software development techniques and practice
writing effective and maintainable code. I also want to take advantages of
tools and techniques that sharpen our abilities and expand the rigidity of our
code, for instance using DI containers like Ninject and StructureMap where
needed, as well as Test Driven Development with Unit and Integration testing.
So this is an achievement for me. Moving
through the basics and now putting them into practice as much as possible while
always learning and wanting to improve. There’s always a lot to be reading about
so I’ll be staying busy. I will be creating some future posts about more in
depth information pertaining to the internals of C# and the .NET framework.
Showing code examples of some of these fundamentals and how they can be applied
when coming from another language or framework. It would be good to compare and
contrast some things I have observed. Before coming to .NET the only development
experience I had had was an introductory course using the basics of HTML/CSS
and about six months of Javascript. Just the concept of implicit vs explicit
typing (which yes, now in C# you can implicitly declare variables and let the
compiler decide what they are at runtime) and the concept of classes alone made
me feel like I was looking at something totally new. Well off to enjoy the rest
of my weekend. I’m feeling good about moving deeper into these technologies and
will continue to share these thoughts and feelings with you (and myself) as the
journey continues. I hope to have my site up and running as soon as possible so
I can have something other than my blog to show. I’m still working on setting
up dates for my first client project with the salon stylist so I can build a
commercial website for them (using ASP.NET) and hopefully get familiar with Git
very soon. I’m a little late on
that.
So, plenty to hear and see from me soon!
And one more note as far as a good bit down
the road, since I do love client technology and the strides that Javascript has
made as the language of all and any, I do want to dive deep into developing
with the MEAN stack, as well as
integrating client side MVC technology such as Angular JS in with .NET applications. … But that’s down the road.
One day at a time. Because I also have a Java class coming up in school I have
to prepare for. I’m sure you will see quite a few posts on my journey through
Javaland during that semester.
Hey I’m trying to get some more Twitter
followers ..and heck even find some more cool people to follow, so hit me up!
@dptech23

No comments:
Post a Comment