My First Time… Phone Technical Interview

My first real technical phone interview. Hmph, there’s a lot of things that I could say but I’ve come to realize that i am my own worst critic.

In my experience with mock interviews, I would beat myself up after an interview for not completing all of the challenges, or needing to work faster, or something else; there’s always something else to work on. I would rate myself harsh regarding my technical and non technical questions. But then I would receive the interviewers feedback and it wouldn’t be as bad as I thought.

However, in my experience of my real interview, I can’t stop thinking about how I could’ve done better and should’ve done better. I would have to say that my nerves got the best of me and although I’ve been beating myself up these past few hours, I definitely have some take aways from this experience.

First off, definitely have an easily accessible drink handy. My mouth got dry after talking through all of my thought process ,as well as babbling too much. But that wasn’t the only thing that got me, my hands were shaking as I was coding and I kept on making foolish mistakes ūüėĘ on questions that I knew the answers to.¬† In regards to being prepared, make sure that you’re in a comfortable setting (not a hot hallway in 80 plus degree weather).

My last tip is to review simple algorithms and data structures a few hours prior to the interview. But make sure to relax and calm your nerves before the interview. **Maybe next time I will try a few calming techniques, i.e. breathing I learned at yoga.

The best thing that I got from this interview was getting over my fear of interviewing. I was able to get through it and make it seem as though I knew what I was talking about (imposter syndrome kicking in here, but that’s another story). In addition, I now know what to look forward to and I know what I need to work on; I can definitely work on my whiteboard skills / collabedit skills and my personal pitch. I’ve been told that the first is the worst,but with practice comes experience, and with experience comes confident. Thus, my journey into the professional tech world has been set into motion.

Other than that, one thing I know that I did do well was send a thank you email to both of my interviewers. Regardless of whether or not I receive a call back, I will be better prepared next time.

Implementing iAd

Before adding any code to your app in regards to iAd, you should import the iAd framework into your application (Linked Frameworks and Libraries) and ‘import iAd’ to the view for the iAd implementation. Although there are a few ways to display the iAd, for Project 3: Swift iAd, I chose to complete the task with the ad located at the bottom of the screen.

Because many apps allow for the removal of ads with a purchase, it can be more convenient to build the iAd in code rather than with the Storyboard, allowing for a code friendly way to manage your code.

Once you have completed the above, you will need to create a variable to reference the adBannerView.

var bannerView: ADBannerView!

Project 3: Swift iAD

iAdVideo

***NOTE: To avoid potential errors, try to avoid naming the project ‘iAd’

If you would like to look at my code as a guideline, feel free to check out my github.

Creating A Tap or Hold Counter in Swift

Project 2: Tap Or Hold Counter

TapOrHoldCounterVideo

The second project was a way to test my knowledge of the previous project, Tap Counter, and was modified to incorporate the hold gesture.

If we were to build off of the first project, Tap Counter, only a few lines of code would be required to achieve the Tap or Hold Counter.

  1. In the Main.storyboard, add a Long Press Gesture Recognizer and place it on the ‘tap’ button¬†(At this point, you can add the words “or Hold” to the tap button)
  2. Connect the Long Press Gesture Recognizer to the tapButton func
  3. Add a longPressAction function to the class
    • func longPressAction() {
                print("did long press")
          }
  4. Add the following lines of code to implement the UILongPressGestureRecognizer and set the minimumPressDuration time
    • let lpg = UILongPressGestureRecognizer(target: self, action: "longPressAction")
      
      lpg.minimumPressDuration = 2
    • // at the end of the func, before the closing curly brace include the following
      tapOrHold.addGestureRecognizer(lpg)

You should be able to run both apps and successfully increment with each tapButton and reset with the resetButton.

Creating A Tap Counter in Swift

Project 1: Tap Counter

For the first project, I utilized the Storyboard/Interface, UIButton (and functions), UILabel, as well as NavBar

