I work at my company's IT helpdesk, was just rejected from an internal position (entry level C# dev) because I do not have, according to them "hard skills"

But, I have already worked pretty hard to build up experience:

  • 30 CREDIT hours of US University courses: Intro to Programming, Data Structures and OOP, Discrete Math, Algorithms, Comp Organization, etc.. I have taken every single difficult weed out course in the CS department at my university, basically just have specialized upper level courses left.

  • 2 projects completed 1- dummy service desk app with Java Spring 2- Go (Japanese strategy game) challenge arena / board with Django - both apps I have hosted and can be reached. These involved learning about Databases, front end code, backend code, in depth knowledge of two very different web frameworks, learning how to host the apps.

  • all labs for 2 university Data Structure/Algorithm courses completed in C++. Rigorous, in depth labs that took ~100 hours to complete

  • completion of an internship that involved writing Data analysis code in python, computing on a linux cluster

  • knowledge of linux, git, GitHub from all of these endeavors.

  • I have done over 40 medium/hard leetcode problems all on my own.

  • 3 years of experience with L1 end user support at a large company....

I consider from this that I am a good problem solver, capable of teaching myself frameworks and with a good knowledge of the basics of how web applications are built, with substantial practical work exp within an IT dept. What are my technical weaknesses? Should I keep applying for jobs with this skillset, should I be strengthening one thing in particular? Maybe just because it was C# position... or bad luck?

PS - sorry I asked the hiring manager if he could specify what he meant by "hard skills" but he said he couldnt remember.

  • 2
    Are the C# positions the only ones available for you? Or is it a language you want to work with? The thing that very obviously stands out is that you have courses and projects completed in every language in the world but C# - why not do a small hobby project in it, or rewrite one of the existing ones? Commented Apr 5 at 7:29
  • 2
    "I asked the hiring manager if he could specify what he meant by "hard skills" but he said he couldnt remember." That is rather strange... Have you asked him what he would advice you to do in order for him to consider you for such a position?
    – Chris_abc
    Commented Apr 5 at 8:42
  • Do you mean to say you have "30 hours" or "30 credit hours" of college? From the list it looks like you're talking about credit hours and have completed multiple courses over multiple terms.
    – Dana
    Commented Apr 5 at 13:43
  • 1
    @Dana yes 30 credit hours
    – bschwarz67
    Commented Apr 5 at 14:05
  • 1
    I have BA in neuroscience... and 30 hours of CS coursework, idk what qualification it would be in Britain, here it would be called I minor. I did an internship after my first degree which got me interested in CS, so I took some classes after the internship, then I got burnt out, taught ESL for a bit, then started working at my tech support job and, recently, have taken some more classes, started to do projects while working... yes, its convoluted, difficult to explain in interviews, but, I have the experience. And I did just the one interview because its at my company and I like the company.
    – bschwarz67
    Commented Apr 6 at 0:51

5 Answers 5


What are my technical weaknesses?

The position is a C# entry level job. So, you have at least 2 weaknesses:

  1. You don't have any classroom (educational) training with C# based on your post.
  2. You don't have any work experience in C# either.

This may sound ridiculous but many "entry level" jobs still prefer candidates with some work experiences.

For example, for this position, your company may prefer some candidates with 6 months or 1 year of work experience with C# to some applicants with zero work experience in C#.

So, your company may have offered the job to someone else who has some work experience with C#.

I asked the hiring manager if he could specify what he meant by "hard skills" but he said he couldn't remember.

Generally, people need 2 types of skill sets to be successful at the workplace:

  • Hard skills are the technical skills. For example, you need to know C# to do a C# job.
  • Soft skills are the people skills. It is the ability to get along well, and have a good, friendly, and professional work relationship with your co-workers.

