Main Site Documentation

Microsoft technology, the future


#1

Hello GHI forum.

I had an interesting talk with someone today. They are Kiwi, but have been living in Silicon Valley for the past 20+ years. They’ve been in startups, and large companies. They have sucesffully transformed several technology companies over the past few decades. One newspaper article here described the guy as “the best software guy the country has ever produced.”

I had coffee with him this morning here in new zealand, where he was visiting (well, I had hot chocolate.) We talked about our careers, and he asked me where I was planning to go, career-wise. I mentioned several Microsoft-platform areas I’ve been happily exploring and improving in - ones most of us here have experience with - VS2017, C#, UWP, IOT-core, Xamarin, Linq, WPF, XAML - and he was surprised. He said that this would be a dead-end in silicon valley, if I ever planned to move back there.

This was sobering. These are my favorite platforms for development, even if it has mostly been at-home/personal experimentation, while I toil away at my day-job propping up ancient legacy embedded C code written by committed of transient engineers over the past 20 years, my mind atrophying from lack of learning anything new.

So now, I am open to rethinking a career path. Yes, I’m 50, but there are infinite resources for learning/becoming expert in any software area. I have no doubt I could ratchet up my javascript, ruby, python, sql, linux, Node.jz, django, RESTful architecture skills, but this seems like a random attack.

Who here thinks that a career in Microsoft-centric areas is a still viable career path now, in 2017?

What other career paths do you think could be more useful/in-demand for the next 15 years?

Anyone have any advice?


#2

Martin’s manifesto of developer value…
Specialization is for insects. Over-specialization (or viewing yourself as specialized) will hurt your employability. It may make you valuable for a certain problem for a certain time, but that value always fades.

I used to be a Fortran fellow - all Hollerith and tapes and science. Then I was a PL/I and Pascal person, all mainframes and UCSD on minis. Then I became a COBOL person in a bank, all pointy collars and ties and code audits. Then came PC’s and I was a PC C++ and ASM fellow. Then came the internet and I became a BSD Unix fellow, and later Linux. Then came NT and I was writing protocol code and IETF docs and server code for Microsoft. Since then I have been a C++ and C# individual contributor and dev manager for various Microsoft projects. I also learned Xamarin and did a bunch of mobile apps (including a fair piece of the original Power BI app, but that was C++). And I have always been close to my EE roots and the close-to-the metal hardware and software that makes me happy.

Now - here I sit today exercising some new skills in VS-Code, Node.js, npm and friends.

My point is, technology rots but the essential skills have been the same for a long time. Master the skills of time management, self-education, algorithms, problem solving and a solid work ethic, and then your one marketable product - those core talents - will never be out of fashion or off market. You may need to learn a new trick or two to make a transition, but until AI replaces us, skilled and dependable programmers will never be out of demand.

I am 57, and I definitely do not feel I have outdated skills.

[edit: summary: yes, I think being a ‘Microsoft’ fellow either is or at some point will be, very limiting. As soon as you stop thinking that way and start building and marketing broad talent instead of narrow skills, then you will be at your most marketable. By extension, that means a lot of personal investment in tech outside your current comfort zone]


#3

@ mcalsyn - Grow or die is that right? I thought that I would never need PowerShell, since I can just write what I needed in C#. Now I’m working with non programmers who don’t/haven’t coded in 20 years. (What am I trying to say)… How do you know which ones are fads and which ones are good? Python seems to be here to stay, where is Java? Why is Node.js suddenly so important?

EDITED:


#4

Forget forecasting the future - you can’t. Follow the money and/or your passion (choose one, two if you are very lucky).

I am doing vscode/nodejs/npm/etc because it is the best tool for the job I need to do right now.

A big toolbox of skills is great to have - that’s what goes on LinkedIn after all - so grow those, but never consider yourself ‘done’ nor define yourself by a set of skills. Use those core talents to grow new skills. So yes, grow, or grow hungry.


#5

Node.js leverages commodity skills (JavaScript), is cross-platform, and is finding a role as ‘right tool for the job’ in a lot of interesting server and desktop scenarios. It helps you get more done with less effort (a lot like NETMF on MCUs).

