237

I am in my 5th year as a developer (3.5 years as junior/mid level and now a senior dev).

My current role is not going well (people issues). Anyway, I said to one of the managers I was thinking of looking for another job and he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

How do I know if he is right?

Unfortunately, I agree with him. I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use? I am regularly studying (2 - 3 hours per day) on PluralSight and by making my own projects, but I feel like a complete beginner in most aspects of software.

  • 4
    Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Feb 14 at 21:03
  • 92
    "he told me there is no way I could get the same salary or position in another organization" - how did you get your current salary and position? – MrWhite Feb 15 at 3:10
  • 16
    The contradiction between "I'm now a senior dev" and "I only know the fundamentals" sums perfectly the whole problem with job titles in the software world. – Radu Murzea Feb 20 at 10:15
  • 8
    As Uncle Bob points out, the population of developers doubles roughly every 5 years, so if you have 5 years of experience, you're more experienced than fully half of all developers out there. That being said, he's absolutely right about one thing, you probably couldn't get the same salary elsewhere. With 20 open positions for every developer with more than 2 years experience seeking work, supply and demand requires them to pay you quite a bit more. – LightBender Feb 20 at 12:34
  • 10
    Arguably imposter syndrome is a sign of being a real developer :) – Meg Feb 20 at 18:58

27 Answers 27

706

You are already a real developer. I'm guessing that your boss is belittling you in order to keep your morale down, so that you're less likely to look for another job or ask for a better salary. Five years of experience is more than enough to consider yourself a qualified developer.

Given that your current role is not going well, and you have an emotionally manipulative manager above you right now, I would definitely start looking for another job that gives you the respect that you've earned.

  • 225
    100% this--5 years is definitely enough to be a developer, and SQL absolutely does count! Run run run away from that place and don't undersell yourself! – bob Feb 14 at 18:49
  • 150
    If you can SQL and regex, you win – Fattie Feb 14 at 18:51
  • 20
    A real developer has a rounded understanding of the whole development process, it isn't about being an expert in a particular language. The manager is probably aware of how difficult your job is and knows your boots will be hard to fill – Dave Gremlin Feb 14 at 22:16
  • 21
    According to OP's self-described skill level, I want to add they are of course a real developer, but not necessarily a real senior, so there may be some truth about not getting the same position when looking for another job. But of course it all depends on how one defines senior level. – sbo Feb 14 at 22:44
  • 25
    Unless you have a REALLY good relationship with your boss, disclosing the fact that you're looking for another job (or even thinking of doing this)... well, it's not good. The moment this happens management might as well start looking for a replacement while squeezing you out of everything you have (thus the emotional abuse on hand). Definitely seek a new job, but try to avoid doing the same thing in the future as well. – Shaamaan Feb 15 at 9:40
305

... he told me there is no way I could get the same salary or position in another organization

The person is an idiot.

If he was unhappy with your work, he would fire you.

What the person was actually saying is:

I'm desperate to keep you since you get stuff done. And there's an incredible shortage of programmers. But I'm going to belittle you and try to trick you psychologically to keep you working here, and not have to increase your salary.

  • 52
    @Fattie: in some countries/organizations firing immediately isn’t possible, so his manager may be trying to get him to quit, that is the only other reason (besides simple assholery) for his boss to be saying that. – jmoreno Feb 15 at 1:21
  • 24
    The actual fact is you are likely to get MORE if you move. See this article: Employees Who Stay In Companies Longer Than Two Years Get Paid Less – josh Feb 15 at 9:27
  • 10
    That person may be a manipulator instead of an idiot. – Cœur Feb 17 at 13:28
  • 2
    Do you know what position he holds or what salary he’s making? I haven’t seen anything that revealed how much he’s making, much less if he’s being overpaid. I hardly see how you can call someone an idiot based on the lack of information you have. I would suggest that those that make false assumptions are the idiots. Furthermore, how do you know is being said? There’s plenty of reasons why a person may be valuable over their programming abilities. 1) the optics of turnover 2) recruitment costs 3) training costs 4) institutional knowledge 5) termination costs (unions, disputes, etc) – vol7ron Feb 17 at 15:45
  • 4
    A bone to pick: there is no shortage of software engineers. There is a hoard who call themselves that who make it difficult for good ones to get their resumes looked at. Sometimes if I notice an opening somewhere that is too good to pass up (eg: 100% remote, self-managed, higher pay, tech I prefer), I drop an application. Even when I explicitly call out that I have 50% or more years than they've requested doing exactly what they want using all the tech they list (even if their "bonus points" sections on top of the required list), I've still failed to get an interview in the first place. – Aaron Feb 18 at 22:41
120