So, the hiring manager rejected your application simply because you don't have the c# skills to do the job.

  • 1
    Is that how the US defines "entry level"? Where I live, entry level means you have formal education for the job, but never actually worked in the job. If the job did not need a formal qualification (lets say a McJob, like warehouse picker) then we would never advertise as "entry level", since any job that can be taught on the fly doesn't have "levels". There will never be a "senior" warehouse picker. They might become shift manager or something, but the picker job itself doesn't have levels. It's always the "can teach it to anyone in a week" job, no matter how much experience you accumulate.
    – nvoigt
    Commented Apr 5 at 9:20
  • 2
    The problem is that the list of what was done is below intern requirements from the OP. Being prout of 30 hours of courses is - funny, but not really deep.
    – TomTom
    Commented Apr 5 at 10:50
  • 2
    @nvoigt. Yes. I actually have seen many jobs listed as "entry level" that requires candidates to have 1 or 2 years of work experience. Many college new grads look at these job descriptions and can only laugh and move on. Fortunately, there are also many other entry level jobs that allows candidates with zero work experience to apply and will train them. Commented Apr 5 at 11:17
  • 1
    Oh, okay, then I guess we use a similar label for completely different purposes where I live. If "entry level" required experience of any kind I would think it's a typo or copy/paste error, but if it offered training (beyond normal company onboarding) it would be described differently too.
    – nvoigt
    Commented Apr 5 at 11:19
  • 4
    Nope. Entry level is that - someone who has the education but not a lot of practical experience outside a longer internship. These days entry level also is abused as heck, but generally if never meant "you can apply knowing nothing and we train you".
    – TomTom
    Commented Apr 5 at 14:38

Keep trying.

Finding a job in any industry is a challenge because:

  1. There are more applicants than jobs
  2. It is hard for recruiters to identify the best candidates
  3. Recruiters really want to avoid getting a bad candidate

The easiest heuristic that any recruiter has is: "has this person already done this job?".

This isn't a particularly good measure of ability, or potential to fulfil a given job, but those are hard things to measure and the heuristic is a) easy to understand b) easy to apply c) not a bad predictor. Remember that assessing someone's ability is hard to do and that recruiters get hit with a lot of lies and BS. Accidentally hiring a poor candidate is a really really bad outcome for the recruiter, so there is a strong incentive for them not to take risks.

Software can be particularly tricky because there are a million reasons to turn someone down, and you never know which one a recruiter will be thinking about. Maybe you didn't do computer science (who cares? random recruiters do). Maybe you haven't used their favourite framework. Maybe you didn't answer their highly specific and arbitrary technical question. Maybe you gave a correct answer which went beyond their personal technical understanding. Most often there was probably a mediocre competitor who had better on-paper experience.

The odds were stacked against you in your recent application for two obvious reasons:

  • You don't have any C# experience
  • You don't have any commercial software development experience

That doesn't mean you are inadequate, or that you should stop trying. It just means that you've got to think carefully about what it is you want to do, keep polishing yourself, and keep hitting your head against that wall until it falls down.

What is it that you want to do?

Think about this carefully, and focus on it.

I'm sure you would be happy with any software development role, but it helps to be heading in a direction. Amongst other things it will help you answer the "why do you want to work here?" type questions. You'll have thought about it a bit and ought to be able to give a thoughtful answer.

Having a bit of focus also makes you more likely to spend time applying for jobs you can demonstrate experience in, and spend less time applying for something which is a long shot.

What makes you a strong candidate?

I noticed three things which are strong positives:

  • You have a portfolio, including items that are hosted and accessible online
  • You've got some formal software qualifications
  • You've spent some time on the front line (i.e. you've demonstrated that you can work, work with others, and have picked up some real life experience)

How could you be a stronger candidate?

  • Do interview practice
  • Learn as many formal software concepts as you can (this will make you seem more professional in interviews, as well as contributing to your skills and knowledge)
  • Emphasise and practice your soft skills
  • Build your portfolio

When (and if) you come to expanding your portfolio think hard about how you can maximise the impact of your next project. e.g. Is there a particular software concept or framework you want to get a job in? Can you monetise the project in some way? Can you use it to learn and demonstrate software practices?

Apply to lots of jobs

Roll the dice. Roll them again. Refine yourself as you go.

  • If it helps: 10 years ago I struggled to get a simple administrative job. Why? I hadn't done one before. Now I'm a qualified mathematician and software developer. I'd probably struggle to land another admin role because I haven't done one for 8+ years. Commented Apr 5 at 17:16
  • 1
    Getting a job sucks sometimes. Keep your head up, keep improving, and don't get too stuck on an individual role that you might or might not land on the whim of a recruiter. Commented Apr 5 at 17:17
  • Thank you, genuinely thoughtful but also insightful comment :)
    – bschwarz67
    Commented Apr 5 at 18:38

I cannot speak for that specific company or that specific position. Nor do I know whether gaining entry in the job market on hobby knowledge is common where you live. What the recruiter meant with "hard skills" is a proper, formal education. No idea why they could not simply say that, it seems to me the least discriminatory requirement possible.

When I look for entry level developers, I want a software developer. That means either university or a similar level of education. That means the person spent 2-3 years being educated about the job they are about to work in.

The things you did in this directions are impressive to do after work or at the weekend. But you are basically still in your first semester of university, just by the time invested. Everybody else applying has probably finished their 6 semester BSc (or similar education).

