<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unscriptable.com &#187; dojo</title>
	<atom:link href="http://unscriptable.com/tag/dojo/feed/" rel="self" type="application/rss+xml" />
	<link>http://unscriptable.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Thu, 02 Feb 2012 03:05:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>10 &#8220;Must-have&#8221; skills for Front-End Developers</title>
		<link>http://unscriptable.com/2009/05/19/10-must-have-skills-for-front-end-developers/</link>
		<comments>http://unscriptable.com/2009/05/19/10-must-have-skills-for-front-end-developers/#comments</comments>
		<pubDate>Tue, 19 May 2009 13:12:24 +0000</pubDate>
		<dc:creator>John Hann</dc:creator>
				<category><![CDATA[Career development]]></category>
		<category><![CDATA[designer]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[engineer]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[skills]]></category>

		<guid isPermaLink="false">http://unscriptable.com/?p=371</guid>
		<description><![CDATA[...if you're a front-end developer/engineer/coder and if you're sincerely interested in elevating your career, salary, and job satisfaction, you'll heed my advice, not that other blogger's.  Below, I've listed each of his points.  I'll explain why he's dead wrong and which <em><u>must have</u></em> skills you should be focusing on instead...]]></description>
			<content:encoded><![CDATA[<p>I try to be a good netizen.  Really I do.  I know it&#8217;s not nice to trash a fellow blogger.  However, a recent article by a well-meaning individual, <strong>[Update: name and link removed]</strong>, is driving me crazy!  I can&#8217;t just let this article go <em>unchallenged</em>.</p>
<p>The title of his article is <em>10 “Nice-To-Have” Skills for Front-End Developers</em>.  He starts out with this:</p>
<blockquote><p>&#8230;since front-end coders are a dime-a-dozen these days, it pays to have experience, or, at least, rudimentary knowledge, in a number of other technologies that often don’t get listed under “mandatory” skills for a front-end position.</p></blockquote>
<p><br/></p>
<p>He then goes on to name 10 &#8220;Nice-To-Have&#8221; skills that, in my opinion, are way off base.  Each of them is either a &#8220;must have&#8221; skill or a &#8220;dime-a-dozen&#8221; skill!  One of the commenters hit the proverbial nail on the head: </p>
<blockquote><p>If you don’t have these [skills], you’re not a “developer”, you’re a rank amateur.</p></blockquote>
<p><br/></p>
<p>I couldn&#8217;t agree more with the commenter.  Maybe it&#8217;s because he used the term &#8220;developer&#8221;?  If he wrote &#8220;UI designer&#8221;, I might not disagree.  However, he uses both &#8220;front-end developer&#8221; and &#8220;front-end coder&#8221;, which to me are only a shade of gray from &#8220;front-end engineer&#8221; (the most seriously dedicated of the three).  </p>
<p>So, anyway, if you&#8217;re a front-end engineer/developer/coder and if you&#8217;re sincerely interested in elevating your career, salary, and job satisfaction, you&#8217;ll heed my advice, not that other blogger&#8217;s.  Below, I&#8217;ve listed each of his points.  I&#8217;ll explain why he&#8217;s dead wrong and which <em><u>must have</u></em> skills you should be focusing on instead:<br />
<span id="more-371"></span></p>
<h3><strike>1. Experience with SVN/CVS for Version Control</strike></h3>
<p>Sure.  Subversion is an important tool to know.  But &mdash; <em><strong>Oh. My. God.</strong></em> &mdash; it&#8217;s called &#8220;subversion&#8221;, not &#8220;ess-vee-en&#8221;!  I can&#8217;t think of a better way to show how woefully inexperienced you are with a tool than by demonstrating that you don&#8217;t know its real name.  I once had a client whose tech lead referred to the company&#8217;s preferred database server as &#8220;Sequel Server&#8221; in the docmentation.  (me: &#8220;Doh! Something tells me this project isn&#8217;t going to go so well&#8230;&#8221;)</p>
<p>&#8230;which brings me to my second point on version control.   If your clients haven&#8217;t been mandating it &mdash; and you haven&#8217;t been using it &mdash; then you need a swift kick in the pants.  Or maybe you need to buy a lottery ticket because you&#8217;ve been damn lucky!  Seriously, though, any project worth your time is definitely worth an extra five minutes per day to check it into a version control repository.  </p>
<p>Oh, and by the way, all the cool kids are using Git now.  <a href="http://whygitisbetterthanx.com/">Why Git is Better than X</a></p>
<p><strong>Must-have skills: demonstrable knowledge of both Git and Subversion fundamentals.</strong></p>
<p>P.S. I had to laugh at his statement in his blog: &#8220;SVN is essentially the windows-friendly, visual counterpart of the command-line driven CVS&#8221;.  (Um.  No it&#8217;s not: &#8220;svn&#8221; is the nicely succinct shell command for invoking subversion.  Of course, it&#8217;s apparent that he never touched a terminal app.  Evar!)</p>
<h3><strike>2. Familiarity with WordPress Theme Development</strike></h3>
<p>The last time I checked, corporations aren&#8217;t hiring full-time WordPress Theme developers.  I doubt many have budgeted for it at all.  But don&#8217;t take my word for it.  Let&#8217;s check to see how many jobs there are out there for WordPress:</p>
<p><div id="attachment_386" class="wp-caption alignnone" style="width: 550px"><a href="http://www.indeed.com/jobtrends?q=wordpress%2C+javascript&#038;l="><img src="http://unscriptable.dreamhosters.com/wp-content/uploads/2009/05/jobgraph-wordpress-vs-javascript.png" alt="Job graph on Indeed.com - WordPress vs. Javascript" title="jobgraph-wordpress-vs-javascript" width="100%" class="size-full wp-image-386" /></a><p class="wp-caption-text">Job graph on Indeed.com - WordPress vs. Javascript</p></div><br/></p>
<p>Hm.  Job descriptions containing &#8220;WordPress&#8221; are looking somewhat flat, and haven&#8217;t even broken 0.05%.  Compared to Javascript skills, I&#8217;d say it looks like a dead end. </p>
<p>But maybe it&#8217;s not.  However, I think the savvier companies are more likely to search for an offshore outfit for such a short-term task.  Would you really want to compete with ultra-sharp, ultra-cheap developers in India, China, or Russia?  I wouldn&#8217;t.</p>
<p>I&#8217;d rather place my efforts into learning the techniques and tools that were used to create the  WordPress app.  For instance, go hone your jQuery ninja skills instead.  </p>
<p><strong>Must-have skills: jQuery, dojo, YUI, prototype, SproutCore, etc.</strong></p>
<h3><strike>3. ActionScript</strike></h3>
<p><em>Didn&#8217;t you get the memo?</em>  Flash is not the next big thing anymore.  In fact, Flash jobs have been slowly disappearing since late 2008:</p>
<p><div id="attachment_391" class="wp-caption alignnone" style="width: 550px"><a href="http://www.indeed.com/jobtrends?q=flash%2C+flex%2C+silverlight&#038;l="><img src="http://unscriptable.dreamhosters.com/wp-content/uploads/2009/05/jobgraph-flash-flex-and-silverlight.png" alt="Indeed.com Flash, Flex, and Silverlight jobs" title="jobgraph-flash-flex-and-silverlight" width="100%" class="size-full wp-image-391" /></a><p class="wp-caption-text">Indeed.com Flash, Flex, and Silverlight jobs</p></div><br/></p>
<p>And Silverlight is never going to amount to anything either (except for maybe a games platform).  The reasons are manifold, but one of the major ones is openness.  Open standards such as CSS3 and HTML5 are gaining ground while uses for proprietary  frameworks (Flash and Silverlight), such as closed DRM-protected video, are losing favor quickly.  </p>
<p><strong>Must-have skills: CSS3 and HTML5.</strong></p>
<h3><strike>4. Back-End Programming Experience (PHP, ASP, ASP.NET)</strike></h3>
<p>Well, this is somewhat of a &#8220;no brainer&#8221;.  To the &#8220;back-end engineers&#8221; &mdash; as well as to any software development manager &mdash; anything that deals with HTML is the &#8220;front end&#8221;.  Therefore, in the eyes of hiring managers, these page templating languages are really front-end skills!  If you don&#8217;t have experience in any of them, you&#8217;re already under-qualified for almost any front-end developer job.  </p>
<p>I&#8217;d also like to add that I&#8217;d focus on anything but the page templating languages listed here.  There are already too many PHP developers.  ASP is completely and totally dead.  Unresurrectable, in fact.  ASP.Net isn&#8217;t far behind, relegated to boring, intranet portals and the poor, misguided (or Microsoft-funded) web app.  </p>
<p>ASP and ASP.Net jobs have fallen steadily over the past year.  And, no, it&#8217;s not the economy.  PHP, Javascript, and other front-end developer jobs have been skyrocketing.  </p>
<p>Here&#8217;s a better bet.  Find out what frameworks the cutting-edge web apps are using.  That&#8217;s what tomorrow&#8217;s jobs will be requiring.  </p>
<p><strong>Must-have skills: Python/Django or Grails (or Zend if you&#8217;re already a PHP expert)</strong></p>
<h3><strike>5. Familiarity with Object-Oriented Programming Concepts (OOP)</strike></h3>
<p>Again, another &#8220;no brainer&#8221;.  Better still: learn <a href="http://en.wikipedia.org/wiki/Functional_programming">Functional Programming</a> techniques and <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">Prototype-based Programming</a>.  Javascript ain&#8217;t just another OO language.  It&#8217;s so much more &mdash; and you&#8217;re missing out!  </p>
<p>Most &#8220;back end&#8221; developers don&#8217;t have experience with the alternative programming concepts available to Javascript.  If you can show them something that <em>blows their mind</em> during the interview process, you&#8217;re as good as hired.  </p>
<p><strong>Must-have skills: knowledge of (and real, working code examples of) closures, AOP, recursion, lambdas, and prototypal-specific methodologies.</strong></p>
<h3><strike>6. Advanced Knowledge in SEO and Internet Marketing</strike></h3>
<p>What?  I mean really?  Seriously?  I don&#8217;t know how you&#8217;re going to convince any worthwhile potential employer or client that you&#8217;re an SEO guru and a front-end guru at the same time.  Instead, just practice SEO-friendly coding basics, like using semantically-correct HTML tags and using META tags.</p>
<p>Here&#8217;s an even better idea: rather than spend time reading an already-out-of-date 2008 SEO book, go out and network (you know, meet people).  For instance, find an SEO expert to partner with.  </p>
<p><strong>Must-have skill: a network of friends, colleagues, and contacts to augment and/or enhance your skillset.</strong></p>
<h3><strike>7. Experience with PHPMyAdmin</strike></h3>
<p>No. No. No. No. <strong>No!</strong></p>
<p>PHPMyAdmin is a great tool for accessing a MySQL database that&#8217;s been locked out from normal port access by generic ISPs.  However, it&#8217;s a sorry excuse for not knowing how to create, update, retrieve, or delete data records.  </p>
<p>Learn SQL.  No, GROK IT.  No interesting web app exists without some kind of database.  </p>
<p>And while you&#8217;re at it, skip any of the rhetoric from Microsoft, Oracle, or IBM that you need to learn the intricacies of their SQL dialect so you can write &#8220;stored procs&#8221;.  Simple databases are <em>de rigueur</em> when implementing super-scalable systems.  Stored procedures lock-up logic in unmanageable, intractable, and predominantly unscalable proprietary code. </p>
<p>Also, while you&#8217;re at it, learn MapReduce-based techniques.  That&#8217;s where the real big money is right now.</p>
<p><strong>Must-have skills: basic ANSI SQL and at least one of the open database dialects: MySQL, Postgres, SQLLite. Bonus: MapReduce.</strong></p>
<h3><strike>8. Advanced Ajax/JavaScript Frameworks</strike></h3>
<p>Hey, Sherlock!  Now he&#8217;s getting it!</p>
<p>Oh, wait.  He forgot dojo, the most comprehensive framework / toolkit.  Close enough, I guess.  I&#8217;ll give him partial credit.</p>
<p>Here&#8217;s the trend for the toolkits I could track on Indeed.com:<br />
<div id="attachment_407" class="wp-caption alignnone" style="width: 550px"><a href="http://www.indeed.com/jobtrends?q=dojo%2C+jQuery%2C+YUI&#038;l="><img src="http://unscriptable.dreamhosters.com/wp-content/uploads/2009/05/jobgraph-dojo-jquery-and-yui.png" alt="Indeed.com dojo jQuery and YUI" title="jobgraph-dojo-jquery-and-yui" width="100%" class="size-full wp-image-407" /></a><p class="wp-caption-text">Indeed.com dojo jQuery and YUI</p></div></br></p>
<p>The absolute numbers are somewhat low, <em>but that&#8217;s because they&#8217;re on the cutting edge!</em>  And look at that trend curve!  That&#8217;s where the money is!  Eventually, most of the Javascript jobs will mandate one or more of the top toolkits.</p>
<p><strong>Must-have skills: jQuery, dojo, YUI, prototype, SproutCore, etc.</strong></p>
<h3><strike>9. Ruby on Rails (ROR)</strike></h3>
<p>Hey!  He&#8217;s on a roll!  He got two of the last two somewhat correct!  (That&#8217;s me: always emphasizing the positive!)</p>
<p>Hello! But what&#8217;s this?</p>
<blockquote><p>Even basic knowledge of what ROR is — without any hands-on experience — would nicely accentuate a resume in today’s front-end developer job market.</p></blockquote>
<p>Um. LOL!  How exactly would you write that on your resumé?  <em>&#8220;I really, really like RoR and would really, really appreciate it if you would pay me to learn it while working on your product.  Please?  I&#8217;m a fast learner.  I&#8217;ll be your pal forever&#8230;?&#8221;</em></p>
<p><strong>Must-have skill: add RoR to the list of back-end frameworks listed in #4.</strong></p>
<h3><strike>10. Mobile Web Development</strike></h3>
<p>Once again, I have to agree, but He is once again missing the whole point:</p>
<blockquote><p>Very soon, this skill will be a mandatory requirement on the average front-end developer job posting, so it should most certainly be on the list of “things to learn” for today’s front-end developer.</p></blockquote>
<p>By the time it&#8217;s a mandatory requirement for the average developer, it&#8217;s no longer going to help you get ahead.  Instead, you&#8217;ll be lost in a sea of mediocre look-alikes yet again.  </p>
<p>The secret to <strike>keeping your skills fresh</strike> &mdash; scratch that.</p>
<p>The secret to keeping your skills head-and-shoulders above the rest is being on the cutting edge at all times.  And guess what.  You&#8217;re not going to learn what the cutting edge is by reading books or taking online courses.  </p>
<p>No.  The only way to keep your skills sharp enough to stay competitive is to know what&#8217;s going to be hot tomorrow and practice it today.  </p>
<p>And how do you do that?  First, get off your lazy butt and network with people.  Attend local hack-fests, conferences, and user groups.  Seek-out the movers and shakers in the group and learn what they know.  If you don&#8217;t already have a Twitter account, go create one now and start using it to follow the industry leaders.  </p>
<p>Then, set aside time every week to practice.  Again, hack-fests are good for this, but you can do it on your own, too.  If you&#8217;ve developed your network (can I emphasize this enough?), you&#8217;ll be able to get help with the stickier issues you&#8217;ll encounter.  Challenge yourself to solve an impressive, but feasible coding problem.  </p>
<p>Better still: seek out an open source project that needs to solve a problem and become a contributor to that project.  There are plenty of cutting edge open source projects.</p>
<p>In the end, you&#8217;ll find you&#8217;ve acquired several additional must-have &#8220;skills&#8221;:</p>
<p><strong>Self-assurance<br />
Confidence<br />
Peer recognition<br />
Industry foresight</strong></p>
<p>But how do you put those on your resumé or portfolio?  Yes, it <em>is</em> possible.  I guess I&#8217;ll have to blog about that soon because 99.9% of all developers, engineers, and programmers <strong>absolutely suck</strong> at writing resumés.   (Yes, I&#8217;m looking at you!)</p>
<p>So, what did I miss?  Let me know!</p>
<p>By the way, <strong>[Update: name removed]</strong>, sorry to pick on you specifically.  Maybe it&#8217;s just because your post coincided with my recent <a href="http://twitter.com/unscriptable/status/1838365358">Twitter tirade</a> against incompetent front-end developers who are causing me grief?  Or maybe it&#8217;s because you used the term &#8220;front-end developer&#8221; when I think you really meant <strike>&#8220;script kiddie&#8221;</strike> (*cough* *cough*), I mean &#8220;UI designer&#8221;?  </p>
<p>It&#8217;s time for me to brace myself for the flames&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://unscriptable.com/2009/05/19/10-must-have-skills-for-front-end-developers/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

