35
  • I am a software developer and I know languages like Java, JavaScript.
  • A few days ago my project manager asked to learn some other language to work on services related to those language. It took me few days and I learned it but I didn't got any work related to that language
  • Now after few days gap my project manager asked me to learn another language and assigned some work related to this language.

Problems

  1. The promotion round just ended and they have not given me promotion.
  2. I am not able to tell them NO because I am in a very low position (just an associate while they are a manager!)
  3. I am not interested to learn those language which they told me, I don't want to be jack of all trades and king of none. Instead I want to be better in what I know.

Edit:- I am not against learning new things which are beneficial to them, the point is I am trading off my time for developing skills beneficial for them and not for my career ..I think if I will spend more time in the languages I know which are right now in good demand in this industry I can get better opportunity and pay.

I know these managers are making work out of me as their business needs, otherwise they would have to hire more developers who has that specific skills, in other words, i am in one way playing polyglot role and cutting the cost of this project.

Now, with the given scenarios, what can i do to receive appreciation and hike/promotion if i continue to be working like this and learning new languages as per as business needs ?

Note my manager is not a developer and they have very limited knowledge on development work and especially those languages which they asked me to learn.

New Edit(10-04-2019): Today they asked me to learn python, and i have already started learning.

  • 5
    We cannot answer "what should I do" questions here, as that choice is always up to you. What do you want the result of your interactions with your manager to be? Them stopping to ask you to learn new languages? – Erik Mar 17 at 8:20
  • 71
    I really don't understand why asking you to learn new languages is not showing you respect. It's saying you are someone who has the ability to learn new skills and isn't stuck in a rut. – Philip Kendall Mar 17 at 8:42
  • 1
    @Gregory Currie Yeah i am graduate , hired as associate, i sofware developer, i report to my manager.. – Shivendra Gupta Mar 17 at 8:52
  • 2
    @ShivendraGupta That is highly significant – Gregory Currie Mar 17 at 8:53
  • 2
    How long have you worked there? – Gregory Currie Mar 17 at 9:02
87

First off, I want to say that there would be many people envious of your position.

You mentioned you are a graduate, this situation can be typical of graduate programs.

Sometimes placement within a specific team can happen quickly, and sometimes without even the blessing of the manager of a team.

They may not even be prepared for you, or have work of a specific "difficulty" able for you to work on.

The thing is, at the very start of employment, and especially for graduates, it's often the case that graduates are not a net-benefit for a team. There can be long ramp-up times where you are not able to add benefit to the team as you gain experience and knowledge in a domain.

You are not a "joke", you are just fresh talent that can't be considered to provide the same level of work as someone experienced in the team.

Depending on what is going on, they may give you learning tasks which, while you may find useless, will give great benefit to the team going forward. This is in addition to great personal benefit to yourself.

It's understandable that you want to add value to the team. That will happen in due course.

If you are concerned, you should ask your manager what the short/medium/long term plans for you are, including what is required to transition you from graduate to the next rung of the ladder (presumably junior?). He will be the best person to explain to you what he has in store for you.

  • 22
    "...it's often the case that graduates are not a net-benefit for a team." Deserves bolding. Most school will not prepare you for the practical problems you will face in software. – jpmc26 Mar 18 at 1:40
  • 1
    @jpmc26 This is terribly true. Especially when you're doing sandwich courses or working as an apprentice in a company in parallel to your studies. Practically everything you learn will come from your mentor or is self-taught. – Clockwork Mar 18 at 7:16
  • @jpmc26 Well, there is a gold side to that medal as well. Most young new hires are highly dynamic to changes, are eager and willing to learn new things, and will trust more those who seek to change to improve. I have met my share of "king of the hill" grumpy old experts who just crave to say no to every initiative, because everyone always remembers that one time... and then as a victim of selection bias they gradually go from being a cog in the machine to being sand in the machine. So, learning by doing is a good thing, but it has its pitfalls. – Stian Yttervik Mar 18 at 9:35
  • 6
    @StianYttervik And that's kind of the problem with the OP, isn't it? He's already exhibiting behavior of those "grumpy old experts" after a year in a job. If you aren't even flexible, what's the point of employing you? – Luaan Mar 18 at 10:04
