Second Chances

I don’t remember if I talked at all about Cocoa Camp, but I did not complete my code sample. I figured out a few days before hand that I had designed it wrong in my head and it would look really bad. I wanted to use grouped table views with editable cells, but I do not know how to program those. I got too stuck in my head, panicked, then shut down.

I tried not to think about it, but now that I know other people in my program are going I feel disappointed in myself for not even trying. Even if I turned in something that didn’t win, at least I would have thrown my hat in the ring.

So hey! I get another chance! WWDC has student scholarships where you have to submit an app. Unfortunately, I have a week (5 days from now) to complete the app along with the application.

I have less time, but I am planning an app that is within my ability to code. I am not trying to learn a new skill, I just have to make something slightly more complex than I have been doing up until now. I feel confident with my grasp of the concepts I will be using.

Trying to manage my panic and stay focused without getting burned out. Going to ask for help much sooner than I did for Cocoa Camp if I need it.

It is weird trying to come up with my own idea and design for an app rather than completing an assignment for a teacher. This is the first time I have attempted to do anything like this.

If I get this done in a way that I feel good about, I will be happy with that. I would love to go to WWDC, but if I give my best and I don’t succeed, at least I will know I put out something I am proud of.

What Do I Want??

I am beginning to ruminate on what I want to accomplish with my career when I finish with school.

Here is what I know I DON’T want:
– Work for a large company doing enterprise-level programming.
– Work for a company utilizing a language that is for all intents and purposes dead but won’t be replaced because the company invested a lot of money in its architecture so if I ever get laid off or the company goes out of business I will never find another job again.
– Work for a bully
– Work for someone that tries to compromise my moral integrity

Here is what I DO want, both short and long term:
– Work with media (either graphics or sound)
– Write books
– Attend conferences
– Do talks at conferences
– Do trainings at conferences

I am uncertain how I go from where I am now to getting to where I want to be. I am assuming the Dan Steinbergs of the world did not graduate from college and start going out and doing talks. They had jobs that they went to where they honed their skills and acquired their hard-earned expertise.

I know that I need to learn either OpenGL or Core Audio. I want to learn Core Audio. I went to a conference two months ago where I got a taste of Core Audio. I came home and blasted through a hundred pages of Chris Adamson’s book in one night of glorious coding.

Since then, nothing.

We have been working on table views and modal controllers in class. These are such alien concepts that I have been doing our assignments over and over again until I can internalize what each line of code is doing and why it is there.

I keep thinking if I have a solid block of time with no obligations that I will learn a specific concept, but then life gets in the way and the time slips by without me getting a thing done.

I would like to spend this summer mastering Core Audio. I am supposed to get an internship for school and for my husband so that I don’t have a solid block of several months where I am earning no money. I don’t think I can sell the idea to him that the temporary loss of money is an investment in the future because I worry that I won’t get anything done.

So here is what I am going to do. I am going to dedicated a certain amount of time every week to Core Audio. I am treating my time at school like a job. I clock in, study programming, and at some point at night I clock out. I think that spending my summer setting my own hours and setting my own goals would be an invaluable thing to learn how to do, but I feel I must try to find paid work even though I think that in the long run learning how to structure my own work hours would be far more valuable.

The other concept my brain is bashing up against is the idea of “the long run”. I got journalism degree, but didn’t have any video skills, so I got a video degree. I found out that television journalism pays nothing but that doing sound for film is lucrative so I studied audio engineering. Then the recession hit and the whole bag of tricks blew up in my face.

Nothing in life is certain. I can’t plan on spending several years learning something that might vanish in a poof of technology. This is yet another reason I would rather spend my summer learning Core Audio, so that I can jumpstart my career when I get done instead of toiling doing something I don’t want while trying to eke out a modicum of time to work on the things I eventually want to do.

So, I am writing down here, that I am going to dedicate at least three afternoons a week to Core Audio. When noon hits on Mondays, Wednesdays, and Fridays I will finish up what I am doing and I will work through Core Audio. If I get on a roll I might up that to more days in a week.

If something is important you need to make time for it. I need to master Core Audio to the point that I can produce something impressive. I need to stop being distracted by all the other things I want to learn, even within the iOS environment. No Game Center, Storyboards, or Core Data. Just Core Audio. And the stuff I am doing for class.

I know that this epiphany will fade as all the rest of them do, I simply hope that by writing it down and putting it out there that I will make it happen and hold onto it even when I don’t feel like it or I have an assignment due.

Blog readers, hold me accountable!! šŸ™‚

Thoughts on Being an iOS Programming Student

