1

I have a couple of years in experience in a specific programming language. Now I'm having the feeling that I'm not learning anything new at work in that specific programming language.

What would you do in this situation?

  • 3
    Is your job learning the computer language? – thursdaysgeek Apr 5 '18 at 17:14
  • Ask yourself two questions - Why aren't I learning anything new? How was I learning before? Were you simply learning as you were working (passive) - learning should be a proactive thing - read about language features you haven't used yet; keep on top of new developments and changes; implement them or propose them as improvements in your own work... I've been developing almost 20 years now, and there is always something new to learn even in languages I've been doing for over a decade – HorusKol Apr 6 '18 at 0:31
  • you think a drywaller worries more about how much he's learning or earning? – dandavis Apr 6 '18 at 21:17
6

If you are looking to move up in your career, you'll do well to learn the other processes around software development, things that aren't tied to a specific programming language. Getting a good foundation in a language is great, but you need other experience in software development to be really valuable. The follow list highlights some of the skills you can learn about software development that aren't tied to any specific language. You can use these most anywhere.

Here are some examples, but isn't intended to be a complete list:

  • SDLC (software-development lifecycle): e.g. Agile / Scrumm
  • DevOps: Automate the building/testing/release of your code
  • Source Control: Learn everything you can about Git, and other Version control systems
  • Databases: Relational Sql, normalized data, NoSql, oh my...
  • Infrastructure: Cloud Development, Azure, AWS, servers, etc.
  • Architecture: Planning out software interactions across multiple systems.

(from a dev 20 years in)

7

Learning something new is nice. But your job is a job. It's supposed to earn you money. If you learn something new, from your employer's viewpoint, it means you cannot yet do your job properly. Your employer is not interested in your learning experience. They are only interested in you making them money. So expect your employer to be a passive party in this.

You could obviously just learn new things at home. Program something in your spare time, join an open source project or do some moonlighting.

You could obviously change your job. But personally I don't think that's a solution, because that still relies on your employer giving you an opportunity to learn new things. It will work, but it's a short term solution.

I think the real solution is to stop relying on your employer to give you tasks that teach you something. Instead, find out how to improve what you do. Could it be done better? I find it hard to believe that you have mastered whatever programming language to the point where there is nothing more to learn. There is. But you need to seek that knowledge proactively.

So when you get the next widget to make, don't think about it as something you have to do with your current skill and toolset. Think about how cool it could be, if you used a new skill or toolset. Automated tests? A better performing database driver? A new version of the language you are using? Maybe it's time to switch from SOAP to REST? I don't know what exactly you do, but there is a way to improve. But you need to find it. It won't be simply given to you.

  • "Learning something new is nice. But your job is a job. It's supposed to earn you money. If you learn something new, from your employer's viewpoint, it means you cannot yet do your job properly" - makes absolutely no sense when working in knowledge-based industries. I would argue that learning is an essential part of your job as a programmer. – M_dk Jun 21 at 14:23
  • I would agree that being able learn new things to is an essential job requirement. But if the employer has a 40 years old Fortran application and has no need for fancy new technologies or methods, then you cannot rely on them for learning something new. The employer is only interested in you learning something new if it's important for their business. And if it's not, then why would they pay for it? – nvoigt Jun 21 at 14:43
  • Because at some point the 40 year old fortran will become unmaintainable/too expensive and then what, just close down the company? I get that some employers have a severe lack of foresight, but that is a flaw and not something you should expect or accept as a normal approach or attitude. – M_dk Jun 21 at 14:58
  • Well, my advice is meant for reality and in reality, employers like that exist. Not every company want to be a great place for their employees and a happy family. Some just want to make money, arguable what companies are founded for in the first place. – nvoigt Jun 21 at 15:02
6

I don't think that I completely agree with the above answers, learning something new shouldn't been seen passively by your employer at all.

Personal and business progression should be a part of everyones careers it helps keep colleagues engaged, happy and satisfied colleagues not learning or progressing usually end up frustrated, much like you sound.

In your career if you find yourself in a dead end job, i.e. no room for personal or professional development you should start to look at businesses that value employee growth.

Just my thoughts though..

  • I'd like to add to this comment that in a software development world, if you don't learn anything new for a few years, your skills will become out of date and you will have problem finding a new job. It is extremely important that you keep learning the new technologies in your field. If your job doesn't give you that, then at least take some courses and keep learning. – Sparrow Apr 5 '18 at 19:26
  • I would also like to add that - potentially geographically-contextually - decent software engineers are in such demand that you should be able to find a job that gives you new problems to solve. Feed your brain. – Ant P Apr 5 '18 at 21:48
3

The hard truth is that your employer is, at best, disinterested in your career-development. Though the employee handbook may give phony lip-service to learning skills, they really only care about this stuff insofar as it advances their goals. That's why they try to formalize such initiatives using the bullshit term "SMART" goals. Having a desire to learn something entirely new and expand your skill-set is, IMHO, antithetical to the concept of "SMART" goals.

Regardless of where you are, however, there is still serious wiggle room for learning and skill-upgrades. You just have to be willing to aggressively pursue these things and take responsibility for them with NEITHER the consent nor support of your employer.

This is perhaps easier to do in smaller shops, start-ups or consulting companies where people have to wear multiple hats to get stuff done. It may not be the most idyllic learning environment, but to some extent you never really learn something until you are forced to "use it in anger" under some level of pressure. It means jumping into projects where you are under-prepared because no one else is prepared either and without you it doesn't get done.

In larger corporations where people have crisply defined roles, strict hierarchies and project managers grinding the life out of everyone, things are more difficult but still not impossible. You have to find others who think as you do and join forces to try to bring in new concepts, tools and technologies. As long as you're able to "finish your work" that will usually keep you out of the cross-hairs of the people who expect drone-workers. While you might suffer some lackluster performance reviews or lose out on a bonus, you're in a much better position to leave and use your new skills in other places-- while others who "followed directions" will end up getting promoted into obsolescence.

2

When we write code for someone we're helping them solve a business problem/need. Most business does not really care what language you are using. They are looking to increase their business. They don't care if you're using COBOL (I used to do COBOL, ugh) or the latest state-of-the-art framework if it can solve the business problem then that's what they want.

What this means for you is you need think in business terms. Look at various trends in the industry and research/learn them so you can be prepared to discuss how they could apply to your business. If you take more coursework take business (accounting, budgeting, marketing, etc. courses). You can always learn different languages, etc. In my case I've gone from COBOL, an MBA, into VB6 and now I do ASP.MVC and we're looking into cloud based stuff (AWS, CosmoDB, etc.).

Happy coding.

1

Yay. It means that you finally get to work in a language you're actually good at. You can now be productive.

A carpenter will spend a few years learning to do woodwork really well. They can then spend the rest of their career doing stuff they are good at.

In software, by the time you have learned to do something well, it's considered obsolete. You spend all your time muddling through trying to bluff your way in a language or system you don't really understand. It gets tiresome after a few decades.

Not the answer you're looking for? Browse other questions tagged or ask your own question.