bloc referral

If you are interested in learning to code with a mentor, try bloc and get $100 off.

Saturday, June 28, 2014

2nd week in Orlando

I just concluded my second week in Orlando and finally settled in. My goal is to provide shorted updates on the thing I am learning at the new job. I am actually spending less time at home home coding and learning, as my focus has been more on family and getting settled. I plan to at least get 2-3 hours a day at home.

I have began working on iOS and Objective-C, which was challenging at first. Unlike Ruby, Objective-C has a lot of boiler plate code, which I keep leaving out. I am looking forward to seeing what Swift has to offer, it seems simpler and less boilerly.

I have yet to complete my first addition to the project at work due to another issue for the release taking the majority of my time, but I am however one integration test away from a pull request. Coding and learning legacy takes a ton of time, and I wish spent more time reading code than writing code (luckily I still can).

I do want to point out that for everyone spending countless hour on getting everything perfect and making sure they understanding everything before proceeding with the next step, which applying  to jobs or completing your personal app, take a look at an article I found - What I Wish I Knew as a Junior Developer. Excepting that everything wasn't going to be perfect and I wasn't going to know everything was the reason I applied to IZEA and took a chance.

I still do not know everything and feel as if I know "nothing" (sometimes) at work. I wish I could summarize everything new I learn at work each day, but that would take entirely too much time. I hope my willingness to learn and do not mind asking questions, will keep me moving forward and able to share more.

On that note I have signed up for all tech meetups in the Orlando area. I am looking forward to connecting with more people outside of Ruby -- all of my Tampa friends, check out FrontEndOrlando. It is organized by a colleague of mine and the content pairs well with what I already know in backend programming.

I also still plan on working through the Ember tutorial, more than likely next weekend.

*Thanks for reading and please keep in touch. @brianllamar



Friday, June 27, 2014

git stash and git flow is a thing

I have known about Git Stashing for awhile, but cant say I have properly used it, ever. I am now at the point at work where I am working on multiple things at once and needed to switch to a more pertinent issue in time for the Monday release. Git stash is a great tool to save your work without committing it, great for if you are in the middle of solving/building and not at an ideal stopping point to switch to somethings else.

I have heard that you should complete a commit unless its a complete thought. It makes it hard to follow commits when they are incomplete. Next time you find yourself at a an inopportune time, then use git stash. A more detailed explanation is here

It also helps when you need to switch to another branch without committing or losing your work ;)

*This has been a git filled week of post

I also mentioned git flow which is a great tool to automate some basic git commands. I have used it since day one here at IZEA and love its magic. The automation creates Jira tickets, open branches, and even closes and merges to master. Pretty amazing stuff, check it out.

*So much for all the practice spent working on my personal git workflow.


Wednesday, June 25, 2014

Git Cherry-Pick

Cherry-picking since day 1 at the new job. I learned this cool tool which has been a life saver while navigating my way through the new code base. I never had had the opportunity to use it previously, actually a lot of the cool git functionality I didn't use previously. Working on your own projects is completely different on collaborating on a project together with others. For example, when I was working on Chuych, I committed everything to master and rarely made branches unless I planned to break something.

git cherry-pick is a tool to copy specific commits from different branches with ease. I completed a fix to the app at work last work but realized I referenced the wrong ticket number within my commits and branch. The workflow is to use Jira to keep track of User Stories and Fix Tickets. Jira helps track how well the team is doing in the most current Sprint.

My error was discovered by a colleague reviewing my pull request. My initial though was to close the pull request and start over, but was given the opportunity to cherry-pick. If you look in github at a project, each commit has a unique id which can be called within the same project. The fix involved me creating a new branch and calling 'git cherry-pick <unique commit id> (its important to know you must cherry-pick from top to bottom, since each commit succession may be dependent on each other)










It as as simple as that and all my code transferred over without the need to start completely over. I am told cherry picking is not used as often but its great to know of this feature if needed. If you have been working on your own projects for awhile and have not contributed an open sourced project, I recommend the Odin Project. You will have the opportunity to use tools like 'git fetch' 'git pull' and even 'git cherry-pick' if necessary. Get out there and work with a team on something.

As I learn new tools I will be sharing them on the blog, so please subscribe or follow me on Twitter for updates.

Tuesday, June 24, 2014

PSA: update your git