TapCounterVideo

  1. Create a new Single View Application in Xcode
  2. Open the Main.storyboard and add a UILabel, UIButton, and NavBar
    1. UILabel -> counterLabel
    2. UIButton -> tapButton
    3. NavBar -> include a Left Bar Button Item (reset)
  3. Create an Int variable, and initialize it to 0
    • var counterNumbers : Int = 0
  4. Connect the label to the ViewController as an IBOutlet
  5. Connect both buttons as an IBAction
  6. In the viewDidLoad, set the counterLabel text = 0
    • counterLabel.text = "0"
  7. In the tapButton func: increase the counterNumbers by +1, update the counterLabel text when the button is pressed
    • self.counterNumbers++
    • self.counterLabel.text = String(self.counterNumbers)
      • //note: you need to convert the Int into a String to display on the label
  8. In the resetButton func: reset the counterNumbers to 0, update the counterLabel text
    • self.counterNumbers = 0
    • self.counterLabel.text = String(self.counterNumbers)

100 Days of Swift Challenge

When I initially learned to code (iOS development), my main focus was Objective-C. Although Swift 1.2 was released just prior to the start of my fellowship, the team in charge of the curriculum believed that Swift was ‘too new’ to shift our focus from the well-known¬†Objective-C. As a newbie to the tech world, I decided to stick with Objective-C and focus on perfecting my first real tech language.

Fast-Forwarding my story to the job search….

Once I began the job search, I noticed that a good amount of businesses were in the process of switching over to swift and/or already shifted to swift. After graduating from my fellowship, I thought of many ways to learn swift. While I completed tutorials here and there, I wasn’t completely sure as to how I would go about creating projects and actually implementing the material I learned into projects. It wasn’t until I came across Sam Lu’s blog in regards to his 100 Days of Swift. Inspired by his story and intrigued by the process and progress he made with his projects, I decided to recreate the projects he completed as a basis of my journey through Swift.

Only just starting the ‘100 Days of Swift’ Challenge a few days ago, you can see my progress from the first project here.

 

Get the Ball Rolling

While deciding on an app idea can be an indecisive process, actually starting the process can seem a bit overwhelming. After much thought and brainstorming ideas of what the end product might look like, as well as actual functions, I decided on a potential MVP. The main purpose of my app will allow for the user to create a route for running, tracking the user’s movement. Even though there are many features I would like to add right away to make the apps functionality seem more appealing, it’s crucial that I keep it simple –I don’t want to feel too overwhelmed or discouraged before I even get the ball rolling.

It may seem as though I have very little to work with now,however, I’ve learned from previous projects that sometimes its better to start with a simple model and branch out from there. Although there are only two screens for the MVP, I want to make sure that the basics of my app is functional and works accordingly; I want to build a strong foundation in which I will be able to branch ideas from.

Nothing to it, but to do it

This upcoming week, I look forward to beginning the coding (Objective-C) for my MVP and testing the product out to ensure proper installation –maybe get some UI/UX feedback from a few people. Optimistically, I hope to begin adding features to the MVP by next week.

It feels as though I am just jumping into the coding sector of my app rather quickly, but I am hoping that I will get a better sense of direction with the project based on the outcome of the MVP.

…at some point, I may dabble with sketch for better UI.

Choosing a Topic

ideaWhen deciding on a topic for my personal project, I immediately recalled from many conversations that ‘you should always start by creating something that you will use’. And that is exactly what I did. As a workout ‘junkie’, I decided to create something that would solve a recurring issue/problem I have when working out.

I constantly have friends telling me that I ‘suck’ because I didn’t invite them to go running, or our start times varied by a few minutes; thus, I decided to create a running app that would allow for me to share my route and location with them, and make it easier to join me on my runs. Whether or not I will be capable of implementing all the features that I currently have in mind is not too much of a concern for me; I plan on starting simple and building up as I move forward (MVP).

My main focus for the upcoming week is to do more research regarding the tools and particular skills I may need to acquire for this task. Personally (I don’t know why I’m writing the word ” if this is my blog, but I like the way it sounds), this is the most exciting part for me. I get to dabble in new things and learn new skills that I can add to my experience –more than likely use on future tasks.

Next, I plan on dabbling with some wire-framing and begin working on the actual code. I hope to get better acquainted with the Google Maps API and more backend stuff.

One thing that I have not yet decided on is whether or not I will write this in Objective-C or Swift. Let’s see where this shall take me.