Thursday, February 25, 2016

I did it :)

  Hello, everyone!

  The biggest news is that I got hired full-time as a Software Developer! I am beyond myself with excitement! My first day is Monday, and I cannot wait. It has been extremely busy two weeks. I have been looking for a new place to stay for me and my wife. We are moving to Baltimore!

  Unfortunately, it means that I had to end my internship early, but everyone there was very supportive and happy for me.

  I will be working for a data integration start-up, and most of my work will be with Ruby! I am really excited about that as well. I love Ruby, and I feel so lucky that I will have an opportunity to really learn the language. I already love all the people at my new job, and the company has a great support and mentorship system in place for jr devs. I can't wait!

  In other news, I was one of the coaches at a Rails Workshop for Women event in Baltimore. It was a really great experience. I met a lot of people, and it was great to coach and teach Rails to newcomers. Great atmosphere and friendly vibes!

  I also have two talks coming up at tech meetups in DC area. I am giving a talk on March 2nd at Arlington Ruby meetup, and another one on May 12th in DCRug.

  There is also a Ruby Unconference I am attending on March 5.

  Such a busy schedule, and lots of changes!

  If anyone is curious about the interview process I had to go through, or you have any questions about me going from a hotel manager to a software developer in 5 months, feel free to reach out to me on Twitter: @andreikoenig. I am always happy to chat!

P.S. I am sorry, I can't share specific parts of the interview process (interview questions, coding quizes, etc), but I am happy to tell you what I did to prepare for the interview, resume tips and general interview tips. :)

  Have a great day, everyone!

 -Andrei

Friday, January 22, 2016

How much can you learn in two weeks?

  Hello, everyone!

  So back in mid December, I got in contact with one of the developers who is a CTO in a start up in Baltimore, and was looking for an intern for their dev team in the company. I thought it was an interesting opportunity, and we made arrangements that I would come in after New Year for an interview. I asked him what they use, and I got back: "rails, postrgres, activerecord, sass, emberjs, sidekiq and elasticsearch". Well, wow. I have spent 5 months learning Ruby. I was aware of what Rails was, and I had no idea what all the other stuff was. So I had two weeks to learn as much as I could. Getting a little bit ahead of myself, in two weeks, I learned sinatra, database basics, postgres, activerecord, sass, spent lots of time getting more comfortable with Rails and git, and familiarized myself with Agile and Scrum model. In the end of two weeks, I launched my own Rails app, that I will be working on as a side project. My Rail's app repo on Github and My Rails app Heroku Link.
I can honestly say, I learned more and saw greater progress in my coding in those two weeks than in the last three months.

  If you would like to give my plan a shot and super boost your progress, here is my study plan:

  Fine print: you need to be solid with Ruby basics, and you need to dedicate a lot of time (or be ok with making slower progress). I recorded my study hours in two weeks. On average I studied about 6 hours a day. (3 hours was the least I ever studied on a single day, with some days studying towards 9 hours a day).

  1.  Introduction and basics of Sinatra (it will make learning Rails sooooo much easier!)

  2. (optional) Behaviour driven development in Ruby (do it if you need a refresher on testing with Rspec, heroku and git). Probably a good idea to at least look through it to make sure everything is familiar. Refer to this week as needed when questions come up.

  3. Object Oriented Ruby . don't spend too much time here, but after working through this week, you must walk away with solid understanding of http methods and how a sinatra app functions. Make your own sinatra app (not following a tutorial) to solidify the new knowledge.
  4. Database Basics. now the fun part starts. If you are not familiar with this, you need to take your time, and get through every chapter. This stuff is very important, and I use this every day, all the time, now that I work with Rails and Postgres. Don't rush this part :)
  5. ActiveRecord. Now that you are a database ninja, this part should feel easier. Again, do not rush this, because these are the ActiveRecord basics that are fundamental to everything you will be doing in Rails later. It will feel easier, as ActiveRecord automates a lot of tasks, that you learned and used to code by hand in the previous week's material.
  6. Rails Basics. Rails, finally! Now comes the part when you finally get to build things. Depending on your experience level with Rails, you can go as fast (or slow) as you need to with this and the next part.
  7. Rails Authentication
  8. Start building your own Rails app! <-- this part is where you will learn most!

   If you have any questions, or need help with your studies, feel free to reach out to me, I am always glad to help! twitter is the best way: @andreikoenig
  
  This is what I did in two weeks (about 18 days). I would have kept going but I ran out of time, and it was time for my interview. My interview went great, and I was offered a paid 3 months long full-time internship at the company. It is an incredible opportunity, and even though I could not leave my full time job for a 3 months internship,  I am doing it 3 days a week while still working my full time job. So yay!

  I have worked there for 3 weeks now, and I love it. I am learning a lot, and I work daily with Ruby, Rails, Javascript and emberJS. I spend Mon-Wed in Baltimore, and Thu-Sun here in Ocean City. 

  Keep at it, and keep putting in time.
  
  I am now absolutely positive that bootcamps are not needed, and teaching yourself code is a viable way to switch careers! :)

  Thanks for reading,

 -Andrei


