For anybody familiar with Sales, you've probably heard of the "ABC's" of selling which stands for "Always Be Closing". For people not familiar with sales, its basically the concept that if I were trying to sell you a tennis ball, and you objected and said you really don't like green tennis balls, I would ask you a clarifying question to understand what colors you might like, and then I go right back to the close with something like "so which would you prefer, a tennis ball of color 'x' or color 'y'?" Basically, as you uncover information about your prospect, you're still pushing for the close every step of the way.
As I was driving home yesterday and thinking about a good topic to write about, the ABC's kind of popped into my head and it made me think of a good acronym that applies to anybody that codes, "Always Be Learning" or as I titled it, the "ABL's" of Programming. I thought of this both because of some of my recent struggles, but it's also been a consistent theme on a Ruby Rogues podcast I've been listening to recently.
So how does it apply to me recently? A few weeks back, I had this idea to try and program a basic Text based adventure game in JavaScript that would present you with various scenarios and options, and based on your choices you'd progress through the game. I knew it would test my knowledge of several concepts like For Loops, While Loops, Iterations, etc. Well the first weekend I dove head first into the game and felt like I made a ton of traction. It almost seemed like a relatively easy concept that I would be able to finish and release within maybe a week's time frame. Well here I am about 3 weeks later, and still no working version of the game!
While I made a lot of progress that first weekend, my code gradually became more complex, and it started getting harder to keep things straight or decide how to pull the information I needed. After getting some advice from a developer that sits by me, and studying further into the CodeAcademy JavaScript tutorial, I then realized I could re-structure my game to follow a more traditional "Object-oriented" fashion and take advantage of JavaScript's Prototypal/inheritance nature. That led to a whole weekend of diving in, getting really confused, and then slowly figuring out how to once again structure my game and make it work. However, I learned a ton and my code was far better off because of it!
Well now I've run into another issue where one of my iterators keeps looping and is not escaping, so I worked briefly with another of our Software Engineers yesterday, and he mentioned that an "alert" method I'm using does not work well with browsers, and that I should strongly use jQuery for what I was trying to do. So now after about two weeks, I'm diving into a completely different area and once again deciding to re-structure my game to make it work better and become easier to work with moving forward.
I spent yesterday researching how to implement the jQuery library, which then also led me to pull in HTML/CSS and changing my game to a more graphical nature in the browser rather than being completely text based from JavaScript functions. While it's not absolutely necessary that I do this, I do envision where this is going to make certain aspects of my game a lot easier and a lot more efficient to code. I even learned how to make my page somewhat "responsive"! That basically means that if you were to start with a full screen, and start to shrink the screen, the elements will shrink along with it so that the page remains readable and functional. Especially since a web page can be accessed by so many devices including tablets, phones, laptops, etc. all of which have different size screens, implementing responsive design is an absolute must.
So basically what started as a simple JavaScript program with basic "for loops" & "iterators" has now evolved to be so much more. At least I've learned concepts and a little bit about other languages & libraries that I've been able to apply to my code. I've faced some type of challenge on an almost daily basis, but I've learned something new every step of the way and feel so much more confident today than I did a few weeks back when I started the game!
Software Engineering is definitely a field and skill set that requires you must "Always be learning!".
Showing posts with label css. Show all posts
Showing posts with label css. Show all posts
Saturday, July 26, 2014
The "ABL's" of Programming
Labels:
codenewbie,
css,
html,
javascript,
learning,
responsive,
RPG games
Location:
Atlanta, GA, USA
Thursday, July 10, 2014
Episode #57
For anyone that watched Seinfeld, it was always famous for being about "absolutely nothing"! I thought that was kind of convenient for this post, because I really do not have a specific topic to write about, but it's been awhile since I've written and I want to try to stay consistent. So I'll just write about a few random things...
First & foremost, hopefully everyone had a wonderful 4th of July weekend! Some of my brothers and sisters came in town to go camping out at Stone Mountain. Thankfully we had nice cool weather for July and it was a very enjoyable trip. Here are a few pics from the trip:
Ok so on to a few things development related:
Coding is not like riding a bike
As much as I'm wanting to spend plenty of time working on my coding, I haven't had as much time to dedicate to it as I would like, especially this most recent week while I was out at Stone Mountain. One thing I've learned, if you aren't coding on a daily basis, you FORGET stuff! Things like "for" loops or "do while" loops, and "functions", etc. I learn how to do them, and then go back a week later and forget little tidbits of the syntax. Overall though, I am learning more every day and getting a lot faster on how to structure all of these coding fundamentals. I'm trying to bunker down and spend as much time as possible studying or practicing in one way or another.
Resources I'm using
I've been bouncing back and forth between a few resources lately, but the two most prominent are the work I'm doing on my Rails app, and then working through JavaScript tutorials on CodeAcademy. Overall Code Academy is a great resource for learning syntax; my biggest complaint is that I feel it breaks the problems down too much for you, and doesn't allow you to really push yourself on how to solve a complex problem. I am getting to a few parts in the tutorial where it offers some additional challenges to figure out on your own.
Status of my Rails App
I ran into a hiccup on my App. If you haven't been reading along, rather than doing the e-commerce app in the book, I'm trying to do an app where I can upload recipes I like and then pull them back up at random to help me decide what to make. I realized after the first main section that I was designing the wrong part of my app with their tutorial. I was designing the front end piece that you view the recipes from, whereas I was supposed to be designing the backend storage space where you can "Add, Edit, or Delete" new recipes and it also shows a view of all of the recipes (see snapshot below).
Once I realized the direction they were going, I changed up the CSS so the view would look like the picture above. It's not pretty yet, but a basic view for adding new recipes.
I think what I'm going to do now is dive into CodeAcademy to finish working through the JavaScript tutorial while reading ahead in the Rails book. Once I see how they plan to work through the e-commerce site, I think I'll have a slightly better idea on how to translate it to what I'm trying to do.
Well that's about it for tonight. Once again thanks for reading along!
First & foremost, hopefully everyone had a wonderful 4th of July weekend! Some of my brothers and sisters came in town to go camping out at Stone Mountain. Thankfully we had nice cool weather for July and it was a very enjoyable trip. Here are a few pics from the trip:
We hiked up Stone Mountain around dusk and I got this picture with the Atlanta skyline in the distant background
View of the water from near our campsite
My nephew is definitely cooler than yours! This picture is from the Ride the Ducks trip at Stone Mountain and he was not liking the life vest.
Ok so on to a few things development related:
Coding is not like riding a bike
As much as I'm wanting to spend plenty of time working on my coding, I haven't had as much time to dedicate to it as I would like, especially this most recent week while I was out at Stone Mountain. One thing I've learned, if you aren't coding on a daily basis, you FORGET stuff! Things like "for" loops or "do while" loops, and "functions", etc. I learn how to do them, and then go back a week later and forget little tidbits of the syntax. Overall though, I am learning more every day and getting a lot faster on how to structure all of these coding fundamentals. I'm trying to bunker down and spend as much time as possible studying or practicing in one way or another.
Resources I'm using
I've been bouncing back and forth between a few resources lately, but the two most prominent are the work I'm doing on my Rails app, and then working through JavaScript tutorials on CodeAcademy. Overall Code Academy is a great resource for learning syntax; my biggest complaint is that I feel it breaks the problems down too much for you, and doesn't allow you to really push yourself on how to solve a complex problem. I am getting to a few parts in the tutorial where it offers some additional challenges to figure out on your own.
Status of my Rails App
I ran into a hiccup on my App. If you haven't been reading along, rather than doing the e-commerce app in the book, I'm trying to do an app where I can upload recipes I like and then pull them back up at random to help me decide what to make. I realized after the first main section that I was designing the wrong part of my app with their tutorial. I was designing the front end piece that you view the recipes from, whereas I was supposed to be designing the backend storage space where you can "Add, Edit, or Delete" new recipes and it also shows a view of all of the recipes (see snapshot below).
Once I realized the direction they were going, I changed up the CSS so the view would look like the picture above. It's not pretty yet, but a basic view for adding new recipes.
I think what I'm going to do now is dive into CodeAcademy to finish working through the JavaScript tutorial while reading ahead in the Rails book. Once I see how they plan to work through the e-commerce site, I think I'll have a slightly better idea on how to translate it to what I'm trying to do.
Well that's about it for tonight. Once again thanks for reading along!
Labels:
camping,
coding,
css,
Ruby on Rails,
stone mountain
Location:
Atlanta, GA, USA
Saturday, June 28, 2014
One step forward...fifteen steps back
Saturday afternoon, world cup is on the tv, and I'm plopped down on the couch with my laptop & book in hand. My dog is fast asleep on the couch, but probably bored and wishing I would play with her instead of having my eyes glued on my laptop! I figured now is as good of a time as any to provide another update...
I've been trying to spend as much time as possible learning how to code and working on my app. As a refresher for anybody that has been reading along, I'm working through the book "Agile Web Development with Rails 4" by Sam Ruby, Dave Thomas, & David Hansson. The book provides an in-depth tutorial in which you create an e-commerce site for a fictional customer. My issue with tutorials is that a bulk of the code you need is already in the book, so I feel it doesn't challenge you as much as I'd like. So I decided to create my own app which will allow you to add & store your favorite recipes online, and eventually I'll add a randomizer to allow you to pick a recipe at random.
I'm really hoping to spend at least 10+ hours a week studying because I'm really enjoying it. I would love to spend more time than that, but I do have a full time job & other activities that keep me pretty busy. However, there is something about typing in a few lines of code, seeing something pop up on your computer screen, and thinking to yourself - "I DID THAT!". In addition, coding involves A TON of problem solving and I always enjoy the rush of finally figuring out something that I've been stuck on!
So that leads me into the main topic of today - I was starting to feel comfortable navigating to different parts of my Rails application and being able to troubleshoot and figure out issues...and then this happened...
Thankfully I recently stumbled across a great group on Twitter called CodeNewbie that has been extremely beneficial! It was started by Saron (@saronyitbarek) and Carlos (@carlosplusplus) and it's a great community of developers and developers in training that are always there to help out. I posted a screen shot and within 15 minutes already had a response from @carlosplusplus!
The answer ultimately ended up being me starting my app over, but I really wasn't that far in and it took me maybe 15 minutes to get everything back to the point I was previously at! Here's a screenshot of the current state of my app from the web browser:
Overall, it's a ton of fun every time I get to sit down and learn a little more about coding, even if it is a step forward and a few steps back sometimes. I'm very fortunate that I get to sit around close to 200 very talented Software Engineers at CareerBuilder and I can ask for help on an almost daily basis.
Hopefully in the very near future I'll have some good updates and screenshots of how my apps coming along. In the meantime, if you have any advice, words of encouragement, or are interested in hearing about a certain topic - please feel free to comment or email me at austi003@gmail.com. I'm hoping at least one person out there finds this blog interesting or gets some value out of it :)
I've been trying to spend as much time as possible learning how to code and working on my app. As a refresher for anybody that has been reading along, I'm working through the book "Agile Web Development with Rails 4" by Sam Ruby, Dave Thomas, & David Hansson. The book provides an in-depth tutorial in which you create an e-commerce site for a fictional customer. My issue with tutorials is that a bulk of the code you need is already in the book, so I feel it doesn't challenge you as much as I'd like. So I decided to create my own app which will allow you to add & store your favorite recipes online, and eventually I'll add a randomizer to allow you to pick a recipe at random.
I'm really hoping to spend at least 10+ hours a week studying because I'm really enjoying it. I would love to spend more time than that, but I do have a full time job & other activities that keep me pretty busy. However, there is something about typing in a few lines of code, seeing something pop up on your computer screen, and thinking to yourself - "I DID THAT!". In addition, coding involves A TON of problem solving and I always enjoy the rush of finally figuring out something that I've been stuck on!
So that leads me into the main topic of today - I was starting to feel comfortable navigating to different parts of my Rails application and being able to troubleshoot and figure out issues...and then this happened...
Thankfully I recently stumbled across a great group on Twitter called CodeNewbie that has been extremely beneficial! It was started by Saron (@saronyitbarek) and Carlos (@carlosplusplus) and it's a great community of developers and developers in training that are always there to help out. I posted a screen shot and within 15 minutes already had a response from @carlosplusplus!
The answer ultimately ended up being me starting my app over, but I really wasn't that far in and it took me maybe 15 minutes to get everything back to the point I was previously at! Here's a screenshot of the current state of my app from the web browser:
Overall, it's a ton of fun every time I get to sit down and learn a little more about coding, even if it is a step forward and a few steps back sometimes. I'm very fortunate that I get to sit around close to 200 very talented Software Engineers at CareerBuilder and I can ask for help on an almost daily basis.
Hopefully in the very near future I'll have some good updates and screenshots of how my apps coming along. In the meantime, if you have any advice, words of encouragement, or are interested in hearing about a certain topic - please feel free to comment or email me at austi003@gmail.com. I'm hoping at least one person out there finds this blog interesting or gets some value out of it :)
Labels:
codenewbie,
coding,
css,
Ruby,
Ruby on Rails
Location:
Atlanta, GA 30319, USA
Saturday, June 21, 2014
What on earth is a Hackathon?
It's Saturday morning now, and I've finally recovered from lack of sleep while participating in the quarterly Hack-a-thon that CareerBuilder hosts. First off I have to say, I work for an AWESOME company and am so thankful they basically let me take two days off from my day to day job to participate with the Site Technology team!
Since many of you reading are my friends and family that probably have no earthly idea what a Hack-a-thon is, let me quickly explain (or you can watch the Hackathon video from last quarter - highly recommended)
If you're choosing to punish yourself and read through my description, here goes! A Hack-a-thon is very popular in the Software Engineering community and is basically a concept where Engineers come together to "hack" (code, program, engineer) on something. Sometimes they take place over the course of a 24 hour period such as CareerBuilder's, or they can also take place over the course of a weekend. Hack-a-thon's can also take place within individual companies (especially popular in Silicon Valley), or any other type of event hosted by a college, organization, or technical community where people can come from all over to participate. CareerBuilder holds a Hack-a-thon once a quarter where from 9 am Thursday until 9 am Friday they give the full Engineering staff 24 hours to work on anything they want to and CareerBuilder provides tons of food, drinks, and games to help power people through. While some people choose to work on fun projects, we also get ton's of great ideas for our products from these events (I'd like to say my idea will hopefully be used as a new feature!)
So enough on that - as many of you know I'm an IT Recruiter at CareerBuilder. I sit with the developers and I know how to write a little code, so they let me participate. I thought I would take the time to share my experience of the 27 or so hours starting at 9 am Thursday all the way through presentations which lasted until Noon on Friday. I won't document hour by hour, but I'll share some of the cool things (you can also check out my Twitter feed for more cb_Shaun or check out the handle #cbhackathon)
I had a good idea for one of our product lines, but obviously did not have the technical "know how" to actually implement it. Thankfully two of our Engineers were nice enough to let me work with them; one of them sits in the Norcross office with me and we also partnered with one of our Engineers based in France.
8:30 AM Thursday - Joseph and I had to make the most of our time working with Clement (who is like 5 or 6 hours ahead of us in France) so the first thing we did was jump on a quick video conference to discuss our game plan of implementing this solution. I quickly learned how much I DO NOT KNOW :) I knew that there would be a lot of code I would not be able to help with, but I think I hoped there would be more I could research early on to be able to help with. Before we got too far along though, it was time for breakfast!
After breakfast, I spent my morning hours working on a brief PowerPoint for our presentation for Friday. Joseph and Clement were busy researching how to implement the idea and putting together the backbone of our feature. Learning Point #1 - As a Software Developer, you first spend a lot of time researching other people's ideas and solutions, and then you actually begin to code. I guess I always thought they learn the programming languages and then instantly know how to begin typing out the code. In actuality, a lot of their job is research and then learning how to use their knowledge to implement.
11 AM - First game of the day - Viking Chess out on the lawn. If you've never heard of Viking Chess, which I hadn't either, you can read up here. I didn't sign up prior so I wasn't able to actually play, but I did enjoy a few beer's and some sunshine out on the lawn behind our building.
As I mentioned, Joseph and Clement had a lot of work to do getting the backbone in place that was WAY above my level of knowledge or understanding, so most of the morning/afternoon went by in a fairly uneventful manner for me. I tried to look over Joseph's shoulder and he at least explained what he was working on. They have "rev up" stations around the floor where you can get candy, snacks, energy drinks, etc and they provided us a buffet lunch at 1pm. I also got a few games of Ping Pong in although I'm embarrassed to admit I've still yet to win a single game! Learning Point #2 - Jesse, one of the Managers that is a top Ping Pong player at CB, finally taught me a little about how to spin the ball and different attacks to beat different players - hopefully soon I'll finally get a Win!
4:15 PM - A good chunk of the business day is gone, and I've yet to get to contribute to the actual coding, BUT we are finally starting to come along. Joseph and Clement have come a long way, and we have one piece of the ultimate project done, we are successfully texting (I can't share our ultimate idea as I hope it is a feature we will actually implement)
5:00 PM - The day has flown by and I'm sure many of our Engineers brain's are fried by now! We got stuck on several occasions, but thankfully Clement & Joseph are very smart and kept things moving along. Now it's time for the Happy Hour and some more evening games! CareerBuilder brings in Peachtree Growlers and catered food, and we get a few hours to relax & have some fun!
6:00 - 8:00 PM - Evening games on the lawn. Yes I'm sure many of you reading this (including my brother that actually sent me a text saying so) think the day is all fun and games :) For me, quite a bit of it was because the technical aspects were over my head. However, for many of our Engineers, they've been at it for 8 hours now and need a break to refresh! My work was still yet to come a little later in the night.
The evening games included Water Balloon launchers, Angry Bird launchers, some video games, and a human size hamster balll track.
My first time I was horrible at the Hamster wheel, but I got the hang of it the second run down the track. The biggest surprise for all of us - it's a TOUGH workout! Run down the track once or twice in that thing and you are absolutely worn out. All in all it a lot of fun, but now it's time to head back inside.
8:00 PM - We are finally at the stage that I can begin to contribute! This is what I've been waiting all day for (and really what I've been waiting for ever since March when I witnessed my first Hack-a-thon) and I'm ready to start coding. Joseph was able to assign me a few tasks that I could start researching in order to learn how to do; the first being how to normalize a number.
What does that mean you ask? Basically we needed a number to be in the following format +1XXXXXXXXXX. However, we might receive numbers in any number of different formats including (123) 456-7890 or 123-456-7890 - you get the idea. So I had to figure out how to take in the number provided, remove any special characters that might exist, check to ensure it was a 10 digit number, and then add a "+1" before it. Here is a screen shot of the ultimate code I came up with, written in PHP:
I also learned the basics behind how to use the Twilio API and was successfully able to send myself a text message via running the code from my desktop! Learning Point #3 - Just about any code you need to write exists somewhere, you just have to know what to search for and how to implement it.
10:30 PM - Starting to get a little quiet around the office as not everyone stays the full 24 hours, and a lot of people have gone home. At this point, we've started working on the User Interface (how it will appear to our user) and this is the type of stuff I can actually help with! Joseph found some good examples to work off of, and he gave me the task of figuring out how to use it. Naturally it takes me a little longer as I try to research and understand the code, but HTML & CSS are the two languages I feel most comfortable in at this point.
2:30 AM - I've been at it for close to six hours now, although I have taken some breaks for the occasional nerf dart war, midnight pizza, and another game of ping pong. I've finally got a working prototype of how this should look for our end user. It doesn't actually handle the data yet, but provides the needed code for Joseph and Clement to work with. It's probably something our Engineers can figure out in like 30 minutes, but I'm feeling pretty proud at this point!
5:30 AM - Let me give a quick recap at this point. We've been at it for about 21 hours now (At least Joseph has :) More like 9 1/2 hours of actual coding for me). I've probably had 6,000+ calories between breakfast, lunch, candy, dinner, late night pizza, etc. I've had I don't know how many cups of coffee & energy drinks, and several beers. I'm now officially exhausted & hardly keeping my eyes open, but we are definitely coming along with our idea! Joseph is an absolute beast powering through to this point & Clement did a ton for us earlier on. Since he's hours ahead of us, he did take some time to sleep through the middle of the night our time. Learning Point #4 - The Energy Drink industry is kept in business in large part due to Software Engineers
6:30 AM - We have a working prototype at this point. There are a few things we'd like to clean up and make look better, but Joseph and I are both exhausted! We agree on a two hour nap and back at it at 8:30 am. We know we aren't the first to present, so we'd have a little time to clean things up. I find a nice huge bean bag chair near my desk and semi-sleep for about two hours.
9:00 AM - I enjoyed my nice two hours of light sleep although I was right outside of the office of the CTO & CEO and they had an early morning conference call, so that was going on from 7:30ish on. At 8:30 I got up, cleaned up a little and brushed my teeth, and headed upstairs to the Alabama Conference room for breakfast and to get ready for presentations to begin. There were a total of around 35 presentations (each given 5 minutes or less to present) and we were around number 21. Clement was able to do some last minute clean up and everything looks great!
12:00 PM Friday - Presentations are done! I feel our presentation went really well and I'm anxious to see how everyone votes! Everyone is given three votes and you can vote for what you feel are the top three ideas (or just your favorite), and you are allowed to vote for your idea. Some people vote on the silly games, but all in all I think some of the top ideas definitely won out. Unfortunately our project was not in the top 3, but I do think we finished in the top third of overall projects. My highlight was the CTO voted on our project and even told me I should get to raise my hand twice for it! Since I'm a recruiter and not a programmer, I think everyone was pretty impressed with my idea overall and the implementation I was able to help out with. All member's on the top 3 winning team's each win a brand new iPad Air! Hopefully I can win one in a future event :)
12:30 PM - Finally headed home to get some much needed sleep! It was a fantastic experience and I'll anxiously await the next event in September. I learned a ton, had a lot of fun, and got to work with and see the work of some very talented Software Engineers!
Since many of you reading are my friends and family that probably have no earthly idea what a Hack-a-thon is, let me quickly explain (or you can watch the Hackathon video from last quarter - highly recommended)
If you're choosing to punish yourself and read through my description, here goes! A Hack-a-thon is very popular in the Software Engineering community and is basically a concept where Engineers come together to "hack" (code, program, engineer) on something. Sometimes they take place over the course of a 24 hour period such as CareerBuilder's, or they can also take place over the course of a weekend. Hack-a-thon's can also take place within individual companies (especially popular in Silicon Valley), or any other type of event hosted by a college, organization, or technical community where people can come from all over to participate. CareerBuilder holds a Hack-a-thon once a quarter where from 9 am Thursday until 9 am Friday they give the full Engineering staff 24 hours to work on anything they want to and CareerBuilder provides tons of food, drinks, and games to help power people through. While some people choose to work on fun projects, we also get ton's of great ideas for our products from these events (I'd like to say my idea will hopefully be used as a new feature!)
So enough on that - as many of you know I'm an IT Recruiter at CareerBuilder. I sit with the developers and I know how to write a little code, so they let me participate. I thought I would take the time to share my experience of the 27 or so hours starting at 9 am Thursday all the way through presentations which lasted until Noon on Friday. I won't document hour by hour, but I'll share some of the cool things (you can also check out my Twitter feed for more cb_Shaun or check out the handle #cbhackathon)
I had a good idea for one of our product lines, but obviously did not have the technical "know how" to actually implement it. Thankfully two of our Engineers were nice enough to let me work with them; one of them sits in the Norcross office with me and we also partnered with one of our Engineers based in France.
8:30 AM Thursday - Joseph and I had to make the most of our time working with Clement (who is like 5 or 6 hours ahead of us in France) so the first thing we did was jump on a quick video conference to discuss our game plan of implementing this solution. I quickly learned how much I DO NOT KNOW :) I knew that there would be a lot of code I would not be able to help with, but I think I hoped there would be more I could research early on to be able to help with. Before we got too far along though, it was time for breakfast!
After breakfast, I spent my morning hours working on a brief PowerPoint for our presentation for Friday. Joseph and Clement were busy researching how to implement the idea and putting together the backbone of our feature. Learning Point #1 - As a Software Developer, you first spend a lot of time researching other people's ideas and solutions, and then you actually begin to code. I guess I always thought they learn the programming languages and then instantly know how to begin typing out the code. In actuality, a lot of their job is research and then learning how to use their knowledge to implement.
11 AM - First game of the day - Viking Chess out on the lawn. If you've never heard of Viking Chess, which I hadn't either, you can read up here. I didn't sign up prior so I wasn't able to actually play, but I did enjoy a few beer's and some sunshine out on the lawn behind our building.
As I mentioned, Joseph and Clement had a lot of work to do getting the backbone in place that was WAY above my level of knowledge or understanding, so most of the morning/afternoon went by in a fairly uneventful manner for me. I tried to look over Joseph's shoulder and he at least explained what he was working on. They have "rev up" stations around the floor where you can get candy, snacks, energy drinks, etc and they provided us a buffet lunch at 1pm. I also got a few games of Ping Pong in although I'm embarrassed to admit I've still yet to win a single game! Learning Point #2 - Jesse, one of the Managers that is a top Ping Pong player at CB, finally taught me a little about how to spin the ball and different attacks to beat different players - hopefully soon I'll finally get a Win!
4:15 PM - A good chunk of the business day is gone, and I've yet to get to contribute to the actual coding, BUT we are finally starting to come along. Joseph and Clement have come a long way, and we have one piece of the ultimate project done, we are successfully texting (I can't share our ultimate idea as I hope it is a feature we will actually implement)
5:00 PM - The day has flown by and I'm sure many of our Engineers brain's are fried by now! We got stuck on several occasions, but thankfully Clement & Joseph are very smart and kept things moving along. Now it's time for the Happy Hour and some more evening games! CareerBuilder brings in Peachtree Growlers and catered food, and we get a few hours to relax & have some fun!
6:00 - 8:00 PM - Evening games on the lawn. Yes I'm sure many of you reading this (including my brother that actually sent me a text saying so) think the day is all fun and games :) For me, quite a bit of it was because the technical aspects were over my head. However, for many of our Engineers, they've been at it for 8 hours now and need a break to refresh! My work was still yet to come a little later in the night.
The evening games included Water Balloon launchers, Angry Bird launchers, some video games, and a human size hamster balll track.
My first time I was horrible at the Hamster wheel, but I got the hang of it the second run down the track. The biggest surprise for all of us - it's a TOUGH workout! Run down the track once or twice in that thing and you are absolutely worn out. All in all it a lot of fun, but now it's time to head back inside.
8:00 PM - We are finally at the stage that I can begin to contribute! This is what I've been waiting all day for (and really what I've been waiting for ever since March when I witnessed my first Hack-a-thon) and I'm ready to start coding. Joseph was able to assign me a few tasks that I could start researching in order to learn how to do; the first being how to normalize a number.
What does that mean you ask? Basically we needed a number to be in the following format +1XXXXXXXXXX. However, we might receive numbers in any number of different formats including (123) 456-7890 or 123-456-7890 - you get the idea. So I had to figure out how to take in the number provided, remove any special characters that might exist, check to ensure it was a 10 digit number, and then add a "+1" before it. Here is a screen shot of the ultimate code I came up with, written in PHP:
I also learned the basics behind how to use the Twilio API and was successfully able to send myself a text message via running the code from my desktop! Learning Point #3 - Just about any code you need to write exists somewhere, you just have to know what to search for and how to implement it.
10:30 PM - Starting to get a little quiet around the office as not everyone stays the full 24 hours, and a lot of people have gone home. At this point, we've started working on the User Interface (how it will appear to our user) and this is the type of stuff I can actually help with! Joseph found some good examples to work off of, and he gave me the task of figuring out how to use it. Naturally it takes me a little longer as I try to research and understand the code, but HTML & CSS are the two languages I feel most comfortable in at this point.
2:30 AM - I've been at it for close to six hours now, although I have taken some breaks for the occasional nerf dart war, midnight pizza, and another game of ping pong. I've finally got a working prototype of how this should look for our end user. It doesn't actually handle the data yet, but provides the needed code for Joseph and Clement to work with. It's probably something our Engineers can figure out in like 30 minutes, but I'm feeling pretty proud at this point!
5:30 AM - Let me give a quick recap at this point. We've been at it for about 21 hours now (At least Joseph has :) More like 9 1/2 hours of actual coding for me). I've probably had 6,000+ calories between breakfast, lunch, candy, dinner, late night pizza, etc. I've had I don't know how many cups of coffee & energy drinks, and several beers. I'm now officially exhausted & hardly keeping my eyes open, but we are definitely coming along with our idea! Joseph is an absolute beast powering through to this point & Clement did a ton for us earlier on. Since he's hours ahead of us, he did take some time to sleep through the middle of the night our time. Learning Point #4 - The Energy Drink industry is kept in business in large part due to Software Engineers
6:30 AM - We have a working prototype at this point. There are a few things we'd like to clean up and make look better, but Joseph and I are both exhausted! We agree on a two hour nap and back at it at 8:30 am. We know we aren't the first to present, so we'd have a little time to clean things up. I find a nice huge bean bag chair near my desk and semi-sleep for about two hours.
9:00 AM - I enjoyed my nice two hours of light sleep although I was right outside of the office of the CTO & CEO and they had an early morning conference call, so that was going on from 7:30ish on. At 8:30 I got up, cleaned up a little and brushed my teeth, and headed upstairs to the Alabama Conference room for breakfast and to get ready for presentations to begin. There were a total of around 35 presentations (each given 5 minutes or less to present) and we were around number 21. Clement was able to do some last minute clean up and everything looks great!
12:00 PM Friday - Presentations are done! I feel our presentation went really well and I'm anxious to see how everyone votes! Everyone is given three votes and you can vote for what you feel are the top three ideas (or just your favorite), and you are allowed to vote for your idea. Some people vote on the silly games, but all in all I think some of the top ideas definitely won out. Unfortunately our project was not in the top 3, but I do think we finished in the top third of overall projects. My highlight was the CTO voted on our project and even told me I should get to raise my hand twice for it! Since I'm a recruiter and not a programmer, I think everyone was pretty impressed with my idea overall and the implementation I was able to help out with. All member's on the top 3 winning team's each win a brand new iPad Air! Hopefully I can win one in a future event :)
12:30 PM - Finally headed home to get some much needed sleep! It was a fantastic experience and I'll anxiously await the next event in September. I learned a ton, had a lot of fun, and got to work with and see the work of some very talented Software Engineers!
Location:
Norcross, GA, USA
Wednesday, June 18, 2014
Gotta start somewhere right?
So over the course of the last two weeks, I haven't quite updated my blog the way I hoped, or had much of a chance to do any significant practice or studying with coding. I did have a nice trip up to Chicago though and got to meet some co-workers and see an old college buddy. Being in Chicago gives me such an itch to pick up and move there as well - I've always been drawn to Chicago & NY.
Problem: I prefer to cook healthier options at home, but I never know what to cook
Anyway, I figured lunch today would be as good as any to type out a few thoughts in between bites. To be honest, today's topic is as much for me as it is for anybody that actually reads along :) I have an idea for an application I'm going to work on, and wanted to do a "before" post so that six months or a year down the road, I can look back and see where I started.
I mentioned to a few of the developers that I was interested in learning how to program, and the guys I sit around have a focus towards Ruby on Rails, so they recommended "Agile Web Development with Rails 4" as a good book to follow along with. I actually got the book about a month or two back, and have slowly started working my way through. Through a good chunk of the book, it lets you follow along with building an eCommerce site which they call the Depot application. However, this past weekend I decided on an idea for a new application that I would try to build while following along with their examples.
Problem: I prefer to cook healthier options at home, but I never know what to cook
Solution: Just for the fun of it, I want to build a site where I can upload the recipes I like, and then use a random generator to pull recipes. If I can figure out how to do it, I may add in features to choose between Breakfast, Lunch, & Dinner options, or maybe even choose between types of Dishes (i.e. Chicken, Pork, Fish).
I'm hoping to use some of the same functionality of the Depot project such as adding new products (new recipes). As I begin to progress, I'll upload to github (austi003) if you'd like to follow along or see my code. Hopefully I can get something working, even if it's not the most professional looking!
At this point, my experience is primarily the classes I took as a CS minor in college, along with 2-3 months of sporadic studying I've been doing, but I wanted to rate myself before I get started:
- HTML/CSS/JavaScript - (4 or 5) - I took a number of classes on HTML/CSS/JS in college, and have probably done the most work here. Especially for HTML/CSS, I know a lot of the basic syntax and can follow along with the code even if I can't write it all off the top of my head. For most projects, I probably know enough that between my knowledge, and using Stackoverflow or a google search, I can figure out how to do what I need to.
- Ruby (1 or 2) - This is the first object oriented language I'm learning, primarily because the developer next to me gave me a problem to solve in Ruby. I've at least started learning about the overall syntax and what methods & classes, & types of variables, etc. At this point, I would still consider myself very basic though. Here is a sample screenshot of my code, and once again you can find it on Github.
- Ruby on Rails (About the same) - I at least understand conceptually the whole MVC concept and hopefully will learn a lot more about Rails as I go
So that's my starting point and level of knowledge, let's see where it takes me! On one quick side note, our quarterly Hack-a-thon at CareerBuilder takes place tomorrow starting at 9 am - I'm working on an idea with two of our engineers and it's my first Hack-a-thon to participate in, so I'm pretty excited! Feel free to follow along on Twitter @cb_Shaun and probably the tags #careerbuilder or #cbhackathon - I'll try to post some pictures and updates throughout the day/night.
Subscribe to:
Posts (Atom)