MTA Software Development C# questions

MTA Software Development C# questions

Author
Discussion

burritoNinja

Original Poster:

690 posts

101 months

Tuesday 30th August 2016
quotequote all
I have enrolled on an MTA Software Development C# programming course at a local college and I know PH has plenty of programmers about. Just wondering if anybody here has ever gotten their Microsoft software development certifications and what they think about them? I've been wanting to really learn .NET for a good while now but was very busy with Java during my computer science degree. Recently bought a few good books for C++ and C# and really enjoying working through the C++ tutorials. There are loads of jobs now looking for C++ / C# developers and I am looking to get into that. It is a 4 month course and this is the first step on the MS ladder to becoming a "professional" developer. I am highly interested in gaining these certs.
Any advice would be of great benefit.

droopsnoot

11,973 posts

243 months

Tuesday 30th August 2016
quotequote all
I thought about doing one of those, but at the time (some time ago) there was quite a bit of negative feedback because there were a lot of training courses designed to help candidates pass the exams, without necessarily properly understanding the subject. So having the qualification didn't help in the way it should. And I should add that didn't just apply to MS certifications, and I don't know if the negativity is still around. I ended up doing one just to be able to retain our Partner status but it was a more general networking one.

4x4Tyke

6,506 posts

133 months

Tuesday 30th August 2016
quotequote all
You've got a CS degree and Java, shifting to C# is taking a backwards step, career & salary wise.

After a CS degree you should be able direct your own learning and there is plenty of learning materials online for the following. I recommend you choose one of these three main streams to complement your existing Java.

1) A JavaScript frontend framework such as Angular/JQuery/Node/React
2) Backend skills for SOA/ESB with JBoss-Fuse/Apache-Camel/Apache-MQ/Lucence.
3) Automated Testing with Selenium WebDriver, JMeter, JUnit, DBUnit.

The area most open to new entrants would actually be Test Automation, which is programming, but not particularly fashionable amongst existing developers.

If you are intent on learning a completely new technology stack, then Python plus something like Flask/Alchemy would be a much better choice than C#/dotNet which is very much on the decline.


Edited by 4x4Tyke on Wednesday 31st August 06:53

dcb

5,839 posts

266 months

Tuesday 30th August 2016
quotequote all
4x4Tyke said:
You've got a CS degree and Java, adding C# is taking a backwards step.
+1

Microsoft is all very well, but they own only the bit of kit you can see
in front of you. They are a closed world.

What each of these little machines connect to, over the Internet, is
where a lot of computer complexity lies, aka the cloud.

The cloud is made up of servers, a large fraction of which aren't little
tabletop machines, but serious 365/24/7 servers running Linux or proper Unix.

4x4Tyke said:
If you are really intent on learning a completely new technology stack, then Python plus something like Flask would be a much better choice than C#/dotNet which is very much on the decline.
I can't say I've heard of Flask, and Python only ever get used for little
chunks (<5K lines) of code, but most of the Internet - and the
machines that it allows you to connect to - run C and C++.

Flask and Python may well be lucrative, but the gubbins are 90% + Linux & C.

S13_Alan

1,324 posts

244 months

Tuesday 30th August 2016
quotequote all
As someone who's spent 12+ years doing Java development now, mainly for running on Linux/Unix... mostly full stack web stuff with various frameworks but fair variety of apps, writing libraries and tools, with some desktop, I've changed jobs fairly recently and I've been using C# properly for coming up on a year. Had only given it a cursory look beforehand.

Personally I would say you could go further, in more interesting ways, with Java than C#. The type of environment surrounding Java development side tends to be more open and you have more choice in technologies, there's a library or framework for absolutely anything, doesn't run on Windows (bonus!). It was always the case it was more popular job wise and Java developers tended to be better paid too. Whether the latter is still true I don't know.

Anyway, you asked about C#.....

For me, as far as C# courses go the only head start I can imagine you'd get would be in knowing the 'right' way to do a small subset of stuff.