Wednesday, January 13, 2016

Breaking the silence...

Hello, everyone!

I hope everyone had an awesome holiday season! Happy 2016! Here is to lots of new challenges, lots of new knowledge and lots of changes!!!

I know I have been quiet for a while, but let me assure you stuff has been happening! :)

I will try to cover what I have been doing in the last two months (I might have to break it down into more than one post, or risk it being way to long). Jumping ahead a little, let me tell, I have been coding more than ever!

So right after my last post back in November, I was scheduled to give a talk at a local Ruby meetup. The talk went great, I was a little nervous, but the talk went super smooth. I did a small live demo, where I ran 4 different versions of my code live, and shared a gist to my code to the group. I really enjoyed giving the talk, and I was scheduled for another one in January, which was yesterday. Yep, yesterday, I gave my second talk!

My dog had some major health issues in November, so it took away a lot of focus from coding. And it was one of the biggest reason why I stopped posting in this blog. It was a tough time to get through, and blogging about my coding journey was not very high on my priority list. It took a lot to take care of our sick pup, and my coding dropped down to maybe 5-6 hours a week. I was still working on some projects, but it was a very slow progress. Once she started feeling better, and I recovered emotionally, and from being sleep deprived, I got back to my normal schedule of coding at least 3 hours a day.

The last 4 weeks have been absolutely insane though. I learned more in last 4 weeks than I did in last 4 months probably. I was coding for 5-8 hours a day, and I have covered so much. I wanted to get back to blogging, but I was so focused on the projects I was working on, that I spent pretty much all of my free time studying, hacking away and writing code.

I will talk in my next post about my last 4 weeks, what I have learned, and some amazing things that have been happening in my life :)

I am back, and 2016 is going to be awesome!

Have a great day, everyone, and thanks for reading!

-Andrei

Monday, November 9, 2015

Quick update


  Hello, everyone!

  I have not posted in a week or so, so I wanted to make a blog post with a quick update. I have not done much as far as coding this past week, as my young 2 year old dog has had some major health issues without any warning, so I all my efforts have been focused on taking her to doctors every other day, monitoring her condition and giving her meds every 3 hours. As she gets better, I will be getting back to coding again.

  I am scheduled to give my first talk at a Ruby meetup in Baltimore, MD tomorrow, so I am really excited! ... and nervous. I will be showing a URL checker script that I made. I am so glad that I prepared in advance, and that I had my talk prepared last week. With everything that has been going on with my dog, I would have been struggling to get it ready last minute.


  Thanks for following my blog, and thank you for reading,

 - Andrei

Wednesday, October 28, 2015

