The web development industry is a very cruel playground. You have to keep up with the latest technologies in your chosen programming platform or at the very least, have some level of familiarity enough for you to know where to find the resources to study when push comes to shove. One day you feel like a Jedi ready to take on the Empire, all-powerful and ready to embrace the dark side and the next day you are a quiet little boy with a lightning-shaped scar on his forehead sitting on his favorite corner inside the cupboard under the stairs, masturbating.
Of course there are some aspects of a programmer that will never fade with the times like problem analysis, problem solving etc. But the constant need to learn and study the current technologies used will always be present.
If you are a first year Computer Science student reading this and thinking that all the studying and sleepless nights will only be in college and after that it’s all sex, drugs and rock n’ roll, I have one piece of advice for you: Take the blue pill and fuck the Matrix!
You’d be better off working for the government. That’s where all the sex, drugs and rock n’ roll come from (wink!).
Having said all those things, I would like to share to you an email from my former boss. Read on:
Its been a few years since I last sent out a document of what skills are needed to be a real programmer
these days. So I am going to sum it for you because I know you are studying at home because you don’t
want to wake up 5 years from now wondering how you ended up as the CEO of the family sari sari store.
I have outlined the followings skills into what I THINK going forward based on employability and level of
expertise you need to be a rock star programmer.
Critical Must Have Skills
——————————————————————————————–
- English Language (speaking Visaya all day will only guarantee you are always someone else’s bitch)
- Fluent in developing multi-tier applications in an enterprise stack (.Net or Java). This means you
know the best practices for developing UI + Business Layer + Data Layer. Of course we use the .Net
framework here but there are lots of companies that pimp the Java stack (IBM, Google, Oracle).
- Fluent in using an enterprise data storage provider (Oracle, MS SQL, MySQL if using SP maybe). Meaning
you know how to normalize a design, lots of experience with writing queries, database backup and
infrastructure strategies, indexing theory.
- Fluent in web development (HTML4/5, CSS, Javascript, JQuery, etc). You can be a programmer without
being knowledgeable in this area but you lose out on 50% of the jobs. Its akin to a girl not giving
blowjobs. Half the guys won’t go near that ass if they know this. Ask Ted.
- Project management. If you don’t know how to design and manage a project you will always work under someone who does. So if you want to be the HNIC (Head Nigger in Charge), you need to study at
least one recommended book on this topic. Also you actually need to develop a few projects from scratch
by yourself.
- Design patterns. If you can’t name 5 design patterns off the top of your head, you are not a software
developer, you are simply pretending to be one.
- Cloud programming. The world is getting smaller, development cycles are becoming shorter, the cloud is
the future whether you agree or not. You need to understand how it works at a basic level to a very
least. Knowledge of the big cloud providers such as Windows Azure, Amazon S3 and Google App Engine
(GAE).
- Scripting Language. There is a LOT of work that is done with scripting where you don’t want to pull
out a full blown compiler to generate an exe. If you want to do game scripting, scraping websites, quick
and dirty file scripts, 3d scripting (think blender), etc, you are going to need to learn this. You can
get by without it but you miss out on the benefits. Python is probably the most popular one out there.
- Good estimating skills, if you tell someone you’ll have it done in 1 hour and 3 days you are still
working on it, time to go work for the government.
- Common Sense. If it takes you 3 hours to do something that takes a real programmer 5 minutes, you not
only don’t have common sense but your fucking hopeless too. If you are going to program something you
should know in the first minute or two how long it will take and if there is a better way to do it. I
have to split a string based on the position of the commas. Instead of wasting half your morning playing
with loops and parsing characters, you should have been thinking there is a better way to do this and
been on google after the first minute finding about the split function.
- Testing. If you don’t know how to test your application, it doesn’t matter how good your app is if it
doesn’t work as intended. You should know how to test your application. Not all apps need to have unit
tests. If fact, most don’t. Before you write any good, you should have it in your head how you plan to
prove that it works correctly. Example, “will my website handle 100k people a day?”, “does this report
show the correct numbers?” How do I know they are correct.
Nice to have Skills
—————————————————————————————————-
- Some artistic design skills. It helps if you can mock up something without going to designer to make
every template you have to do. Knowing some basic theory about typography and color matching also helps
limit the “Are you fucking stupid” comments that are sure to be thrown at you if you put dark text on a
dark background.
- Photoshop, Flash, Silverlight, Maya, Blender, Unity, Premiere, Final Cut Pro. There are still a lot of
development going on where the programmer has to have knowledge of these items. Think interactive
websites, gaming, hollywood, porn.
- Low level programming. A lot of cutting edge libraries and stuff is still done in C, C++.
Understanding these languages will not only allow you to easily integrate with systems built on these
languages, it gives you perspective on higher managed languages.
- PHP Unless you plan on working for Facebook or working on WordPress for bloggers for a few meager
pesos, this isn’t going to help you much.
- iOS and Android SDK. There is a possibility that one of these two mobile frameworks may take over the
world and the sooner you take time to learn it, the faster you can reposition yourself in the new world
order.
If you are reading this and going: “holy fuck! I have so much to learn” or if you just graduated from
school, you need to put the foot to pedal. If you have been in the development arena for five years and
still saying holy fuck, I got something to say to you: Can I get a bagger at Cashier 6?
What have you got to say about that? I would love to hear your thoughts. Please leave a comment.


