You already are a developer. There is a meme doing the rounds on LinkedIn at the moment which is worth quoting here:

Your value does not decrease by somebody else's failure to see your worth

Developers are in huge demand. There have been recent articles stating that developers are more important to companies than gaining access to capital - and that value is rising all the time.

I suspect their ploy is to make you stay but if they're openly putting you down - why should you?

  • 33
    That's an excellent way to put it: for a product, division or new business, it is literally harder to get programmers than capital. Quite right. I can think of any number of startups, divisions, etc that have simply given up because they can't find programmers in the relevant speciality; on the other hand there are idiots handing out capital on every corner. An excellent observation. +100 ! – Fattie Feb 14 at 17:26
  • 3
    "Your value does not decrease by somebody else's failure to see your worth" Sadly, that's exactly what a market says is true - a good/service is only worth what people are willing to pay. The question is, is the market better than what you're getting. – UKMonkey Feb 15 at 10:21
  • 3
    "Developers are in huge demand." That probably depends on the locale, and field. In some areas (both in the sense of geographically, and that of field of work), maybe, even quite possibly. In others? Not necessarily so much. – a CVn Feb 16 at 21:04
  • 3
    @UKMonkey I have learned: (1) to get market rate, you have to job hunt. some individual person's failure to see your worth does not imply the market does not see your worth; and (2) I have intrinsic value and do not need external validation. – emory Feb 17 at 0:08
  • 2
    @UKMonkey The point is not to get stuck on some particular person's idea of your worth. If everyone on the job market thinks you suck, there's a good chance you suck (or present a large enough risk to warrant that low potential wage). – Luaan Feb 18 at 16:28
68

LOL

