How NOT to learn Ruby on Rails

There are a lot tutorials and references on how to learn ruby and rails.  I want to share with you how NOT to do it, based on my recent experience.  When you first decide to learn ruby and rails, it can be a bit overwhelming.  More than likely, someone will have recommended one of the most common sites, such as Codeschool or Treehouse, which are both great.

 

Here is where I want to caution you, especially if you have no prior programming experience.  Spend plenty of time learning ruby before moving onto rails.  I was advised by my friend Beverly to get a good grasp on ruby first, but I didn’t exactly listen.  Not because I didn’t respect her opinion and guidance, but because I was swept way by the magic that rails offers.

 

I went through some of the ruby training provided by Treehouse and Codeschool, and was also watching some great videos from Railscasts which got me off course.  Don’t confuse what I am saying, I love Railscasts, Ryan Bates is a great teacher.  I am just saying that until you have a solid understanding of the fundamentals of ruby, you should be careful not to move forward too quickly.

 

If you are like me and crave the sense of accomplishment you get when you create an app and bring it to life by deploying it, then you are likely to get off track.  Another thing that drew me away from the fundamentals was scaffolding.  If you are not familiar, scaffolding creates a simple interface to put data in the database.  The downside to scaffolding is that it will likely create many files that you don’t need.  It is better to determine what you need in your app and add each piece as you go.

 

Before you jump into rails, I recommend you have a solid understanding of the following:

  • Strings
  • Variables
  • Methods
  • Blocks
  • Objects
  • Classes
  • Numbers
  • Arrays
  • Hashes
  • Loops
  • Modules

 

 

Moving forward like I did, before you are ready will only cause you a great deal of frustration and discouragement.  During the time, beginning the second week of Nov 2012 through March 1, 2013 I did absolutely no work learning ruby and rails, as you can see by my github activity.  I was very discouraged because I could not figure things out and was burning myself out trying to understand what I felt I should have already known.  I had made up my mind, I was throwing in the towel, maybe this stuff just wasn’t right for me.

 

One day in late February 2013, I received an encouraging call from my friend Beverly.  After our phone call, I decided to give it another try and get back to coding.  I found myself right back in the same routine of cloning open source projects and following tutorials, but still not understanding ruby the way I should. I began my ruby and rails journey with Treehouse on April 1, 2012 and at the present time, I still do not have a good understanding of some of the basics of ruby.  Even though I took a 3.5 month break, I still feel that I should be a lot further along than I am right now. I attribute much of the frustration I am experiencing right now from not building a good foundation in ruby at the beginning of my journey.

 

If you are new to programming in ruby, I hope that you will take something away from this post.  Moving to fast, although exciting, will only cause you major problems down the road.

 

If you found this useful, please share.

A Dad has_many roles

As Dads, we have many responsibilities and shoulder many stressful things.  We often shield our families from these stresses and concerns because we feel that it is our duty.  We want the best for our families and want them to always feel safe and happy.  Dads play many roles and are seen in a different light according to each member of their family.

 

  • A strong superhero who can lift anything (and kill scary bugs)
  • A smart and handy guy who can fix almost anything
  • A great provider who keeps the family safe
  • The navigator and course charter on family road trips
  • The great protector who investigates scary noises at night
  • A loving comforter who can ward off scary dreams with a bedtime prayer

 

For those dads on a journey to learn new things, such as programming, so that they can make a career jump, maintaining all of these roles can be very difficult.  We must balance our family time with the time we spend in front of our computers.  We can very easily make the argument that having time to learn is extremely important, for the good of the family.  The truth is, in my opinion, nothing is more important to the family, than spending time with the family and creating great lasting memories. We can all adjust our schedules and commitments so that we have time with our family.  We can get up a little earlier or even stay up a little later to accomplish our learning goals.  We can always make up for lost hours of sleep, but we can never make up for lost hours with our family.

 

Being a dad is a very special and rewarding job.  I only hope that I am doing the best I can to instill great values in my children, so that they might pass them on to my grandchildren.

3 Tips for making a career change

