Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I don't have the skills for an entry level position as a .Net programmer. I am trying to learn what I need but there is too much to learn and too little time. What can I do?

About two months ago, I went to a job interview for an entry level C# .Net programming/consultant position in NYC. When I heard back from them, they told me that the knowledge gap between what I knew and what they needed me to know was too big and I might have been a better fit if I had 6 months of experience. This was the first interview that I went on since graduating college. before the interview, I read a book on visual C#. Turns out it wasn't a very good book and I was missing a lot of key areas of knowledge such as

  • ADO.net
  • SQL (I had learned some LINQ)
  • A little bit about how memory is handled
  • Multiple threaded programming, etc.

Because the book wasn't very good, the stuff I did know, I didn't know very well.

I felt crushed. I've applied for jobs to gain experience but when recruiters hear that I have no experience they lose interest. I figured that I can at least work on my knowledge. Since then, I read "SQL Essentials" to cover the SQL bit and I found a pretty awesome book that is good enough to clear up what's hazy in my mind and covers almost all of the extra topics. The book is "C# 4.0: The Complete Reference" by Herbert Schildt. I'm even learning a lot about the topics I was familiar with. For a month now I've been working my way through this beast of a book.

However, gaining the knowledge I need is taking too long. I can't hold off not having a full-time job much longer. I'm not stupid and I'm studying constantly pouring through the book, asking questions on stackoverflow, referencing the C# specification, etc. I have made great progress but there is just too much ground to cover. I'm on chapter 12 which is about a 3rd through the book. To get an idea of what I know vs don't know, the table of contents is on amazon: http://www.amazon.com/C-4-0-The-Complete-Reference/dp/007174116X

How on earth can someone know enough to function as a programmer in the real world?

Can I try for a job in academia? Will I have time to finish learning the rest of the C# language or am I just un-hireable?

share|improve this question
    
This question is too specific to you to be a good fit for this site, IMO. –  DeadMG Jun 24 '12 at 23:39
3  
If you read the FAQ then you will see that questions about general workplace issues as well as questions about what technologies to learn next are offtopic. Perhaps you can check out Workplace.SE to see if there are any good questions on landing that first entry level job. My advice to you is to keep trying and don't lose hope. I glanced over the technologies that I needed to know, acted confident that I was an expert and most interviewers fall for it. When I got the job I just winged it because nobody expects much from an entry level guy. Perhaps you should consider an internship? –  maple_shaft Jun 25 '12 at 2:42
    
Go on and upvote ))) –  superM Jun 25 '12 at 7:56
    
@maple_shaft So, your advice is to lie during the interview? –  svick Jun 25 '12 at 9:59
    
@svick When the game is unfair and the rules are stacked against you, then I see no problem with lying as long as you are sure that you can do well in the job. HR filters like "10+ years of Node.js experience minimum" is a little unfair to compete against, especially if the technology hasn't been around that long (I have seen similar job listings). In a sense the company is lying to you and filtering out people with 4 years Node.js experience is certainly not doing the company any favors, they turn away good candidates. I look at this as if I am doing this company a favor by lying to them. –  maple_shaft Jun 25 '12 at 11:04
show 1 more comment

closed as off topic by maple_shaft Jun 25 '12 at 2:37

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

up vote 9 down vote accepted

How on earth can someone know enough to function as a programmer in the real world?

Very easily. An entry level position, even easier.

However there are a few things that make it easier than you'd think.

  • You are using your knowledge all the time. I write code almost every day, and I'm not really working in a straight code role. In some positions I do nothing but write code every day. It becomes like riding a bicycle, handwriting, or talking - second nature.

  • Once you know the principles and fundamentals you don't need specifics - that's what MSDN, Google, StackOverflow etc are for. For example I know that I can change my existing XML based WCF service to return JSON instead. I don't remember exactly how to do it, but I do know

    • That it can be done
    • Roughly where it needs to be done
    • Where find out how to do it

To get these skills whilst not working as a programmer is more challenging. They relate directly to experience. You need experience to get a job, but you can't get experience until you have a job.

The answer is to work on your own, write programs, websites, systems that solve what you think might be business problems (write a contact management database, for example) and learn as you go.

share|improve this answer
add comment

Finding your first job is always hard. The problem is that you have no track record. This makes hiring someone in their first job a risk for the employer. This is why it very important to get work experience/internships/practicums during your education. It provides at least a little evidence that you can function in a development job. That advice doesn't do you any good, since you are out of school, but I include it for other folks who are still in school.

You can't learn programming just by reading books. Reading books can be helpful, but you have to actually write code that uses the information that you learned in the book. Anybody can say they've read a book, whether they actually learned anything or not, so telling an interviewer that you've read a book will probably not get you anywhere. You need to be able to provide examples of code that you've written. Either come up with you own projects or contribute to an existing open source project.

share|improve this answer
add comment

How on earth can someone know enough to function as a programmer in the real world?

Practice. This is the reason that experience is so valuable to you. For companies it's a little different; they want you to have experience to cover their asses in case you turn out to be horrible.

Can I try for a job in academia? Will I have time to finish learning the rest of the C# language or am I just un-hireable?

Academia tends to (in my experience) have a little more rigor. If you don't know C#, then apply for positions that use things you do have experience in. If you don't have much experience... apply for everything. All you need is your foot in the door somewhere and much of this experience problem decreases.

Another thing to work on is (people) networking. Like it or not, most jobs are found (and gotten) based on who you know; not what you know. Contact friends from college, see if they can put in a good word at their jobs. Contact professors with business contacts. Use your college's career development resources. Attend .NET user group meetings (with resumes).

Keep learning of course, but as you've found out... there's only so much you can do in that regard. There's always some place that's looking to hire/exploit college grads on the cheap.

share|improve this answer
add comment

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