I remember when I was working for a major NY based newspaper and our entire team was slapped with that "Not a real developer" moniker. (We were separate from the main group and handled everything from development to desktop support, back in the 1990s and early 2000's)

The "Real developers", in the main IT group insisted they do the work.

Management decided to let each of the two groups do half the work (it was feasible) and let the end users, who would be using the solution, decide which way to go.

After calling our work "sh*t code" to our faces, and delivering their "masterpiece" to the end users, the end users chose our work over theirs and we quickly redid the job the "Real developers" made a mess of.

You're doing development, you are a real developer. You may need to branch out, and given the attitude at your company, I strongly suggest it.

Don't listen to anyone who says "SQL doesn't count". It sure does, many people can't even write basic SQL, and the reversed order of processing can screw up programmers badly. Being able to do both is a rare, and valued skillset.

Trust yourself a bit more. Don't listen to your detractors. IF you are lacking in an area, do freelance work to strengthen yourself, but don't let anyone discourage you.

  • 15
    +1 to the SQL counting. I write in .NET stack and SQL and integrate both while using SSRS for effective output. Everyday I get calls from recruiters and companies who are looking for a full stack with SQL knowledge and they are offering good money. SQL is in demand especially in the healthcare sector. – Noble-Savage Feb 14 at 20:03
  • 1
    @user87779 thank you. I edited to clarify. if that's still not clear enough, let me know. Thank you for your input. – Retired Codger Feb 14 at 21:12
  • 2
    @user87779 oh yeah, we threw that "Sht code" comment right back at them. "If ours is sht, and the users preferred it to yours, what does that make yours?" – Retired Codger Feb 14 at 21:18
  • 3
    +1, though most people can actually do a "basic SQL" order. That being said, when you begin to enter the join, coalesce area, there are not many of them remaining, which makes your answer true anyways. – gazzz0x2z Feb 15 at 8:52
  • 1
    @TheFrozenOne sorry there. I'm fiercely prideful. I deleted that comment, and yes I see your point... boy do I see your point. I was a maintenance coder for years. Oh, the humanity! – Retired Codger Feb 22 at 14:50
38

If you can write code that works, you are a developer.

Especially if you are in a senior role with five years of varied experience! Your manager, working for the biz, needs good devs for the jobs. If you are classed as a senior developer, you are most definitely fulfilling that need (along with your colleagues).
If your boss is pushing you around, making you feel worthless, or even worse, making you believe you are not good enough, then leave him. Find a job with someone who cares about the employees. Prove to him that you can find a high-paying job, with a senior role.
Your manager is saying two things here:

  • You are lucky to be where you are.
  • You can't leave

This boils down to:

You have to stay; out of need, not want

He has used some powerful wording.
He is being psychologically manipulative, or simply put, small minded.

You are in a senior role at a high-paying job. Whatever your boss says, you are doing something that he needs someone to do. You are clearly doing this well.
It looks to me like you are losing interest in the job, and he knows it. Don't let someone else upset you. Do what you need to do, and remember:

He is only one person, with one opinion, with as much significance as you give him.

  • 1
    Hi Benj. Would you say this about any other knowledge worker position? If you do medicine, are you a doctor? Are you an architect if you've architected something? I would hope not. I would hope that there were more to it than that. – Kevin Beal Feb 20 at 15:11
  • 1
    @ManPersonson +1! You first have to accept that these titles and jobs: whether it be developer, doctor or architect, they are all labels. The original post was about whether someone can label themself as a developer. Does someone deserve to call themself a doctor if they have studied medicine? Well, are they qualified? Does someone get to call themself an architect if they have designed a building? Have they done the 7 years of training? It's about whether someone has deserved to earn a title, whether they want to, and whether they have tried to earn this privilege, this mark of experience. – Benj Feb 20 at 15:41
29

Since you are a senior developer, I assume you have gone through several promotions to get there and weren't hired into the position as a fluke.

A senior developer should have a wealth of experience, and can perform most job tasks with little guidance. Your company should have a career matrix you can check to see what boxes you clearly checked off in order to get promoted to where you are.

You're a developer (that's what your job description says, doesn't it?). I think your mistake was telling your supervisor you were planning to look for another job. He might have made those comments out of bitterness. Just look for another job and let him know you're leaving after you have an offer somewhere else.

  • 25
    Indeed, telling someone you are thinking of leaving is madness. – Fattie Feb 14 at 17:22
  • 5
    Agreed about telling him you're looking to leave. In the future never ever do that. But live and learn. Sounds like there were other problems though, perhaps this isn't boss' first foray into emotional abuse... – bob Feb 14 at 18:51
  • @Fattie care to explain why? – Wilson Feb 15 at 9:35
  • 2
    hi @Wilson - it's a standard workplace practice that you never, ever, EVER, mention that you may be leaving, ever. I realize that is not a "why" answer to your question: but it is perhaps the most discussed topic on this site, so, one can easily read dozens of long QAs on the matter here (rather than me saying a few summary words). – Fattie Feb 15 at 12:59
  • 2
    @Wilson, because when you tell your supervisor that you are thinking of leaving, they will immediately know that you are unhappy with your current position, that every day off you take is probably so you can go to an interview elsewhere, and that you may not be putting in your best effort anymore. It's like if you were dating someone, and rather than breaking up you let them know that you were looking for a new partner. – Catsunami Feb 15 at 15:59
16

I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

You, like most of those who've written answers so far, are missing an important point. Being a 'real' developer isn't about knowing arcane features of a language, it's about being able to solve problems. If you can do that using only the fundamentals of whatever languages you work with, that makes you a BETTER developer than people who drag in those arcane features to show how smart they are, because your code is much more likely to be easily understood by others.

Indeed, I've found that about the only place where knowledge of such features is really beneficial is when you're stuck trying to decipher someone else's code.

  • 3
    I'd go further and say that as well as being able to solve problems, ideally being a ‘real developer’ is also about creating solutions that keep on working when conditions change, that are easy to read and understand, that are easy to maintain and enhance, that are relatively efficient (in space, time, and code), that fail gracefully, &c. None of these things is easy or clear-cut — and none of us ever fully achieves them. (I'm still trying, after 25 years…) All we can do is keep trying. And if you're trying for those things, then you're a real developer as much as anyone! – gidds Feb 15 at 10:05
  • 1
    @gidd: True. And languages change, and the language developer Y has to work with may not have the arcane features that developer X used a couple of decades before. Perhaps I'm dating myself, but my first internship involved trying to update some (fairly important to the company) code written in IIRC Fortran IV, using assigned & computed GOTOs. en.wikipedia.org/wiki/Goto#Computed_GOTO_and_Assigned_GOTO – jamesqf Feb 16 at 18:26
  • +1 From me as IT manager's perspective this is the best answer. A real developer solves problems. A real good developer doors it intelligently and produces as little maintenance overhead as possible (obviously, for that to work well, it helps much to have other roles up to par as well) – Gnudiff Feb 18 at 7:52
  • People don't "drag in arcane features to show how smart they are." They use capabilities that were built into the language -- after careful consideration by people with way more experience than nearly all of us -- in order to make their code shorter and easier to maintain. – Daniel McLaury Feb 20 at 3:03
  • @Daniel McLaury: My experience says otherwise. – jamesqf Feb 20 at 19:27
12

How do I know if he is right?

By applying to another position and seeing if you can get the same salary. Just to give you a background my last job had a manager who talked like yours. The area is spotty with tech jobs and as such, he's correct to some degree that finding a similar job for the same pay for the same length of time would not be possible. A lot of folks who quit, left the area completely and met great success.

