I'm working as a software Engineer (.net) in a small company. We work with deprecated technology, we are stuck doing the same things over and over (handling xml files with xslt.)

I feel that I'm not improving, and I feel afraid of new features that comes with the .net Framework because I haven't mastered them.

I feel afraid of changing my job (to learn new things): Generally jobs require a lot of qualifications that I don't have: Asp.net, wcf, wpf ,MVVM etc... ). I'm scared I won't fit a new job and I may be fired and consequently lose my wage. I read about impostor syndrome and I think that I'am affected .

I want really to change! But I keep doing procrastination.

Have you any ideas or plan to improve my knowledge on .Net development and increase my self esteem?

  • For me, self-learning works best when I can identity a project I'm interested in and do it in a technology I'm interested in (or need) to learn. So find an open source project you can chip in, or google ".net project ideas" and see if anything comes up that you find interesting. Take some of the work that you're working on and migrate it to a new technology. One thing to keep in mind, work like this tends to be on your own time, so be prepared to not do this during working hours. – sous2817 Sep 22 '14 at 14:11
  • So what is preventing you from doing the obvious thing (personal projects in your spare time)? – Telastyn Sep 22 '14 at 14:23
  • 2
    Procastination is the first reason.lack of motivation is the second and finally social network. – Kort Ria Sep 22 '14 at 15:07
  • 1
    This question might be better suited for Productivity SE – David K Sep 22 '14 at 15:46
  • Find other people who are interested in forming a group to learn or better yet, build something. – user8365 Sep 22 '14 at 15:57

One of the sad things about the state of professional employment in most organizations is that staff development has been cut to the point where it is rare for an employer to train its workers to improve skills even if in the long term that provides a benefit to the employer.

The current trend is to just hire people who have the right experience rather than cultivate that experience in-house. I chalk this up to obsession with immediate tangible ROI and superficial "metrics" which attempt to measure results without taking into account important strategic factors.

In your case, you were probably hired because of experience with data transformation using xslt. Few seem to be conscious, however, that working heavily with XML is perhaps one of the most mind-numbing activities a developer can do. If you're like most developers you'd like to build new things and explore new tools from time-to-time. If your employer is like most, they would probably rather leave you to rot in data transformation projects than train you up for some WPF (for example). They know they can just hire someone who has demonstrable skills in WPF who will "hit the ground running" (an incredibly insipid phrase IMHO), while you continue to chug along in xml projects.

Many people are in situations like this and many people even accept it with pleasure. It is a common problem.

The only thing you can do is to aggressively take control of your career path, no one will do it for you. In fact, even in organizations that provide extensive training many still don't take advantage of it. This is something that you HAVE TO do yourself. Procrastination is your fault and only you can fix it.

As some have indicated, you can of course pursue personal projects. That is always a good idea. But there are some other things that you can do which might help with your motivation and the motivation of those you work with:

  • Take training opportunities yourself. I don't know what things are like with .NET, but if you can find college courses for professionals that are either at night/weekends or online, that is a good way to get systematic exposure in new topics. Coursera is a great resource and is helping a lot of people stuck in boring jobs at least explore other fields it is free and online.

  • Propose and/or create new projects at work that use new technologies. This can be very difficult, but if you are patient it is possible to slowly (over months and years) get buy-in from others if there is a compelling advantage to the new technology. You can start small with internal projects and expand as needed. Alternatively, there is nothing to stop you from using new technologies within your own workflow. This is a great way to get started and you don't need permission as long as no one but you is working with the experimental stuff. Example: I did this recently with some data processing at my work. The common tool here is Excel/VBA macros/pivot-tables, but I started using R/Rstudio to accelerate my data-manipulation tasks to the point where people are asking what I am using to do stuff so quickly.

  • Go to conferences/meet-ups. If you're in a place where people don't seek out new things, you MUST make an effort to interact with folks who think as you do. Your employer might not spring for the fees/expenses. That's OK, you can perhaps get them to at least keep your vacation days. But even if that is not the case, isn't it worth it to blow some vacation days for something that will help your career?

