Category Archives: Education

ABAP: First Steps…Where the hell do I start?

Generally, when someone expresses interest in programming they are told to take a programming course. “Bob, why don’t you take a Java class at the local community college? Sounds great Sam, thanks for the suggestion.” Java 101…

Week 1: “This is a computer, here’s how you turn it on, it has pieces, and they are all connected together and they do stuff. If you hit the little keys on the keyboard you can make the computer do things, like crash just when you’re writing your term paper that you forgot to save.”

Week 2: “Java is a programming language, it runs on computers, you can write programs with it to do things. Java was created by some people that are a lot smarter than you. Ok, let’s start with primitives.” But wait, I thought we were an advanced species? And it continues for an entire semester. You learn how little pieces work, but no idea what to do with them, how to put them together into a cohesive whole, into a program that someone might want to use.

I’m not going to pretend to be an expert on any programming related topic. I can only tell you what I’ve experienced during my attempt to learn programming. And the traditional structured education path doesn’t work for me, or at least it hasn’t so far. All classes have been about the same. They start by focusing on little pieces, but give you little sense of the bigger picture. You learn just enough along the way to keep you from failing. But unless programming comes naturally to you, by the time the class is over you’ve forgotten everything you learned and you’re back at square one.

It seems to me a better approach would be to focus on a goal. This semester we are going to write a program that does XYZ, and we are going to be using the ABC programming language. Don’t worry, it’s going to be confusing at first, but we are going to break apart this program, piece by piece, focusing on each piece one at a time. Each piece is going to teach us important concepts about programming and programming languages in general, but also about the specific syntax of ABC. But you should understand that you could probably write this program in 20 other languages. Doesn’t that sound better than, “this is an int, you use it to store numbers”, “this is a string, you use it for text”, “this is a class, you make objects with it”, etc.?

So, let’s do that. Let’s start with the big picture and then drill down into the details. We can use my first Windows Phone program as a starting point. I’ll walk you step-by-step through the process I used to develop it, the things I had to learn, what I learned I still had to learn, what I realized I could and should have done differently, etc. This is going to be as much of an educational process for me as for you.

We’ll get started in the next installment. I’m hungry.




ABAP: First Steps

A couple of weeks ago I published my first Windows Phone application. Other than the simple programs I wrote in the programming classes I’ve taken, it was the first somewhat useful application I’ve ever written. It’s called Connectivity Manager. It does what all of the other connection managers do, it links to the various connection settings visible to the user and the programmer, like Wi-Fi, Bluetooth, etc. It’s basically a glorified linker. But I needed to get my feet wet.

I’m currently working on a base converter. Yep, that’s been done plenty of times before as well. But again, you have to start somewhere. Your first, second, or third programs, hell, maybe even your 100th, are not likely going to be blockbuster hits. If that happens to you, that’s absolutely incredible and I’d love to hear your story. But for most of us, it’s going to be slow going.

You need to think of your first programs as learning experiences, no different than when you took your first baby steps. Those first steps were the hardest damn thing in the world, only you didn’t know enough at the time to get frustrated and give up. You kept trying, falling, crying, trying, falling, crying, until eventually you got on your feet. At that point it was all smiles, because those cookies on the counter were that much closer. Now if mom and dad would only leave the room…

Programming is no different. It’s one step at a time. If you don’t take it one step at a time, you will quickly overwhelm yourself. There is so much to learn, so much history, so much present, and so much future that if you don’t break it down into manageable pieces you’ll likely walk away. That’s what I always did in the past. That’s likely what many of you did too. Well, let’s not do that anymore. I’m talking to myself as much as I am to you.

So, you ask, where do I start? That’s a very good question. I’m not going to get into any specifics here, I’m going to talk very generally and I’m going to try to stay away from “well, it depends”, as much as possible.

I’m going to try and keep these posts relatively short. I don’t think anyone wants to read a blog encyclopedia. So on to my next post to continue the journey…

A Beginner’s Adventures in Programming (ABAP)

If you don’t already know, I’m very, very new to programming and application development; and as of this writing I’m 41 years old. Compared to many programmers I’m probably 30+ years behind the curve. But who cares?

I didn’t always feel that way. For years, I’ve dabbled in programming, ranging from Excel macros to web development to most recently taking introductory college courses in Assembly, C, C++, and Java. But I’ve always walked away because it just seemed too daunting. There are so many languages out there and the technology moves so quickly that it just didn’t seem to make sense to start so late in life to learn something new, something that I never felt I could get good at quickly enough to keep up. Well, that was the old me.

Something happened a month or two ago, a switch flipped in my head. Perhaps my brain finally figured out how to catch the exception and handle it properly. Honestly, I don’t know what happened, and I really don’t care, because I finally found direction. Now I’m learning C#, XAML, JavaScript, and HTML/CSS. I published my first Windows Phone app a few weeks ago. As of today, it’s been downloaded 921 times. That’s 921 random people that felt compelled enough to at least check out something I created. Whether or not they continue to use it is another matter, but at this point I don’t care. To me, it’s all about the experience.

Having listened to various podcasts for the last few months, I hear lots of comments from the podcasters that many people have dipped their toes in programming, but for various reasons gave up — life got in the way, it seemed too hard, they didn’t know where to go with it, etc. If you’re one of those people (I was definitely one of those people), I’d like to share my journey with you so that you can see that no matter what your age, what your current occupation (I’ve been in finance my entire professional career), you can learn to program, you can do something useful with it, you can stretch your mental abilities and be on a never ending path of learning, and, most importantly, you can have fun doing it.

Let’s get started…

Windows Phone 7 for Absolute Beginners

Windows Phone 7 for Absolute Beginners is a fantastic video series from Bob Tabor, posted on Channel 9. Below is the course description:

“This video series will help aspiring Windows Phone 7 developers get started. We’ll start off with the basics and work our way up, so in a few hours you will know enough to build simple WP7 applications, such as a GPS aware note taking application. We’ll walk you through getting the tools, knowing what an if statement is, to using the GPS built into the phone and much more!”

The videos are just my speed, slow, well thought out, and Bob does a great job of explaining WHY to do something rather than just dropping in 200 lines of code from a snippet and telling you, “it’s just basic stuff, we won’t cover this”.

If you are new to programming, particularly C#, XAML, and Windows Phone, I think you’ll find this series of videos very helpful. He starts you off with the very basics and works up to developing a note application.