149

From one of your comments:

i want to work what i like to work and not what they want me to work

You need to go and start your own company then. If you're working for somebody else, you're at work to do what your employer wants you to do, not to do what you want to do.

  • 8
    Unfortunately some schools don't teach students that work is not for their amusement. – Nelson Mar 17 at 16:19
  • 28
    Starting one's own company isn't even going to solve this. You're still expected to consider what the client wants you to do, if you want to be able to cash some money in. And I'm not even mentioning what the administration wants you to do... – dim Mar 17 at 16:34
  • 3
    @aloisdg Except that if you can't stick at it, you may never get good enough to get to the "fun" part. If you don't have a profession you enjoy, of course, this may not be such a concern for you. Even then though, the better you get at one thing, the more you get paid and the easier it is to cover your bills. – Graham Mar 17 at 23:05
  • 1
    @RedSonja Maybe, but probably not to the extremes we see today. It's something that has gotten progressively worse over the past 3 generations or so. – jpmc26 Mar 18 at 1:42
  • 5
    Disagree with this answer. Literally taken you are correct. But he probally means "I'd like to work with techniques I like, at least most of the time". Then the solution would be "try to find a company that matches more". – Martijn Mar 18 at 9:17
66

In addition to the other good answers already here, I also think it may be useful to note that your attitude toward languages shows inexperience as a programmer.

The core tools and structures of programming (and, more generally, software engineering) are largely language-independent, and most of the people that I know who are strong programmers are not deeply concerned with choice of language. They often have languages they know better and prefer and languages they dislike, but their attitude toward being asked to work with a new language is typically not "No, I don't know it." but "I'll be a little slower on this project because I haven't used this language before."

As such, I would definitely advise embracing this opportunity to learn and to approach it as a chance to improve your skills as a software engineer overall.

In short: not as "now I need to learn language X" but "now I get to become better at programming in general but learning how language X is different than the languages I've used before."

  • 27
    After the third language they all look the same anyway. It gets easier with practice, and looks impressive on your CV. – RedSonja Mar 17 at 13:53
  • 14
    While I would subscribe to the overall sentiment of your answer - especially to embrace the opportunity to learn as a chance to improve one's skill - I would still argue that learning a new language "a few days" only without then at least using it to some extent is mostly a waste of time. It will just not stick to memory and will be largely forgotten in three months from now. – Ghanima Mar 17 at 14:03
  • 6
    @RedSonja Still putting semi-colons after Python statements? – DrMcCleod Mar 17 at 19:06
  • 3
    @DrMcCleod I'm still omitting them after Perl statements :( – Lightness Races in Orbit Mar 18 at 1:43
  • 2
    "The core tools and structures of programming (and, more generally, software engineering) are largely language-independent..." This is an oft repeated idea, but I don't buy it. The standard idioms of a language are heavily dependent on what features the language provides, meaning that code to do the same thing might look very different in each one. For example, OO is discouraged in Python in favor of more procedural or functional approaches; classes are rarely needed except to amalgamate related data. I would instead say that knowing how they differ leads to a better understanding and code. – jpmc26 Mar 18 at 1:45
35

Unless you work for a company that only makes its own proprietary software, and therefore has complete control over their languages and tools (and has no wish to move on), learning unfamiliar technologies is part of the job. Saying no to it is not only impractical at your level of experience, it is also a significantly career limiting move, as when the market moves on from what you know you'll find the range of jobs available to you dries up.

In any case, having a broad range of languages under your belt is technically beneficial:

  • you're able to work on a wider variety of projects,
  • you'll learn all the advantages of each and the tradeoffs they make; being able to select the right tool for the job is a highly important skill if you wish to become a senior
  • the more you learn, the easier each new one becomes.