Coding for 8 hours straight and staying focused

  Hello, everyone!

  Last Saturday I was supposed to go to a Ruby meetup in DC that was cancelled last minute. So I thought to myself, "well, I was supposed to spend 3 hours driving to DC, spend 2 hours at the meetup, and 3 hours driving home. How about I spend 8 hours on studying instead?".  Well, I did. Should you do it? Do I want to do it again?

  I have a difficult time focusing at home, when I try to sit down and study and/or code. My wife tries to be as mindful as she can when I am buried into my laptop, but with her cooking in the kitchen, my dog barking,  our bird chirping, house chores, TV on in the next room, the laundry buzzer going off, etc etc it is not easy to concentrate.

My dog Zoe especially insists on supervising my studying,
and she wants to make sure that I am aware that she is here for me in case I need anything.
Anything at all!!!!

  Well, I did find another trick that has been working for me. Lately I have been "running away from home" to study. After work, I come home, walk the dog, say hello to the Mrs, and then go study somewhere else for 2-3 hours. My locations of choice are coffee shops with good wifi. I get me a cup of coffee, put on my headphones and study. Zero distractions. :)

  So last Saturday, I went to my local Panera Bread in the morning and spent 8 hours studying. I had breakfast and lunch there. I was pretty tired but it was productive 8 hours. I did Chapters 47 and 48 of "Learn Ruby the Hard Way", Chapters 11 and 12 of Chris Pine's "Learn to Program" and worked a little on a couple of scripts I am writing as side projects. It felt really good to knock those chapters of my to-do list, and move forward.

  I mentioned it before in my blog, but when I code for more than 2 hours, the Pomodoro Technique is what really helps me stay focused. Basically, I study for 25 minutes until the timer goes off, and then I have a 5 minute break (where I do something totally unrelated to give my mind some rest: browse Facebook, check my text messages, watch a cat video on youtube...). Once 5 minutes are up, it is back to laser-focused studying for next 25 minutes without any distractions. It really helps me out, and I don't get burned out or tired. It has really changed the way I study.

  So, coding for 8 hours straight... Do I want to do it again? Heck, yes. I loved getting so much stuff done in one day, and seeing so much progress. I am looking forward to when I can schedule another power study day!

  Should you do it? That is something that you might have to decide for yourself, but it sure is a great way to get some of your projects done that have been on your back burner.

  Last piece of advice in case you do. Make sure you do a nice physical activity to get your heart rate up after you spend 8 hours staring into your laptop (go for a walk, for a jog, for a bike ride). What a satisfying way to end a super productive day!

 Have a great day, everyone, and thanks for reading!

 -Andrei
  

Thursday, October 22, 2015

Kicking studying into high gear

  Hello, everyone!

  This is a pretty exciting time for me. I live in a seasonal town, and starting Monday, it will slow down a lot for me as far as work goes, so I should have a lot more free time. I am planning on kicking up my study hours up a notch. I will try to aim for 5 hours a day. We will see how that goes.

  My Rails study group seems very promising. We already had one Google Hangout where we all "officially" introduced ourselves to each other, and talked about our plans for this study group. We will try to do one chapter a week, and talk about it on Mondays. There are exercises in the end of the chapter, and each person has been assigned an exercise that he will present to the group, and talk through solving it.

  I have been attending Ruby meetups as well. I am going to another one on Saturday in DC, and I am even scheduled to give a talk in an upcoming Ruby meetup in Baltimore, MD on November 10th! That's right, I volunteered to give a talk. I have never given one before, so I am really nervous and excited. I still have some time to prepare. My talk will be geared towards beginners (obviously). I think it would be a great experience and I will learn a lot from it too. I have to have a solid understanding of everything I will be attempting to present, organize my thoughts, and reword the material in an easy to understand manner, plus also hopefully be able to answer questions.

  I also purchased "The Well-Grounded Rubyist" By D. Black. It has really good reviews, and I am looking forward to reading it to supplement my learning.

  Still working on "Learn Ruby the Hard Way",  I really want to finish it but it is going pretty slow. I am stuck on the chapter that teaches you about writing test scripts, and I am having difficulty making tests for my own programs. I need to spend more time on it...

  That is all for now,

  Have a great weekend, everyone!

 - Andrei

  