As typical with MS, the development stuff is just as irritating as everything else they do, and they seem to change standards and their mind so often that there's so much outdated info and (still usable but stupid to do so) technologies - so it can be very hard to get started properly. What the difference between two of their technologies are, is sometimes literally a guessing game because the documentation is sometimes so st even despite there being lots of it, or you simply stare at the screen in amazement that there's none.

I do think the current trend of them open sourcing stuff is making MS development more of an attractive proposition though, but it absolutely still lags years behind a lot of other technology stacks. I always found the community sucked compared to Java, Ruby (kinda has it's own issues), or Python etc, things being so closed, the usual 'only MS know the right way to do things' mentality. It does still prevail somewhat, but it seems less so these days.

Being fair I'm quite liking C# as a language, and it's very useful given the environment I'm working in being able to use all the MS APIs, rely on AD federated devices to do single sign in anywhere and such.

Nice enough language to use, and it's certainly a tad more advanced in some areas than Java 8 and you can argue back and forth on others (except Java enums, C# sorely misses those), although frankly some of the standard C# libraries are pathetic (looking at you Collections). Java is probably easier, it has less ways to make it difficult for yourself but at the same time, I've found it harder to get a handle on the 'right' way to do various things in C#.

Bring in other JVM languages that you can move to from Java such as Scala and you're a step ahead again in features and complexity - the JVM is certainly the big selling point.

ASP.NET MVC is fairly nice if you're interested in web frameworks... but it's nothing that I feel Play framework doesn't do better on the Java side (it's my current favourite web framework).

It's quite close - but like I said at the start, the whole ecosystem surrounding Java is more open, has more 'stuff', and imo is far more appealing, but sure you'd quite quickly work it out for yourself which side you sit. There's never any harm in learning something new, even if it's just to give you a different perspective on problems or on your favourite tools or languages. They are just tools to solve problems after all.

DoubleByte

1,254 posts

267 months

Tuesday 30th August 2016
quotequote all
Learning c++ or c# language is one thing, learning APIs (such as Windows api for c++) and the .net framework is another. What kind of applications do you see yourself working on in the future? It's not all about the web you know!

For me, developing web sites is the arse end of software development wink

supersport

4,064 posts

228 months

Wednesday 31st August 2016
quotequote all
I would stick with Java, there is like to be a far bigger market especially for highly skilled individuals, there simply aren't enough of them.

Are you a recent graduate? If so you should be able to find employment now with out going through a college course, you have the right degree, just get a good cv together that demonstrates why you stand out amongst the crowd, Give our recent experience just being professional would be a good start.

There is a lot of Coll and interesting tech going on behind websites which makes considerably more than the arse end of software development

otolith

56,206 posts

205 months

Wednesday 31st August 2016
quotequote all
If you're a cs grad with Java, you should be able to pick C# up in a few days. Learning frameworks and libraries is another matter, but you'll face that with any other language.

Personally, I'm more interested in a permanent candidate's ability to pick up new technologies quickly than in the specific technologies they have experience of - and any religious attachment to a particular technology would put me right off.

CountZero23

1,288 posts

179 months

Wednesday 31st August 2016
quotequote all
C# Dev here.

Great language to learn in both terms of being more advanced in many ways than it's competitors (LINQ, async/await) and there being a massive skills shortage. Lot's of jobs out there and good money to be made.

I've never bothered with Microsoft certification; no job I've applied or has asked for it and while it was a positive it didn't have a bearing on who I asked into interview when I was hiring. Last time I looked the courses were trailing the technology by a few years.

Toughest part about dev work is getting your first job with no previous commercial experience so a course might well help you stand out from other junior candidates. Could be worthwhile in that respect but for all the expense and time it might be worth trying to get a job first before doing any further study.

You'll be a professional developer (at least on paper) as soon as you're getting paid, main thing is getting the right first job as it will have an impact on the direction of your career.

What kind of work do you want to be doing?

Best place I've found to learn is pluralsight, in depth video tutorials which focus on practical real world applications. Free 10 ten day trial and well worth paying for.

