Showing posts with label job search. Show all posts
Showing posts with label job search. Show all posts

Thursday, June 7, 2018

1,000 Hours in Code: What Do I Have To Show For It?





It was not a happy day when I passed the official milestone of 1,000 hours of trying to become a developer.  I was still without a job, and long, painful experience had taught me that interviews in the offing counted for little.

So I saved this photograph in a draft of this post, wiped my board clean, and stenciled out the twenty-first matrix.  I intended to write a blog post about how far I've come in my coding journey and all the things that I can work with now, of which I had scant knowledge a year-and-a-half ago — Ruby, Rails, coding puzzles, HTML, CSS, JavaScript, etc.  Instead, I turned off my computer and went to the gym.

A career change is always hard, and these days no-one cares much for the travails of a married man who dreams of providing for his family.  Looking for work is laborious, thankless, frustrating, exhausting, and depressing.  But what's the alternative?  I had to keep on going.

So the next day I turned on my System76 computer, for which I am most grateful, and spent the next few days studying hard on Udemy.  I put thoughts of whether I might get a job out of my mind and concentrated on studying and writing code — which, despite all the frustrations, I enjoy for its own sake — and to cut a long story short, fortune smiled on me two weeks later.

Those of you who follow me on LinkedIn will have noticed a small, but rather important update in my profile:


It's been two weeks in the job and I've almost completed a full cycle of pomodoros of productive work.  After going to roughly twenty interviews, someone finally agreed to give me a chance, and I think my colleagues will agree that I've grabbed it with both hands.

So, it didn't take me exactly 1,000 hours, but rather 1,015½ hours, but what do I have to show for it?  A mission accomplished and a career change effected.

Of course, in an important way, my work has only just begun: time is limited and there's lots to learn.

But if there's one thing I'm good at, it's making the most of my time.

Tick, tock, and all that.

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)


Thursday, March 23, 2017

Ruby Achievement Unlocked, Time for Rails

Having reviewed my solutions to the first three Days of puzzles of Advent of Code, I am now comfortably proficient in the fundamentals of programming in pure Ruby.



When presented with a problem, I am confident that I can do the following:

  • Define the problem
  • Describe the solution broadly in programming terms
  • Denote the likely classes and methods to be used therein

Thereafter, I am now confident that, given enough time, I can solve the problem.  There is room for vast improvement, but that will come with time.

I really enjoy the daily solution of programming puzzles, and would love to solve all fifty; however, my duty is to prioritise my studies according to optimal employment criteria, and there aren't a lot of jobs going for junior developers who specialise in solving fun puzzles in pure Ruby.

Having passed this milestone in my learning, I am now ready to hit the books again.  My study plan encompasses the following:

  • Build a website in Ruby on Rails to showcase my Advent of Code puzzle solutions.  This includes the following:
    • Deep knowledge of Rails
    • Proficiency in Javascript
    • Proficiency in JQuery
    • Proficiency in HTML/CSS
    • Proficiency in PostgreSQL and/or mySQL
    • Writing automated tests in RSpec (my preference) or Factory Girl
  • Host the website on Heroku
  • Additionally, I will further my knowledge of the following:
  • Coffeescript
  • Haml
  • Amazon Web Services: it would be good to know which services are of the highest priority, as one could spend a lifetime on there.

To gain experience in upgrading older Rails versions, I could probably clone the source code of an existing Rails to a virtual machine, on which an old version of Rails is installed.  However, this is a lower priority.

As all who know me can attest to, I can learn and work quickly and efficiently, and am adaptable and resilient.  I also take pride in managing expectations between multiple clients and communicating with both clients and colleagues.

For the next couple of weeks I will focus primarily on the Rails framework by working through Ryan Bigg's promisingly large tome: Rails 4 in Action.  In this way I expect to establish a thorough grounding in Rails and also a gain a perspective on the changes from Rails 4 to Rails 5, which could come in handy if I ever work on a legacy codebase.

Thursday, March 16, 2017

State of the Mission, Thursday 16th March 2017



I have been busy on the part of my mission that I love the most: coding.

However, it's time for a review and some planning for the weeks and months ahead.

ACHIEVEMENTS


DISAPPOINTMENTS
  • Not making the cut at Zendesk.
  • Not making the cut at Envato.
WHAT I'M DOING RIGHT
  • The quality of my code is rapidly improving, and there is every indication I'm doing all the right things in this regard.
  • Excellent time-management and high productivity during work periods.
WHAT I NEED TO DO (BETTER)
  • Start building sites in Rails.
  • Further my knowledge of Javascript.
  • Further my knowledge of CSS.
  • Further my knowledge of HTML.
THINGS TO CONSIDER
  • Branch out my search to Javascript jobs?
  • React.js?
  • Node.js?
  • Python?

Wednesday, January 11, 2017

Progress Chart With A Twist (Or Pattern!)

My beloved helped me to create a handy stencil for my white board, with which I make a chart like this:


The chart works like this:
Black = Study, i.e reading about Ruby, learning the concepts.
Green = Code, i.e. working on code that goes to Github.
Blue = Blogging.
Red = Job search, i.e. applying for jobs, calling recruiters, etc.

This is literally a progress chart, in the sense that it represents my progress, rather than how much of a goal I have completed.

The twist of setting up the 10x10 table with a repeating pattern of four colours, instead of a neater set of coloured columns, is that gaps are unsightly.  Each of these four aspects of my mission is equally important, and the discomfort of seeing an uneven distribution of filled cells induces me to turn my attention to activities I have been neglecting.

To be honest, I do not enjoy looking for work, and would much rather be busy coding and studying.  Blogging isn't too bad, but coding is more fun.

Nevertheless, until I get my first gig, my job is looking for work, and so the red cells have to be filled in first.

So far, so good.

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 ...