We are about halfway through this semester and I just wanted to put down some thoughts on being a programming student versus being a liberal arts student.

I have a bachelor’s degree in journalism and an associate degree in video editing and graphic design. With those degrees there isn’t really a lot of “learning” per se. You read a book and write a research paper on it. You can plow though a book and you basically do a bunch of work. Read a lot, take notes, organize them, bang out a paper. That’s it.

Learning programming is considerably more difficult. You have to see the concepts over and over again. You have to code something three or four times before it begins to click in your brain about how all the pieces fit together.

I feel like someone gave me a box with a thousand gears in it and they told me that if you fit ten of them together, you get a watch. The first time they give you the ten, the next time you have to find them in the box and figure out how they work together.

If you do this often enough and reuse a few gears you start to get to the point where you can identify a few of the gears that make a watch from the box. After a while you figure out more and more of the gears you need. The goal is to get to the point where you can pick out all ten gears based on knowledge or memory or intuition.

Why am I bringing up the gear analogy?? It’s because there is this push and pull between the teacher and the student about how much work can be done versus how much work needs to be done.

I know that many of my fellow students feel we are being asked to do too much. I will admit to feeling like too much is being asked. I feel like I need to do the book work two or three times before I can even contemplate doing the written assignment Eric gives us. Eric calls the book work a “typing exercise”, but I need to do that typing exercise a few times before I understand it enough to even try doing the written assignment.

On the other hand, I understand that Eric would like us to do even more than he is asking us to do. The sheer scope of what you need to know to make a professional-looking app is enormous. How fast can you go through the material while satisfying both the teacher and the students, to say nothing of the prospective employers who hope to employ the students?

For myself, this class is very intense. I have done more work on this one class than I did during semesters of my journalism degree when I was taking 15 credits, but this is only a 3 credit course. I think the amount of work we are doing justifies being a 5-6 credit course.

I know that generally speaking if you are taking a 3-credit class it is assumed that you will spend about three hours in class and spend 3 hours outside of class doing homework. I am spending at least 30 hours a week outside of class doing the work and I don’t complete all of it. I know I am not the only one.

I don’t mind spending that time doing the work. I know many people don’t have that time to spend doing this work and that most people I am speaking to are planning to take this class again and to also take the prerequisite Objective-C class again.

How do you solve this issue? How do you give the students enough work that they are able to complete it while learning something without overwhelming people to the point that they feel it is necessary to take the class two or three more times?? I honestly don’t know.

I think that college shouldn’t be a one-size-fits-all model. If you are taking a math class or a computer programming class you should not structure it the same way you do an English class. If you have to spend over a dozen hours outside of class to master the material, then make the class worth more credits. Either that or change the curriculum where you are taking 6 programming classes instead of three, but taking them over and over again.

This would clear out all the students who drop the class the day before the drop deadline then take it over again with people who have never had the material before. I know that it is depressing being in a class full of people who already had the material who grasp it more quickly than you do. Most people are too embarrassed about being “stupid” that we won’t go up to people who already had the class who understand it faster because we feel like we need to “figure it out on our own the way everyone else in the class did”.

I know I don’t like having to explain to my husband about why I have to spend every waking moment of my life on one class while he lectures me about how he went to college full time while working a full time job and making straight-A’sā€¦(I usually tune out and nod at this point).

Again, don’t mind doing the work. I just wish that the credits or something would accurately reflect the amount of work required to succeed in the class the first time through. I don’t need the class to be watered down by a lot, just want something to reflect the amount of work I put into the class rather than have it be worth the same amount as a history class where you only have to show up twice a semester and take a multiple-choice exam.

Getting Ready for Midterms

Tomorrow is my Intro to iOS Development midterm. Huzzah.

I have been laid up with a cold/migraine/sinus infection for a week or so. I have a brand new box of Kleenex that I used half of already.

I did not complete my code sample. What I wanted to do was a few steps beyond what I am capable of doing. I am going back and forth on how to do outside work such as this. Should I try to stretch and do something I don’t know how to do yet or is it a waste of time because it is usually harder than I think it will be.

I wasted a bunch of time trying to figure out the UIPickerView without really understanding the mechanics behind how they work. I didn’t think it would be that hard. In PHP you can do the drop-down method in a few minutes. I did not realize that there were going to delegates and data sources and a bunch of other things that need to play nicely together.

I don’t know if trying to figure that out on my own before learning it was a waste of time. I don’t think I really understood anything out of it, but I learned how to look stuff up?