I have been ignoring the below this message every time I 'git push'(ed) a project ti Github. I finally took the the time to read it and set my default to get rid of the message. Git has updated 2.0, within the last 3 months?, and requires you to be a little more verbose when pushing.

You can set you default by typing 'git config --global push.default simple' in the command line. More info on why is here. You can also use 'git push origin master'


Monday, June 23, 2014

Back on track and finally done moving

I have spent the last week trying to become acclimated to the new job as well move all my stuff from Tampa to Orlando. The good news is most of my colleagues have expressed that it will be 2-3 months before I am truly comfortable with the code base, so I will take it one day at a time.

I have also finally finished all my stuff from my old place, which had me in Tampa longer than expected. My hope is to get back on track with Ruby Newbies and my personal development journey.

A new task I have recently taken on is the some low level QA testing for Bloc. I will begin my work this week going through their iOS curriculum, making this the instruction is clear and free of typos, I planned on starting Saturday,but my Tampa trip went longer than expected. I am truly honored that to be a part of the team. The testing will not take too much time out of my day and I plan to learn Objective-C and Swift while doing it, so look out for some post in regard to that.

Well that is all, happy coding.

Tuesday, June 17, 2014

My first day and my baby steps

The has finally come, my first day of work is complete and I have to admit, I was very nervous coming into a field without any professional experience.

My expectation however was low that I would get to touch any code and did indeed spend most of my day setting up my environment, but to my surprise I was assigned a few issues and even submitted my first pull request.

I spent the morning installing my environment with the same README that I was unable to follow on my own while on vacation. I found there were a lot of hidden quirks and shortcuts that only made sense after I received the proper explanation of what the app does. After that explanation, it was shocking how similar the setup was to the Odin Projects, minus the use of foreman.

Today was a mind meld and I was expose to a lot awesome Ruby/Rails tools that I have not been as of yet. I have also not had the pleasure of setting up my environment without the use of a one-click Rails Installer.

The issues I solved were completed in the with very few code and more like baby steps for me to get comfortable with the code base. I am really enjoying this approach and looking forward to getting to know each other. Today I spent about 8 hours at my computer; to put it in perspective, I spent 549 hours learning on my own. I will now gain that much time in the Rails in 12 business days. It makes me smile just thinking about it.

*I learned some new skills that I will be sharing later. I don't I am at the place to explain how to them but will during the ladder part of the week. One cool thing was the use of Git Flow, but I will save my explanation for a later post.


Sunday, June 15, 2014

Getting back on the grid

I spent the last week hanging out with some family in Nashville and Kansas City. It has certainly been lots of fun and with that being said, I am looking forward to spending more time with my family, thanks to this new job.

So that means I basically did not complete any of the task I planned to complete, but I guess that is why they call it vacation.

Total time logged is barely 5 hours for this week, I decided to reorganize my learning to allow more time with the family. My son is about a month away from being into everything, which is why I am looking forward to having the time to chase him around. I spent 7 months spending 3-6 hours a day learning Ruby and will now spend 8 hours a day writing in Rails.

This is definitely not a time for me to put my feet up and relax. I have been ultra aggressive in learning and only downshifting from 6th gear to 4th gear. I do however have a feeling I will be going back up in speed. I am in talks to do some pretty cool things and look forward to continue to make connections and opening doors.

I will be blogging about my first week at the the job this coming week and also resume the Ruby Newbies the following Monday. I am still in disbelief that this is really happening and very appreciative of the opportunity.

Thanks for reading and if you have not, check out Ruby off Rails.



Monday, June 9, 2014

Start Postgres and others at login

While going to through the install instructions for this work app I notice there is a way to start PG at login. Previously working with the Odin Project and installing that locally I found out through trial and error I needed to launch postgres locally via the mac app, but I was unaware that I could launch at startup.

stackoverflow question
To start PostgreSQL at login:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 

Redis is another item recommended to launch at the login, but at the moment I am unsure of what it does. Look out for more things I will be discovering on this journey.

Long week ahead

The entire time I spent learning how to program I received the comment, how do you have any time to do all that you are doing, most of the time I shrugged my shoulders, but I later realized that is just my personality. I have always been a tinkerer and an avid learner of new things.