For instance: Electron (by github) is NodeJS bolted onto Chromium. VS-Code (and the popular editor, Atom) is built on Electron. So if you want to build extensions or services for VS-Code, you need to learn Node, Chromium (HTML5+JS), and npm. NodeJS is also one of the fastest ways to build for Docker containers or build HTTP’ish services in general.

Azure, for instance, supports NodeJS as the back-end for Azure mobile sites, and in fact, developed support for NodeJS before C#


#6

Now there’s a best quote.


#7

Funny…I just got back from giving a talk on VS Code at a local user group this evening, and made much the same point about using it when it’s the right tool for the job, not because it’s new or “better” than full VS overall.


#8

I hadn’t heard of vscode - I use slickedit at work, on our ubuntu boxes. I may see if I can substitude vscode.


#9

@ mtylerjr - You’re gonna love VSCode.


#10

I agree whole heartedly with @ mcalsyn. However, as someone who has spent the last 25 years working almost 100% in Microsoft technologies this is a question I ask myself regularly. Early in my career, I saw myself as a “VB guy” and a “SQL guy” then later as a “.NET Guy” (meaning a “C# guy” since that’s the only language that really matters… ;). But, these days as I start thinking about what I want to do next I find myself thinking on a higher level about what sort of projects I want to work on and what products I want to devote my time to. I prefer that the project is based around Microsoft tech since I have to do less educating but that’s a lesser requirement. When I find a project I want to be involved in then I find a way to get involved and somehow the money & skills always seem to follow.

That being said, I think you can absolutely keep a job as a “Microsoft guy” for the next 5, 10 or maybe 15 years. It just depends on the level of pay and types of projects you’re willing to settle for.


#11

@ mtylerjr - I think that Silicon Valley is starting to suffer from age or otherwise has become uncool which is inevitable given the maturing process of companies, so I don’t tend to pay much attention to them as I maybe once did.

Buckets of technology are interesting but really it comes down to a simple question of is it better to be a jack of all trades or a king of one. I run into lots of folks who claim that they are experts in a number of different areas which makes me laugh, but really the term ‘expert’ is so loosely used anymore that it really has become meaningless. Real expertise comes from years of practice with completion of multiple challenging projects, which just isn’t done anymore so clearly the plan is to be the jack of all trades, which really falls into line with the mentality of FOMO (fear of missing out) and people hopscotch between different technologies so fast anymore that it keeps the skill bar pretty low.

I’m old and don’t really care anymore but I prefer to be an expert in a single technology such that I can build pretty much anything using that technology and don’t need all these supporting minion technologies. I’m having lots of fun with UWP (using C# of course) and have been picking projects which target different areas of UWP such that in about three or four years I’ll be able to accurately claim a junior expert level and be able to code pretty much anything using that technology. Right now I’m getting schooled in In/Out Process BackGround Tasks and Triggers in UWP for a heavily IoT flavored project I’m working on (with a side order of SQLite). If you aren’t learning something new everyday, then you’ll never make it to expert, but I’m a journey guy and destinations are brief viewpoints between journeys so in about five years I’ll be looking for something new to master.

I get bored with different technologies and like to move on to learn new things. Today I had a company approach me about some security based IoT stuff, both areas I had some expertise in but that was yesterday and I’ve moved on to new challenges.


#12

I agree with most of what you are saying there, but I think it makes more sense to be an expert in algorithms, machine organization, and invariant aspects of computer languages than to become an expert in a narrow application of those things.

That said, one can be pretty successful in a vertical tech silo - just not as well insulated from changes in market demands.


#13

Absolutely true. If you want to chase the highest salary, you need to be prepared to learn new technologies every day, potentially move around a lot, and likely experience some frustration with your job. If you want to be as comfortable as possible, pick a technology, become an expert, and dig in with an established player.

There’s a whole spectrum between these two extremes, as well. Lots of room for everyone to choose an appropriate level of risk vs stability.


#14

It looks awesome as an IDE. Really awesome.

I spent a few hours trying to switch over my build environment here at work from Slickedit to VSCode, on our Ubuntu machines.

However, I wasn’t able to get the paths and json files set up to use the build tools :confused:


#15

@ mtylerjr - I bet the vs code guys over on stack could fix you up.