With that said, his approach to employee retention failed. He was wrong as there were plenty of jobs in the area that offered more salary and better retention rates than the company. He was fired some time later as a lot of folks left and the web product was failing. It's easy to get discouraged when someone tell you that you're worthless and it's "confirmed" with the first failure. Consider this: if he considers you worthless and unable to find a job, why is he paying you?

You just have to be smart and apply, look, and talk to folks. Look at others who left the company. Where are they going? Are they leaving the area? Or are they still in the area?

  • 3
    This. You don't even have to apply to another position seriously. Just go for a few interviews and see where you are in terms of skills and salary, even if you are not intending to accept the position right now. You might actually run into something good, but at the very least you will be able to counter your manager's story with facts. – CompuChip Feb 15 at 9:11
  • 2
    The only source of truth is empirical testing! – Nowhere man Feb 19 at 15:52
  • And arguably you should at least interview somewhere once a year - not because you're necessarily seeking the job, but just for the practice. Maybe it turns out to be an amazing job and they want to offer you twice what you're making now. I'm making 2x what I was making in my first job, 7 years ago. I'm quite certain that the devs I used to work with are not making 2x their original salary. – Wayne Werner Feb 21 at 15:54
12

You should read the Wikipedia page on Impostor Syndrome. I've also questioned whether I'm a "real developer", especially while working with people who are much more accomplished than me, or who seem to do what I can do, only much, much faster.

But I still believe I'm a real developer, and the reason for that is because I can write code that does what my users need it to do. That's the baseline: can you get your application to do what your users need it to do? If the answer is yes, then you are a real developer.

Sure, there will be bugs, and sometimes it's because you did something dumb, but that doesn't mean you're not a real developer. If a tennis player misses a return, does that make them not a real tennis player?

Then only way you can know for sure whether you can get another role with the same (or higher) pay, and the same position, is to put yourself out there and interview for it. The interviewers will have steps in place to filter out the people who don't meet their requirements.

Unfortunately, I agree with him. I only know the fundamentals of the languages I work with (C# & JavaScript), although I do consider myself an advanced SQL guy (but I'm regularly told that doesn't count).

So, how will I know when I know enough to call myself a developer?

With regards to your question, being a developer isn't just about having X amounts of knowledge. A more important skill is to know how to find the knowledge you need to get the job done.

Lastly, don't discount the non-coding skills you've picked up over the years: being able to debug code, analyse requirements / use cases, come up with solution designs, etc.

  • 2
    Also read the book Learned Optimism, it goes over the underlying issues with Imposter Syndrome, but was written before that term was popular. Fantastic read! – Elijah Lynn Feb 15 at 2:00
10

How to know if I am a 'real developer'

You've been working in software development for five years, I am sure that your company isn't employing you just to be nice to you and they are getting something out of the deal.

It's not your current managers place to tell you whether or not you are up to the task of working elsewhere. It will be down to the people who interview you for other positions who will decide if you are up to the task.

I would suggest you get your CV together and apply at some other companies and maybe you'll see your worth then.

I've never walked into any job and known all the the company jargon and everything in their tech stack, there has always been something to learn and I don't know anybody different.

Believe in yourself, and I hope you find something you like where you are appreciated.

  • 2
    On side note, If you gave your last interview 5 years back, brace yourself for couple of "bad interviews". Some interviewers ask very basic questions at start and even after working for long, you tend to forget such stuff. So, if you go through some shitty interviews, You are still a real developer!! – Swanand Feb 15 at 9:32
10

he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

And yet, here you are, getting paid by your current company.

There is no such thing as a "real developer". It's just how good you are at your job, and that is not a binary thing. It is a scale.

If as you say, you have identified holes in your knowledge, it's time to rectify them. However, you also need to realise that no developer worth their salt feels comfortable/knowledgeable every single day, as they are constantly stretching beyond their comfort zone and feeling like beginners everytime they learn something new. That is a good thing.

Lastly, being a developer is not just about programming knowledge. It's also learning to be a professional, and part of that is understanding what kinds of feedback to take in and what to ignore/push back. I'll leave you to decide which category this kind of feedback belongs in.

  • I take issue with "no developer worth their salt feels comfortable/knowledgeable every single day". Some people prefer bleeding edge style jobs where you have to keep up with the latest fad. Other people prefer to work in companies where stability is highly valued and have had time to specialise deeply in the languages, technologies, and business domain. Since they move jobs less often, they're probably more likely to be underpaid, which makes them the opposite of "not worth their salt". – Peter Taylor Feb 18 at 13:33
  • If someone isn't feeling uncomfortable ever, chances are: they aren't expanding their skillset. If that results in them getting paid less than their peers who undertake new technologies, then I would argue that they aren't underpaid, they are simply paid less. Someone who knows language X at level 1 of 5 (let's say) being paid 20% of someone who knows the same language at level 5 of 5 isn't being underpaid. The former is just being paid less, because their skillset is worth less. – kolsyra Feb 18 at 14:18
  • Received wisdom is that you only get paid what your skillset is worth if you move company every few years. A new person moving in to replace someone who's been in the same job for 10 years will probably be paid more, even though they won't have as much knowledge of the business domain and will start from no knowledge of the codebase. – Peter Taylor Feb 18 at 14:40
  • I don't want this to be an extended discussion, but skillset and knowledge of business domain aren't the same. Someone who won't have as much knowledge of the business domain and will start from no knowledge of the codebase isn't necessarily worse than someone who has a lot of knowledge about the business domain either. – kolsyra Feb 19 at 7:57
  • That's a red herring on a red herring, so I'll have one final try at rephrasing my original point and then I'll move on. What makes a developer worth their salt is being good at what they do, which doesn't necessarily require learning anything new. – Peter Taylor Feb 19 at 10:15
