Monday, April 11, 2016

Productivity hacks for you and me!

Hello, everyone!

I have been working at STAQ for over a month now, and I love it so much! I will make a blog post about my experience of being a brand new dev who switched careers and is self taught around my 2 months anniversary with the company!

Thank you, everyone, who reached out to me through email and Twitter to congratulate and ask questions about my journey! I am always happy to talk, let you know what I learned, and possibly help you switch careers as well! 

With that said, let me share with you some productivity tools that can make you more productive! 

I CAN HAZ PRODUCTIVITY HAX?         
                          
     At the Ruby Uncoference on March 5th that I attended, one of the topics discussed was tools that help increase productivity and automate mundane tasks. I wanted to make a post about tools that I use to increase productivity, and about some tools that I learned about at the conference (some I am already learning how to use, and some are on my list to check out).



                           Task automation is key to productivity :)))) 




                         STUFF I ALREADY USE
  1. Bash Aliases: I recently started using them, and it is addicting. As soon as I notice myself typing something for the 4th time, I am itching to create an alias for it :)
  2. Captured. I have been using Captured for several months now. I find it extremely useful if I need to take a screenshot that will persist on top of all the windows while I use it to compare data or as an example of some text (code) that I am trying to reproduce. It is also pretty handy for sharing screenshots. Be cautious when sharing screenshots that contain sensitive data.
  3. Pocket. I use Pocket when I find an interesting internet page that I don't have to read now (but I definitely want to come back to it later). Just put it in your Pocket! :) You can save the link to the page, and add tags to it, and come back to read it later. It is available on mobile and it syncs all of your saved stuff across all devices.
  4. Magnet. I have been using Magnet for a couple months now and it makes window management much easier. The windows "stick" to corners and having multiple windows open on the same screen is a lot more manageable. Several other apps that do similar things were mentioned at the Ruby Conf: MoomDivvy and Spectacle(open source).
  5. Ack. About the same time, I learned about grep, I learned about ack. It is an easy-to-use grep-like brew add-on. You just give ack a string, and ack will search in your current folder and all sub folders for whatever you are looking for. It also highlights all the matches. :)
  6. Chrome. Chrome is super powerful and helpful to automate every day things. You can set it so it opens all the websites that you need when you launch it. If you log into Chrome with your Google account, you will have access to the same bookmarks across all of your devices. From adding a signature to your email to a plethora of available chrome extensions, Chrome can be a very helpful tool to increase your productivity.
  7. bash-git-prompt. I use bash-git-prompt as a helpful tool that shows information about the current git repo (branch name, difference with remote branch, number of staged files, etc). I also use git-completion.bash file to tab-complete branch names while typing out git commands.
  8. Jumpcut. Jumpcut lets you manage your clipboard, and gives you access to your history of "copy & paste"s.



                Want more?

      
                    SOME MORE POSSIBLY USEFUL STUFF!!!!

    There were a lot of other productivity hacks mentioned at the Ruby conference. Some look very useful and I can't wait to learn how to use them, while some I am not sure I would benefit from. But here is a list of other things that I can remember!!!! :)

  1.  Alfred. Alfred is an application launcher and productivity application. Kind of like your Spotlight but with a lot more features. You can initiate workflows, directly navigate your file system, save text clips, set global hotkeys, access your URL history and much more. There are a lot of user-created extensions for Alfred as well.
  2. SCM_Breeze. SCM Breeze helps you streamline your SCM workflow. It is a set of shell scripts that enhance your interaction with git. It integrates with your shell to give you numbered file shortcuts, a repository index with tab completion and other useful features.
  3. Z. Z (open source) lets you "cd" quickly into your most frecent directories (a combination of recent and frequent).
  4. Boom. Boom gem lets you create, manage and access lists of text snippets right from your command line.
  5. VIM. Yeah, it is on my list. My feelings about VIM can be summed up with "I don't know why, but I must learn VIM". I heard that VIM is awesome, so by learning VIM, I will be awesome. And I am totally planning on learning it by playing me some video games.


    Back to coding, everyone! And be productive!

Thanks for reading, everyone!
All the best,
- Andrei

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