Sunday, October 11, 2015

Two months coding journey summary

  Hello, everyone!

  Another week is coming to an end, and today is my two months "anniversary" of learning code.  Happy code-a-versary to me! :) Not that it means that much, but I feel like I have made considerable progress in 60 days. Sixty days ago, I learned how to code my first puts 'Hello, world!' program.  And today I wrote a script that reads a .txt file that contains a list of URLs, sends a request to each one, and emails the results of all the URL checks. (I will be talking about that script later in my blog).

  Here is a blueprint of how I studied with the resources I used. It might prove useful for those starting to learn code.

  In the last two months I have:

 - installed brew, ruby, rails, git on my computer (Link)
 - learned the basics of command line (Learn Command Line the Hard Way)
 - learned the basics of Git (Codeschool)
 - learned the basics of HTML and CSS (Learn How to Program)
 - some more HTML and CSS basics (General Assembly Course)
 - completed first 10 chapters of C.Pine's "Learn to Program" (e-Book or you can buy it on Amazon)
 - completed first 45 Chapters of Z.Shaw's "Learn Ruby the Hard Way" (e-Book)
 - started Hartls Rails Tutorial (Rails Tutorial)

 Whew, it has been a busy two months! And a lot more studying ahead! :)


 Here are some tips that I can offer to anyone who is learning code:

  - Avoid jumping around between websites and resources. Especially if you are a beginner, most resources are mostly the same. Just choose one, whatever it might be, and stick with it. It will give you direction and purpose. Googling "best online coding course for beginners", jumping from one resource to another, and looking for that perfect tutorial is a waste of time. You could have just done another chapter! :)

-  Learn to read documentation. Yes, it is a giant pain, it is very confusing, and I am absolutely terrible at it. But documentation is the absolutely first place I look. Googling and looking through stackoverflow is my last resource. The more I work with documentation, the faster I find answers, the easier it is for me to understand what I am looking at, and how to apply what I see.

 - It is not easy to say, but I am a pretty lazy person by nature. It helps to find a system that keeps you focused and engaged. For me, I discovered a Pomodoro Technique. You can follow the link to learn about it, if you have never heard of it, but in a nutshell you study in 25 minute bursts, and then break for 5 minutes. It really works for me, and it completely changed the way I study. I don't get distracted, I am very focused and very productive. You don't have to use the Pomodoro Technique, but finding a system that works for you will increase your productivity.

- Set small daily and weekly goals. It gives purpose, and makes you excited to sit down and work on stuff. For example, my weekly goal might be "Complete Chapter X". But the goal for the day might be "Finish specific script or part of the script that I am working on" or "Learn about a specific topic".

- Get involved. Codenewbie.org is an amazing resource for those who are learning code. Getting involved, participating on the forum and in their twitter chat will accelerate your learning and will give you needed encouragement when you might be struggling. Find local Meetups in your area, and go to them. You WILL learn faster, and you might find a coding buddy, a mentor, and maybe even a future employer. Oh, and if you don't have it yet, get a twitter account ;)

- Don't code or study when tired. You will not retain information well, it is difficult to focus, and it is a waste of time. Just go to bed, get some sleep, and start fresh in the morning.

- Code. Every. Day! It really helps to get settled into a habit, and it also means that every day you are making progress!

 My plans for the next week are:

 I am attending a Ruby meetup in Baltimore on Tuesday, so I am really looking forward to that. I plan on finishing Chapters 46 and 47 of Learn Ruby the Hard Way, and finish Chapter 2 of Hartl's Rail's Tutorial.

That is all for now,

I hope you found this post useful, and as always, thank you very much for reading!

Keep Calm And Code On,

- Andrei