Monthly Archives: February 2013

Getting Back on Track

Due to injury, illness, and ennui, I have gotten a tad bit behind in my classes.

In my iOS class, we have class on Tuesday and Thursday. All of our homework is due Tuesday, no exceptions (except for attending programming conferences, but that won’t fly every week). Eric has office hours on Monday and Tuesday. The office hours on Tuesday are after class, so if you don’t get it done before then, no dice.

It’s just a little hard to figure out where you are going to be stuck and what questions to ask. I plan to have everything mostly done by Monday afternoons from now on so that I can ask questions before stuff is due.

Part of the problem is that I have Advanced Java with Eric right before office hours. I find it hard to mentally switch gears between those two quickly. It usually takes me 20 minutes or so to adjust my brain waves, so going from Java to office hours to talk about iOS is hard for me to do. I will just have to adjust my though processes.

I am not so far behind that I can’t catch up. I am not irreparably lost, I just need to do some maintenance to shore up my knowledge base so that I don’t get to that point. It’s like deciding to go on the diet when you have gained 10 pounds rather than ignoring the problem until it gets out of hand!

The Red Queen slowed down a little. Time to start running as fast as I can again. Break is over!

Seriously, Tech Recruiter?

Today I got an email from a random tech recruiter for a contract position in another state. This in and of itself isn’t that uncommon. I receive these emails and phone calls somewhat regularly.

The reason I am talking about this on here was because one part of the job description leaped out at me:

· Fulfills department requirements in terms of providing work coverage and administrative functions during periods of personnel illness, vacation or education

Let me see if I am interpreting the HR jargon correctly. It appears that part of the job requirement is to be a secretary if someone who is one is either ill, on vacation, or attending school.

Seriously? This is a three month contract where the job requires the candidate to have a computer science degree and two years of professional experience coding HTML5, C#.Net, and JQuery and they want you to show up at work and randomly be assigned to answer phones?

Who on earth would want to work for a company where your skills are treated like that? What you are doing is so inconsequential that you can randomly be pulled to do something that requires minimal training and thinking?

When I see this job description, it tells me several things:

– My work is not valued, so I personally won’t be treated with respect. I also will not be paid adequately for my skills, because they too are not valued.

– This company is penny wise and pound foolish. They considered their workers as “resources” in the worst possible usage of the word. Their workers are nothing more than Tetris pieces to be placed where they can fit.

– This company is not interested in establishing a cohesive work force. There will be no institution knowledge because the people working on this project are going to be gone in a few months. No one at the company will treat you with respect because you are going to be gone in a few months anyway, so why bother? The odds of getting a good reference from here is minimal because no one will know what you are supposed to be doing because you will randomly be placed at the front desk to answer phones.

So this is position for someone who doesn’t mind running in a hamster wheel, running constantly but not going anywhere. This company is not interested in attracting top talent and will likely ignore bullying and incompetence because it is easier to turn a blind eye to such behaviors.

Yes, this is a recession. When there is a larger supply of workers than there are positions available, people tend to stop treating their workers with respect or pay them well.

However, it is not a recession for computer programmers, especially ones that have highly in demand skills like HTML5. No one worth a damn is going to tolerate being treated with this degree of disrespect. In fact, I am highly dubious that this company would even know what kinds of questions to ask a developer to determine whether they actually know how to code.

So, random tech recruiter who sent me this email, thank you sincerely for thinking of me for this opportunity, but I have not given up on the hope that I will one day be a great software developer. I am trying to establish a career, not find a job. There is a difference.

Injuries Suck!

I was going to pair program with another student today, but I forgot that most programmers aren’t up at 7:00 am, so I was waiting around for a while before I figured out that it was going to be a while.

Unfortunately, on my way to our meeting place I tripped on the steps and I hurt my wrist. It was already a little fragile, but putting a bunch of weight on it as I fell really did not help it.

I wrapped it up and soaked it in hot water while I took a bath. It feels slightly better. I can type some now. It hurts to pull things with my hand. I tried to uncap a pen and I cried out in pain. This is the Universe telling me to give up on non-digital forms of note taking.

I feel pretty good about my Java project. I think I dotted my “i”s and crossed my “t”s, which means that there are probably a billion errors I have not encountered yet.

I am still in the beginner programmer bad habit of writing all my code before I compile and debug it, so I am sure I am in for some fun tomorrow. I have found that if I wait long enough to debug my code it is less hurtful because it stops feeling like yours. It is just some random code that came from somewhere and it’s a treasure hunt to fix it.

I am sure anyone reading this read the last paragraph with their face buried in their hands moaning, “God no!”

It’s my mess and I will deal with it as I like!

Thinking About the Future

