Top 20+ Things every Senior Flash Developer should know
Lately I’ve been doing a couple of job interviews at the place where I work and what I notice is that people give them self more credit that they have. I guess this is human
. But if you apply for a senior function, you also need to have a specific skill set. If you say you have the skill but cannot show it in practice, we have to fire your ass again and that’s bad for both parties involved.
That is what this post is all about, I’ve tried to compile a list with things that I think you need to know as a Flash Developer. (The first 10 points are written by John Lindquist. So John if you are reading this, I credit you for the parts you wrote. I love you
. The original article can be found at Johns site some stuff was written by Grant Skinner and can be found at this blog post. Grant I love you too!). The rest I wrote.
1. The Elastic Racetrack
You need to understand when events fire, when code is executed, and when the player renders. It’s really the foundational concept of Flash Player.
http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/
2. FlexSDK, mxmlc, compc, and all that jazz
You need to know what’s going on when you hit that “run” button in Eclipse.
http://www.senocular.com/flash/tutorials/as3withmxmlc/
http://livedocs.adobe.com/flex/3/html/help.html?content=apparch_08.html
3. Player Events, Custom Events, Event Bubbling
I can’t imagine where flash player would be without frames and mouse clicks.
http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_03.html
http://livedocs.adobe.com/flex/3/langref/flash/events/package-detail.html
http://www.tink.ws/blog/custom-events-in-as-30-dont-forget-to-override-the-clone-method/
http://jacwright.com/blog/70/how-to-listen-to-flash-events-that-dont-bubble/
4. Statements, Keywords, and Directives
You should never be surprised by a new “word” in as3. If you don’t know what “static” or “override” or others are, learn them. Now.
http://livedocs.adobe.com/flex/2/langref/statements.html
5. ASDoc
Someday, you’ll re-read your code and have no idea what it does. The stress here is on proper documenting, but generating asdocs is nice too. ASDoc is a tool that does just that, generating documents from comments in code.
http://livedocs.adobe.com/flex/3/html/help.html?content=asdoc_3.html
6. Managing visual assets (images, fonts, CSS, etc)
Flash is visual. So you need to know how to manage assets with code.
http://www.funky-monkey.nl/blog/2010/04/09/preloaders-the-best-way-of-doing-it/
http://www.funky-monkey.nl/blog/2008/05/05/font-embedding-in-as3/
http://code.google.com/p/queueloader-as3/
http://code.google.com/p/bulk-loader/
7. Arrays, Collections, Dictionaries, Mapping
You’re not just working with one MovieClip here, so you need to know how to control multiple objects at once.
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Array.html
http://www.gskinner.com/blog/archives/2006/07/as3_dictionary.html
http://code.google.com/p/as3ds/
8. Know the difference between MovieClip, Sprite and Shape.
And know when and how to use them. What is used for what circumstance and what is lighter.
9. Programmatic motion (tweening, easing)
If you wanted things to stay still, you should’ve stuck with HTML
http://blog.greensock.com/tweenmaxas3/
http://www.amazon.com/Foundation-Actionscript-3-0-Animation-Making/dp/1590597915/ref=sr_1_1?ie=UTF8&s=books&qid=1243014431&sr=8-1
10. Programmatic drawing (assets, gradients, fills, lines etc.)
Since Flash is all about being visual, take some time to understand why you need to draw stuff in comparison to using assets. Drawing is much faster and takes up less memory. Lots of assets bog down your application.
http://www.funky-monkey.nl/blog/2010/04/20/drawing-shapes-in-as3-a-class-to-draw-an-arc-star-gear-cog-wedge-and-a-burst/
11. Cleaning up.
Understand how the Garbage Collector works, how you can make use of it and how to dispose objects, listeners, graphics and other stuff you don’t use anymore.
http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html
http://www.gskinner.com/blog/archives/2006/07/as3_resource_ma_1.html
http://www.gskinner.com/blog/archives/2006/08/as3_resource_ma_2.html
http://www.craftymind.com/2008/04/09/kick-starting-the-garbage-collector-in-actionscript-3-with-air/
12. OOP and Coding Against Frameworks
The days of a one huge .as file are over. You need to smartly move your code into organized and reusable objects. Also, now there are plenty of popular AS3 frameworks to help manage your code. Read up on them and start using one.
http://corlan.org/flex-frameworks/
http://tutorialfeed.blogspot.com/2010/05/10-open-source-flash-framework-for.html
http://www.adobe.com/devnet/actionscript/articles/oop_as3.html
http://www.actionscript.org/resources/articles/684/1/Object-Oriented-Programming-in-AS3/Page1.html
13. Version control
Unless you think your code is worthless, you need to learn how to back it up properly.
http://tortoisesvn.net/downloads – SVN Application for Windows
http://versionsapp.com/ – SVN App for Mac
http://en.wikipedia.org/wiki/Revision_control
http://git-scm.com/
14. ANT
If you start working with an industry standard IDE like Eclipse or FlashDevelop, there will be a day when you need to automate the build- or other processes with ANT. Its fun, its easy and you should learn it ![]()
http://blog.alanklement.com/2009/08/10/fdt-and-ant-a-users-guide-part-i/
http://blog.alanklement.com/2009/08/19/fdt-ant-part-two/
15. Know Your IDE
No matter what IDE or editor you use for writing code, make sure you knwo how it works, know the shortcuts, know the file compare function, know the search and replace. Let it work for you, not against you (or your time). If you don’t, make sure you spend some time getting to know it, it is well worth the time.
http://www.pragprog.com/the-pragmatic-programmer
http://oreilly.com/catalog/9780596519544
http://blog.alanklement.com/2009/08/09/fdt-customize-your-workflow/
16. Know you MVC from your Factory.
Design patterns, use ‘em wisely.
http://www.as3dp.com/
17. Good Writing skills (for team / client communication, documentation, comments, etc)
I’d rather hire someone with good writing skills than someone who cant write. someone who writes knows how to structure things and can explain things clearly.
18. Verbal communication and interpersonal skills for team / client interaction
No explanation needed really
19. A drive to learn and experiment.
20. A love for problem solving.
And of course the ability to think logical and methodical. And look at problems from a higher level.
BONUS: 21. Community awareness.
What is happening around you in the development/Flash world? What libraries exsist? What framework are out there?
BONUS: 22. Reasonable understanding of UX and interaction design / feeling for design.
If you have more to share, don’t agree with something or want to shout at me, post a comment!






