Monday, October 23, 2017

1,400 Pomodoros (700 hours)



700 hours into my career change, so far so good.

Not much to report, but I solved a few problems and closed a few issues.
I have to continue building the case, but as long as I'm in the game, I've got something to play for.

Monday, October 16, 2017

Course 101 Programming Foundations Complete!


I've learned quite a bit from working through Course 101: Programming Foundations in Launch School.

My Github repository is up to date too: https://github.com/clockworkpc/launchschool

Thursday, October 5, 2017

Work-life Balance

Most of my day is spent sitting in a chair, and although there have been many days more sedentary than I should have liked, it's a boost to complete a full fitness pomodoro cycle.
If I exercise five times a week, this should take me twenty weeks to complete, but life got in the way this year.
Oh well, every bit counts.

Monday, October 2, 2017

1,300 Pomodoros: Humility, Gratitude, Motivation

650 hours very well spent, but hardly an excuse to rest on my laurels.
It's been about a month-and-a-half since I started my internship at Gleam.io and now is as good a time as any to reflect on humility and gratitude.

Humility: Knowing Your Place

As a junior developer, all my considerations start from recognising the humbling fact that my company does not need me, yet.

So far, time and money spent on me have not profited the company.

As things stand, the company would be better off without me.

If I  do not significantly improve over the coming weeks and months, the case for terminating my position at the company will consolidate; reasons to keep me, evaporate.

Gratitude: Accepting Responsibility

In light of these discomfiting understandings, it is clear that a great responsibility is placed on my shoulders.  In spite of my limitations, my boss sees potential in me, and has already gambled a substantial amount of time and money on helping me get to my present position.  Even if I can't see how I am to cross over into profitable productivity, he can, and because I trust and respect his judgement, the onus is on me to find a way to come good.

The way I look at my internship is that the company — without really needing to do so — is giving me a gilt-edged chance to build a compelling business case for hiring me.  I have access to the code base, I can ask for help, I have an excellent Linux-based System 76 laptop, and most importantly, I have a generous allotment of goodwill and trust.

Motivation: Hunger and Hope

So what does this mean for me in practice? It means staying hungry and hopeful.

It means getting up every morning with a strong determination to do my best right now, for the next twenty-one minutes, and the next twenty-one minutes, and the next, until the end of the day.

It means poring over every detail of my assigned task, taking notes, searching for key terms in the code, reading and re-reading the manual.

It means making sure I've done everything I can and have the best possible understanding of the matter before contacting a senior developer, and then asking the most specific, intelligent question I can put together.

It means overcoming the fear and frustration, the anger and anxiety, of not knowing the answer, day in, day out.

It means being honest with myself and making available a regular feed of how I'm getting along; not a sugar-coated status update, but an unobtrusive stream of reports by means of which those above me can realistically appraise my progress.

It means reminding myself of where I started and where I want to be.

And finally, it means that as long as I am in the game, I have everything to play for.

Wednesday, August 30, 2017

First Successful Pull Request

The last three weeks have seen my eleventh pomodoro cycle (1,100 completed), and my first as an intern at Gleam.io.  My learning curve is very steep, for it includes, amongst other things:
  • A new IDE. (Rubymine instead of Atom)
  • Tighter security settings around my Github account, which is rather a good thing.
  • Getting a large and complicated server with many dependencies running on my machine.
  • Getting a new System76 Gazelle Linux box. (Amazing!)
  • Writing RSpecs at a level of complexity far above anything I've learned.
  • Using Rubocop — really not hard, I actually quite like it.
Edging out the excitement of my very own System76 laptop — I've been on cloud nine since Gleam.io generously purchased it for me — is my first successful pull request.

To a seasoned programmer, it was a small thing, but it is a momentous occasion for me.

And may it be the first of many.

Wednesday, August 9, 2017

1,000 Pomodoros: First Gig Edition :D



Over the last seven months I have spent a thousand pomodoros (25-minute blocks), i.e. five hundred hours, in pursuit of a new career as a software developer.  The bulk of my time has been spent on the following:

  • Studying coding (40% => 200 hours)
  • Writing code (40% => 200 hours)
  • Writing about this journey (10% => 50 hours)
  • Networking and actively applying for jobs. (10% => 50 hours)
And now I am pleased to announce that I have been granted an internship at Gleam.io as a back-end junior software developer.


I am grateful to the team at Gleam for this opportunity to learn the ropes.  I am ever increasingly aware of how much there is for me to learn, but I will give it my best.

Wish me luck!


Wednesday, July 26, 2017

Introduction to AngularJS/1 Complete