As noted in the comments, you should be pleased that they want you to break out of your silo, it's a sign that they respect your ability to learn quickly.

  • 1
    It would be a sign of respect if they got the OP to use the languages learnt - which does not seem to be the case.... – Solar Mike Mar 17 at 9:26
  • 13
    @ShivendraGupta I don't know how this work where you are, but as someone who graduated 2 years ago, if I got a promotion each time I learned a new language, I'd be CEO by now. (And I'm still plenty efficient with my main language). In CS, learning new technologies is part of the job, as pointed in the answer, and it isn't a lack of respect to make you go up in competence without giving you a promotion outright. – Nyakouai Mar 17 at 10:35
  • 4
    Promotion isn't just about the number of languages you know. At least where I've been, a senior engineer also needs to be working on having influence in their team beyond the immediate tasks -whether that be getting involved with higher level decision making, developing more junior staff, being the interface with other departments. If you are a recent graduate then this is probably some way off. The best thing you can do is sit down with your manager and ask "what one thing would take me closer to a promotion next round?" rather than sit fuming that you didn't get it. – Julia Hayward Mar 17 at 15:10
  • 5
    "Respect" and "giving you a promotion" are very different.It is perfectly possible for them to be respecting your current skills, while believing that you don't yet have the skills necessary for the next level. And if you push back against gaining those skills, you're harming yourself. – Julia Hayward Mar 17 at 15:11
  • 2
    I would add to the list that being familiar with differing approaches to programming (which manifest as different norms and standards in different languages) will actually help you write better code. Learning Python's more procedural/functional approach significantly changed my C# code for the better. – jpmc26 Mar 18 at 1:53
9

You should take it as a blessing in disguise. You are learning other technologies and tools that you wouldn't otherwise learn if you were "pigeoned holed" into one language or platform. It gets easier to learn new technologies the more you do it - they are more alike than you think and there are frameworks or methodologies that span across platforms and tools.

I begun as an Android developer 6 years ago and a couple of years ago there was a time where there were too many Android developers at my company to have work and be productive. I was forced to learn React or be twiddling my thumbs for a few months. That was one of the best decisions I have ever made. Since then I have dabbled in many different tools like Flutter, React Native, Ionic, Angular, React, Native iOS, and Backend Web (AWS). Since I have experience with all of these tools I have more options to choose from of what I want to work on and thus have the ability to choose a project that is very interesting to me based on that flexibility.

I am not against learning new things which are beneficial to them, the point is I am trading off my time for developing skills beneficial for them and not for my career ..I think if I will spend more time in the languages I know which are right now in good demand in this industry I can get better opportunity and pay.

Actually them exposing you to the different tools might actually make you discover a hidden talent or understand how other platforms work - giving you a huge advantage over your competition and peers. "I think if I will spend more time in the languages I know which are right now in good demand in this industry I can get better opportunity and pay." - anyone in the industry would take a flexible developer who was good at coding rather than someone who can only do one platform or tool well. A great developer is not only purely measured by the knowledge of the framework or tooling they're on, but also how well they interact with their team, what methodologies they know, and how they write code.

Languages, frameworks, and tools change so often that you should focus on the goal you are achieving in the work they're giving you, rather than the chosen tooling or language.

  • 1
    +1 for "anyone in the industry would take a flexible developer who was good at coding rather than someone who can only do one platform or tool well." – Ilmari Karonen Mar 17 at 20:27
  • +1 My first professional programming was in NEAT3, Level 2. Fortunately, even as I was getting very expert in that language, I also learned how to learn programming languages. – Patricia Shanahan Apr 10 at 16:06
3

I want to concur with the other people who have pointed out the technical aspects of your problem: learning new languages quickly is one of the most important skills you will ever develop as a modern software engineer. From my perspective, every language is just a different library of syntactic sugar. They invariably make some tasks simpler at the cost of making other tasks more involved. Therefore, learning new languages is no different from learning new APIs and libraries. And the better someone like you or me is at leveraging existing tools, the more productive we become. If we consider the fact that these days new, powerful tools are being created and shared everyday, the dramatic advantage of a developer who can identify the right tools and leverage them for faster development becomes (to me) the single most important trait for being a good peogrammer.

Although there are "C wizards" and other incredibly specialized individuals in this industry, the most productive software engineer will, in my mind, be the one that writes the least code, and lets the right language and library do the rest.

2

So I wanted to point out that a lot of people saying you should be honored and that what is happening is good are only speaking bs. Realistically, you should want your job to be stuff you like, otherwise you have to deal with that daily and it makes your life worse. I would recommend asking if you could just focus on your current languages, and state that that would be a much greater asset to the company, as you can be great at those languages, and you won't screw up. Say this kindly though, and if they refuse, you can always start looking for another job. Companies shouldn't hire you for one thing and expect you to do something else. That's complete bs. If it isn't specifically listed as something you had to do when you got your current role, then you don't have to do it.

Edit: This is looking at the situation in a corporate manner, but from a programming perspective, you still might wanna know more languages if they are super close bound to what you know or are always required for what you do. That being said, they might have teams for other languages, but for example, if you know HTML and JavaScript, it would be best you know CSS (this is just an example).

  • 3
    Technically, you're not wrong. (Well, except maybe about hiring someone to do one thing and then asking them to do something else. Companies do that all the time, because their needs change and it's cheaper and easier than firing the first guy and hiring someone else to replace them.) But I don't think this is good advice for the OP. A programmer who only knows one language (or two or three) is like a carpenter who only knows how to use one tool -- not completely useless, but also not what most employers are looking for, especially not for senior positions. – Ilmari Karonen Mar 17 at 20:47
  • 1
    The thing is, programming languages aren't anything special. If you're not willing to work with different languages, are you also unwilling to work on different projects (written in different ways), adopting new development practices, working with other people's code, using the right tools for the job (tough if you only know one)...? This is problematic enough for a senior, but outright suicidal for a recent graduate - it just makes you look like someone who highly overestimates their own skills and contributions, inflexible, with an inflated ego. Bad all around. – Luaan Mar 18 at 10:20
  • I want to add, programming isn't a job in itself. There are different types of programming. It's like being hired to write slogans for companies and being told to write a blog post. You can't think of it as a general thing. It id unknowledgeable to do so. As far as being told to do one thing and having to do something else, that was bad wording, yes that is going to happen, but reasonably to an extent. Not with changing your job description for no raise. – LimeCyborg Mar 26 at 1:37