Recently I have been talking to people/reading about how to get a programming job after you complete school. One guy who was talking about trying to find a Java developer said that a lot of people only had class coding assignments to show at an interview and that doesn’t really cut it.

The thought of doing more work outside of class to make code I haven’t learned yet is a little discouraging!

There are some ways of getting code out there. You can contribute to open source projects, put code on GitHub, write an app that will go on the App store, etc…

Right now I am inclined to try to write an app. I am slightly uncertain about how to contribute to an open source project. If anyone has advice it would be greatly appreciated!

Also still trying to wrap my head around what GitHub is. I have a very basic understanding of what it is and why it would be useful to other people, but need to figure out how I can utilize it.

I would really like to be able to write an audio app utilizing Core Audio. I have the Core Audio book by Chris Adamson and I get to see him in less than two weeks talking about Core Audio. I am not sure if I should try to plow through his book before seeing him or if I should wait. I am thinking I should try to make some headway into the book so that I can ask intelligent questions or at least have a base of understanding of what he is saying.

Right now just ruminating about what I need to do to prepare for the future. I know I need an internship. I have applied for a few, but I guess it is still pretty early. I haven’t heard anything back. It’s understandable that no one wants to think about this at this point in time.

The person hiring did say that an internship is helpful because it gives you some experience that you can put forward as a coding job.

I don’t understand why every company wants someone with two years of experience. How do you get two years of experience if you can’t get an entry level job? If it is so hard to find programmers then why would you turn away a person who has student experience and not professional because no one will hire you due to a Catch-22?

Hopefully all will become clear in time!

Second Day of the Weekend, First Java Project Part 2

Hit a small snag this morning. We are required to complete this project on a Virtual Machine. I have been having some difficulty with my VM. When I tried to install it the first time it would crash no matter what I did. We eventually determined that the VM was only allocating something like a byte of RAM to the VM and it was being starved to death. I also have a retina display Mac and there is a setting to do with 3D rendering (I think, this was a month ago) that causes the VM to crash.

Anyway, this morning I tried to log into the VM and it froze. It was unresponsive and wouldn’t do anything. I was afraid that I was going to have to reinstall the VM, which would be a massive pain to deal with, especially since we had to install Ant manually rather than using the Synaptic Package Manager.

I restarted my computer, but apparently I needed to restart the VM. Happy that the husband was home. He maintains these for a living and he helped me get back on track.

Generated my documents for the testing. Forward ho!

Second Day of the Weekend, First Java Project

Yesterday was not as productive as I had hoped it would be.

I hate shoveling snow! I noticed that when I go outside to shovel the snow it irreparably ruins my ability to focus on programming. It also bothers my wrists. Right now the right wrist is in a brace because it hurts a lot. Hopefully it will feel better later in the day. I can still type, but it is annoying.

I am doing the shoveling because my husband goes to work all day and I really don’t think it is fair to make him do a lot of the chores just because I have trouble focusing. Plus he does all the lawn mowing during the summer. I refuse to do that because last time I tried to mow the lawn the grass clippings gave me what I can only assume is an asthma attack. I was laying on the lawn gasping like a fish. I don’t care to repeat that experience.

I am going to take a different tack today. We are learning about test driven development. As far as I am aware, we have tests that we run on our programs to see if they are doing what they are supposed to be doing and contain what they are supposed to contain.

I am going to save the work that I have already done/been given in another place, start from scratch, and try to complete the project that way. Rather than having my focus scattered over a bunch of disparate classes and pieces of information, I will have a single focus on a single problem at a time that I can solve rather than trying to put a puzzle together without a picture and any corner pieces.

I am holding onto the work I have done and I can integrate it back into the project, so it isn’t exactly starting over again, it is just taking things from a different angle that will hopefully allow me to focus.

I feel like my focus is light wave going through a prism. I am hoping that by giving it a focal point my focus will be white instead of a rainbow going in all different directions.

First Day of the Weekend, First Java Project

“Well believe me, Mike, I calculated the odds of this succeeding versus the odds I was doing something incredibly stupid… and I went ahead anyway.”
– Crow T. Robot

I do not have classes on Fridays, so this is the first day of my weekend.

On the docket:

– Complete my first Java project. The project requires me to read a large text file, output it one character at a time to a text file, then write another text file saying how many unique tokens are in the file. This project is due Monday

– Do my assignment for iOS class. This requires me to read a chapter in the book, complete the tutorials in the book, and complete the challenges in the book. This is due Tuesday.

– Try to work ahead in the iOS book. This will likely be delayed until next weekend whenI do not have the Java project obligation to complete.

At my Java class on Wednesday Eric asked me how far I was on the Java project. I told him I was spending most of my time on iOS. I told him I still had a few days to complete the Java project. At this point he started laughing at me, so I do not take that as a particularly good sign.