If it's web stuff you're thinking about then a good stack to start looking at is MVC, Sql Server and Entity Framework. Other stuff to look at is Git, Angular 2, Visual Studio Code, Gulp, NPM and TypeScript.

https://www.pluralsight.com/




4x4Tyke

6,506 posts

133 months

Wednesday 31st August 2016
quotequote all
dcb said:
I can't say I've heard of Flask, and Python only ever get used for little
chunks (<5K lines) of code, but most of the Internet - and the
machines that it allows you to connect to - run C and C++.

Flask and Python may well be lucrative, but the gubbins are 90% + Linux & C.
Python is not my favourite language, I'm too much of a stickler for SOLID principles. However it popularity is on the rise and Python+Flask+Alchemy would be decent starting point, IF he is intent on adding a different technology stack.

alock

4,228 posts

212 months

Wednesday 31st August 2016
quotequote all
You need to specialise if you want to get the really exciting jobs in 10 years time. Anyone who lists dozens of languages and frameworks on their CV just comes across as a jack of all trades.

All languages will offer run of the mill programming jobs which is what 99% of the industry is. Often the companies paying the largest salaries want to use the latest technologies so it's easy to fall into the trap of learning everything new that comes along to chase these positions. These jobs are basically about applying the latest technologies to old problems to see if it gets the company an edge over their competitors. I think of this as programming by numbers, you are applying a documented pattern using a new framework to a known business problem. This has no interest to me.

For me the exciting jobs are where you get to do real R&D to solve problems no one else has solved before. You might spend a month writing a single function or class.

If you want to chase the highest salaries or you plan to move into management, then learn another language every two years. If you want to become a technical expert in a field then stick with what you have and start specialising even more.

burritoNinja

Original Poster:

690 posts

101 months

Wednesday 31st August 2016
quotequote all
Some great advice and I thank everybody for the good input.

The reason why I want to learn C# is in relation to my local IT jobs now looking for C# developers and it is £60,000+ they are paying but I assume that bubble will burst once more .NET developers appear. I also just fancy learning .NET/C#. It seems an interesting framework. I really enjoy C++ so far. My biggest problem with getting into my ideal software job is due to my lack of real working experience with Java. I'm 32 and my primary experience so far has been working in web development with mostly UX design and front end development such as X/HTML5, CSS, Javascript and the likes and then I was in the Army in a non IT related role. None of which are really useful towards what I consider a "proper" software development career. I have already paid for the course and will hopefully enjoy it and gain something useful from it but I am really really having such a hard time landing a good IT job. I'm trying to get involved with open source projects and trying to build a good portfolio but to be honest, I feel so lost. I don't even know where to go from here or what to do.
As far as OO programming goes, Java is what I know best, mostly on an academic level. I'm really looking for entry level somewhere.

grumbledoak

31,545 posts

234 months

Wednesday 31st August 2016
quotequote all
I would just concentrate on getting a Java job first. You can then think about cross training later, and add qualifications if they float your boat. C#/.Net will be easy to learn from Java - they share origins and concepts. I think it is the better of the two languages, but for Web development that matters less and less as more and more is done at the front end in neither of them!

Get the first job!

Crafty_

13,297 posts

201 months

Wednesday 31st August 2016
quotequote all
dcb said:
Microsoft is all very well, but they own only the bit of kit you can see
in front of you. They are a closed world.

What each of these little machines connect to, over the Internet, is
where a lot of computer complexity lies, aka the cloud.

The cloud is made up of servers, a large fraction of which aren't little
tabletop machines, but serious 365/24/7 servers running Linux or proper Unix.
Its entirely possible to write .net code for the cloud. AWS, Azure support .Net and they're pretty big providers.
Aside from that you may want to look at CoreCLR which is open source and allows you to run .net code on your "serious" Linux servers.

This whole "you're locked in, you an only write stuff for the machine in front of you" view of MS is about 20 years out of date and incorrect. The company has gone through somewhat of a revolution and they "get it". Look at what they are doing with open source, or how open Azure is. Its quite startling how their attitude and behavior has changed (and for the good).