I have always wanted to have a career in the tech industry, but always thought that I couldn’t since I didn’t have a degree. In the past year, I have met a group of amazing people that gave me new hope. I know now that I am able to get into the industry based on what I have learned and by channeling my passion for technology.

 

For the past year, I have been learning ruby on rails and making a lot of great friends along the way. My journey from a “Body Shop Asst. Manager” to becoming part of an amazing team in the tech industry is still being written, but I am confident that the right position is just around the corner.

 

I applied for a great customer support position at Buffer last week. Buffer is a really great company, with an amazing team who care a tremendous amount  about their customers, as well is helping each team member grow. With my 15+ years experience in customer service, passion for technology, commitment to team balanced with commitment to family I would mesh perfectly with their culture. I hope to hear some good news soon!

 

Here are a few tips that I think are important when seeking a new career:

 

  • Stay Positive: Don’t get discouraged if doors close on you. Do your best to remain positive in everything you do, people always remember someone who has a positive attitude.

 

  • Embrace Social Media: You may be thinking that this is a no brainer, especially for someone trying to get into the tech industry. The truth is, some people are just not comfortable with some areas of social media. If you are they type of person who just dabbles with Facebook, but feels a little intimidated by Twitter, now is the time to step out of your comfort zone. Push yourself to explore other platforms and network with people. If you have questions, ask someone. If you are afraid to ask a stranger, email me, I would be glad to help you.

 

  • Be Bold: I’ve heard the phrase “If you want something you’ve never had before, you need to be willing to do something that you have never done before”. This is a very true statement, so challenge yourself to think of new ideas and creative ways to get your name out there and show the world what you have to offer.

If you found this useful, please share.

5 Tips on Cultivating Relationships

 

 

Research

When you meet someone new, whether it be in person, or online, do some research. Don’t be a creepy stalker, but find out if they have a blog, twitter or website and what they are most passionate about. Learn what it is that makes them tick. Do you both share any common interests? Are there any areas that you may be able to help this person in some way?

 

 

Use Lists

Use Twitter lists to organize your contacts into groups. For example, if you are trying to get a job at a specific company, find all of the team members and add them to a list. Use similar lists for core groups of friends, people in specific trades or groups and anyone else who you would like to engage with on a regular basis. Once you have your lists, you can easily monitor these groups and discover interesting things about them and how they interact online.

 

 

Track Engagement

I use a simple spreadsheet to keep track of my frequency of engagement. You can do this in Google Drive so that it is always accessible. We often lose track of time and don’t realize just how long it has been since we last contacted someone. Use whatever works best for you, but make an effort to keep track of the frequency of your engagement.

 

 

Be Genuine

It’s really important to be genuine when cultivating your relationships. Don’t just try and make someone think that you care about them. Invest a little time to read their blogs, give helpful feedback and encourage them on their journey. People aren’t stupid, they can tell if you aren’t sincere. If you find it difficult to be sincere, then maybe you shouldn’t engage with them at all.

 

 

Have No Hidden Agenda

The most important thing to remember when you decided to work on cultivating relationships is not to expect anything in return. That’s not to say that you can’t hope for a positive outcome, or some really great opportunities to open up for you along the way. I’m just saying don’t seek out a person because you think you can gain something by engaging with them. Look for opportunities to help people, for no other reason than you care and want to help them grow. Let them know that you are there if they need you and always look for ways to encourage them. Trust me, a little encouragement goes a long way.

If you found this useful, please share.

LessConf 2013

   I wanted to write this post a lot sooner, but have been having some trouble with my blog.  First, I would like to say that I really appreciate all of the hard work that went into LessConf 2013. Allan and Steve are truly great guys who really care about people.

   I am so glad that I went to LessConf, on the other hand, very disappointed that it was announced by Allan and Steve as being the last LessConf. I really hate that I didn’t attend any of the previous conferences, but I am really hoping that Allan and Steve change their minds.

I had a great time at LessConf and met a lot of really great people from all over the world. At first, I was a little hesitant about just walking up to strangers and introducing myself, but I forced myself to just do it. At dinner, I went out of my way to sit at a table full of people that I had never met. It wasn’t long before I was learning just how amazing the people I was sitting with were.