6

These are all some very good answers; I really enjoyed the boyfriend/girlfriend comment above. And others have addressed that you have been employed for 5 years, so that proves that there is a legitimate business need for you and your services. I would add the caveat that that it proves you a a "real" professional, but not necessarily a "real" developer.

What makes you a "real" developer?

Don't let anybody tell you that SQL doesn't count. There is no language that doesn't count. If you understand HTML, or XML, at a very high, broad, and detailed level, you are developer. If you understand EDI files, or even MIDI files, at a very high, broad, and detailed level, you are a developer.

I think that what separates the "real" developers from mere coders, IT support, and technical interns is: understanding of systems, understanding of software-development life cycle, untaught aptitude, natural or practiced... and successful, deployed projects. If you are competent to provision your operating systems, IDEs, servers, and testing environments, from off-the-shelf hardware, software packages and cloud services, you are a developer. If you understand in theory and practice how to track down bugs, how to do feature-branching and unit testing, you are a developer. If you have tried, sometimes unsuccessfully, to teach and train others on what comes second-nature to you, are you a developer. If your stuff works, you are a developer.

Don't let anybody tell you that being a "real" developer is somehow a function of pay or professional advancement. It is good to have pay and professional advancement, but there are college students and even high school students who are very talented in building their fun open-source and hobby projects: retrocomputing, gaming, linux-from-scratch, amateur radio, crypto mining, screensavers, customized firmware, making art on graphing calculators, and whatnot. Even if those kids don't have the pay and advancement appropriate for their skill level, because of lack of formal qualifications, lack of professional maturity and "soft skills", or a lack of business need for their specific specialties, I would never dare say to their faces that they are not "real" developers.

Because their stuff works.

  • 3
    What boyfriend/girlfriend comment? I think it might have been moved to chat, could you put it in your answer please. – reggaeguitar Feb 14 at 21:16
  • 1
    @reggaeguitar I think he means this comment workplace.stackexchange.com/questions/129099/… "It's like if you were dating someone, and rather than breaking up you let them know that you were looking for a new partner." from Catsunami. In reference of "never telling your company that you're thinking of leaving". – alexbt Feb 16 at 22:15
4

Ignore the commentary and drama at your current job. Go apply for jobs elsewhere. If you don’t get the job, you’re out nothing. If you do get an offer, you’ll know what your skills are worth on the open market and can decide where you want to work.

It never hurts to look around.

4

Your manager is an idiot.
Either he's trying to scare you into staying at your job, or he's putting you down for ego reasons, or he actually believes this nonsense.
All three of those are reasons to just drop the job and move on as quickly as possible.

Being a developer is not about the specific languages, skills or tools you have.
Being a developer is about being able to produce products to spec. That's it.

You've been doing this for upwards of five years, I think you're probably fine.

If and when you opt to move on from this job though, remember that skilled scripting and particularly Advanced SQL are valuable and relatively rare capabilities.
Don't let anyone convince you otherwise.

  • I have seen suits belittling technicians as "they would not be able to do management" work. whilst the probability is high the OP is just being manipulated, in both cases, either manipulated or the manager really believes what he is saying, it is high time to dust off the CV. +1 – Rui F Ribeiro Feb 17 at 20:31
4

I'd agree with all the comments above that you're probably a great developer already, but if you are looking for areas to improve, these are a few I can think of:

Reliability:

Why do bugs and rework happen in your environment? Can you change process (TDD, integration tests, better stories) to help this? Are tools or code structure at fault?

Performance:

