• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Retraining as a C# dev?

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    Retraining as a C# dev?

    Hi all,

    After a few years of post-graduate scrabbling around in a poorly paid niche sector of IT/Geography (GIS) I decided 1 year ago to retrain as a developer, mostly motivated by the potential vast increase in pay and more challenging work.

    Having no previous programming experience, I started tinkering in VB.NET whilst unemployed and somehow landed a short term low paid contract (£150pd) helping develop a simple web mapping app in c#.NET. I managed to learn some CSS, HTML, VS2010 in 3 months & cobble together a passable application.

    I still had zero knowledge of OOP and therefore completed a part-time evening college course in C# which gave me a limited understanding of classes, methods, interfaces, inheritance, delegates etc.

    I have since started a permie job as a junior developer (C# & SQL Server). I am working with WPF (MVVM) and trying to learn as much as I can. I'm very much left to my own devices and therefore have to learn off my own back using PuralSight, internet sources etc.

    Programming is not something that comes naturally to me. After 1 year I have a basic grasp of most topics but still really struggle to understand delegates, events, implementing interfaces etc. I am learning but I feel that I'm in for a long-term struggle to get to a reasonable intermediate standard.

    Is this normal? Do some people just 'get it' straight away? Should I be discouraged by the fact that I find programming difficult or does everyone go through the same process?

    Thanks

    #2
    No well rewarded skill is easy to learn.

    One year is nothing. Supposedly it takes 10,000 hours of practice ( that's about 6 years working full time ) to become an expert in any given field.

    Keep at it.

    Comment


      #3
      Originally posted by Hardgraft View Post
      Hi all,

      After a few years of post-graduate scrabbling around in a poorly paid niche sector of IT/Geography (GIS) I decided 1 year ago to retrain as a developer, mostly motivated by the potential vast increase in pay and more challenging work.

      Having no previous programming experience, I started tinkering in VB.NET whilst unemployed and somehow landed a short term low paid contract (£150pd) helping develop a simple web mapping app in c#.NET. I managed to learn some CSS, HTML, VS2010 in 3 months & cobble together a passable application.

      I still had zero knowledge of OOP and therefore completed a part-time evening college course in C# which gave me a limited understanding of classes, methods, interfaces, inheritance, delegates etc.

      I have since started a permie job as a junior developer (C# & SQL Server). I am working with WPF (MVVM) and trying to learn as much as I can. I'm very much left to my own devices and therefore have to learn off my own back using PuralSight, internet sources etc.

      Programming is not something that comes naturally to me. After 1 year I have a basic grasp of most topics but still really struggle to understand delegates, events, implementing interfaces etc. I am learning but I feel that I'm in for a long-term struggle to get to a reasonable intermediate standard.

      Is this normal? Do some people just 'get it' straight away? Should I be discouraged by the fact that I find programming difficult or does everyone go through the same process?

      Thanks
      My experience is that it took me a few years before I considered myself a programmer. Even now I'm learning constantly and still would not consider myself an expert, good at what I do but I would struggle to write a book on a tech subject.

      Comment


        #4
        It may be worth finding out of there isn't somewhere that you can go which utilises your old and new skillset. Lots of demand for spatial data (and analysis) - I'd imagine there's good demand for someone who can do that stuff well.

        Comment


          #5
          I think I lasted 6 years as a programmer, then it got boring. I'd say 3-4 years, but half the programmers will only be adequate at best, same as all jobs really.

          Comment


            #6
            Originally posted by mudskipper View Post
            It may be worth finding out of there isn't somewhere that you can go which utilises your old and new skillset. Lots of demand for spatial data (and analysis) - I'd imagine there's good demand for someone who can do that stuff well.
            Hi, thanks for all your comments. Yes I'm working as a GIS developer which mates spatial data/mapping with software development.

            Contracting opportunities are very well paid but you need to know what you're doing which I currently don't!

            Comment


              #7
              It may be worth looking at some of the "Head First" books, particularly "Head First Design Patterns" and "Head First Object Oriented Analysis and Design". The happy-clappy style can grate a little if you weren't born and raised in California, but if you try to ignore that, read them through, and do the exercises, then you'll find they're actually very effective at giving you a good understanding of the underlying principles of modern software development.

              In fact, it's probably worth looking at "Head First C#" too - there'll be some stuff in the early stages that you'll be able to gloss over as you already know the basics, but what's more important is that you'll get a better understanding of the "why", rather than the "how". A lot of training in programming seems to be along the lines of just showing how the tools are used, without ever explaining why and when you should use them. It can leave you feeling like a mechanic who knows how to handle a torque wrench and an air hammer, but doesn't even know where to start when it comes to tuning the engine on a Ford Cortina.

              And, FWIW, everybody goes through this process. Some are geniuses, and go through it in a very short time, or at a very early age. I've been a professional software developer for most of the last thirty years, and I've worked with precisely three such people in that time. They're great to work with, because you can learn so much from them, but they're also rather intimidating because they work about twenty times faster than us lesser mortals. But the interesting thing is that all of those people also learnt by just getting on with it and tinkering; they just got through their struggling phases a lot faster than most of us do.

              Comment


                #8
                Thanks Nick, I'll check those out.

                You've nailed my current stage of learning. For example I can write a simple interface, implement the interface in a class and understand the syntax & basics of the 'contract' etc. but don't yet understand how or why you would apply it into your design. I suppose this comes with experience.

                One topic I struggle with is delegates and events, I'm trying to force myself to learn by repetition & completing as many examples as possible but it it just doesn't seem to sink in. I think I don't quite yet have enough of a grasp of polymorphism/ encapsulation etc. and again, I'm assuming it is just a matter of time & dedication.

                This is easily the hardest thing I've dedicated myself to learning which includes playing guitar & learning Italian but with 40 hours per week I should get there eventually!

                Comment


                  #9
                  Originally posted by Hardgraft View Post
                  You've nailed my current stage of learning. For example I can write a simple interface, implement the interface in a class and understand the syntax & basics of the 'contract' etc. but don't yet understand how or why you would apply it into your design. I suppose this comes with experience.
                  It does indeed. It's worth thinking up a few ideas of your own for simple things to play with, and implementing them. One top tip: make stuff happen on the screen, and do that bit first. Try Space Invaders, or Breakout; they're both easy to spec in a basic way, and easy to expand (e.g. draw a blob, then make it move, then make it explode, then add sound to the explosion; you get the idea.) When you can see something doing stuff, it inspires you to make it do other stuff, and you start to work out how to apply those tools you already have to make that stuff happen. It's called the fun-down approach to programming, and it works

                  Originally posted by Hardgraft View Post
                  One topic I struggle with is delegates and events, I'm trying to force myself to learn by repetition & completing as many examples as possible but it it just doesn't seem to sink in. I think I don't quite yet have enough of a grasp of polymorphism/ encapsulation etc. and again, I'm assuming it is just a matter of time & dedication.
                  I've just had a quick glance through a "basic tutorial" on the topic (I don't do much .NET stuff, so I'm a bit vague on how those terms are used in that context).

                  **** me! What a confusing load of tulip! I'm not surprised you struggle with it; it's like they thought "How can we make this bit as confusing as possible"

                  I strongly suspect this is one of the bits where they desperately needed to pretend they weren't just copying Java, because I vaguely remember similar stuff seeming wretchedly over-complex back when I thought it might be worth understanding Java. (It was, just as it's worth understanding .NET, but sometimes the crap they pulled in making up this stuff is over-engineering of the worst kind.)

                  Keep hitting it with the fun-down approach and it'll crumble eventually.

                  Originally posted by Hardgraft View Post
                  This is easily the hardest thing I've dedicated myself to learning which includes playing guitar & learning Italian but with 40 hours per week I should get there eventually!
                  As you'll have found with your other endeavours, there comes a point when, quite rapidly, it all falls into place. It's worth it for that moment

                  Except all that delegate/event tulip. All that stuff can be done in a way that makes much more sense, and is easy to understand. I don't know what they were thinking with that. What a bunch of twats

                  Comment


                    #10
                    I Have been coding since 1999 (college) and working in IT since 2003. Every year I have to learn something new. Microsoft change .net framework and windows faster than I change my underwear.

                    Years ago, I started off in the world.of development and then quickly realised that coders are expandable. They can be easily replaced with someone from India, Bulgaria etc so the trick is to be the best. Know the subject well and also be able to learn things quickly. Software development is the same in all languages , same old loops and if statements. You have to look past that and treat things from the POV of how would I have implemented it.

                    Finally, the way I learn new technology nowadays is by watching Pluralsight courses. Of course being a contractor and having a Ltd it comes out as a business expense

                    Apologies for spelling mistakes, using my phone.

                    Amar

                    Comment

                    Working...
                    X