2

After doing this rodeo for 20+ years I've gone through some of this.

You have a career choice. From what you stated, you want to be a specialist in your area of choice. That's great, we need folks of all backgrounds and focus.

What your company wants of you isn't a joke. You're not a joke because of it either. You're the programmer! They don't care or maybe even know what their options might be. They've hired you to bring solutions.

The scale of this changes depending on if you're working at a company where their software is their business vs where software is a necessary evil to conducting their business.

I will tell you that being a hyper focused specialist is fine and good, but your options will be very narrow.

I've never heard anyone say being a Polyglot was a bad thing though. Learning various languages will expose you to novel algorithm approaches and different ways of solving the same problems. All knowledge is good.

Be thirsty my friend and drink from the fire hose of knowledge!

  • All knowledge is good. Sure, but time's limited. Jumping from medium level c# to java isn't going to teach as much as jumping from e.g c++ to haskell. – Joelty Mar 18 at 11:19
  • Time is the one thing that is short supply I will agree. Your point is valid but I didn't get the feeling that the op was at this level yet. – Casey Mar 19 at 14:57
0

This situation sounds distinctly familiar to me.

I've been in the enviable position for a large part of last year of being on the team's backburner, my particular speciality as an App-Developer being known to be needed, but not for a while. So they tasked me to upskill in Web-Development technologies and work on the company website.

This looks great on my CV, it's a whole skillset I didn't have before and I'm glad to have it.
As others have said, it's normal to be required to learn new skills and languages as a software developer.
Take it as a good thing, some studios simply won't give you the opportunity.

However, the big caveat is that they also gave me an attendant payrise to recognise my new capabilities.

If you're learning new skills or knowledge that affect your future employment, you have leverage to ask for a payrise.

Remember though, with rare exception, your employer will not tell you this, nor will they do it automatically.
You need to be the one to make a case for it.

  • "If you're learning new skills or knowledge that affect your future employment, you have leverage to ask for a payrise." I believe you've got this wrong - once you've learnt new skills and are in a position to apply them effectively for the benefit of the company, then you may be in a position to ask for a payrise, but when learning, particularly for someone in the same position as the OP, who's only been in the industry for less than two years - no chance. – Gwyn Evans Mar 20 at 17:49

protected by Community Mar 17 at 18:03

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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