If, for some reason, you need to familiarise yourself with AngularJS, i.e. Angular 1, I can strongly recommend this free course by Scott Allen from Plural Sight:

https://app.pluralsight.com/player?name=angularjs-get-started-m0&mode=live&clip=0&course=angularjs-get-started&author=scott-allen

He moves at a fast clip, so you'll probably pause a lot to keep up with his code, but it's a good introduction to the main features of Angular JS, especially if you're completely new to this kind of work.

Monday, July 24, 2017

900 Pomodoros: Only Getting Started



450 hours (900 Pomodoros) spent on studying, coding, blogging, and applying for jobs.

I started studying through Launch School and come what may, over the next few cycles I expect my skills and knowledge to improve even more rapidly.

Let's see where I'm placed after 1000.

Saturday, July 8, 2017

Wednesday, July 5, 2017

800 Pomodoros (400 work hours)

I have officially spent 400 hours in my pursuit of a career in software development.



I summarised my achievements at the completion of 700 pomodoros, and I don't have an awful lot to add, except that I understand HTML and CSS a bit better and am in the process of refining my knowledge of programming fundamentals in Ruby.

There are days when I feel a little disheartened by not having a job yet, but I knew it would be a long process when I started it and there's plenty to take heart from.  Let's see how I'm situated by the end of this cycle.

Saturday, June 24, 2017

Ready to return to work

It's been a period of great change, but I have settled properly into the house with my beloved, and my study is finally in good shape.

I have long since learned the importance of putting one's working space in order, and as you can see, everything has a place.





Monday, June 12, 2017

A Snippet of Code for Converting HTML Classes to CSS

I'm practising my Flexbox skills and I didn't want to type out the names of the classes ad nauseam.

Wednesday, June 7, 2017

Focusing on Flexbox



This looks to be the course for me: https://www.udemy.com/css-flexbox/

HTML and CSS Is Suddenly A Lot More Interesting


I don't know why, but somewhere into the freeCodeCamp HTML/CSS foundations challenge, I suddenly found myself enjoying it.  I am, of course, quite familiar with the basics of HTML and CSS, but I had never found it especially compelling; I was happily absorbed in Ruby for hours and hours, but couldn't have imagined that I'd enjoy the building blocks of front-end.

Nevertheless, something clicked for me, and I am going to focus intensely on HTML and CSS for a while, before moving on to jQuery and JavaScript.

Tuesday, June 6, 2017

Coming Back from Disappointment: A New Chapter


Review: Putting it all in context

After 700 pomodoros of studying, coding, blogging, and job-seeking spanning five months, I am still without my first job as a junior developer.  The hardest part of it all is maintaining an optimistic outlook after repeatedly being turned down, especially after the excitement of performing so well in numerous interviews.

But that won't stop me.  There are identifiable reasons for my failure, and the good news is that all the things cited are eminently improvable and correctable:

  1. Quite simply, the quality of my code, into which I have poured so much effort, is still not good enough in the estimation of the interviewers.  This is good news, for I can learn from their feedback and code to a higher standard.
  2. After one poor performance in a pair programming interview, I handled myself well in very similar conditions three days later.  I know where I went wrong in the first one; I know what I did right in the second.  I can build on this.
  3. I need to familiarise myself with the core competencies, frameworks, and tools of front-end development.  My plan was always to give myself a solid foundation of programming in Ruby and a basic sense of DevOps with Vagrant and Docker, and although there is room for improvement in that regard, the task of getting really good at HTML, CSS, Rails, Heroku, etc is now a lot easier.
Add to that, I have gained a lot of contacts, spent plenty of time at meetups, made good impressions on many people, and have a highly sophisticated approach to learning and time-management.

So all things considered, I am many miles further down the road than when I set out on this journey at the beginning of the year.

Where to from here?

Rails

I think I'll muscle through Michael Hartl's Rails tutorials.  Although there are many good ones, this one is updated to Rails 5 and seems to do a fair job of sticking to the core knowledge.  The Odin Project looks good as well, but there's no point in jumping around from course to course.

HTML/CSS

Many experienced developers tell me that most juniors today are pretty weak on HTML and CSS, having jumped straight to boilerplates, JavaScript, and plugins.
As with other endeavours, I believe wholeheartedly in mastering the fundamentals.  It is hard to make such a commitment to something seemingly outdated, but I believe it will benefit me greatly in the long run.

JavaScript

The debate between Ruby and JavaScript rages on, and I have heard it said from those in the front-end world that the only language you really need is JavaScript these days.  I am glad I chose to learn through Ruby, and having gained a grasp of the fundamentals, learning JavaScript will be less daunting from here on out.

