If you're going to be in Nashville on May 21 at 6:00, stop by the Interactive Developers meetup at Vaco to hear me speak about the Compound MVC framework for Node. There is always free food and drink. You can RSVP here.



Posted in JavaScript, Presentations | Leave a comment

sench-book-coverI have recently been diving into Creating Mobile Apps With Sencha Touch 2 and I have really been enjoying it.

As someone who worked with Sencha Touch when it first came out, it has been fun to watch the steady improvements that have been added over time to make Sencha Touch 2, so I was doubly excited to have the chance to review this book.

Creating Mobile Apps With Sencha Touch 2 is a very comprehensive guide for writing data-driven mobile applications, but it begins with the novice in mind. The first chapter, "A Simple Task List", walks us through creating a simple TODO list application. This chapter focuses on some of the fundamentals of Sencha Touch such as how to use Sencha Architect, which is essentially a WYSIWYG interface for creating Sencha apps.

Chapter 2 is titled "A Feed Reader." It walks us through working with remote data proxies. In addition to walk us through using JSONP, it also introduces more sophisticated options like using YQL to serve up data remotely.

Chapter 3 covers working with Sencha Touch in the command line using the Sencha CMD tool. I had just started using Sencha CMD on a project a few weeks before, so this chapter was especially interesting to me.

The 4th chapter gives us some information on working with Sencha Charts. I haven't had the pleasure of working with Sencha Charts on any of my projects yet, and the last time I had worked with EXT-style charts was 3 or 4 years ago, so I was pleasantly surprised at how easy they are to work with.

Chapter 5 guides us through working with Sencha.io, which is currently a free place where you can deploy Sencha Touch applications into the cloud. The cool thing about Sencha.io is that it handles all of the server-side database interactions for you so that you can totally focus on writing client-side code.

Chapter 6 is about writing APIs that work well with Sencha Touch. It specifically talks about REST-based APIs since the Sencha Touch Ajax proxy is geared toward that.

Chapter 7 is about working with external APIs that you don't write yourself. It specifically focuses on Foursquare and Google Maps.

Chapter 8 is about using profiles, which is an easy way that Sencha Touch has introduced to deal with multiple devices and screen resolutions inside the same app.

Chapter 9 delves into working with the native device camera. It shows you how to capture, store and display images on the mobile device.

The 10th chapter shows how you can even use Sencha Touch to create a functional mobile game. It also provides some great insights into how the Sencha Touch controller can be used.

This is a really helpful book whether you are just starting out with Sencha Touch, or if you have been using it for a while, but would like to improve your skillset. If you have already been using Sencha Touch, you may want to skip over the first few chapters, but there is still plenty to learn in this book.



Posted in Sencha, Uncategorized | Leave a comment

graduateSoftware development is a really exciting field to be in. Technology is constantly changing and improving. The demand for people who can read and write code is constantly expanding. The laws of supply and demand work in the developer's favor since all of the companies are forced to compete for the limited number of people who can write code well.

So, if you want to get into the development field, you may be tempted to enroll in a nearby college and get a four-year degree in computer science. After all, everyone with a college degree does better in life, right?

In the interest of full disclosure, I'll start off by saying that I do have a college degree. College was a good experience for me. I made many friends I still keep in touch with today, I met my wife at college and I was able to learn under some really good professors. However, I have to ask myself whether I would encourage my kids to enroll in college if they were pursuing a career as a software engineer. It might be surprising, but my answer would be "no." Here are my reasons:

  • College is expensive. This should be obvious, but college can cost an arm and a leg. When I went to college at a small private university, the tuition was about $10,000 a semester. The cost of college is rising at a rate that far exceeds the rate of inflation. There is literally no way a college student can pay for that out of pocket. As an 18-year-old, you can't understand the burden of debt or the way that interest works on loans. What's even worse is that many of my friends are unemployed or underemployed with the same debt load. Our family is on the Dave Ramsey plan trying to get out from under the weight of student loan debt. The one lesson we have learned is that it is never worth it to borrow money.
  • Missed opportunity. Four years is a long time. It's impossible to calculate what you may have missed in terms of lost opportunity. If I had been working, even for minimum wage, I would have had enough money to buy a house at the end of four years.
  • Technology moves too fast. Other than basic principles of coding, everything that you learn in college will be obsolete by the time you get your degree. As a rule, colleges are typically a year or two behind because they are waiting to determine whether the technologies will stick. There's no reason to teach a class on a language that turns out to be a passing trend.

So, if you don't go to college, how can you get a job writing code? Here a few ideas.

  • Learn as much as you can. Pick a language and commit to thoroughly learning it. If you're looking for a language that will make good money, some solid choices are JavaScript, C#, PHP and Java. I would personally recommend learning JavaScript because it has a bright future. Books are a good place to start. There are also tons of blogs that can be invaluable resources. There are also weekly newsletters like JavaScript Weekly that keep a running update of what is hot in the development world. To get started on a language, I would recommend just creating an application. You will learn really fast if you are actually writing functional code.
  • Meet other developers. If you live in or near a major city, there are probably several meetups and conferences you can attend. They are a great place to meet people. Ask them about what they are doing and where they work. Create relationships with people who are doing what you want to be doing. The odds of getting a job by filling out resumes are terrible. Almost all of the professional jobs I've gotten were a result of networking.
  • Get an internship writing code. Since there is such a high demand for software engineers, many companies will gladly take interns under their wings. The benefits for the company are that they have the potential to eventually hire you on as a full-time employee, they get free or cheap work and they are able to look good in their community because they are teaching upcoming engineers.
  • Look into cheaper alternatives. Here in Nashville, we have a program called "Nashville Software School" that just costs $1,000 a semester. My guess is that there are similar programs springing up in other areas as well.

As you should be able to see, college is probably not the right choice for an aspiring developer. Sure, there are some companies that require a bachelor's degree, but the vast majority would prefer four years of real-world experience to the insulated learning environment that a college provides. If you are able to land your first tech job, nobody will ever even notice whether or not you have a college degree listed on your resume. Learning to write code well is going to require a lot of hard work, but college is hard work too. In the end, you have to ask yourself what it costs compared to what you have to show for it in the end.



Posted in Life | Leave a comment