| improve this answer | |
  • I will say this trend for just hiring in talent vs. training employees is starting to shift to the opposite extreme in some areas (North west US and just starting to take root in Central Florida) Essentially in some areas demand for devs has hit a point companies are having to offer more to get good talent, and where they struggle to find good talent they are starting to try and create it. (This is more common in small to midsized companies and progressive companies than large companies who've been around forever) You should try to learn what you can, and find a more progressive employer. – RualStorge Sep 22 '14 at 18:39
  • +1 for Coursera. Free, high quality classes, with help forums when you need them -- what more can you ask for? – Kathy Sep 22 '14 at 20:46

You are right to feel a pressure to do something. I meet developers like this all the time, whose skills are slipping away. If this is your last job before you retire, and the company and the work will last that long, you don't have to do anything. But if not, then you should. Because when the work stops, where will you be?

You feel, I expect, as though you are standing with your hand on a doorknob, but not opening the door and going through it, which makes you feel bad. But you know what? Your peers are just standing in the corner and haven't even found the door yet! And you don't have to burst through it right now. You can start by opening it and looking. Just look at all the shiny new tech that's been released lately that you could choose to learn about.

There are new .NET versions released all the time. You don't need to catch up on everything that's been released since you stopped keeping up; just learn the very latest stuff. Free videos and tutorials are all over the web, and if that feels a little too unstructured for you, there are proper courses you can buy. For example PluralSight (disclaimer: for whom I write, but not courses I expect you will want to take) has a $29/mo subscription with all the courses you can watch. There are offline readers to let you put courses on a phone or tablet and watch during your commute or in the evening instead of whatever you do now. One way of "looking through the door" is to make a list of tech and some resources you could learn it from, as well as what it's good for. This will help bring the huge universe of Stuff I Should Have Learned down to a more reasonable level.

Then, if you decide to learn a technology, set yourself a very specific small goal. For example, if that xml-processing stuff you're writing now is for a Windows app, "I will learn enough WPF to be able to open a file, read the contents, and put them on the screen." If it's Web, then enough MVC (Whatever the latest level is) to do the same thing. If you work with databases, add a clause in there about doing a simple statement (a select maybe) against a database. Then launch into your learning process evaluating things against getting you to that goal. A long article that's full of history and shiny screenshots to persuade you why to use a technology is not as helpful as one with code and the like to show you how to do what you want.

Once you've written a "hello world" app in the new tech, take a long hard look at your current job. You can't deploy stuff to customers with the newest versions, but is there a task you do all the time that would be quicker if you wrote a small utility? Maybe some powershell? Maybe a little WPF app? Look for something useful like that, and still in your free time, evenings and weekends, write it. When it's done, start using it. After about a week, go tell your boss what you did. Something like this:

You know how Xing the Y takes half a day a week and nobody likes to do it? Over the last few weekends I wrote a utility to automate it. I had to use the latest [WPF, MVC, Visual Studio, whatever] because it has this ABC feature that really made this simple to do. I learned how to do it and wrote the tool and now it's only taking me half an hour to X the Y. I know I wrote the code on my own time, but I'd like to give it to the company so that everyone can use it. Is that ok? How do I do that?

(Chances are your employment agreement says the company owns this thing anyway, so it's kind of an empty gesture to volunteer to give it to them, but your boss is likely to enjoy hearing it.)

Ideally, seeing this benefit from new tech would wake your boss up a little and get you a chance to keep learning new stuff. But that's not always how this goes. If they don't come along on your journey, that's fine. Set yourself another goal and another until you feel like you can apply somewhere else. Don't worry about getting hired to do something you can't do. That's the new employer's job to worry about. You just worry about getting good enough to get hired.

| improve this answer | |

In addition to self-training and side projects (which are essential to learning new skills that allow your career to progress), you might consider joining a consulting company.

You can be hired at a consulting company based on a particular set of skills, and then as you learn new skills, you can be placed on different client projects. Since projects change every so often, you are exposed to a greater variety of industries and technologies than you would at a single employer.

| improve this answer | |
  • While this is true, it's not a short term fix. I run a consulting company and only hire those who already have a proven track record of learning new things quickly and eagerly. Often, we're asked to create the examples, demos, articles and samples that others will learn from. If you're not already great at learning new tech fast, don't expect a consulting firm to pay you to develop that ability. – Kate Gregory Sep 23 '14 at 12:17
  • 1
    @KateGregory Agreed. I don't think the OP is ready to join a consulting company right away -- my assumption here is that he would need to master those skills first through self-study and side projects, which is a never-ending process. – mcknz Sep 23 '14 at 14:46

Can't you improve your current workflow by using for example WPF? For most of our boring tasks we used to make an interface or some graphical helpers. If you increase productivity with it, I don't think people can argue.

If you look for change, and can't find it where you work right now, it is not the right workplace for you. Find a better one, search actively and in interviews mention that you don't know the new technologies but you are really looking forward using them.

Train in your free time, write a tool to sort your stamps, access the weather service, sports reports, anything that interests you and when you see how stuff works you will figure out new tasks.

Get self-employed, open a company, take small projects aside from your job, there are lots of options.

Don't know how old you are, but it sounds a lot like midlife crisis, you might also want to check your medical status. You have a job and should be happy and motivated to improve your skills with or without help from your current company. Also sleep and rest enough, don't work overhours, don't get stressed, all that affects motivation.

| improve this answer | |
  • In fact, I have 28 ans years old. lool, It seems that I'am going throw the midlife crisis very early !! – Kort Ria Sep 25 '14 at 9:41

Not the answer you're looking for? Browse other questions tagged .