The main thing you have on your resume is 3 years in support. But first level support and software development have nothing in common. I know some people on the internet say you should get a foot in the door with the company and then switch jobs to development... that has never been true where I live. A different job does not help in any way becoming a software developer. What helps is a solid education and experience in development. Nothing else.

What are my technical weaknesses?

We (and recruiters at large) don't know. Part of a formal education is testing you on this and making sure you fail if you have significant weaknesses. In an interview, I can test you on a few specifics. But just think about how much exams a university student has to write. Just the written exams, not the studying and being present in courses just plain being quizzed. Someone -a university specializing in this for decades- has tested them thouroughly. And graded them. I could never replace those hours upon hours of testing with a two-hour interview by me, a guy who is not a CS professor, but rather a CS practitioner if you will.

So it all comes down to formal education. It gives you what you need to do the job, including written proof in form of a certificate. And it gives recruiters what they need to let you get an interview for the job, they have checkboxes to fill. And it gives the interviewer what they need to be sure their interview is about their company and it's needs, not about all of CS.

I am not sure what education is available in your part of the world. Personally, where I live there are three different systems with different focus. One is university, one is an apprenticeship and there is a third local one like trade school that would take too long to explain. I don't mind any of them. They all produce candidates good for the job, with multiple years of education and certificates from trusted institutions to prove it. This is not about "university education" vs "non-university education". It's about having a formal education.

Software development is just another job. I know it can also be a fun hobby, but companies are looking for trained people to employ. You would never find a job as electrician if you had 200 hours of self-training. Would you want a plumber in your house that had a good record as the companies fork-lift-operator with many years of experience and a two-week training course on specific toilet models? Or would you rather have the one that has a 2 year education on plumbing?

So my advice is that you need a solid education. Some colleges are available after work, on weekends, remotely, for some it's their whole business model to upskill people already working another job. Maybe you can take a year off or two. I don't know your personal situation.

People will tell you that they know someone who made it without. Good for them. Maybe they were lucky. Or knew someone. Or are so old that software development was an arcane art, not the mass market it is today (I am that old, but that doesn't mean that the people finding a job easily back then would have any chance with those credentials today, if it weren't for their 25 years of experience in software development they amassed since then).

But on average, you need an education. People telling you otherwise should explain how their personal streak of luck is reliably transferable to other people, most importantly: you.

That said, applying for a job costs almost nothing. There is no harm in doing it, maybe you find the unicorn that does employ you without formal credentials, or maybe your country is different from mine and it just works.

  • 3
    The plumbing comparison makes no sense - in many corners of the world it's a licensed job, and in the ones where it isn't (like mine) a lot of plumbers are self-employed handymen without any formal training. And in general I find the answer far too binary - yes, the lack of formal education makes it harder to score an entry-level job, and perhaps the OP's company requires it, but it's by no means an universal rule, and a lot of developers don't have one. Commented Apr 5 at 7:26
  • 2
    Ah, sorry for the confusion. I used college interchangably with university. But it doesn't need to be university per se, any other form of multi-year formal education is fine, too. I am a senior software developer, trainer for apprentices, and most of the time involved in hiring processes as the guy that decides if someone can do the job and would fit the team. My boss then decides whether they can afford that individual and if the other details of the contract are agreeable.
    – nvoigt
    Commented Apr 5 at 9:01
  • 2
    I would absolutly agree that "college is not for erveryone", that is why in Germany, formal vocational training exists, that is 3 years, too, and in the end I would say those people are just as qualified to work a software developer job as college graduates. So I am not advocating for BSc as the one and only thing, I am advocating for having real, professionally certified, multi-year training, something we require for almost every job that isn't a McJob. Maybe it's different where you live, then by all means feel free and write a corresponding answer.
    – nvoigt
    Commented Apr 5 at 9:10
  • 2
    @nvoigt yes, but software development is not that kind of job. Commented Apr 5 at 9:51
  • 2
    @MaciejStachowski, I agree. I actually fell into programming somewhat by accident, having had it as a bit of childhood hobby. A lot of non-technical managers radically misunderstand what development is, and therefore what profile of skills they would be seeking in a developer. They also radically misapprehend how poorly universities function as a trade school, and how poorly academia understands the reproduction of the skills which developers use (which is why demonstrable capability in the job is still king, and not credentials).
    – Steve
    Commented Apr 5 at 10:47

