I've been an ASP.net web developer for about 2.5 years now.

I would describe my technical training before that as being "classical" C++.

It seemed like it took an eternity to get up to speed with ASP.net. I kept wanting to think of programming in VB.net and C#.net as if it were C++ programming, which of course, it isn't. Even my supervisor admitted that at the beginning he had doubts about "keeping me on board", but I made it. I've now been working on a project of my own for about a year.

Here are some concepts and technologies I've picked up some skill with along the way.

  • class inheritance
  • separation of concerns
  • LINQ
  • SQL
  • Session State
  • JavaScript
  • jQuery
  • AJAX
  • CSS

The first two that I mentioned are essential for keeping the code organized. LINQ is very nice to have to avoid having to write for loops over and over. JavaScript seems to have become the backbone of web programming in spite of its shortcomings and jQuery seems to couple it very tightly with CSS.

I've been making a big effort to learn to write better JavaScript; mainly by reading on Douglas Crockford's web site.

I would like to know, from more experienced web developers, besides what I mentioned here, what are the most important tools to have in your toolbox to write great web applications?

  • 1
    HTML, MVC, Templating engines, noSQL, mobile web-dev, "HTML5", webGL. Just to name a few. As a side-note these kind of questions tend to get closed. – Raynos Jul 23 '11 at 17:47
  • 1
    Class inheritance and separation of concerns both feature heavily in C++ and in the C++ Standard library. If you didn't know them beforehand, then your technical training was most definitely not C++. More likely, you got "C with Classes". – DeadMG Jul 23 '11 at 18:24
  • What do other programmers at work say about your code? Is yours that different? – JeffO Jul 23 '11 at 19:46
  • possible duplicate of What should every programmer know about web development? – user53019 Aug 19 '13 at 12:30
  • HTTP
  • HTML
  • MVC (Similar to seperation of concerns) & ASP.NET MVC
  • HTML Templating engines
  • LESS or SCSS
  • noSQL
  • mobile web development
  • DOM
  • "HTML5" A buzzword for HTML5 and related WHATWG enhancements to modern browsers
  • webGL
  • SEO
  • Website optimisation
  • Software development techniques (TDD, Version Control, etc)
  • Knowledge of a multitude of client-side JS libraries (microJS)
  • etc.

The list is incredibly numerous, each one is a large topic.

If you want me to go into details for a particular topic feel free to ask.

  • I would say you need to learn SQL first; NoSQL is a "nice to have," but not an essential. Despite the hype, NoSQL is not a silver bullet, and most business applications nowadays are still written using SQL databases, for many good reasons. NoSQL is more suited to extremely high-volume, specialized applications like Google. – Robert Harvey Jul 23 '11 at 18:39
  • @RobertHarvey I'm simply suggesting it's good to know both. The more tools you know, the more likely you'll choose the right tool for the job. Also noSQL is simply suited for document based data whereas SQL is suited for tabular data. – Raynos Jul 23 '11 at 18:47
  • Ah, I see. The OP already mentioned SQL. – Robert Harvey Jul 23 '11 at 18:48

Its not always just about languages. I challenge you to learn more about IIS. I believe knowing the inner workings of the platform will give you that much more of an edge.

Oftentimes, we ASP.NET developers just rent out a web host and upload our files. But it doesn't help not knowing how everything works. Set up a local web server with IIS and fool around with it.

  • There's a big difference between "know how to use IIS" and "know how IIS works". Either treat IIS as a black box or be prepared to learn a lot about HTTP. – Raynos Jul 23 '11 at 18:20
  • Especially For intranet applications I feel it is very valuable information. – user29981 Jul 23 '11 at 18:27
  • I mean, I agree it's valuable to be able to use IIS from a sysadmin point of few. It's a different ball game to recommend someone learn how "inner workings of IIS" work. – Raynos Jul 23 '11 at 18:29

You have a pretty good start there. Growing and expanding your knowledge in those areas would defiantly help you become a better ASP.Net dev.

What I think you could add to that list:

  • UI design
  • Graphics design
  • View State, Cache, and the difference between them and Session
  • LESS (it's a css tool)
  • IIS
  • Graphic Design is a very broad skill set completely unrelated to server-side web development. Maybe you meant "Web Design". For example, designing box art for software would be Graphic Design – Raynos Jul 23 '11 at 20:27
  • @Raynos - yes it is, and I feel ever web dev should know the basics of bot UI and graphics design. It helps in the long run. Software people don't think like normal users and normally web developers are asked to build a page under the assumption that they know how to make it funtional from a UI, vusial and business requirements perspective. – Tyanna Jul 23 '11 at 22:33

Having a good grasp of object oriented design patterns have helped me a lot when it comes to organizing the classes (Forms, Use rControls, Object-Relational Model Classes, and Data Access code) comprising my solution. Having a firm grasp of HTML, CSS, helps me design a more pleasing front-end. It also helps to have a good understanding of the stateless nature of the web and asynchronous updates using AJAX.

I am kind of old-school when it comes to my data access layer and prefer traditional object-relational mapping using model classes. I use SQL to generate properties for these from Tables. I do not use Datasets at all to marshall data from my data-access layers to the front-end and rely instead on lightweight List based collection of model objects. This works very well for me.


As a short answer, consider looking for some certification from Microsoft. This both shows off your commitment and is a good learning path to have a more complete understanding of the ASP.NET stack, based on what you already have.

The certifications suitable for you are probably the MCSD or the older MCTS (expecially for WebForms)

  • Asp.Net
  • C#
  • Sql server
  • Linq
  • Css
  • Html
  • Wcf
  • Mvc
  • Javascript
  • Jquery
  • Web services

All these are important for a good .Net Developer. If you have achieved all these technologies, then you move to anywhere in the .NET platform.


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