Jack of all Trades

Hi Folks,

Their is another thread on this topic in another forum, but this is dedicated to .NET. Just for fun I went on to Monster job searching site, to see what was out their. I noticed all of the .NET job positions required CSS/JS/HTML5/.ect. I don't know about you, but it would be impossible to be fluent in the client-side aspect AND also know server-side and database. I would strictly like to work in .NET (C#/ASP.NET/WPF/Silverlight/SQL Server), and I don't know how someone can be the jack of all trades and know all of it without going bonkers. Just not enough time in the day. Christ, I have a hard time keeping up with .NET, let alone know everything on the client-side.  I need some opinions of people who specialize in one area (and how you are doing finding work by specializing), or should I HAVE to learn everything in order to possibly get an interview.


Just trying to decide on wither to wait for HTML5 and CSS3 or use the current XHTML and CSS 2.1? Trying to future-proof, but the evolution of both of them would warrant a decision. Especially the radical changes with CSS.

Don’t wait. It’s not like the leaded gasoline carburator vehicles getting replaced by regular unleaded and fuel injection. HTML4 is and will be the standard for a long long time. HTML5 was going to be a total rewrite but right now, in its unfinished state, it’s more of a new implementation. CSS3 similarly: learning CSS is not a whole lot different between 2 and 3, except who supports it. There’s a lot of CSS2 that’s not supported (hello count() function arg). Since HTML 4 will be around for such a long time, and since CSS3 doesn’t preclude CSS2 (you can’t write a page with just CSS3 without CSS2, CSS3 just adds to the basics, NOT a radical change to the basics!), it’s worth your while to learn them both now.
XHTML is up to you: you’re not going to send the pages out as real XHTML if you want the most popular browser on the planet to open pages in it, so it’s a question of markup style 99% of the time… and you can keep that style with HTML5 if you want.

And, Javascript belongs on the front end, and there’s lots of horrible ways to write it (as shown in many a tut on the web) and a few good ways, so after feeling very comfortable with the DOM you might as well include that in your free time as well.

First off let me say, this has been an awesome discussion, and far exceeded how I thought the discussion would turn out. Thanks for whoever Featured it. Also, thanks everyone for their opinion, I took a little nugget advise from every post to make a decision.

I see two camps of people.

  1. The people that would hire (or could hire if given the chance. Including:

Stomme poes
Alex Dawson

The leaders of SitePoint, and most seem to suggest the applicant needs to know more then tech, but have intellect, good character, and the wanting to learn more and think outside their box. Basically what makes that person who he is, integrity and values.

Camp 2)

The the employees who work for the people that hire. While they on the other hand focus on learning JUST the technology and adding it to their resume to make them sound better, while at the same time never be excellent at anything they do. Being average at best while learning everything under the sun and never truly become a master at anything. As another poster said, you can never keep up with technology, unlike other professions, Finance/Business/Accounting where 1 + 1 will always equal 2. In IT, the formula always changes like the seasons.

Anyways, I decided after ALL of the great posts I am going to focus most of my time learning , not mastering, .NET and related features, while in my free-time learn as much as possible on the client-side: HTML/CSS/JS, while knowing deep down I will be average at best.

Web Design/Development is a crazy world, but I am sure we all LOVE it! Defiantly have to enjoy reading to enter this field! :slight_smile:

Thanks for all of your help guys, much appreciated! :wink:

^^^^This is soo, soo true. I can train just about anyone with the right talent, but I can’t fix personality disorders . . …

USPatriot - I guess it depends on how long you have been on this earth. I took my first programming course in 1966 using key punch cards - no monitors until 1970- in Fortran. My pocket calculator has 16x more RAM than the mainframe that took up nearly 1000 sq feet did.

I have worked for large companies, small companies and now free-lance from home. In large companies I was primarily back-end but worked with great front-end people who taught me lots. In smaller companies, I ended up doing both and now I pick and choose what I want to do.

Just as an architect designs a house and a contractor builds it, the same holds true for a website. The graphics designer and the coders have very different skill sets - left brain vs right brain sort of thing.

I consider myself blessed if I have two socks of the same colour on. I can code practically anything in umpteen languages both front and back-end - but I am NOT a designer. I use a number of designs that I created with the help of a good designer and go from there or I hire a designer if I need something new/spectacular. They give me the individual graphics and a Photoshop mock up of the design. It’s like working from a set of blue prints.

I currently have a stable of 10-15 good designers that I can call on. They call me for the technical stuff.

Jack of ALL trades, mainly - Master of Many. Know your limitations and strengths and finding a job will not be that difficult. Learn at least one thing new every day.

Good Luck from a Canadian cousin :slight_smile:

The more you know, the easier you are to work with. Even if you don’t technically use what you know on a project, knowing how things work might influence your decisions when it comes to the things you are using on the project.

