When I first started learning about coding, I was reading through Zed Shaw’s
book about Python. The very first program I
made was based on the text game in one of the exercises. It was
a game that would give me suggestions or try to motivate me in some way based on
how I answered questions. It was a really bad example of programming with
many nested if..else
statements, but I believe that working through that game
was ultimately the reason why I kept trying to learn. Unfortunately, I lost that
game when my computer was stolen. Which brings me to the first thing I should
have gotten when I started, a way to backup my files.
Github is the most popular choice from but I was always afraid to show really bad code or accidently sharing something personal like passwords or api keys. That’s the reason that I put off starting one for a long time. I became more diligent about backups after losing all the tutorial applications and links that I was saving. Around that time, I created an account at Bitbucket because it allowed free private repositories and it helped me get started using git commands. Starting with Github first would have helped me get over the hump about sharing or talking with other programmers but if that barrier is too big at the moment, it’s better to go with the alternative than not at all.
Another thing I should have started from the beginning was working through an
app from rails new appname
to deploying it. I put off this part for awhile
and it was a huge detriment later on. Personally, my fear of
deploying a demo was similar to my fear of the command line in the
beginning. A major part of that was connecting and using a Database that wasn’t
sqlite along with the other configurations.
I knew enough about SQL and databases in general
to work with it in a Rails app but that was different from having
to configure it outside a development environment. For demos and trying to deploy the first time, heroku
is my number one choice because it was the most painless for me, the most that I
had to do was extract out some keys to environment variables and add a
different Ruby server besides WEBrick. Their articles
guided me on how to deploy for the first time and the reasons why they require
programs to be deployed in that way.
The last thing I focused on in the beginning was that I put a lot of time doing exercises like ruby koans and exercism because it abstracted out a lot of parts that I couldn’t get my head around yet. I only found these exercises through GitHub and in the latter’s case, it’s the only way to access the exercises and let other users comment on your work. I was ignorant to the design patterns other people were using since I was so focused on just making the tests pass, but I used them to become familiar with the syntax and the way Ruby solved problems. Aiming to work on one problem a day was an attainable enough goal to create a habit and eventually fall in love with the process. As an added benefit, those exercises gave me a great appreciation of testing in general because that was the only way I knew if I was doing the right things.