I often receive emails from people new to web and application development asking me how to begin. What direction to take. What things are important to know. How to get started!
First things first. Developing is hard. Even after years of experience writing code, creating websites, and building web applications, it’s still hard. Sure, as familiarity increases and experience grows, the tedious and tiresome parts fade away and things get smoother. Faster. But it never stops being hard.
Carl, a good friend and colleague of mine (he has no website, so please look at this picture), is a programming veteran, database architect, and Java Guru. He knows development and enjoys teaching what he knows to his friends (to our constant benefit). If you asked him, he’d tell you: Development is hard.
So then: What?
Don’t let that discourage you. The best things in life are hard, and many are actually worth the effort. The rewards of learning to program and develop websites are many. The value of creating something you’re proud of, expanding what you know and changing how you think cannot be underestimated. Continuing your education and learning something new every day keeps the mind young.
Where to Start
If you already know about HTML or Flash, move into web application development. It will feel more natural to you, and there’s a good chance that your ISP already supports all the technologies you’ll need to get started building real applications. Look for things like PHP, ColdFusion, or even Perl. Both PHP and, to an even greater degree, ColdFusion, resemble HTML code. The new version of Flash integrates beautifully with ColdFusion, and built-in features can make a migration to this technology even easier.
Developing a web application has its own difficulties (the statelessness of the web, for example), but the rewards are great and it’s easy to get your web-app out there, fast, without the complications of cross-platform implementation difficulties.
But what about actual application development? There’s something magical about seeing that icon on your desktop and clicking it, watching the application you’ve labored over run for the first time on someone else’s computer … and working the way it’s supposed to.
Developing native applications with competent user interfaces is the most difficult of tasks. People with successful web development projects under their belt often muse about making a few cool tools for use on their own computers … things they might even want to share with a few friends or release into the community. Many of these people become successful independent application developers, creating tools and applications we love, like LiteSwitch, Watson, WeatherPop, and jEdit.
Learning languages like Java, C++, Objective-C (the tools of application developers) takes time, and the learning-curve is huge. But the payoff can be even bigger. It starts with reading, taking classes, and getting involved with people who can help guide you down the path of the application developer. I started out young and never stopped. But it’s never too late. Bill Cheeseman began his career as a developer after 30 years as a laywer. Think about that.
There’s a big world out there, and there’s a place for your applications (web or native). So get out there, wake up your mind, and start learning something new.