The talks were great, so many interesting speakers, some inspired us to do the things we have been holding back on doing, while others helped us to realize we need to be thankful for what we already have. If there were any issues behind the scenes, I didn’t see them. Everything went great in my opinion and I am so grateful to have had the opportunity.

My goal is to maintain contact with all of the great people I met and cultivate those relationships over the next several months.

 

Looking forward to LessConf

For those not familiar, www.lessconf.com is a great annual conference organized by a couple of really great guys, Allan Branch and Steve Bristol.  This conference has been going on for several years with great success, but this will be my first time attending.

 

What I hope to gain:

  • Meet amazing and talented people in the tech industry
  • Establish new relationships with potential future employers
  • Network with new programmers/designers so I can continue to encourage them and be encouraged by them
  • Allowing people to see just how passionate I am about ruby/rails and getting into the industry

 

What I have to offer potential employers:

  • Super friendly person
  • Encouraging to others
  • Passionate about all things geeky
  • Enjoy learning new things
  • Open to constructive criticism
  • Enjoy teaching others about technology
  • Approx. 10 months ruby/rails  experience
  • Strong desire to do work that matters

 

  So, if you are going to LessConf, I would really like to meet you!

@thecommongeek

Resume denniskeefe.me

5 Things I want to teach my kids in 2013

This evening, I began thinking about what it might be like when my kids are grown. How tough will this world be? What things may influence them, positively or negatively? All of the sudden, my responsibility as a father became much more imperative.

I began to think of things that I feel are important, some they may already know, but need to be reinforced. These are the things I want to teach them this coming year.

 

      • Always help those less fortunate than yourself. My mother taught my brother and I this at a very young age and to this day, we both have great compassion for those less fortunate. This is very important to me and I hope that I can pass this great lesson on to my children just as effectively as my mother did.

 

      • Never let anyone rob you of your dreams. Many times in my life, I have been discouraged by others, often times resulting in me walking away from something I dreamed of doing. After a while, you become afraid to dream, worried that another negative comment or discouraging incident will steal it away from you. I want to encourage my kids to dream big, run as fast as they can towards those dreams and never let anyone steal them.

 

    • Be the best at what you do. I want them to determine what they are good at, then strive to be the very best at it. Not to the point that the are conceited or arrogant, but I want them to give 110% at what they do and have good work ethics. My dad taught me great work ethics while working with him at his construction company from age 7 to age 18.

 

    • Take time to appreciate the things around you. I want to visit more State Parks and historical places and teach my kids to appreciate them. My kids love to visit big cities like Atlanta, as well as parks and beaches. I want to create lots of memories this coming year by visiting these places.

 

  • Never be afraid to create new things. All 5 of my children are very creative and I want to encourage them to allow that creativity to flow without the fear of what others might think. A lot of talented people have been stifled by fear and I want to do my best to protect them from that fear.

 

I am looking forward to a great new year, full of great memories with my family!

Time To Stop Whining And Move Forward

Ok, I confess, I haven’t opened my terminal or editor in the past few weeks. I know that this probably sounds crazy for someone who is supposed to be working so hard to become a developer. I am going to be perfectly honest with you, I got in a rut and let things pile up on me while I was down.

I work full-time as a Body Shop Asst. Manager and my job is extremely busy, multi-tasking, working with customers, insurance companies and the 20 employees on my team. To say my day job is mentally draining would be an understatement. I also have 5 children, three of which have learning disorders, one being Autism. This means that daily tasks and routines are more difficult than some families. There are days when things are great, then some that can be extremely challenging. I love my family and would do anything for them, they are what I look forward to at the end of my crazy workdays.

I have also been beating myself up over the fact that there are some things in ruby/rails that I feel should make sense to me, but for some reason, they do not. I can work through tutorials and follow instructions, but I want to be able to build an app completely from scratch and understand how to connect everything. I have been a little hesitant on asking for help because my friends are all so busy and I felt that I could somehow figure it out myself.