I asked him what was more important to dedicate my time to. He said both of them are important. This was not a helpful answer.

I then proceeded to write a long rambling email explaining why Java was easier and therefore slightly less important than iOS in my list of priorities. I foresee this biting me in the ass sometime around five o’clock on Sunday afternoon. We shall see.

Today is most likely to be my most productive day because my husband is out of the house at work. Got sidetracked by having to go out and shovel the snow. It wasn’t as bad as I feared it would be, so thank god for small favors. My dog was peering out at me while I was shoveling giving me a sad, mournful look. I felt sorry for it until I remembered that I was outside busting my butt in the cold shoveling snow and it got to stay inside where it was warm and I got over it.

So, time to make tea and forage for lunch while I settle down and focus on the task at hand. We’ll see how much progress I make and how long it takes me to get stuck on my project.

Cocoa Conf 2013, Here I come!

I loved my first programming conference. Snow*Mobile 2013 was one of the best experiences I have had for a while. As Eric the iOS teacher says, “I found my people”. I was totally bummed when the conference was over because there wasn’t going to be another one until UXMad happens this summer.

Until I discovered Cocoa Conf. There is another conference happening in Chicago March 7-9, 2013. This one is going to be super cool because this is going to be 100% Apple programming. Snow*Mobile was awesome, but there was a lot of presentations about Android and HTML5 among other things because it was about mobile development, not iOS programming.

I have discovered some things I wish I had known before Snow*Mobile that I can now implement before Cocoa Conf:

– Have business cards! I am at the conference to meet people and connect. It is a little unprofessional to not have a card to hand someone with your information on it. I have ordered business cards with my professional info on them. They should be here on time. I paid for the faster shipping.

– Have a blog. I mentioned in my first post, I figured out after the conference that I should have had a blog and talked about the conference in it (I give a shout out to Ray Hightower for giving me this idea). So I now have a blog.

– Twitter can be useful. If you are following a speaker and you tweet them about their talk, that gives you an intro so that they know who you are. That way you are not some random person on Twitter making stupid comments on things.

I am going for the conference and I am also attending the iOS game workshop the day before the conference begins.

I am super excited to see Chris Adamson talk about Core Audio. One of my long-term goals is to learn Core Audio and OpenGL. I don’t think I am at the level where I can do that yet, but it is out there on the horizon.

I am sure there will be lots of other cool people there that I am not familiar with whom I look forward to meeting.

If anyone reading this post is going to be there, drop me a comment or tweet me @redqueencoder and I’ll keep an eye out for you. Any advice on whose talk to see is appreciated. There are so many choices that it is a little overwhelming.

Still Almost there!

Okay, I bit the bullet and asked for an explanation on this project. Apparently most of us did not get it to work and we wanted to get an understanding of how this works.

I had all the components of the project present, but they were in the wrong places. I forgot that we had the View Controller class.

It’s funny. Everything in iOS has names that tell you exactly what it does, but sometimes your brain just kind of blanks on what to do with it.

So you have a View Controller. What does it do? It controls views. You don’t try to control the view from the class you are creating the view in, you outsource it to the class that does that job.

Sometimes you get hyper focused on the small part of the picture that you lose sight of the whole picture.

Speaking of that, now is time for me to determine how to proceed. I would like to make this project work, but I have a Java project due on Monday that I have not been focusing on. I blithely believe that I can breeze through this project without getting stuck, which is probably a stupid belief to have.

I also have another chapter to get through in the Big Nerd Ranch book. We are being advised by Eric to do the same amount of work, but to do it a week early. So he is saying we should work a chapter ahead. This requires me to read three chapters: Last week, this week, and next week.

I think I will implement this suggestion, but I will do so next week. I have other obligations this week, so this isn’t a priority.

So, due next week: Weekly iOS assignment and my first Java project. Plus we have another Snowpocalypse coming tomorrow, so I will be stuck shoveling for an hour or more.

Huzzah!

Almost there!

I think I have most of the random rectangle assignment figured out, but I haven’t tested my code yet because I have class shortly.

So, there is a set of methods associated with detecting that the iPhone shakes. It was spoken about in the book we are using, but it did not explicitly state that you can call methods when the device shakes. The method I used was “(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event”.

My last few problems I am having is wondering if this will create a rectangle every time the device shakes or if it will only create one that will move and change when the device shakes. The other one that I have is there is a drawRect method that draws a rectangle but it requires you to pass a rectangle to it before you execute it.

There are a lot of void methods that require you to pass an object to the method and it does something. Maybe I am just not thinking about this correctly, but that seems weird to me. I feel like I should be returning the object rather than passing the object.

I will talk to Eric after class about whether I did this correctly or not. If I haven’t I will come back and say what I did incorrectly and what I needed to fix.

Now on to focusing on what is happening now rather than what already happened…