Systems Engineer wants to code - advice needed

Hi all,

I've been a member for years, and got a lot of guidance from everyone to get my Exchange, Sharepoint, and Server 2008 and 2012 certs. I joined with just a CCNA and NET+.

My current job will be coming to an end within 6 months to a year. I see many positions these days looking for devops, and I am no developer. I am not a candidate for these roles because of this. I have always had coding as my Achilles heel. I can script just fine in powershell and batch, but these scripts have always been fairly simple, for my own consumption or for consumption by helpdesk (somewhat technical) users at work.

I've made the decision to go with C# to at least learn some basics. I am about 3/4 of the way through C# for beginners on Microsoft Virtual Academy and find the course good, but it differs from the way I learn. In college I took a course in C, but this was years ago, and it involved a lot of projects which helped me learn it well. Some of the concepts come have come back, but honestly, I barely remember it. I learn by doing / executing (think labs for MS certs) and really need this kind of course.

So my question to the community here - do you have any recommendations for where to go after a beginner course? I have been looking at MS exam 70-483 (Programming in C#) but I want to stress that I'm looking more for project oriented learning, rather than getting certified on C#. I'm not opposed to getting certified, if the associated courses or learning materials are great. Having some coding experience will do nothing but help me in interviews and my career, even if I don't become a master coder.

Thanks!

Comments

  • EANxEANx Member Posts: 1,077 ■■■■■■■■□□
    but I want to stress that I'm looking more for project oriented learning, rather than getting certified on C#. I'm not opposed to getting certified, if the associated courses or learning materials are great. Having some coding experience will do nothing but help me in interviews and my career, even if I don't become a master coder.

    I don't have any suggestions (I can script well but programming makes my teeth itch) but I want to say that i feel this is a healthy attitude to have. I've sat through classes where someone simply studied a brain-**** site in order to pass the exam instead of using the resources literally sitting in front of them. With the attitude you have, that the learning is more important than the certification, you will go far.
  • powerfoolpowerfool Member Posts: 1,666 ■■■■■■■■□□
    Well, getting started with PowerShell would be a great thing that is relevant to what you already do. It is .NET-based, so you can learn skills that transfer to other .NET languages and general programming.
    2024 Renew: [ ] AZ-204 [ ] AZ-305 [ ] AZ-400 [ ] AZ-500 [ ] Vault Assoc.
    2024 New: [X] AWS SAP [ ] CKA [ ] Terraform Auth/Ops Pro
  • MeatCatalogueMeatCatalogue Member Posts: 145
    powerfool wrote: »
    Well, getting started with PowerShell would be a great thing that is relevant to what you already do. It is .NET-based, so you can learn skills that transfer to other .NET languages and general programming.

    This is an interesting idea. I've thought about going through all of Don Jones' powershell course. I know a lot of this information already, but it does cover gaps I don't know. I've never for example, created a GUI powershell script.


    If not powershell, any recommended course for C#?
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    If you're trying to get into DevOPs and/or more Operations Automation, I too recommend PowerShell.

    If you're trying to do projects, join Reddit or some Slack groups and think up ideas you want to create. Then just dive in. You can also look up projects in general (language agnostic) and complete them in your language of choice. There's also sites like CodeWars (bunch others but I don't remember their names off head right now) where you can practice your coding skills using small exercises.

    If you plan on going OS agnostic at any point of time (instead of focusing on Windows) Python, Go, and Ruby are all interesting options (in that order). Tho if you're planning on staying w/ Windows you can probably stay on the languages you're focusing on now.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • dmoore44dmoore44 Member Posts: 646
    DevOps is founded on two broad principles: automation and continuous delivery, so, some of the best tools you can learn for a DevOps position are Azure and/or AWS, Docker, Powershell, Python, and Chef/Puppet/Ansible/Vargrant. Since you've already got Powershell, I'd honestly say that the next best thing to learn would be Azure (and how to manipulate Azure resources with Powershell).

    Learning .Net isn't a necessity for DevOps roles, but knowing how to utilize .Net code in Powershell sure is handy, so that probably wouldn't hurt.
    Graduated Carnegie Mellon University MSIT: Information Security & Assurance Currently Reading Books on TensorFlow
  • MeatCatalogueMeatCatalogue Member Posts: 145
    dmoore44 wrote: »
    DevOps is founded on two broad principles: automation and continuous delivery, so, some of the best tools you can learn for a DevOps position are Azure and/or AWS, Docker, Powershell, Python, and Chef/Puppet/Ansible/Vargrant. Since you've already got Powershell, I'd honestly say that the next best thing to learn would be Azure (and how to manipulate Azure resources with Powershell).

    Learning .Net isn't a necessity for DevOps roles, but knowing how to utilize .Net code in Powershell sure is handy, so that probably wouldn't hurt.

    In my current role we use azure for ADFS and other services, and i'm solely responsible for our O365 tenant that is fairly substantial. I do connect to azure console on a regular basis to do administrative tasks, as well as O365 shell for exchange and sharepoint. I've done some automation there but nothing regarding devops and VMs or container resources since we don't use it for that.

    Still no love from anyone on the C# front huh? I think Azure powershell might be the way to go after I complete this intro to C#. Interestingly, the visual studio community edition comes with a "developer" membership that includes a FREE 3 month sub to pluralsight. That is an amazing value in itself.

    Dmoore, have you done anything with azure devops and docker, etc? Everything is moving cloud, faster than I though it would, too.....
  • MeatCatalogueMeatCatalogue Member Posts: 145
    DoubleNNs wrote: »
    If you're trying to get into DevOPs and/or more Operations Automation, I too recommend PowerShell.

    If you're trying to do projects, join Reddit or some Slack groups and think up ideas you want to create. Then just dive in. You can also look up projects in general (language agnostic) and complete them in your language of choice. There's also sites like CodeWars (bunch others but I don't remember their names off head right now) where you can practice your coding skills using small exercises.

    If you plan on going OS agnostic at any point of time (instead of focusing on Windows) Python, Go, and Ruby are all interesting options (in that order). Tho if you're planning on staying w/ Windows you can probably stay on the languages you're focusing on now.

    Really good recs. From what I understand about C# and visual studio, its pretty agnostic due to Xamarin and such. Granted, I don't plan on writing apps for Mac, but C# can be ported from what I understand to mobile and cloud. This was the main reason I selected it. I could be wrong?
  • Node ManNode Man Member Posts: 668 ■■■□□□□□□□
    IMO - the recruiting keyword is Python. Easy, effective, and an IT buzzword. There might be better languages (there isnt). But it seems in the space of network programming, Python is employable.


    Python from the mouth of a master. Forward to about 3 minutes, 45 seconds:

    https://www.youtube.com/watch?v=XGsF-YE7F7k
  • MeatCatalogueMeatCatalogue Member Posts: 145
    Node Man wrote: »
    IMO - the recruiting keyword is Python. Easy, effective, and an IT buzzword. There might be better languages (there isnt). But it seems in the space of network programming, Python is employable.


    Python from the mouth of a master. Forward to about 3 minutes, 45 seconds:

    https://www.youtube.com/watch?v=XGsF-YE7F7k

    Interesting. However, this guy seems to make a compelling argument toward the latter. C# is newer, but more "mature" while python is what built google. Is it true that python is more for advanced sciences and STEM fields?

    https://www.youtube.com/watch?v=sNsdYZzAEUM

    No doubt .net can be some boring legacy code. But with Xamarin, can be pushed to billions of devices, like java. Obviously I did not start this thread to flame or hate, I'm a total newbie except for my straight C experience years ago. I think with what people have said regarding my experience with powershell, I'll stick with the .net language with .net core hopefully becoming a quality mobile port.
  • DoubleNNsDoubleNNs Member Posts: 2,015 ■■■■■□□□□□
    Python is a general purpose interpreted language. It's one of the easiest languages to learn and become quickly productive in, and because of that it's used by a lot of fields in and out of IT. It's popular from everything from sys admins to data scientists to even just people trying to automate and speed up their clerical work duties.

    I'll be honest - I don't know too much about the C# ecosystem. However, from the little bit I do know i believe (my opinion) that if you're trying to become an actual developer, C# is a great choice. If you're trying to stay on the operations side of the IT field, it might not be the best. However, as long as you're skilled, your choice of language often doesn't limit you too much. Just be aware that if you're working on a team, you might get some friction if you're using completely different tooling than your coworkers.
    Goals for 2018:
    Certs: RHCSA, LFCS: Ubuntu, CNCF CKA, CNCF CKAD | AWS Certified DevOps Engineer, AWS Solutions Architect Pro, AWS Certified Security Specialist, GCP Professional Cloud Architect
    Learn: Terraform, Kubernetes, Prometheus & Golang | Improve: Docker, Python Programming
    To-do | In Progress | Completed
  • Node ManNode Man Member Posts: 668 ■■■□□□□□□□
    i'm probably somewhere between a scripter and a proper developer in my opinion. I use both python and C. Aside from some performance related concerns, such as multithreading, Python is as good as any lower language. An expression I have heard : "Python can perform a task in 10 lines of code, that would take 30 lines in C++. The problem is Python is 1000x slower."

    So... Python requires less lines of code to do the same job, but is a much slower language. Which is only really an issue if you are developing games or doing some extreme math crunching.

    Just my 2 cents.

    Here - this simple 2 hour tutorial is a good start:
    https://www.youtube.com/watch?v=rkx5_MRAV3A
  • NetworkNewbNetworkNewb Member Posts: 3,298 ■■■■■■■■■□
    DoubleNNs wrote: »
    as long as you're skilled, your choice of language often doesn't limit you too much. Just be aware that if you're working on a team, you might get some friction if you're using completely different tooling than your coworkers.


    Pretty much this ^^^ I wrote a script to do something in Python and was the showing the Systems Engineer at my company the other day (we both have been scripting a lot of things lately and like to see what each other does) and his first thing he said to me was "Python? why did you do it in that and not in .net?" My answer was because "Becuase I don't know .net..."

    There are more than one way to skin a cat! icon_thumright.gif Just gotta pick which one you like.
  • MeatCatalogueMeatCatalogue Member Posts: 145
    Thanks everyone for all your recommendations. I think I'll continue with .net and see where I land. There are two blogs on pluralsight about this:

    https://www.pluralsight.com/blog/software-development/learning-path-c-end-to-end (C# end to end)
    https://www.pluralsight.com/blog/software-development/learning-path-c-microsoft-exam-70-483 (C# to get Microsoft certified)

    It seems both courses are dated, and use C# 5.0 (6.0 current version) and older .net but that is okay. Since supposedly pluralsight is free for 3 months with my Visual Studio Community edition it won't cost me a dime. I've never used pluralsight (CBTnuggets user here) but I can only imagine the content is quality.

    I'll check back in after 3 months, assuming I don't get distracted!
Sign In or Register to comment.