There seems to be two schools of thought on programming: You sit down and puzzle it out on your own or you ask someone for help because you can get something accomplished in five minutes that you might take days to figure out on your own.

I tend to generally cling to the second school of thought. I think that it is similar to the quote by Thomas Jefferson about the patent system: “He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me.”

I think as long as you are able to process the help you are given by someone who knows more than you do, you are not being a user. Everyone started somewhere. If you get help from someone when you are a beginner, then you have a responsibility to pass that information down to new beginners.

But occasionally I get stubborn and think that I can learn it on my own with no help from anyone. Sometimes, if it’s something that isn’t too far away from what I know how to do, I can figure it out. If it is something I have never seen before, it is usually way harder than I think it will be and I get nowhere.

Also have similar thoughts about tutorials. One could argue that tutorials don’t really teach you stuff because you are typing out what another person figured out and wrote. I find them to be useful, especially if I do them multiple times. The first time you do it, it just kind of works like magic. The second time you kind of start to piece together how everything works. If you wind up doing it a half-dozen times or more you really understand what is going on and you can apply it to other things.

So I agree if you do a tutorial once, it really doesn’t do much more than introduce you to a concept, but if you have the patience to do them multiple times they can really aid understanding.

Alright, I should be studying and not procrastinating on my blog :p

Hadn’t posted in a little while and I did not want anyone to think I had abandoned my posts!

Cocoa Camp 2013: (Almost) Final Countdown

Well, the application for Cocoa Camp 2013 is due tomorrow. I am in the last 30 hours or so that I have to complete a decent code sample and submit it for consideration.

I am modifying what I plan to do for my sample. I am planning to make the whole app a series of table views. In the root view you click on cells to select the data that you wish to submit, then at the bottom you navigate to a view that tells you the conversion.

I am eliminating my flag graphics. I figured out that what I wanted to do is more difficult than what I plan to do and would look substantially less professional.

There will be four cells in my root view. The first will prompt for an amount to be converted. The next two cells will bring up the same list of currencies to choose from. The last cell will navigate you to a view that has the conversion information.

I hope I have enough time to puzzle through it. It is an all-or-nothing thing at this point. I can’t submit it if I can only get it to partially work.

If I can’t get it done by tomorrow I will still complete it and put it in my GitHub “portfolio”, so it won’t be a total wash. It wouldn’t be anyway because doing an outside of class project is always useful.

I will keep you posted as to what happens!

This is Why You Need to Understand Technology!

There is a winery in Baraboo that I go to periodically. The guy who runs it is a small time operation. He put together a mailing list of people and started sending out emails. However, the way that he did so was by creating a group email list, which means that any time anyone contacts him for any reason everyone who is on the list gets an email.

So every minute or so I get bombarded with emails from strangers asking to be taken off of the list. The longer this continues, the more often people are sending unsubscribe emails and the angrier they are getting. I got three different emails from the same woman who is typing in all caps “UNSUBSCRIBE ME FROM THIS LIST!!!!!” One guy said in his subject line that if he isn’t taken off this list immediately he will never visit the guy’s winery ever again (I am thinking it is likely that this is a person who only went when he had a Groupon).

I feel for the guy. He has a small operation and he isn’t a techie. He just wants to make his wine and he’s drinking the social media Kool-Aid. He probably has some young relative who is telling him he has to do this in order to reach out to the tech savvy generation. Unfortunately he is alienating the people he is trying to attract.

I hope that he is checking his email or the group listing to see that he has a small mess on his hands. I hope he can do something to rectify the situation with the people whose emails he has inadvertently leaked.

Back to School

My Spring Break is over. It was not productive in the way that I would have liked, but was productive in other ways.

We began learning about UITableViews before the break. Eric the teacher told us that when he was learning these he just made them over and over again until he could do them in a few minutes without looking up any of the methods associated with them.

So that is what I did. Every day during the break I redid the exercise in the book at least once. The exercise goes over three chapters. I only did the last chapter twice, but the first one was done almost ten times.

I am not quite at the point that Eric got to, but I feel better about them than I did before. I am now working on the assignment due for today. I probably should not have left it this late, but there is little to do about that now.

I really wanted to get my Cocoa Camp code sample done. I am at the point where I need to create a contingency plan. I have enough knowledge to do what I want to do, except I can’t be sure that I will have the focus to get it working. I know it is different to do something in a structured way than it is to change the context and do it slightly differently. I could probably do what I need to do if I had more time, but that is not the case.

The application does not specify how complex the code sample has to be, so I could always half-ass it and hard code the currency conversion and only do one currency, but that, to me, would be worse than doing nothing at all.