If you are having a tough time deciding what you want to learn, try as many different things as you can. Eventually you’ll figure out what you don’t like to do, and vice-versa.

I see there being more of a distinction between a graphic designer and a developer.

Makes me feel even worse. : ) I can’t graphic design my way out of a box.

I’m going to read this as disagreeing with the OP and my comments.

The web makes it possible for people to only work on the things they are most passionate about.
It’s not that I can’t work with SQL server, .NET and C# - I simply don’t care to be spending my short time on the earth doing something that I’m not passionate about.

USPatriot, there is certainly room for a back-end development role which doesn’t involve knowing how to fix a styling bug in IE6 with CSS.
You need to be able to understand where the front-end technologies should be used but you don’t need to understand them deeply.

You need to be able to write HTML and know that styles and javascript should be seperated out.

It’s also important that we are all talking about a team of developers with different skills. perhaps if there is only two people in the team it’s more important for know-it-alls. In larger teams of 20+ there’s room for specialists and I think it can yield far better results.

Someone once told me that its OK to do an interview if you can check more than half the boxes in the requirements and at least speak to the rest. From a hiring position, you tend to write really ambitiously then deal with what you can actually afford.

As for the concept of knowing it all, I think it is quite possible. I do it every day, though I definitely have my longer and shorter suits. Oh, and I do a lot of heavy server/system/network admin stuff as well. And sometimes I help build massive consumer electronics focused exhibits. I’d actually argue with web stacks, it becomes progressively easier as you know more–its just another little cog in the wheel. Whereas folks who only understand one part tend to get very bewildered very fast when new stuff comes along.

It’s impossible to be a master in everything, but you can have a brief understanding of something like Javascript and look into it more closely if ever necessary. Don’t learn everything to get an interview, you couldn’t learn everything anyway. Just be strong in what you want to be strong in, go along to the interview and see if the job suits you. It’s pretty hard to find good developers so if you’re any good they’ll want you even if you have some gaps in knowledge.



Yes thats a very interesting question, I have been trying to do just that lately too. I come from an Electronics, C, C++ background but had read a few books on web programming and I have recently been taken on as a developer at a company who have asked me to redesign their website before moving on to other things.
  I quickly discovered that having knowledge about other languages was little help when faced with all of the quirks of CSS tableless design and creating modern xhtml validated web pages. Also, developers of other languages often presume that because of its familiar C-like syntax, they know javascript. This is another misconception. Javascript is a different beast and takes a lot of getting used to because of the way in which it is used to manipulate the w3c DOM(document object model).
   That said, there are 3 books which can save your life: Sams Teach yourself html and Css in 24hours, Sams Teach yourself javascript in 24hours and the sitepoint book Build Your Own Web Site The Right Way. Read them and you should be able to master most of what you need pretty quickly and what you can't work out, you can post on here and someone is always willing to help :)

gd luck!

It’s not impossible to be master of front and backend now a days. It’s getting easier day by day. For the basics, html/js/css. You only need to learn them 1 time and don’t really have to follow up w/ new features. Just see how long it’s taking from HTML 4 to 5.

Also, MVC frameworks have evolved into one stop shop. First generation of MVC framework lacked database functionalities. So if you know html/js/css + popular MVC framework, you would be at least a veteran of front to back-end developer. Of course, there are endless frameworks that can work w/ MVC but I would consider these as “optional” plugins and learn these as needed.

Obviously, it just comes down to the motivation of learning Web technology. In my experience, many of them are in IT as a above average salary job. As for me, I look for every opportunity to work w/ the latest technologies.

I know what you mean, I was sent an email on monday with a job on offer but they too wanted everything under the sun. It’s because of this puts me off applying, shame really.

This is such a common thing in generic websites like Monster who basically have representatives of a business who don’t actually work in the web industry, they just are either the people at the top (who don’t do the work) or they are the department who are posted in charge of personnel. Let’s get one thing straight here, anyone who proclaims an individual can be a master of everything is either in denial about the skillset required or they aren’t aware of what else is possible to learn. Our industry moves far too quickly and is far too complex for any one person to proclaim their an expert in all areas. The real key difference is that an ideal employee will understand the concepts behind several regions of the industry and be able and willing to learn and adapt their skillset as they work to meet the various situations - that is what people should be looking for. It’s a false ideology that you can throw up every acronym on earth and someone knowing everything to the same extent as a specialist who’s spent their entire life studying one small niche. It’s neither appropriate or possible and shows the complete lack of understanding the person placing the advertisement has (in that their just using acronyms for the sake of using them in the hope that it makes them look professional). In an employee I would much prefer to have someone who shows a clear understanding of the workflow and concepts involved (even if their not too highly skilled at it) as that shows they can see the broader picture and can flex their skillset to meet the organisational needs. But no web designer knows everything, that’s just a statement of fact. :slight_smile:

I noticed all of the .NET job positions required CSS/JS/HTML5/.ect. I don’t know about you, but it would be impossible to be fluent in the client-side aspect AND also know server-side and database.

Well, I’m a front ender and lots of jobs for me (HTML/CSS/Javascript) also want me to know

The places asking for these kinds of people either are small enough that they need a “web guy” who does everything OR they only have backenders (dba’s and programmers) meaning they collectively have to do the front end (no offense but they tend to do it terribly because they are not trained/don’t know what they’re doing/use their IDE to built it/whatever), or it’s a company who is big enough and doesn’t realise they can be and are two separate areas of expertise.

That said, one can indeed be fluent in both (I know people who do both rather well), but you wouldn’t have time to really keep up on everything and stay current. There’s just way too much going on both ends.

Of course some jobs require knowledge of both: some want someone who can do XHTML/XML/XSLT/JSON/Javascript+AJAX/ kinds of things and that person should know at least somethin’ about the server and the code running on it and the db it’s talking to if there is one.

Also, developers of other languages often presume that because of its familiar C-like syntax, they know javascript. This is another misconception. Javascript is a different beast and takes a lot of getting used to because of the way in which it is used to manipulate the w3c DOM(document object model).

Very true, but I’d say because it’s not a traditionally classed language, but a functional (not just OO) and prototypal-inheritance language.

That said, if you know the basics of programming in general, you can learn JS and its API, the DOM, with much more ease than a frontender such as myself learning JS as nearly a First Language Evar.

In any case, I have also seen jobs for back-end only, but they tend to be bigger companies (who have their own front-end section).

I like to rate personality and attitude over skillset. Too bad many people don’t buy that idea. If someone says they know everything, I’ll be weary. The boss should reflect upon himself if he is looking for the jack of all trades and i dont think anyone should work for a boss like that.

just my 5 cents.

I think this is key. It’s one thing to try to master a topic to the point that you do a lot of work in it. To an extent, that’s really great, but even if you don’t, knowing enough about it to understand how each piece works in the architecture of the application makes world’s of difference. I know many developers who are far better than I will ever be, but their applications have key errors and stupid mistakes because they don’t like particular technologies and they are bizarrely arrogant about the fact that they will never learn anything about CSS, or OOP, or whatever.

Knowing each technology helps you avoid making 10x as much work for yourself and / or someone else in a different part of the program. It also ensures that you’ve got one foot in each camp so you can talk the lingo. That makes a huge difference whether it’s talking and working with other developers on a team project or just trying to get help here on the forums. We’ve all seen the people show up who desperately need something, but they’ve NO idea what.

Awesome advice on both counts… the true sign of a master. :slight_smile:

In San Diego, I’m seeing a lot of the same write ups. Employers who have either very poor understanding of what they want (or very low motivation to hire) who write job descriptions like this expecting to find that guy from Sony with 20 years experience in XHTML, JS, C#, SQL Server 2008, and who’s so desperate he’ll work for 40K. sigh

On a brighter note, I’m neither the oldest, nor the most experienced, nor the most brilliant, nor the prettiest developer, but I started with XHTML and slowly accumulated more technologies in order to be able to get my sites to do what they needed to do. I think there are a lot of people who moved through the client side techs on their way to server side development and “serious” programming. I can now dig around in the DAL and handcode SQL statements with just about anybody. And the guts of most technologies don’t take more than a few hours or a few days to assimilate. Web stuff falls into that glorious category of stuff that takes “minutes to learn, a lifetime to master”. I think that’s why we all love this industry in the first place.

This being so, I don’t really understand Microsoft’s obsession with eliminating all other position save the middleware guy. Web server controls were supposed to virtually eliminate the need for a front end person, you had the graphical interface of VS, and tools to register scripts, and now the AJAX toolkit. Who needs those stupid web standards people anymore, right? And who needs a DBA when you have 1,000 tutorials to show you how to make the most of that SqlDataSource. In their continuing attempts to eliminate DBAs and DAL programming, we’ve been treated to Linq and now EF. There are different tools and they work well for different jobs. That’s why I believe you need to at least understand the breadth of web technologies, so you can spend an awful weekend putting together your first component in a new technology. It’s great to work in a technology that you’re most familiar with, but at some point, you find you’re trying to hammer in screws when you should just pick up a screwdriver instead. IMO Google does the same silly thing with AJAX apps. I can’t use them without thinking “OK, AJAX is cool, I get it.”

Me neither!

Like others, I agree w/ this post. I would define jack of all trades if it requires graphic design… well that’s the only part I lack of. Don’t know why but whenever I open photoshop I just become :x:x:x. Most of the time, I would steal images from google image search.