Programming c# - Longevity?
wedge1988
Member Posts: 434 ■■■□□□□□□□
Hi Guys,
I'm currently working on the CCNA, but after i'm done with that i was thinking of going to learn c#
My question is, if i spend months learning the programming, will it stay around? I mean, I'm MCSE certified, and although microsoft constantly release new operating systems, the base knowledge always is the same, they just change a few names and introduce new features, whilst some older stuff will be phased out?
So i'm kinda wondering if it is the same for c# or programming in general?
What i don't want to do is learn it then a few years down the line find that it was worthless...
see my dilemma?
Any help would be appreciated
I'm currently working on the CCNA, but after i'm done with that i was thinking of going to learn c#
My question is, if i spend months learning the programming, will it stay around? I mean, I'm MCSE certified, and although microsoft constantly release new operating systems, the base knowledge always is the same, they just change a few names and introduce new features, whilst some older stuff will be phased out?
So i'm kinda wondering if it is the same for c# or programming in general?
What i don't want to do is learn it then a few years down the line find that it was worthless...
see my dilemma?
Any help would be appreciated
~ wedge1988 ~ IdioT Certified~
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese
Comments
-
JDMurray Admin Posts: 13,090 AdminProgramming and software engineering are from a vastly different skill set than network design and administration. In both, what you learn now you will always be able to use in the future. However, software technology does become old (i.e., "legacy") just as networking technology does. Today, you won't find many jobs needing Token Ring experience, just as you (hopefully) won't find many jobs requiring .NET 1.x experience. But there always seems to be a few jobs requiring knowledge of older technology because of legacy systems that need maintaining.
The problem with programming is nearly the opposite of what you fear--you may be required to learn more, and more quickly, than you want to in order to make a living as a real software engineer. Microsoft especially is constantly adding and changing their software development technology. There are so many (legacy) layers of APIs, and different ways to do the same thing in Windows and .NET, that it's driving me out of developing complex systems and back to writing only simple programs and scripts.
It a lot of fun (to me) to learn new software systems, APIs, and patterns. But when you are under the pressure of customer-driven deadlines to produce working, high-performance, and bug-free software for immediate delivery, it can be the most life-consuming nightmare that you've ever experienced. Now add to that ill-defined requirements, no formal testing, and poor (or non-existent) project management, you may very well ask yourself, "Why the Hell am I working so hard just to earn a paycheck?" (Welcome to the world of software manufacturing!)
First, you need to discover if you really like spending most of your time (and brain cells) designing, implementing, and testing code. As I said, it's very different than working in IT (far more complexity and "decision points"). This is why the typical software engineer makes a higher base salary than the average IT network guy--because it's (much) harder work.
If you want to specialize in Microsoft technologies, then .NET (3.x & 4.0) with C# and VB.NET are the way to go, and with ASP.NET for Web technologies. You'll only need to write code for Windows XP and later. Also learning programming for the various MS products, such as Exchange, SQL Server, and SharePoint, and tools like PowerShell, will make you all the more skilled and valuable to employers.
Learning all this as a hobby that you do at home after work and on weekends would be an overwhelming task for most people, so best to be working at a place that will let you help out on the coding for an MS-based project being worked on. Study the certifications of the MS technologies that interest you, and take MS programming classes at a local community college.
At some point, you will realize that either programming is the thing that has been missing from your life, or is the worst thing that you have ever forced yourself to do. If you find yourself somewhere in the middle, consider that programming is something you need to continue to learn, but should not be the primary skill required in your occupation. Having the hands-on experience of how to design and create software-based systems will put you far ahead of your peers in understanding how software drives the behavior of almost every computer-based technology we have today. -
wedge1988 Member Posts: 434 ■■■□□□□□□□At some point, you will realize that either programming is the thing that has been missing from your life, or is the worst thing that you have ever forced yourself to do. If you find yourself somewhere in the middle, consider that programming is something you need to continue to learn, but should not be the primary skill required in your occupation. Having the hands-on experience of how to design and create software-based systems will put you far ahead of your peers in understanding how software drives the behavior of almost every computer-based technology we have today.
Thanks for the reply JD.
I've already decided that im not going to be a programmer. It's certainly not what i want to do for a living. But like what you said in the quote above, having c# under my belt will be a large asset in the long run.
Basically, I want to be able to develop a small program or two when the need arises, without having to get others to develop one or for me to have to buy one. The reason i say this is because I recently came across the need for an application that will allow me to power off machines at night. Now, in most organisations a script will do this.. but working in a school requires a different approach.
Needless to say, there are programs out there, they cost the earth. Making one.. well if i knew, it wouldnt take me long, it's not a complex thing really?
Anyway, i've decided to go eventually all the way to csico CCIE / Architect and focus on that side of the IT administration.. thats my passion, not programming lol. - so c# ? A benefit but not a life.~ wedge1988 ~ IdioT Certified~
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese -
JDMurray Admin Posts: 13,090 AdminBasically, I want to be able to develop a small program or two when the need arises, without having to get others to develop one or for me to have to buy one. The reason i say this is because I recently came across the need for an application that will allow me to power off machines at night. Now, in most organisations a script will do this.. but working in a school requires a different approach.
Most languages worth knowing have a free development environment available, and it's worth learning a language that easily portable between different operating systems, and that you can write code in very quickly. Languages like C#, C++, and Java are best utilized by first creating a detailed design of the program you are writing. This is not something you want to do if you just need to "bang out" a small, useful program very quickly. Programmers tend to use languages like Perl or Python for quick jobs.
One major issue in choosing a language to use is considering that the run-time environment of the language must be installed on all of the machines that the program will run. Every Windows box will run MS C/C++, VBScript, Intel assembly, and DOS batch programs, but all other languages require the proper version of a specific run-time environment be installed first--including C# and .NET.
Find a programming language that best fits your brain and start writing network management programs that talk to Cisco equipment. That way you'll be learning both sides of the street at the same time. -
varelg Banned Posts: 790Hi Guys,
I'm currently working on the CCNA, but after i'm done with that i was thinking of going to learn c#
My question is, if i spend months learning the programming, will it stay around? I mean, I'm MCSE certified, and although microsoft constantly release new operating systems, the base knowledge always is the same, they just change a few names and introduce new features, whilst some older stuff will be phased out?
So i'm kinda wondering if it is the same for c# or programming in general?
What i don't want to do is learn it then a few years down the line find that it was worthless...
see my dilemma?
Any help would be appreciated
The demand for new features of the app that you mentioned will grow, it's almost guranteed, today maybe it is just shutting down school computers but tommorow some user may come with a need to extend its functionality for say, intranet messaging or saving its data in a specific way so that he/she can access it off- site. I am just naming examples, it won't be necessarily that way, but extending functionality of your app is inevitable.
I am sure plenty of us here would be quick to scorn on/dismiss cloud computing as anything more than a catch phrase du jour, but as a new way of deploying applications you just can't dismiss it. I don't think cloud will take over everything 100%, but people consider it more and more and some companies that develop operating systems incorporate increasing number of outlets to cloud (I am looking at Canonical and its Ubuntu One) within their products. Cloud apps break the platform dependence and execute across all platforms that support web connectivity. Sort of what original makers of Java and C# had in mind when they were making those technologies. -
wedge1988 Member Posts: 434 ■■■□□□□□□□Ah ok, great examples guys. Thanks for your help!
We mainly use windows systems, so it would have to be vbscript / c/c++ i suppose.
C++ is by far the hardest language i'd imagine, but would be the most beneficial in the long run? I've had a go at visual basic.net which isnt too bad.
the only reason i thought of c# was because it can be used with sharepoint and many other uses, like xbox game development (This is obviously personal stuff)
but you would reccommend python or vbscript then?
-Edit
By the way, Microsoft say they are moving away from vbscript, as to move to Powershell. Powershell is supposed to be the new defaco for system admins for both dos and vbscript, which is simplified?~ wedge1988 ~ IdioT Certified~
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese -
RobertKaucher Member Posts: 4,299 ■■■■■■■■■■Wedge,
My job kind of spans the world of the developer and the sys admin. It's a special case so I am going to share my experience with you. I knew about 3 years ago that SharePoint was going to be growing in popularity and that it was an excellent resource for surfacing SQL Server data (reports, etc). I also knew that I would have to learn C#, SharePoint and SQL Server well - although each to lesser degrees. On a small tangent I also believe that any person who works with SQL Server should also know a .NET language such as C#. If you are not working in a role such as this putting the effort into really learning C# might just not be worth it. Learning some of the basics, might be ok. But that makes it more a professional hobby than an actual skill.
If you see yourself as a sys admin or network admin it would be wise to just put the time and effort into learning PowerShell well. I can tell from your other posts it is not something you have a lot of experience with. But it is being integrated into every new server technology MS is putting out and is a core component of the Windows Management Framework.
10 reasons why you should learn to use PowerShell | 10 Things | TechRepublic.com
PowerShell - Why you should learn PowerShell | Black Mountain
If you consider the time and effort required to develop a decent level of skill in C#, I would argue you will get more from your investment in PoSh. I just took the Silverlight Developer beta certification today. It was a hard test and helped me to put how much I don't know into perspective. It takes a lot to keep the skills required to be a sys admin, DBA, and dev sharp. But one day at work I might be asked to configure some unusual setting in DNS and the next I'm being asked to develop a WCF web service to allow the communication of an SSIS job and a Silverlight web part (oh yeah, and I'm developing the web part to be surfaced in SharePoint as well). I feel my sys admin knowledge getting rusty - and my developer skills are still very green... It's almost like I'm just a guy who's not a very good sys admin and not a very good developer. On a certain level that sucks. -
JDMurray Admin Posts: 13,090 AdminIf you are gonna admin modern Microsoft Windows enterprise networks then you need to know PowerShell. Server 2008 and AD, Exchange 2010, Windows Vista and 7, and everything after uses it.
-
RobertKaucher Member Posts: 4,299 ■■■■■■■■■■First, you need to discover if you really like spending most of your time (and brain cells) designing, implementing, and testing code. As I said, it's very different than working in IT (far more complexity and "decision points"). This is why the typical software engineer makes a higher base salary than the average IT network guy--because it's (much) harder work.
If you want to specialize in Microsoft technologies, then .NET (3.x & 4.0) with C# and VB.NET are the way to go, and with ASP.NET for Web technologies. You'll only need to write code for Windows XP and later. Also learning programming for the various MS products, such as Exchange, SQL Server, and SharePoint, and tools like PowerShell, will make you all the more skilled and valuable to employers. -
undomiel Member Posts: 2,818I'm most certainly not a developer but recently I decided to go ahead and learn C#. So far I haven't found it too difficult to pick up. I definitely think that some of the principles you pick up from learning how to program can help you understand some of the server and networking technologies that you work with since you have a bit of a clue of what goes on behind the scenes. I've found C# to be a lot easier and faster to work with than C++. I've already put it to use for a few small utilities at work which would have taken a lot longer for me to put together with C++. If you're just going to go for scripting though then PowerShell is what you'll want to go for since everything recent out of Microsoft is coming with PowerShell interfaces. Knowing PowerShell has certainly made working with Exchange easier.Jumping on the IT blogging band wagon -- http://www.jefferyland.com/
-
gosh1976 Member Posts: 441Isn't powershell object oriented and based on the .Net framework? Wouldn't that mean skills learned in playing around with C# be valuable in learning powershell?
-
RobertKaucher Member Posts: 4,299 ■■■■■■■■■■Isn't powershell object oriented and based on the .Net framework? Wouldn't that mean skills learned in playing around with C# be valuable in learning powershell?
For a sys admin that might be putting the cart before the horse.
Also, I hope JD is going to explain why PoSh is not truely OO.
Although you can now write OO style code using PSClass - Object Oriented Scripting in Powershell -
wedge1988 Member Posts: 434 ■■■□□□□□□□wow, okay. thanks all! - erm. so ill learn powershell first. actually on second thought, learning powershell first will help me learn c# later if i feel it's the right path, and, might even give me an inclininto how c# works.
Knowing the code definitely will help understand the under core of programs.~ wedge1988 ~ IdioT Certified~
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese -
Chris:/* Member Posts: 658 ■■■■■■■■□□As a System Administrator if you work with primarily Windows I would recommend learning PowerShell. PowerShell's syntax was based primarily on Perl which is both good and bad. The good is that you can pick up Perl very quickly after learning PowerShell, the bad thing is that it uses Perl's Syntax.
If you are ever going to work with Linux/Unix systems you need to learning Bash, Sed and Awk scripting. The reason I suggest those more than Perl is that some systems you will find in the corporate environment may be running versions of Unix that do not support Perl, Python or Tcl.
The rest of the information was already nicely summarized.Degrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
JDMurray Admin Posts: 13,090 Admin...the bad thing is that it uses Perl's Syntax.
-
Chris:/* Member Posts: 658 ■■■■■■■■□□Yup and if you have to read someones code that has "optimized" it the output looks like hieroglyphics.Degrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
undomiel Member Posts: 2,818So far I prefer Ruby syntax to Python. It just makes more sense, possibly because it has a bit more C++ feel to it.Jumping on the IT blogging band wagon -- http://www.jefferyland.com/
-
Pash Member Posts: 1,600 ■■■■■□□□□□RobertKaucher wrote: »For a sys admin that might be putting the cart before the horse.
Also, I hope JD is going to explain why PoSh is not truely OO.
Although you can now write OO style code using PSClass - Object Oriented Scripting in Powershell
Me too, but I hope he uses some really understandable analogy with it (lemmings, army of snowmen or something!)
Nice link thanks.
Goodluck to the OP in whatever you choose.DevOps Engineer and Security Champion. https://blog.pash.by - I am trying to find my writing style, so please bear with me. -
TheShadow Member Posts: 1,057 ■■■■■■□□□□Me too, but I hope he uses some really understandable analogy with it (lemmings, army of snowmen or something!)
Wow you guys really know how to goad a person. Just poke him with a sharp stick why don't you.
So far he has resisted but just in case... popcorn in microwave, control panel set to stun. Usenet has taught me that OO discussions are safer as a spectator sport. Just staggered in from one of the worlds largest Halloween celebrations so no sense going to sleep. Lets do the time warp again; argh you are to old for this hippy, cold shower time.Who knows what evil lurks in the heart of technology?... The Shadow DO -
varelg Banned Posts: 790wow, okay. thanks all! - erm. so ill learn powershell first. actually on second thought, learning powershell first will help me learn c# later if i feel it's the right path, and, might even give me an inclininto how c# works.
Knowing the code definitely will help understand the under core of programs.
To know how .NET stuff works, take a plunge into the CLR (Common Language Runtime), that's where real secrets live, not the particular language syntax. But once you open a book on CLR you must repeat three times before you start reading: "This doesn't look like Java". Boy, they even hit the same wall like Java: the virtual machine versioning. But no, it shouldn't look like Java -
TheShadow Member Posts: 1,057 ■■■■■■□□□□On topic, you can do the same .NET things in any .NET language and it really depends which syntax you prefer, indentation as the line end (Visual Basic) or a colon ("serious" developers' preference) .
To know how .NET stuff works, take a plunge into the CLR (Common Language Runtime), that's where real secrets live, not the particular language syntax. But once you open a book on CLR you must repeat three times before you start reading: "This doesn't look like Java". Boy, they even hit the same wall like Java: the virtual machine versioning. But no, it shouldn't look like Java
If you like detailed alchemy brain damage I recommend this tome ...
Amazon.com: CLR Via C# (Pro Developer) (9780735621633): Jeffrey Richter: Books: Reviews, Prices & more
Persons that purchase this book probably should also purchase a bell and a candle if not already in your wizards apprentice kit.Who knows what evil lurks in the heart of technology?... The Shadow DO -
varelg Banned Posts: 790If you like detailed alchemy brain damage I recommend this tome ...
Amazon.com: CLR Via C# (Pro Developer) (9780735621633): Jeffrey Richter: Books: Reviews, Prices & more
Persons that purchase this book probably should also purchase a bell and a candle if not already in your wizards apprentice kit.
So wedge wanted to learn the secrets Sorry, no Kathy Sierra books on CLR... -
TheShadow Member Posts: 1,057 ■■■■■■□□□□: Sorry, no Kathy Sierra books on CLR...
Yes, Kathy writes decent stuff, a down to earth lady and a geeks, geek. However she is basically a Sun evangelist unless things changed for her after Oracle took over. I have her SCJP around here somewhere.Who knows what evil lurks in the heart of technology?... The Shadow DO -
Chris:/* Member Posts: 658 ■■■■■■■■□□As for PowerShell being Object-Oriented (OO) or not OO it does support OO features but when I have heard the argument before it boils down to your opinion more than anything.
PowerShell allows the use of Encapsulation, Polymorphism and constructs. It does not support public and private data sets. Everything in it based on Microsoft OS or API features that do not allow it to be ported to different OS much like bash. As such it does not use dynamic libraries like C++, C# (uses both dynamic libraries and APIs), Python, Ruby, Perl, Java and many more.
When it comes to this argument the only Completely pure OO languages are Java, Smalltalk, Eiffel, Ruby and C# as everything in it is an object which must be built up. You can program C++ (using just the legacy C code) or script Perl, Python, PowerShell and so on without using OO principles you cannot do that with Java or C#. Purist often state that if you can program or script in a language without having to use the OO features that makes the language non-OO. If that is true then C++ which is claimed to the father of most OO languages is not OO because of its C roots.
That being said most languages that support the use of OO features are considered OO. There is a sliding ruler scale though of which language is more OO than others PowerShell would be closer to the bottom with most other scripting or implemented languages.
In the end it comes down to opinion.Degrees:
M.S. Information Security and Assurance
B.S. Computer Science - Summa Cum Laude
A.A.S. Electronic Systems Technology -
RobertKaucher Member Posts: 4,299 ■■■■■■■■■■As for PowerShell being Object-Oriented (OO) or not OO it does support OO features but when I have heard the argument before it boils down to your opinion more than anything.
PowerShell allows the use of Encapsulation, Polymorphism and constructs. -
Pash Member Posts: 1,600 ■■■■■□□□□□mannnn all this OO definition talk makes me wish I filed my notes from college better!!!! gahhhhh, I had a great analogies from my college tutor on this stuff.
Yeh I mean the fact remains that there is no substitute when writing code that you will use again and again. It's interesting CHris mentions that C++ is considered OO but is quite lose because of C roots, I have a big chunky C++ (at least 8 years old) book sitting in my collection with OOP and OOD written all over it! Im not one to argue, you guys are a gazillion times more clued up on this stuff.
I guess if your program/website/whatever needs to reference something simple like a....box. The fact this box changes colour, has gold leaf decorations on it is neither here nor there....its a box, it has 6 sides and 8 corners.DevOps Engineer and Security Champion. https://blog.pash.by - I am trying to find my writing style, so please bear with me. -
varelg Banned Posts: 790mannnn all this OO definition talk makes me wish I filed my notes from college better!!!! gahhhhh, I had a great analogies from my college tutor on this stuff.
Yeh I mean the fact remains that there is no substitute when writing code that you will use again and again. It's interesting CHris mentions that C++ is considered OO but is quite lose because of C roots, I have a big chunky C++ (at least 8 years old) book sitting in my collection with OOP and OOD written all over it! Im not one to argue, you guys are a gazillion times more clued up on this stuff.
I guess if your program/website/whatever needs to reference something simple like a....box. The fact this box changes colour, has gold leaf decorations on it is neither here nor there....its a box, it has 6 sides and 8 corners. -
wedge1988 Member Posts: 434 ■■■□□□□□□□Erm. You've all lost me
An interesting read all the same, but this is where i stand so far:Static Void Main() { Application.run(new (form1)); } Public static void class() { int x = 10; int y = 10; messagebox.show(convert.tostring(x + y)); }
lol.
I'm learning though ^.^;
btw, i'm watching the VTC C# 2008 videos and theyre actually easy to understand!~ wedge1988 ~ IdioT Certified~
MCSE:2003 ~ MCITP:EA ~ CCNP:R&S ~ CCNA:R&S ~ CCNA:Voice ~ Office 2000 MASTER ~ A+ ~ N+ ~ C&G:IT Diploma ~ Ofqual Entry Japanese -
undomiel Member Posts: 2,818My personal recommendation from the books I've been going through from the library is Murach's C# 2008. It's a pretty refreshing break from the standard learn a programming language books as it jumps right in syntactically and administers theory in smaller chunks as you go along. Plus the examples and exercises are much more real life oriented. Hopefully I'll be able to check out the 2010 book soon. Illustrated C# 2008 looked pretty good as well though I haven't delved into it as much.Jumping on the IT blogging band wagon -- http://www.jefferyland.com/
-
RobertKaucher Member Posts: 4,299 ■■■■■■■■■■Here are my favorites:
Amazon.com: Essential C# 4.0 (3rd Edition) (Microsoft .NET Development Series) (9780321694690): Mark Michaelis: Books: Reviews, Prices & more
Amazon.com: C# Programming Language (Covering C# 4.0), The (4th Edition) (Microsoft .NET Development Series) (9780321741769): Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth, Peter Golde: Books: Reviews, Prices & more
Amazon.com: Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C# (2nd Edition) (Effective Software Development Series) (978032165870: Bill Wagner: Books: Reviews, Prices & more