What I have learned is that isolating myself and not reaching out for help just makes the pressure that much greater and compounds my frustration and discouragement. It can get out of hand really quick, so I encourage you to not stop reaching out for help, no matter how discouraged you get. As I say this, I am talking to myself as well. It wasn’t until I received an encouraging email from a friend that I realized this myself and decided to stop whining and get going!

As a community of talented and creative people, we should make it a point to reach out and encourage each other on a regular basis, you never know when someone could use a boost.

Have a question? email me at dennis@thecommongeek.com

If you found this useful, please share.

5 Things I Plan To Accomplish In 2013

With a new year coming fast, I wanted to set some goals now and get to work! I have decided to set 5 goals and work as hard as possible to accomplish them in as short amount of time as possible. I am a goal oriented person and sharing these goals publicly helps hold me accountable.

    • Leave My Day Job - My goal is to work from home. I have read several books on business and leadership and one thing I have seen over and over is the fact that you should enjoy what you do each day to make a living. Unfortunately I do not enjoy my job and have not for some time. I know that no matter what I do, it needs to be in the area of technology. I am confident that if I can find work that allows me to exercise my passion, I will thrive there.

 

    • Build Some Apps – I want to build at least 2 fully functioning apps that people will find useful. It may take a few attempts, but I hope to accomplishing  creating 2 that really get some traction.

 

    • Network More-  I currently have a spread sheet containing 100 names, which I try to have contact with at least a few times per month. My goal is to increase that list to 150 and focus on maintaining more regular contact with each of them. My hope is to find people that I can encourage and help, as well as people who can encourage and help me in return. Social networking is huge and todays technology allows us to reach farther than ever to build those relationships.

 

    • Build My Confidence-  I am somewhat of an introvert, especially when I am intimidated by someones skill level or perceived successfulness. I want to become more confident in speaking, meeting new people and sharing what I am good at. I love to help people and plan on working harder to volunteer helping others learn about technology.

 

    • Family Time- I will plan more weekend getaways with my family. Between my day job and working online late at night, I could really use some time to relax with my family. Also, I feel that it is very important to create memories with my 5 children. I love my family and everything I do is so that I can better provide for and take care of them.

 

I feel that to successfully reach your goals, you need constant accountability. You also need to determine times to evaluate your progress and refocus if needed. Do you have a great way of staying accountable and evaluating your goal progress? I would love to hear it.
Have a question? email dennis@thecommongeek.com 
If you found this useful, please share.

 

 

Why I am working so hard to become a ruby/rails developer

I began working as a dishwasher at age 14 and have worked non-stop since then. As a teenager, I went through several jobs, mostly because I hated doing work that gave me no satisfaction or sense of accomplishment. I worked as an electrician through high school and a few years after graduation. I enjoyed working as an electrician because I could make things work, like lights, motors, machines, etc. Also, the part of the job that involved troubleshooting was fun because I enjoyed the challenge of finding problems and fixing them.

I also worked as a Law Enforcement Officer for 10 years. Law Enforcement appealed to another side of me that genuinely enjoys helping others. I have many memories of helping people that, for whatever reason, where unable to help themselves. That job was often a thankless one, but just knowing that I was able to help the many people that I did was more than enough for me.

I love my large family, which consists of my wife and 5 children, three of which are adopted. I enjoy spending time with them, going on trips together and creating great memories with them. It is for this reason that I have set a goal to become a work from home dad and ditch the 9 to 5 life.

I am working very hard to become a ruby/rails developer because it fits me so well. First, I am a geek and learning ruby/rails leaves me with a great sense of accomplishment with every new thing that I learn. It also fulfills the part of me that enjoys making things work, building new projects and getting them running is really fun. As I become more proficient with my programming, I look forward to helping others, which I really enjoy doing. And finally, the ultimate goal, to work from home, which I will be able to do as a developer. This will allow me to spend more time with my family, do some traveling and do work that I actually enjoy and am passionate about.

I have met a great bunch of friends who have been supporting and encouraging me along the way and I am very grateful for them.

 

Have a question? email me at dennis@thecommongeek.com

I