Why is the system slow or unscalable? How can we drill down and debug this? (clue, find the real answers, don't trot out received knowledge from the internet)

Productivity:

How can we work smarter? What is taking time, and does this relate to real business needs? Are we using appropriate toolsets and process?

Domain knowledge:

Do you understand the needs of customers? How can you improve on this, whether it's by visiting the shopfloor, reading a textbook or going on a course. Even if it isn't a direct part of your workflow, understanding the why and how of requirements makes you a better developer.

And if you aren't able to move in those directions because your works sets barriers, then it's definitely time to move on.

4

Considering the chosen answer does NOT answer the question:

So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use? I am regularly studying (2 - 3 hours per day) on PluralSight and by making my own projects, but I feel like a complete beginner in most aspects of software.

In general, you COULD go with a very baseline definition:

You're a dev if someone pays you to do development.

But that's not a helpful statement for your purposes.

I'm going to define "real developer" because in this context it needs defining.

A real developer is someone who builds software professionally.

Side note, this is likely a contentious definition, because this literally excludes hobby coders, whom I personally consider to be developers too. However, an argument can be made that they're not EXACTLY like professional developers, because they're not "squeezed" the same way.

So a "real developer" in general should be comfortable with:

  • Design modules or larger architecture (this depends on the org tbh)
  • Effectively be able to debug and "walk through" logic
  • Understand good code craftsmanship
  • Understand the process of building a piece of software for money (delivering a product)
  • Be able to work in a team and be autonomous
  • Be a self learner (which op clearly is)
  • Some deeper understanding of some coding paradigm (OOP is popular but there's a lot out there)
  • (this is just opinion) but some deep understanding of some language. Understanding the more granular aspect of it. (How it's compiled, generics...) Especially if you're in a lead / senior type position.

Many people will push back on this, because we're measuring a developer. But I'm answering the context of your question. You were talking about new opportunities elsewhere. Well, these things will be the things that potential employers will be looking for.

Also, good work on be being self directed enough to use Pluralsite, I use it too, I love it. I might suggest though that you might look at more theoretical computer science (videos tend to be extremely practical oriented). Learning things GRASP and SOLID and being able to apply them goes a long way. Which is why BOOKS are an excellent way to learn these things because they're far more in depth than videos. Ideally you would do both.

In short: You need to be able to go from idea to product. You don't need to be an expert but you need to at least be able to somewhat competently stumble through that process. Also, communication. Many devs underrate communication, it's important. (that last bit is a just a random tangent).

  • Thanks so much, this is actually a really useful answer :) – Cloud Feb 20 at 10:39
3

Your manager is only providing opinion on what you are worth to him and his company, which may be biased by bullying you into staying. You have to take it on yourself to do your own research on what your salary would be based on open positions else where. I have a feeling you'd find lots of developer positions based on your level of experience.

3

I agree with all other answers, but there is a point you need to ensure before you go looking elsewhere : do you know to sell yourself as a software developer?

You already began by describing your current skills, but you need to work on your narrative; a job interview goes deeper than a Workplace stack entry. Rethink about everything you did the last 5 years, everything you did learn, everything you did make right, every hard lesson you did get, everything that makes you a real developper. If possible, practice with a friend(not in your current firm) speaking about you.

In the eyes of recruiters, you'll be a software developper as soon as you'll be able to tell them a narrative on how you became a developper. That's the real meaning of your boss's speech(even if it's not what he thinks).

Other answers already gave you great beginnings to your own storytelling. Work from that, show that you are a problem solver, remember that recruiters want people who remove them problems, show that in your story, and then you'll be a software developper in the eyes of the people who really count.

  • 1
    Exactly, how happy you are with your current skills, and how interviews with prospective employers will go are only loosely related! – Dennis Jaheruddin Feb 20 at 11:34
3

Sorry to post yet another answer, but it's too long for a comment and I don't see any of the many existing answers addressing this point.

there is no way I could get the same salary or position in another organization

This part may be true. We'll get back to that.

because I'm not a real developer

This part is demonstrably false. The other answers have covered this turf.

But let's dwell for a moment on the first part. The qualifications you listed do not necessarily scream "senior developer" to me. Although that has to be weighed against the fact that you are asking the question you asked here, which does kinda suggest impostor syndrome: you may be selling your actual skills short with that description you gave.

In any case, I look at it this way: I have a certain skillset as a developer. Some jobs* are "above me" in the sense that I could do them although I'm not technically qualified (for some definition thereof). Some are "beneath me" in the sense that you could probably get a less-skilled developer to do them with roughly equivalent performance for less money.

You may have lucked into a job above your nominal weight class. If so, congratulations! There's nothing wrong with being lucky, assuming you are adequately discharging the duties of the position you hold. But it may mean that it will be harder to recreate that same position elsewhere. You won't know unless you try.

But in terms of your current position, just remember, a lot of personal and professional growth comes from biting off more than you can chew, and then chewing as fast as you can.

* In my area of expertise. I'm not suggesting that John Q. Developer (including me) could just immediately be productive in a completely unfamiliar arena. No one will be paying me to hack on the linux kernel anytime ever, just to name one example.

  • 1
    Seriously? This is very common to underrate salary at current job. People almost ALWAYS get decent raise when they switch jobs. This is a red flag for me on part of manager to have said that. – Zeb Feb 20 at 17:27
  • 1
    @Zeb I'm not sure we're disagreeing here. The fact that they have ulterior motives for saying that doesn't make it untrue. The fact that it's generally true for most people does not make it true for everybody. I agree that's its a red flag, classic PHB move, but that also doesn't make it untrue. The fact that the OP is clearly a "real developer" for any reasonable definition doesn't make it untrue. I wrote this answer in the context of ~15 existing answers of unbridled optimism, and all I'm suggesting is a little empirical testing (i.e. OP should go interview for other jobs). – Jared Smith Feb 20 at 18:57
3

What you are feeling is known as "impostor syndrome", the thought that you don't really know what you are doing and people assume you are better than you are.

Here's a secret: Everyone feels that way, and it's rarely the case. Ask yourself, if I am given a new task that I need to learn some specific tech for, am I capable of doing it? Because few people are experts in multiple languages and never come across anything they don't understand immediately.

Your boss is "negging" you, saying you are not a real developer because they don't want you to quit. That tells you that you are actually a valuable asset for the company and worth more than you think.

2

I am in my 5th year as a developer.

That's how you know you are a real developer, e.g. if your current employer is not hiring a real developer to replace you, shows that you are a real developer. Period!


I have been in a similar situation just a few months ago,

  • Getting paid higher than market rate
  • People issues (suffering due to petty politics)
  • Working hard on improving my skills through Pluralsight, Edx, Youtube
  • Feeling like a beginner in some respects
  • ...I even worked with C#, Javascript and SQL

The truth is, your current manager is trying to demoralize you, so that you wouldn't leave. You have people issues because your manager is incompetent in his job, i.e. managing people. You are getting paid higher because your company isn't being able to find other equally competent people who would be ready to work there.


So, how will I know when I know enough to call myself a developer? Is there some kind of matrix/test I can use?

I would say the ideal first step would be to start looking for a job on the side. Don't put in your resignation, but start interviewing to decent companies. If you get relatively good offers, that should give you some confidence, and you might even consider switching.

Second, you can look for professional certifications. Microsoft's 70-480, 70-483 and 70-761 may apply to your work. Having such a certification should not only boost your confidence but also help you demonstrate your skills whenever questioned by your manager or other superiors.


Bottom line, stop doubting yourself. See how other employers perceive your skills. Find a way to validate your skills through suitable of certifications.

2

My current role is not going well (people issues). Anyway, I said to one of the managers I was thinking of looking for another job

A few points here... First, unless this guy is of high moral fiber, it is never a good idea to notify your current workplace that you are looking for a new position. And the reason why:

...he told me there is no way I could get the same salary or position in another organization as I'm not a real developer yet.

is because now he is trying to control the situation, but not in a moral way. I'd guess he is already planning his next move after you because he assumes you are on your way out, but he isn't quite ready for that yet. Not that he is completely in the wrong here if he is planning his next move because why wouldn't you move on if someone has verbally told you, in person, that they are thinking of looking for a new position? Be the manager and look at the cards on the table...

I learned the hard way about trying to be upfront. As much as it seems like the right thing, there are very, very few workplaces where it is. It's best to just stick to giving ample notice when you have secured a new position (again, unless you are certain that you are working for someone that you know won't pull this kind of stuff; they do exist, but rare...)

As far as whether or not that is true... First frank question is "ok, then why are you paying me in this position?" This honestly sounds like a reverse martyr position IE "This place would never survive without me!" but instead "You'll never survive without this place!" which is rarely ever true. You survived before, you'll survive after, same goes for the workplace.

2

Also you can use this app if anyone wants to check if they are a real developer.

1

This is very close to many other questions - amI a True Believer? Am I a real activist? Am I a real man/woman or do I meet criteria for being a real transgender person? Am I a real Jew,real Muslim, real Hindu, real expert, real authority, real Lesbian, true believer in Christ, true follower of the Prophet, true leader, real vegan,true whatever?

You are what you are, someone who has learned, and will always learn more. Labels can help sometimes, but the label isn't helping here, it's strangling you. Read up on "imposter syndrome".

You are you. You are good enough to justify your right to existence (philosophically or in the workplace), and you are always able to choose to learn more.

End of.

1

If you can successfully complete development tasks, you are a real developer.

That said, there are good developers - those whose code is consistently of high quality. But, what makes code high quality? Code that does the intended job reliably and efficiently - solves the right problem, has minimal or no bugs, and does not waste resources; code that conforms to best practice and is readable and maintainable. What also separates good developers from the rest are skills beyond simply writing code - written and verbal communication, organization, analysis, problem solving, estimation. These are necessary for a good developer to gain the correct understanding of the job to be done, break a problem down into actionable pieces, plan out tasks, communicate requirements for time and resources, and report progress.

There are far more bad programmers than good. No matter how good you are, there is probably room for improvement in some respect. What matters is not where you are on some scale but whether you are striving to improve. If you are actively working to become a better developer then you are a real developer.

As already said in other answers, saying you are not a real developer is a put-down intended to manipulate you in some way. You would be better off not working for someone who would do that to you.

1

There are a lot of supportive answers. My answer will try to objectively address your question but might not be very supportive.

The ugly truths:

  • 5 years may or may not mean anything
  • SQL expert knowledge may or may not mean anything
  • You seem to be in a toxic environment and you should plan on leaving. Any work environment that allows/tolerates a manager telling you something like that is an environment you don't want to work in.

How to know if you are a real developer?

Short answer:

When you can take on a medium-large project alone and program them from the ground up.

It's not about how many programming languages or frameworks you know. It's about solving problems and achieving a result through the best practices.

Long answer:

I used to work in a company that had a base code developed by a team that is treated as a first class citizen of the company. Then this base code is customized and sold to the clients by another team that is considered second class citizen and are generally treated as useless parasites by the first team. The whole work environment is very confined and restricted in terms of access and tools you use. The job boils down to filling the blanks in that base code and do minor styling changes. I was on that second team and I didn't consider my work there a real developer work, simply because the amount and magnitude of problems I face are very limited due to the fact that most of the work is already done in the base code. Architecture is already decided on and all libraries are developed and you just consume it and extend the existing functionality. If that sounds familiar to you, I recommend you invest some of your time into building applications from the ground up all the way to publishing them into the web.

1

First things first : Nobody gives money away for free.

If your current employer is paying you the salary for a senior developer role then by every definition of the word, you are a senior developer and not just a developer.

Other members have given very useful information on your proficiency.

I will explain what your manager is doing to you psychologically, where you messed up and what you can do now.

Your current manager is psychologically manipulating you. Let me give you the rundown of what is going to happen, first of all they will berate you and make you feel worthless (clearly this has caused you to doubt yourself) then they will say something like, "we are treating you the best you deserve since you are not a real developer; we are giving you this position as a gift and you don't deserve it". Clearly they did exactly that. Now you are wounded and you are doubting yourself, which inevitably will cause you anxiety in the interviews that you will be giving for a new job. If you fail the interview then it's a win for your manager. Now comes the third and most interesting part, they will give you a small raise or bonus and "allow" you to keep the job, to signify that they are quite generous even though you don't deserve it.

After this three step abuse, your self esteem will be crushed and you will be almost "happy" to work for them. This is an abusive relationship and can be identified from miles away. For ex : An abusive boyfriend will first hurt his partner then berate them then proceed to give gifts such as flowers to somehow make up for the abuse. Here, your manager is the abusive one in this professional relationship.

You deserve better

What to do ?

--Evil smirk-- : Let's give your manager a dose of their own medicine!

First things first : Say to your manager that you will not leave the job and you are extremely happy for this opportunity of a lifetime. Try to say that you researched the market and no other company is offering anything near what they are currently giving you. This will inflate your manager's ego for now and allow you some breathing room. Obviously what you told is a blatant lie and this will help you.

You made a serious mistake of informing your manager that you will be leaving the company. Your manager would have surely made your life miserable and which may lead to you not performing well in your interviews for the new job. Now that after inflating the ego, you will have some breathing room to conduct your job search peacefully.

After you get a new job and you will with your amazing experience, just stroll into your manager's office and turn in your notice of leave.

Now things get serious and you should be careful

  • Don't give a reason, on why you are leaving. Never fight with anyone. Just smile.
  • Never tell anyone of your co-workers or your manager which company you are joining.
  • Never tell anyone how much salary you will be getting.
  • Never tell anyone from where you got this new job.
  • Never ever ever agree to attend an exit interview.
  • Clear out all your personal files and items from workplace.
  • They will try to offer you a hike or even a promotion : Never accept it!
  • Never ever ever agree to attend an exit interview. - I'm curious as to why? Otherwise, great answer! – Cloud Jul 29 at 16:00

protected by Jane S Feb 14 at 21: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.