Sunday, 25 June 2017

Imposter Syndrome

One really annoying side-effect of networking with other developers, learning about technologies used at other companies, and reading development books is it seems to skew how I view my own skill level.

According to Wikipedia:

Impostor syndrome (also known as impostor phenomenon or fraud syndrome or the impostor experience) is a concept describing high-achieving individuals who are marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a “fraud”.

Generally speaking, the people I interact with in the I.T. field all seem to view me as a highly-capable developer. We might have our disagreements here or there on technology choice, a specific implementation, or that sort of thing… but I think overall I’d get pretty high rankings from my peers (whether professionally or just friends in the field).

And, looking back at other developers I’ve worked with over the years, many of them — even highly-paid consultants — would be stumped by things that seemed almost childishly simple to me.

Even so, sometimes it’s very difficult to shake the feeling that I’m far less skilled than I should be. But I suppose that’s better than the alternative — unwarranted overconfidence.

Saturday, 20 May 2017

Be The Worst

In any group, most people strive to be the leader, the alpha, the center of attention. From a professional standpoint, though… F’ that. Be the worst. I want to surround myself with people far more skilled than myself. I can get so much more out of that. And generally it inspires me to rise above the people I’m with or, at the very least, to play off of their skills with my own. The end result can be pretty awesome.

Sadly, life happens… You don’t always get to work with the folks you want. Many of my old development friends now live far away and are busy with their own jobs, family, etc. But I still think it’s a good goal to have…

Maybe I’ll look for some open source projects in languages I’m not very good with. Seems like an easy way to find people more skilled than myself…

Saturday, 8 April 2017

Specialized Generalist

Ah, yes… The age old debate of whether to specialize in a specific technology or skillset or to be a generalist who has a superficial understanding of many different technologies…

Honestly, I don’t think there’s even a debate. For real-world problems, you need someone who can have a deep understanding of how to architect a solution while still being able to have a big-picture understanding of the underlying problem being solved. In other words, you need someone with specialized knowledge/skills AND a general background in other overlapping areas as well.

For me, most of my ‘depth’ is (currently) in .NET and SQL, while the ‘breadth’ of my knowledge also encompasses IT operations and security.

I do occasionally see job postings for people seeking ‘generalists’, but I usually assume it’s a small understaffed company. But do they really need someone with a general understanding and familiarity with the technology stack or would they be better served by a specialist in one or two of the core technologies, with enough adaptability to work on the others as well? My instincts tell me it would be the latter and they either don’t realize it or don’t think they’ll find it. In either case, those positions also tend to mention being on-call, doing first-tier IT support, and all sorts of other red-flags that make me stay far, far, far away from them…

Thursday, 23 March 2017

Migrating away from VB.NET

According to the 2017 Developer Survey from StackOverflow, the outlook is pretty bleak for VB.NET… Out of all of the professional developers that participated in the survey, only 6.1% responded as using VB.NET (compared to 38.7% who responded that they used C#).

For the languages developers most dread working with, VB.NET was chosen by 77.2% of the respondents, under VBA at 80.4% and VB6 at 88.3%. Clearly there’s not a whole lot of love for Visual Basic…

That’s pretty sad.

I grew up using ‘basic’ languages of one form or another, so it’s kind of bittersweet that VB.NET has such little support these days… Not like the writing hasn’t been on the wall for years and years, of course… but still…

Looking at it from a purely pragmatic approach, though, it’s definitely time to move on. As a developer, there’s a definite financial incentive to it — I can get more jobs as a C# developer and I can get paid more money for it. That’s a no-brainer. And from a company perspective, I can understand why folks would prefer C# over VB.NET… There’s more talent to choose from, for one. Plus, whether true or not, there’s a stigma to VB.NET developers that they aren’t as skilled, aren’t as intelligent, etc. It’s hard to sell yourself as innovative, a market leader, etc. while having a product written in VB.NET…

Thankfully, I’ve already done some small projects in C#. There are some annoyances with it (case-sensitivity being the primary one…) but nothing too major.

One thing I noticed, though, as I looked at the stats is that even C# has been consistently dropping down in the survey stats every year. So that’s probably something worth taking note of… It could just be a self-selection bias from the types of folks on StackOverflow that are participating in the surveys, too, though…

Really, the biggest challenge I face is not so much the underlying language I use as much as just the architecture. It seems like desktop apps are a dying breed. The exception seems to be in the healthcare industry, but who knows how long that will remain true… Yet another thing I need to give some thought to, but I’ll save that for another time (and another blog post…)

Monday, 6 February 2017

Mindfulness Monday

One habit I’ve tried to develop over the years is to periodically update a list of my accomplishments. Not only does this make it easy to refresh my LinkedIn profile or resume but if I’m unable to think of recent accomplishments, it’s a good sign that I need to refocus myself and ensure I’m taking on the right projects (and not simply knocking out simple work orders as a way of killing time).

While that method has served me well over the years, I feel like it can probably be improved upon.

Instead of just updating my accomplishments ‘every now and then’, maybe I should increase the frequency a bit and make it a bit more deliberate…

With that in mind, it would also probably be worthwhile to be proactive in my accomplishments as well. Instead of just passively waiting for a meaningful project to fall in my lap so I have something to write about, I think I might start giving myself some small goals as well, so I have something worthwhile to work towards in between my other tasks.

Every day (or at least every week) should always have a few good accomplishments. And I think the more aware of them that I am, the more motivated it may make me for having an even better day or week the next time.