views:

617

answers:

9

Ok.... I know there are quite a few posts about "tips for beginning programmers." I'm looking for a bit different flavor of an answer here. I've done a lot of reading, but still am a bit overwhelmed with all the "knowledge required"....

Not in IT at all, trying to prepare. No previous programming jobs, still in school, supporting my wife and kiddo, unable to take do participate in an internship to get experince, unable to dedicate 8 hours a day to being immersed in the deeper features of C# due to school and family....

  1. HOW do I get to the point where I can get an entry level job as a .NET software engineer? What do you recommend?
  2. What minimum amount of skills should I at least have to sufficiently peform the job functions and get a decent job as a .NET developer? The MINIMUM to know sufficiently to get my foot in the door and thus begin the immersion.
+1  A: 

What kind of schooling are we talking about? Are you at a technical school or a university? Is your school's preparation in the theory of computer science or in actual development?

There's no specific way of saying what kind of knowledge you should have in C# to get going. My best advice would be for you to make some pet projects on the web in C# and sql server. This will get you learning most of what you might need and give you something to show perspective employers.

As far as salary, a developer in Houston can probably look for $65k (I'm remembering this from salary data I don't have in front of me right now) but if you haven't done anything but theory in school, have no internships, and don't have time to immerse yourself in the technology you're interested in, I can't in good conscience tell you this is a reasonable expectation.

Can you not find a paid internship? I haven't encountered a lot of companies that expect a skilled knowledge worker intern like a programming intern to work for free (they exist, I'm sure). Many internships in my area (which has a very low cost of living compared to houston) pay at least $15 an hour. Which, if you can work around 30 hours a week, is an annual salary of $23,400. Not great, but not far off from some of the salaries you listed.

My thesis here is something Joel Spolsky and Jeff Atwood say constantly on their blogs, get an internship as early as possible, otherwise your value in the work force right out of school may be pretty questionable.

marr75
ouch. I appreciate it, but taking $20k+ hit a year won't work when i've got a kiddo and wife to take care of :-)
Sheldon
+4  A: 

I would say to seek out jobs/companies looking to hire programmers right out of school. Assuming "still in school" means that you are in college/university, check with the on-campus job placement program that most school have. They have job listings and connections with companies that are often looking for people in your exact position.

Many companies want to train new programmers in their own image so they are looking for people with the prerequisite schooling but not a lot of experience... explicitly.

If they are asking for "Some knowledge of C#", I would say you should know most of the syntax on day one and at least as much "programming knowledge" you should have learned in your coursework at school. Beyond that, I don't think companies that specifically hire new-grads expect much in terms of job experience.

Robert Cartaino
Along with understanding most of the syntax, make sure you understand most of the OOP concepts and basic data structures (and db design). I think your attitude (as a entry level person) is almost as important as your job skills.
Jim W
+8  A: 

When I did interviews I looked for a number of factors

1) Good knowledge of software development practices. Language wasn't extremely important (you can learn a new syntax). I looked for people who knew concepts, when to use them and how to use them. (Ex: If you told me you'd written a 200 line recursive function then I'd have some doubts about your understanding of the concept. [Yes I had someone tell me that]).

2) I looked for good database skills. Databases have been vital in every organization I've been with. Development of good database queries was always one of the things I'd asked.

3) Another big thing I looked for was someone who was easy to get along with and work into the team. I passed by people who seemed overly arrogant, who wouldn't fit in, who would constantly bicker over every change that came their way. Having a positive outlook, working well with users and customers is paramount. If you tick off your co-workers and customers you could easly sink a project.

One last thing I looked for is someone who wasn't afraid to learn new things. If I needed a developer to do a project in a new language, I wanted someone who would at least give it their best attempt, not someone who would say "I don't know that language, can't do it".

Best of luck to you !

Scott Vercuski
Also keep in mind that interviewers know that you are applying for an entry level position and may actually ask you questions they don't expect you to know. DO NOT bs them - be honest and say something like "You know, I don't have an answer for that right now but it's definately something I'll be diving into right away!"
DataDink
+1 Programming languages aren't like spoken languages, you can learn them easily. It's the concepts that are important. That's what I look for as well.
Brian Gideon
i've slowly begun to realize this... a complete knowledge of design patterns means the language is MUCH easier to handle. Hard to learn to program an interface when you don't know what it is.... good advice!
Sheldon
+1 for the mention of database skills. Far too few people seem to have them. Actually I'd give +10000000 if I could.
HLGEM
+5  A: 

