Throughout my programming career, I’ve been involved in lots and lots of startups. Many of the startups were my own. Of the startups that weren’t mine, I was brought on board for all kinds of reasons and at different points during their life cycles. Some times, I was brought in from day one for things like recommending technologies, overseeing the entire development process, and even creating the initial code / cornerstone for others to use as building blocks for their projects. Other times, I was brought on board for testing security & performance, assisting with scaling, and even finishing up code to achieve an earlier release date. No matter when I got involved with a startup, I was always brought in as an outside consultant that brought with me a lot of experience and expertise.
Among that expertise, there was one topic that I almost always had to discuss with the startup owners no matter what point I got involved. Whether I got involved in the beginning before any code had been written, toward the end when it was time to apply the polish, or any where in between, I always found myself having to discuss the use of 3rd party frameworks within their applications. In the end, this topic was always appreciated most by the startup owners as they have all told me that this topic alone had the most impact in the way they designed their applications and their final results. Since everyone else found this information beneficial, I’d like to take a few minutes to share this same information with you.
If I had to choose one word to best describe the visitors of this site it would have to be “lazy”. Yep, I said it. Lazy! About 95% of the visitors to this site would rather ask for an entire working application than to go create it on their own. They don’t want to spend the necessary time learning how to program. Instead, they want instant gratification by having someone else do the work for them.
The articles I’ve written here are only intended as starting points for your own applications. However, I’m constantly swamped with emails asking me to write complete programs for people. I get requests for applications for senior college projects and even for commercial applications. For example, just a couple of days ago I received an email asking for an application that can monitor social networks using sentiment analysis and choose which stocks to trade based on that information. This would be a great project to work on if I was getting paid for it. However, I wouldn’t be receiving anything for it as it was a project that a reader of this site was tasked to do for his day job.
I don’t mind helping out and answering questions where I can, but having me write the entire program doesn’t benefit anyone. What happens when you’re expected to add additional functionality to the app later on? What happens when you’re asked to fix a bug? What if I’m not here to help you with that app anymore? I’ve seen people go down in flames over things just like this.
For example, a few years back I knew a guy that was a basic computer user that copied some code from a website, used it at his job, and told his boss he wrote it himself. Impressed with the application, his bossed offered him a job in IS writing small programs to help automate some of the mundane office tasks that ate up so much of the employees’ time. He thought, “this is easy. I can do this.” The new job offer would also come with a hefty pay increase. The job also required that he write the code while at the office. Unfortunately for him, he didn’t have a clue about programming and wasn’t allowed internet access from the office. After a week or so, his boss began getting upset at the poor turn around time of his new “programmer”. All of the apps that he was asked to write were small one-off jobs that would take any “real” developer a few minutes to complete. Each of those jobs had to be handed off to the other developers for completion. When questioned by his boss, he admittedly came clean and confessed to not knowing how to program.
Although his honesty was appreciated, his employeer still deemed it necessary to let him go. He could’ve avoided this whole mess if he had just taken the time and did the work required to learn how to program. As a guy that has been writing applications for 23 years, I know exactly what it takes to learn how to program. I read everything I can get my hands on and I still occassionally find myself asking for help in the forums. But, I never ask anyone to write an entire application for me.
So, stop asking for others to write the programs for you and learn how to program already! There’s no reason you can’t learn how to write your own programs. Trust me when I say that learning how to program is much more valuable than asking someone else to do the work for you. Besides, the more you know, the more you’re worth!
As a professional geek, I’m constantly finding myself being pulled into discussions and debates about all-things-technology. For example, some guys from work and I have been engaged in an ongoing debate about the future of programming and what we should be focusing on. Even though most technologies are growing every day at a tremendous rate, programming technologies have moved seemingly slower, but still maintaining a stable state. It seems as though we have been depending on the same programming technologies for quiet a long time. Now, I know that our current technologies continue to grow and are fairly young in the overall scheme of things. But, it’s just a matter of time before our current technologies need a bigger upgrade.
As I’m sure you’ve noticed, this site has been responding very slow for the last week. That’s because we have been having all kinds of server issues. Please bare with us as we work to resolve these issues. Because of dealing with server issues, I haven’t had time to respond to all emails and comments. Once we have overcome these issues, I will respond to all comments and emails. Thank you for your patience and interest in this site.
Recently, I purchased myself an AR.Drone from Parrot. And, as I mentioned in this article, the new quadricopter is AWESOME! If you haven’t picked one up yet, you need to! (Amazon link). Anyways, I have begun working on my own C# application that will allow me to control the quadricopter from my computer. While working on that project, I have come across a few side-technologies that I would like to share. For instance, in order to control your drone, you have to first connect to it via WiFi, just like you would any Wireless Access Point. For my project, the first piece that needed to be in place was a way to scan for available WAPs (drones) and that is what I want to share with you today.