This week however is definitely going to be a busy week, not only did I spend the weekend moving/packing but I am also beginning my vacation to Kansas City/Nashville this week. I begin work next Tuesday, which makes today the last full day available to study, which didnt go very well. This past weekend was spent on the move to Orlando which went relatively smooth, though I did rent a Uhaul that was too small, which has extended the move to the weekend I get back. Luckily I own the place I am moving from and have no set date to leave, but it takes away another day for studying that weekend. 

But enough complaining, now that I am officially done with my sales job and now on to a new rails job, I have laid out my plan to finish off the CS169 course, which I have decided to opt out of the second half. As much as I like learning testing and Ruby problem solving, I felt like the course did not meet my expectations for what I needed. I do know that the project building is actually done in the second half and encourage anyone who is planning to complete that half to let me know what they think of it. 

I am now focusing on learning via some of the popular tutorials on Jumpstart as well as well taking advantage of Ruby off Rails and Code School with my limited amount of time at the computer, so realistically it might only be learning from RoffR and Code School. If you have not used Code School as of yet, try out using Afshin's link, you will help him out by giving him extra time on his hall pass you will also get 2 free days.

I have also cloned some of the code base for work and plan on going through the READ.md file to practice navigating through it locally. As of now I have only been reading certain aspects via github. Looking forward to the first day, which is next week!


Friday, June 6, 2014

I have some recommendations

 Moving_and_packing[:this_week] = "frustration"

As I imagined I have been ultra busy preparing for this move and my time in code is limited. I was hoping to get a lot more prep work done, but it's looking like Sunday before I can do much more. Saturday is the big move, which will pretty much take the entire day, but with my below suggestions, I will still be able to continue my learning via the iPad.

Here are some recommendations of things I have been working on this week.

1. If you have not read POODR by Sandi Metz, then you must. This book is absolutely amazing and full of amazing info. There is very limited code, and actually explains Practical Object Oriented Design at a highly understandable level. It as help change the way I think about code and help me understand how to write code with less side effects and dependencies. Here is a sample of the book (Chapter 3).

2. Ruby Off Rails is an awesome source for really understanding the basics of Ruby. My frustration with learning Ruby, was that all the intro videos and books start you out learning definitions of Class, Methods, etc. I am at the point where my shuts off when I hear the simple beginnings yet again, Ruby Off Rails jumps right into solving problems with videos and code samples and I am at the potin where I am hungry to learn all the advanced things of Ruby. This was previously a paid course, but now is free, so take advantage of this especially if you are Ruby Newbies. Jesse get right down to business in the videos, without the fluff and even covers testing and Cucumber (great if you just went through BDD in the saas class, as I did). You need to sign up for this today! Also I should mention Railscast is only a one-time fee of $8 and you also gain access to the entire library.

3. I plan to renew my subscription to Code School. I have previously knocked them for being confusing and too much/too little info for a beginner, but now that I have code time under my belt, and I feel I can get some value from them with my limited code time the next few weeks. Videos in general are not the best way to learn for me since it enables me to not write out code, but I hope to change that by forcing my self to complete all examples in addition to getting exposure to more advance concepts such as TDD, BDD, and Database maintenance, all things I will be using heavily in the new job.

I have 12 days until I start and IZEA has provided no expectation that I need to go through all this learning prior, but I have an aggressive goal of obtaining that Senior level within 12 months and feel the need to not become complacent because I have a job.

The journey is definitely not over and I appreciate you reading and following along with me.

Wednesday, June 4, 2014

Why I love Koans

I originally downloaded the Ruby Koans repo a month ago, but did not complete any of them till 2 weeks ago when I completed 3. I originally downloaded because of Chong's video on youtube, How to learn a language quickly, which has mysteriously disappeared. His recommendation was to complete the Koans to help get an understanding for the language and quickly. The simple puzzles help tease the brain and build muscle memory to solve the short problems.

I recently finished all 280 of the problems yesterday, over the course of 4 days, and am glad I did. Not only did I get more exposure to unit testing, I also got to take a tour of the Ruby-Lang by solving problems in all aspects of it.

The beauty of the Koans is you actually do not need to know much on Ruby, you actually learn by completing the problems and reading the tests. A lot of people fill in crossword puzzles in the morning to help exercise the brain, Koans does the same and has just encourage my learning to more on Ruby. Some things I did breeze by once solved, but I looking into how messages are passed in methods and also the method missing functionality.

Now that I have exposure to these concepts, reading through the books Eloquent Ruby, and POODR will make more sense the first time through.

