Not too far back I was perusing the ASP.NET Forums and I came upon a question I thought I would like to answer. I took a bit more time than usual trying to answer this question and it received pretty good feedback so I thought I would add it to my blog.
The Question on ASP.NET Forums
Hi,
In lots of job search sites relating to .net web developer,the company often asks candidate with atleast 1 year experience in the field. But i want to know exactly what sort of experience do i need to gain inorder to get into the web developement companies? Since i am a new to this field.i have relatively no experiece. But i want to know what should i focus and practice on web development so that i can say i have a experiece on .net. Do i need to have bits of knowledge in every part of web development using .net or should it be better if i practice more on particular areas in .net? secondly what are the areas i can work on if i learn .net(web developement)? thanks.
jack.
The Response, For Better or Worse
Funny I’ve stumbled upon this question on my first trip to the asp.net forums; it’s something I had recently been concerned about. I am a lead developer in my company and involved in many job interviews for potential candidates, most of which are entry-level developers, and i’ve noticed that most, if not all, are surprisingly under-qualified. Perhaps this is a matter of expectation or perhaps university educational courses lag behind the exponentially increasing speed of new technology; but regardless, the problem exists. I believe it’s extremely unfortunate to be a recent graduate with all of the expectation in the world to succeed out of the gate, and yet, not be properly prepared for entry-level web development.
It’s also an issue regarding the industry, because with the amazingly broad skill levels for the same job description of “web developer”, it’s hard to tell whether you’re entry level, intermediate, or advanced. Personally, every time I think I’ve achieved an advanced level, I quickly learn more and discover how deep the questions, issues, and skills really go and realize my own shortcomings.
Well, enough prefacing; to answer your question, I believe you need to determine what type of company you would like to work for first. Large or small/med? Generally speaking, a large company will have a much stronger division in duties, they may require certification or simply a related degree, are often harder to first land a job with, but you generally have less responsibility and duties once you land it. A small/midsize company generally requires you to wear several hats, you may act as a programmer as well as a database adminstrator; you may work with clients directly on some projects, or work under a project manager, and you generally will learn several skillsets (including both business and development) and be required to produce much more actual work as opposed to “passing it down the line”.
I recommend you begin in a small/midsize company so you can learn as much as possible (jump right in) while gaining realworld experience to boost your resume for those bigger companies. To do this, you should learn the following technologies to a point where you can sit down and write most basic apps without having to reference Google (or MSN – sorry, Microsoft) for every other line.
- SQL – extremely important that you know the basic commands of SQL (SELECT, INSERT, UPDATE; as well as JOINS, SPROCS, and Views, and how aggregate functions like SUM, MAX, COUNT, etc work.)
- HTML – you can’t do your job if you don’t know HTML inside and out. You should never need to look up how to use a DIV tag, or how to position elements on a page. If you are using purely table-based designs for HTML, you probably are a little too green and need to study up.
- CSS – at this point, CSS is really part of HTML. Just consider CSS as HTML Chapter 2.
- Photoshop/Fireworks/etc. – You don’t need to be a graphic designer/artist to be a web developer, but you should take note that regardless of how good your code is, nine out of ten times, all non-technical people understand is how it looks.
- ASP.NET (I recommend starting in vb.net, it’s generally easier to pick up as a first language if you’re inexperienced and you should know how to work with asp.net controls/form elements such as textboxes, dropdownlists, etc. including reading values from them and also connecting to a database, retrieving some information, and binding to a control).
You’ll notice that I didn’t put Javascript, XML, or several other fairly basic technologies on there; these are all important as well, but things I believe for the amount of use in entry level programming, you can learn on the job or after you’re hired.
Two final notes: Stay out of dreamweaver, use Visual Studio (it’s much more strict regarding code practices (html) out of the box), and DO NOT USE drag-and-drop to begin learning code. Drag and drop programming is fast but it does too much for you, especially when you don’t fully understand what is going on behind the scenes. Write the code to connect to a database, get the data into a datatable and bind it to a dropdownlist without using the WYSIWYG (or whatever you want the app to do, but do it via codebehind), in my opinion, apps written this way are easier to debug.
Sorry for the length, but hopefully it’s good information for someone.