Summary

As much as I'd love to have been picked up by a company already, I am not really behind schedule at all, all things considered, and having taken some time to relax, recharge, and review, I am now keenly looking forward to the next couple of months.

Thursday, June 1, 2017

Wednesday, May 31, 2017

Back to Rails and Heroku

Getting started with Rails is not a lot of fun, but I'm up and running again.


Thursday, May 18, 2017

State of the Mission: 700 Pomodoros!

Update:

Now up to 800 pomodoros.

Pomodoro Count

Since the beginning of this year (2017), I have invested a total of 700 pomodoros towards the following:

  • Studying programming
  • Coding
  • Looking for work
  • Self-promotion on social media

What Do I Have To Show for My Efforts?

I have a growing body of code: https://github.com/clockworkpc

I have interviewed strongly for junior positions at a number of companies:
  • Envato (2nd round)
  • Zendesk (1st round)
  • reinteractive (2nd round)
  • GreenSync (3rd round)
  • MYOB (3rd round)
  • BlocksGlobal (3rd round)
The feedback has been overwhelmingly encouraging, and with each interview, there is evidence that I am even closer to having the package of skills and knowledge that will distinguish me from other candidates.  Moreover, most of the companies have pointed out to me the precise areas of improvement, and I have incorporated their feedback into my curriculum.

Do I have a job yet? No.
Am I moving inexorably in the right direction? Absolutely.

What Is A Pomodoro?

Italians have been bemused by this term ever since, I imagine.

One pomodoro is 20 minutes of pure, uninterrupted, focused work.
For about 60 seconds before I start the clock, I orient myself; for about 60-120 seconds after the clock rings, I summarise my work.
Add to that the time spent getting up from my desk and making notes on the whiteboard, and that comes to about 25 minutes when all is said and done:
  • Preparation: 1 minute
  • Pomodoro: 20 minutes
  • Summary: 2 minutes
  • Whiteboard: 2 minutes
  • Rest: 5 minutes
Thus, allowing five minutes of rest between a pomodoro and its surrounding activities, one pomodoro amounts to half an hour of productive labour.

Working on the assumption that about five hours of a software developer's eight-hour day are spent on his primary task (coding), and the rest is taken up by meetings, etc, this means that 700 pomodoros are the equivalent of...
  • 350 hours of productive labour
  • 70 working days of productive labour
  • 14 working weeks of productive labour

Pomodoros: A Photographic Overview


Unfortunately, I did not record my pomodoro counts fastidiously from the outset, so some of the data are missing, but a glance across photographs of the completed pomodoro cycles, shows that the amount of time spent on each activity varied.  Sometimes I was focused on my studies, sometimes on coding, sometimes on looking for work.

I spend the least amount of time on promoting myself through social media, which makes sense, because it is more important to me to learn how to code, to code, and to look for work, than to blog and network on LinkedIn and Twitter.

2nd of January 2017 to 15th of January 2017 (100)



16th of January 2017 to 30th of January 2017 (200)

(Image lost to oblivion)

31st of January 2017 to 15th of February 2017 (300)



16th of February 2017 to 6th of March 2017 (400)



7th of March 2017 to 30th March 2017 (500)



1st April 2017 to 23rd April 2017 (600)

(Image lost to oblivion)

April 24th 2017 to 10th of May 2017 (700)


Wednesday, May 10, 2017

Pomodoro Cycle Complete 2017-05-10



Lots of coding exercises and interviews.

Not much study or blogging, but most of what I have been working on is confidential, if you know what I mean.

I should be interested to work out how many pomodoros I've put in since the new year - about 100 per 2½ weeks.

Whatever I'm doing it's starting to work, so I just have to keep at it.

Wednesday, May 3, 2017

State of the Mission, 2017-05-03: Lots of Coding

I know I've been very quiet lately, but there's a good reason for it.

Here's what I've been doing on Verbalyser:










And this is what I've been focused on for the last few days.  I'm not at liberty to share my code, but I think it's pretty clear how I've gone about it.




 



Friday, April 28, 2017

Refactoring and Unicode

Ruby's implementation of Unicode for Lithuanian, an admittedly complicated language, is not perfect but I have modified a useful script on Gist for identifying the unicode value of a given character.

Now that I can identify the unicode value of tricky diacritics and accents, I can refine my code.

Details of the script here.

1,050 hours

It took me 13 working days to complete my first 100 "work" pomodoros as a Junior Software Tester at Profectus Group.  Much of ...