My next goal is to now start on Exercism.io and finish the Ruby Monk courses. There is also Katas with codewars which I will be checking out. I originally found them to be too hard, but am ready to give them a try now.

Finally, last day of sales: How did I get here?

Congrats to @jterrell who I met via Twitter when I first started this journey and who just got a job in web design in Chicago.

Four and a half years go I started work at Tech Data (TD), a Global IT Distributor. My original goal was to obtain a position in the financial realm, but was met with many hurdles due to the financial crisis. Even though I held a degree I was unable to get into a position in the Tampa Bay area, and I had no intention of being a bank teller.

I eventually just took a data entry job at TD so I could gain professional experience until the right position opened up, but during that time of working in my menial job I found that I lost interest in finance and the hope to eventual get into a position in finance. I actually spent most of my days cruising through sites like the Verge, Endgadget, and watching TWIT live while at work. I also lots of time researching my next career step, which I knew had to be sales.

Within TD there is a department call Product Marketing, handles the Vendor liaisons between customers and the customers within the distribution channel. I spent months studying that department and introducing myself to decision makers within the company. The position is unique because not only does is have a sales component but it also a had a component of being knowledgeable in the IT field. I knew I was wasting my talent in the data entry position, and hoped to gain experience in IT to eventually become somebody. I eventually interviewed and gained a position without any sales experience, but gained that valuable sells experience on the job, the same experience that I used to network my way into a Rails position today.

I am in no way an expert at web development and I definitely have heaps to learn. When I presented myself in the interview I had no reservations in presenting myself as that, a compulsive learner. Today I have trouble remembering whether to use a hash or a simple array in a ruby newbie problem, or whether or not to place functionality in the index method or show method of the controller, but I know that with my hard work that will become trivial in the few months. My eyes are always set on bigger and better and I look forward to learning not only Rails, but the new Swift lang, and also mastering Front-End with Angular or Ember.

The next 3 months are going to really exciting and I look forward to what is in store.

For those interested I want to also share the job description for the position I obtained. I do not have extensive experience on all of the below, but what I showed was I had the ability to learn quickly and consistently. If you have been learning a language in your free time as I did, set goals for yourself and give your self a timeline. This position required 1+ years of experience, which I obviously do not have, but what I did have was measurable goals of where I wanted to be as a developer in 1+ years. I hope to gain experience on the job, just as I did in sales.

Do not delay, make your goals today.

Primary Responsibilities for a Software Engineer
  • Develop and maintain features using Ruby on Rails
  • Know your way around our databases, optimizing queries and diagnosing issues as they arise
  • Write (good) unit and functional tests
  • Reproduce and fix application errors and unexpected behaviors reported by internal users and external customers
  • Work with the product owner to nail down the best solutions to development problems and business requirements
  • Set deadlines and communicate often about progress toward those goals
The company I begin working I begin working with in 2 weeks is IZEA and yes they are hiring. After today I will be studying extremely hard and working hard packing and moving, as well as visiting family. I am not sure how available I will be on the internet but still reach out and give me a reason to stay in touch. 

As always thanks for reading. 

Monday, June 2, 2014

Getting a little nervous but Senior level in sight

Sitting with exactly 15 days from my start date for my new job and I can honestly say the impostor syndrome is kicking in. I definitely underestimated the amount of work it would take in moving to a city 100miles away. My goal was to install the application for my new job locally in order to mess around with it. Instead I spent time with the family, my dad recently flew in from San Diego to see my son and I have also been getting the new apartment organized.

I have however complete 70% of Ruby Koans. My new position Unit Testing rather than Rspec and I have found it to be a good way to engrain the syntax into my brain. I did however not complete my CS169 coursework until the last minute and it is looking like this week will be the same. The good news is I got boxes last night and plan to move this Saturday. I am not sure if I will get through all the books and tutorials I wanted to, but I think I might be pushing myself too much. Again it is most likely the impostor syndrome pushing to do all this prep work prior but I have secretly created a goal for myself to become a Senior level within a year. I am not necessarily looking to get a new title, but would like to have the skillset of one, which includes Javascript!

This will be a crazy week, but the plan is to complete Koans, Complete 2 Jumpstart Labs rails tutorials, as well as the regular Cs169 and Ruby Newbies work. I also picked up POODR and read through the first 2 chapters, which I highly recommend to all Ruby Newbies.

Thanks for reading and following my journey.


http://www.poodr.com/