This list is a bit outdated but not obsolete What Great .NET Developers Ought To Know:

A while back, I posted a list of ASP.NET Interview Questions. Conventional wisdom was split, with about half the folks saying I was nuts and that it was a list of trivia. The others said basically "Ya, those are good. I'd probably have to look a few up." To me, that's the right response.

Certainly I wasn't trying to boil all of .NET Software Development down to a few simple "trivia" questions. However, I WAS trying to get folks thinking. I believe that really good ASP.NET (and for that matter, WinForms) is a little [read: lot] more than just draging a control onto a designer and hoping for the best. A good race driver knows his car - what it can do and what it can't.

So, here's another list...a greatly expanded list, for your consumption (with attribution). I wrote this on a plane last week on the way from Boise to Portland. I tried to take into consideration the concerns that my lists contain unreasonable trivia. I tried to make a list that was organized by section. If you've never down ASP.NET, you obviously won't know all the ASP.NET section. If you're an indenpendant consultant, you may never come upon some of these concepts. However, ever question here has come up more than once in the last 4 years of my time at Corillian. So, knowing groking these questions may not make you a good or bad developer, but it WILL save you time when problems arise.

Andrew Hare
thanks for the link and the feedback
Sheldon
That link is neat. Thanks.
Arnis L.
A: 

The minimum skills are hard to lay out and are highly dependent on the employer interviewing. One employer is looking for one thing, another is looking for something else. Some basic skills to know in depth would include OOD, debugging, inheritance, data types and sql database design and coding.

What's more important by far is actual job experience. If you have that, employers have much less interest in your educational background. Do anything you need to do to get involved in an internship or apprenticeship or even as a part time developer somewhere. 6 months or a year of that is worth 5 years of schooling.

BBlake
+1  A: 

.NET is easy to teach, solid programming fundamentals is hard, problem solving ability is impossible.

When I'm looking at resumes for a .NET position, a solid clean Java resume is better than one with more MS acronyms than skill. There are a just lot more quality entry-level Java programmers out there...

Eric Nicholson
agree on point 1, point 2 seems a bit subjective though
Sheldon
A: 

Why Can't Programmers.. Program? is worth reading and learning some solutions to the FizzBuzz problem that may help.

Progamming Interviews Exposed has some suggestions for the interview like handling a whiteboard question.

Use your school's resources if they exist for having someone look at your resume and interview style as it can be quite helpful to do mock interviews to help be prepared when asked those standard questions like, "Tell me a little about yourself," or "What are your weaknesses," or "Why should we hire you?" Lastly, review some OOP concepts like inheritance, polymorphism or encapsulation as these sometimes get asked in interviews.

JB King
A: 

I just created a job resource kit about this very thing, targeted at folks like yourself.

  1. You should learn the basics of the .NET framework. There's really no getting around that. You might try for a Microsoft certification (whether you follow through and get it is another matter, but the idea is to go through the practice exams because it gives you concrete stuff to study).

  2. Look at job descriptions and see what the companies in your area are looking for, then study those topics specifically.

  3. Be passionate about development - for an entry level position, it's more important than knowledge.

Elmo Gallen
A: 

If your school offers a course in something like Software Development or Software Engineering, I'd recommend taking it. I'm a recent graduate, so I certainly don't know a whole lot, but I managed to get an entry level position doing .NET work after school. I didn't have a lot of in depth knowledge of .NET or even a ton of experience with it. Still, I think if you're able to show you understand not only programming concepts, but also knowledge about the entire software development lifecycle, you'll be able to demonstrate that you have a level of understanding that's really going to allow you to participate in different aspects of development.

I don't want to say I have any absolute answers -- as I said, I'm a recent grad and very new to this real world stuff. But I guess my advice would just be to read through a book that goes through .NET for beginners (my understanding from your post is you don't have a lot of programming experience), and to try to be involved in a software engineering course (I'm sure you can get books on this too, but any projects assigned in a classroom might help you work on the concepts). That way you'll demonstrate enough proficiency that an employer will know you're at least capable of creating basic .NET applications, as well as the capacity to work that knowledge into bigger scale projects that require more design, testing, etc.

M_R_H