OP: I wouldn't get hung up on doing the exams - if you want to do them crack on. At this point to be honest technical ability isn't paramount, aptitude and attitude are. We'd hire you if you could show those attributes and might have you writing java, .net, golang or whatever fits the bill - if you have the aptitude and attitude you can learn the language and get the job done. Granted as you progress you may want to become more technical and specialise, but there is a whole bunch of stuff in the development space that apply to any language - design patterns, methodologies, understanding of dev, test & release processes and so on.

ATG

20,616 posts

273 months

Wednesday 31st August 2016
quotequote all
dcb said:
I can't say I've heard of Flask, and Python only ever get used for little
chunks (<5K lines) of code
Not true. Used for some large systems. My firm employs hundreds of python developers developing its strategic trading platform ... many millions of lines of code. So do several of our rivals. Stats for its adoption are in the usual places.

If the OP has got Java, might be worth looking at Scala too. Much less awful than Java, yet still in the same ecosystem.

TankRizzo

7,278 posts

194 months

Wednesday 31st August 2016
quotequote all
As Head of Development for a large firm, this is my list of priorities when hiring devs:

1) Aptitude
2) Experience
3) Personality
4) Ambition
5) ?????
99) MS Certifications

4x4Tyke

6,506 posts

133 months

Thursday 1st September 2016
quotequote all
burritoNinja said:
The reason why I want to learn C# is in relation to my local IT jobs now looking for C# developers and it is £60,000+ they are paying but I assume that bubble will burst once more .NET developers appear. I also just fancy learning .NET/C#. It seems an interesting framework. I really enjoy C++ so far. My biggest problem with getting into my ideal software job is due to my lack of real working experience with Java. I'm 32 and my primary experience so far has been working in web development with mostly UX design and front end development such as X/HTML5, CSS, Javascript and the likes and then I was in the Army in a non IT related role. None of which are really useful towards what I consider a "proper" software development career. I have already paid for the course and will hopefully enjoy it and gain something useful from it but I am really really having such a hard time landing a good IT job. I'm trying to get involved with open source projects and trying to build a good portfolio but to be honest, I feel so lost. I don't even know where to go from here or what to do.
As far as OO programming goes, Java is what I know best, mostly on an academic level. I'm really looking for entry level somewhere.
You should be highly sceptical of 60k job adverts. While these do exist as permanent roles, they are not entry level positions and will require considerable experience and strong track record. Just be aware agencies advertise these 'idealised roles' to get their database loaded with CVs.

As a Contractor you should be able to manage that in the south with a few of years of experience.

In my last perm role in Leeds our new Grads were on £22k pa but they also received 10 weeks of proper training in practical hands on skills. Don't neglect these,source control (git), CI, Unit testing, process (agile/ Scrum)

A great many systems are now built as WebApps using those technologies you mention, they are certainly complementary.

Build an online profile, LinkedIn, Stack overflow, etc.


Edited by 4x4Tyke on Thursday 1st September 08:00

Don

28,377 posts

285 months

Thursday 1st September 2016
quotequote all
If you interested in learning C# then do it.

But consider the full "stack". The cloud is the way everything is going. Microsoft's cloud is Azure. Being an Azure developer is probably more important than being a C# developer. You'll need Hyper-V, SQL Server, Web Services, ASP.NET/MVC as well as C#. All obtainable with experience. The certification would get you in the door of an interview. So worth doing IMO.

jimothy

5,151 posts

238 months

Saturday 3rd September 2016
quotequote all
C# is an awesome language. Much nicer than Java and cross platform. Windows, Linux, Mac, iOS, Android. It does it all.

Xamarin is worth a play with as it's pretty cool to run C# on mobile. Xamarin University has some free courses on C# and mobile. The tooling is pretty awesome - Xamarin Studio on Mac and Visual Studio on Windows for free!

burritoNinja

Original Poster:

690 posts

101 months

Sunday 4th September 2016
quotequote all
Thank you all very much. I will be checking out many of the mentioned frameworks. Whilst I learn the .NET world, I will mainly just focus on really increasing my Java skills.