You have done a lot of things, but there's nothing in your background that tells us that you can hit the ground running on a C# project. Competency on this platform needs:

  • Basic language and syntax
  • Framework targeting (Legacy framework up to 4.8, .NET core, .NET standard)
  • Library usage (Nuget)
  • Input/output (at a minimum, reading/writing text files)
  • Database operations. SQL Server (most accepted), or maybe MySQL. Joins, normalization, grouping, sorting, subqueries, indexes, primary key usage, clustering, and on SQL Server, CTE (common table expressions). DML vs DDL.
  • Entity Framework is nice to have, or some other ORM such as Dapper or NHibernate

Then there's the type of development, which is more specialized. You don't need all of these, but generally any job will align with one of these "buckets":

  • Winforms
  • WebAPI to develop REST APIs. Authentication with JWT/OAuth.
  • MVC / Razor Pages / Blazor for web front ends. Need MVC at minimum, along with HTML, CSS, and Javascript skills.
  • On ASP.NET Core you'll absolutely need to understand the dependency injection framework, and logging.
  • Console applications (rare)
  • Legacy technologies. WPF, WebForms. You'd be hard pressed to find anyone building new applications with these, but you might find a gig maintaining them.

The bulk of what's out there is going to be WebAPI and MVC. If I were hiring and you couldn't speak competently on these, it would be a NO.

You could prove your worth by showing that you've passed some objective certifications. Look here. Start with free ones.

  • Thank you so much, I guess I arrogantly thought that having learned Spring Framework would allow me to transition to C#/.NET more easily, this industry keeps you humble lol.
    – bschwarz67
    Commented Apr 19 at 17:08

You have 2 problems here.

1: your education which you list so proud is below what many who do not work in that field have from dabbling in it. Comically so actually. Let me be clear:

30 hours of college

That is 3 days of sitting down. This is not anything to be proud of. It is a start - but just that.

2 projects completed 1- dummy service desk app with Java Spring 2- Go (Japanese strategy game) challenge arena / board with Django - both apps I have hosted and can be reached. These involved learning about Databases, front end code, backend code, in depth knowledge of two very different web frameworks, learning how to host the apps.

Except if you consider your formal training - how deep are those apps really?

I have done over 40 medium/hard leetcode problems all on my own.

Leetcode is not used outside of recruiters.

3 years of experience with L1 end user support at a large company....

Note the L1 here? That is generally assumed at least to be filtering out stupid - the level any low level AI can do. "Did you turn on the printer?", "did you connect the power cable" - that is why it is L1, to make sure L2 does not deal with that. It has ZERO relevance outside "I can be a corporate drone" for a programmer position.

So, you really lack a lot on the level of the competition which has a more formal education or some years tinkering with things. You are not on the level of an entry position, you are on the level to get a school internship, or possibly apply to vocational training. Also as a hint: anything web is generally lower paid - not many want to REALLY deal into lower level programming or high end databases, but everyone wants to make cool web apps. Result is many more applications for the web / full stack size.

And now the second problem: You are stuck between a recession with companies firing and AI taking over. For now, companies fire what they can because business is bad - which means a LOT of MORE QUALIFIED people look for work. One reason they do not consider you, likely, is that they are drowning in applications from people that are laid off. And once that is over - which can take a couple of years given taht a large part of the world seems to willing to make it as hard as possible - expect AI to take the jobs, not humans, to a significant degree. Heck, L1 support of any form is something that NOW can - and is already - done by AI. Cents for the dollar, many languages, never in a bad mood. It is not necessarily that AI can do the same as a human - but if I can make a programmer 2-3 times as fast, many companies need less programmers. Unless you do product work (i.e. work on a software that is sold) but work internal (i.e. an internally used application) there is limited need for work done. I can see in 2-3 years how many lower level tasks in programming - down to most of the debugging - can be done by AI.

But again, for now your timing is just bad. When more experienced people look for work, your resume is just not impressive enough even for an internship.

Stick to the job you have. And start getting some more substantial experience.

  • 1
    3 days of sitting down? What are you talking about? Idk how it is where youre from, I live in the United States. Thats all the computer science courses that would be taken in the first two years of a 4 years degree. Whats more theyre the most rigorous ones meant to weed out compsci majors...
    – bschwarz67
    Commented Apr 5 at 14:04
  • 6
    I think you may be assuming that 30 hours literally means "30 hours". In this context, it does not. It refers to 30 "semester credit hours", i.e. approximately 30 hours a week of in-class time for an entire semester (or, more likely, a smaller number of hours per week for multiple semesters).
    – Sneftel
    Commented Apr 5 at 14:11

You must log in to answer this question.

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