Good post, and I agree on most of your things…
It looks like you read the 37Signals books
It was extremely interesting for me to read the post. Thanx for it. I like such topics and anything that is connected to this matter. I would like to read more soon. By the way, pretty good design you have here, but don’t you think design should be changed every few months?
Mary Smith
This is more like a actionscript programmers blueprint. It took me a lot longer than reading this to find out about most of this stuff. The links are verry relevant. Good stuff!
These are things every programmer should know, senior or rookie… if you dont, ur plankton and im the whale
Hi Jon,
Very much true, however you cant expect that Juniors will get all the stuff Senoirs get.
This all needs time and people learn in their own pace.
So if a Junior knows all this stuff, he/she will be more likely to be a Medior / Senior
Cheers, Sid
Although you were kind enough to provide a link to John Lindquist’s post http://johnlindquist.com/2009/08/28/10-things-every-senior-flash-developer-should-know/ , you then went on to quote the majority of it word for word. Not exactly cool.
Stop stealing content or at the very least credit the original author.
http://johnlindquist.com/2009/08/28/10-things-every-senior-flash-developer-should-know/
Looks like you ripped off John Lindquist’s post?
You copy-pasted the content of this blog: http://johnlindquist.com/2009/08/28/10-things-every-senior-flash-developer-should-know/ COPYCAT! you better stop doing this or you will feel my force.
Here is the original post : http://johnlindquist.com/2009/08/28/10-things-every-senior-flash-developer-should-know/
You should at least give credit to the author when you use their content.
It looks like you didn’t borrow ideas from John and Grant’s websites. Looks like you copy/pasted directly from John’s. Kudos on adding your own stuff, but I hope you got permission from John first before ripping him off directly. Otherwise, be sure to take the ideas but not the exact wording.
Good luck!
Hi Sidney, I’m sure theft was not your intention but this article is essentially plagiarism.
When you quote somebody, the appropriate practice is to cite them and use a different visual style to indicate that you’re quoting.
For example: The following items are from *linked* this excellent blog post by John Lindquist *end link*, and then put all the stuff that you copy-pasted from his blog in a box out or something of that ilk in order to differentiate clearly other people’s words and work from your own.
I know you included a couple of links, but you really needed to go much further in being open about what was your own content and what was just copy-pasta.
You say “what I notice is that people give them self more credit that they have” – this is exactly what you are guilty of here. You represent yourself as writing this content when really you just copied and adjusted it a little.
I once hired a junior dev who presented as his own work various flash games where really all he’d done was re-skin and adjust a few variables. Six months later we had to fire him, but it was the dishonesty that sucked – not just the lies he told us, but the dishonesty inside him – he really believed he hadn’t done anything wrong because he genuinely thought that what he’d done was ‘flash programming’.
If you’re writing a blog and you don’t understand the principles of appropriate citation, quotation and reference then in this situation you’re the person who thinks he knows more than he does.
John Lindquist puts an enormous amount of energy into his high quality written and video posts for the dev community. You at least owed him the courtesy of informing him that you’d lifted his post content and asking whether he was happy with the way you’d done it – I assume he would have asked for you to be clearer about what was his content and what was your own.
As someone who also spends a lot of time on my tech blog posts, and who contributes to open source software, I know that the reason we spend hours on this stuff is partly that we learn an enormous amount for ourselves in doing that work.
When you copy-pasta someone else’s work you cheat everybody – the original author, the readers (who would benefit from other posts on John’s blog) and yourself, because you don’t get that learning that would have come from thinking this through in depth and actually adding some analysis.
You should put this right – John (and the other author) deserves a public apology. Then you need to go and educate yourself about how writers – in print or online – can build on other people’s words and work without misrepresenting them as their own.
Stray
Hi,
Nice post, but I’ve read some of this before at John Lindquist’s blog – at first I thought it was a straight copy of John’s post because it’s really hard to see the attribution – you’ve linked to it but it isn’t obvious the majority of the post is from another source. Might be an idea to provide a better attribution, using quotes or John’s name?
Hi All,
Since the article i posted here contains some oh Johns points as posted on this link http://johnlindquist.com/2009/08/28/10-things-every-senior-flash-developer-should-know/ i will begin my defense.
First off i’m not deleting any of the comments you posted. I like your honesty. And you have the right to ventilate your mind aswell.
As for my defense:
I already gave him credit in this post, I also added other items but nobody seems to care.
I agree with all of you i didn’t give him proper credit.
I will update this post to do so.
I do think this whole thing has been pulled out of proportion.
So John if you are reading this, I credit you for the parts you wrote. I love you
Sidney
Hi Stray,
To bad you feel this way, and I do think this whole thing had been blown out of proportion. Since I did give him credit and provided a link to his site. I did also say I compiled this list. As in “To put together or compose from materials gathered from several sources” via The Free Online Dictionary. I also never said that I wrote that material. The extra 12 items I wrote myself.
For the last 5 years i’ve been putting time an effort in writing quality content for my readers, people like you, making sure all my source files are correct and online and placing it on this weblog for the world to see.
And if John or you for that matter, send me an email saying / asking to put this in order, no problem and i’ll correct it. But I don’t think that an e-lynching is in order.
Hope you are feeling better now,
Cheers,
Sidney
Wow you just lost so much credibility for me. I was liking this blog until I found out you grade-school plagiarized.
If you read it correctly you’ll see that i did give credit. Don’t directly judge, read it all, then judge.
Read up on the whole story, not just this part.
See this http://www.funky-monkey.nl/blog/2011/02/15/plagiarism-and-how-to-deal-with-it/
Hope i can change your mood, not your mind,
Sidney
The article is good I like this post!