Blog

First Coding Meet-up

Well I was sat here quite merrily going through the React I course on Codecademy, as one of my more immediate goals is to learn React as it seems to be the one front-end technology that I can learn that will most assist in making me more employable.

And then it decided to crash.  So I figured it was a good time to do one of the blog posts I have on my to-do list (not yet powered by React).

Last week I went to my first London-based coding Meet-up.

Well, CSS anyway.  CSS Meetup London, to give it its full name.

I had two aims.  Firstly to learn about grid, which was one of the presentations.  Secondly to meet some people in the industry.  You know – networking.

I arrived early, into the offices of Badoo – a social networking company that I had never previously heard of, who were hosting the event, and supplying beer and pizza, within their rest area/canteen.

It wasn’t so easy to tell who was there because they worked there, and who was actually there for the presentations like myself.  I grabbed a slice of absolutely amazing pizza and stood in the corner, a little awkwardly, hoping someone would note that I am a newbie and introduce themselves.

They didn’t.  I had another slice of pizza and grabbed a beer.  There were a few small groups talking to each other, but most people were sat by themselves, some staring into laptops (the guy I sat next to never paid any attention the whole time except to his laptop).  I did attempt some small talk with a couple of people but I didn’t receive any more than an acknowledgement.

The presentations themselves were reasonably good.  It isn’t easy to get up in front of a room and talk, especially about a technical subject for which you may receive some difficult questions.

The first talk was on CSS Grid, which is quite an exciting new specification coming out widely this March, I believe, which will allow for much more straight-forward layout structuring.

Flexbox has been a revelation to me as positioning could be troublesome previously.  The hope is the Grid will be revelatory too.

The second talk was more abstract, questioning as to whether there is a war within CSS.  I’m not going to attempt to explain it as I didn’t thoroughly understand it, only having done my CSS directly on stylesheets.


Afterwards there was a trip to the pub, which I thought might be my opportunity to meet people.  I popped to the loo, went back in the room to find the same couple of groups talking to each other, stood like a lemon for a couple of minutes and then left.

It was an interesting evening.  I’m not going to rush back but when there is a subject matter being discussed that I am interested in I shall attend again.

There are plenty of other meet-ups that look interesting – there was one the following night for WordPress, where there was lots of comments saying “such a friendly bunch” or “thanks for making a newbie so welcome” – which is clearly what I was looking for.  The CSS one doesn’t seem to be good for networking, though I do need to go back to find out what make of pizza that was.

I will definitely go to more meet-ups but I will try different groups.  Especially if there are giving away free pizza!  If I lived in central London I could probably get fed for free every night.

And yeah, it looks like I won’t be completing that React course today.  Onto something else.

 

Adding Adverts

Those of you that know me will know that I like to do a bit of blogging.

Having no income other than benefits means that even small costs such as my annual domain fees make me wince.  Every penny possible has to be saved.  But I really don’t want to stop any of my blogs – in fact I have started more up since I lost my job!

I used to do all my blogging on Blogger, prior to learning coding.  No particular reason other than it was what I first heard of.

New blogs I set up with WordPress, as it gives me pretty much infinite possibilities in being able to expand with my coding skills.  A few I still do on Facebook only – such as my Political Betting page.  Said page will be moved onto WordPress in the coming month or two, with a newly developed theme from myself.  Only just passed the thought stage – nowhere near pencil and paper stage.

The reason I set that particular page up originally was to see if I could make any money from gambling commission – all the major bookmakers offer affiliate accounts.  With 40 page likes and an average reach of around 10, I am hardly going to be buying a private jet any time soon.  Not even an airfix model.  So far I have a grand total of £20.43 and $6.05 commission.

So my bright idea this week was to add adverts to my 6 WordPress blogs.

I am sure I could have done this simply by using a plug-in, but I decided instead to use my WordPress knowledge.

Firstly I created a child theme for each blog, with a new stylesheet and a new functions file.  I knew how to make a child theme, or at least the theory of it, but had never done so.  This is now quite firmly planted into my knowledge bank.

I enqueued the stylesheet in the functions file – all straight forward.

add_action( ‘wp_enqueue_scripts’, ‘enqueue_parent_styles’ );

function enqueue_parent_styles() {
wp_enqueue_style( ‘gridster-lite’, get_template_directory_uri().’/style.css’ );
}

Then I had to create and register my custom post-types, following this with an initiation action.

Something that became clear in the planning stages after looking at how the adverts themselves were encoded, was that I would need two custom post-types – one main advert, and one mobile-sized advert.

function my_custom_posttypes() {

$labels = array(
‘name’ => ‘Adverts’,
‘singular_name’ => ‘Advert’,
‘menu_name’ => ‘Adverts’,
‘name_admin_bar’ => ‘Advert’,
‘add_new’ => ‘Add New’,
‘add_new_item’ => ‘Add New Advert’,
‘new_item’ => ‘New Advert’,
‘edit_item’ => ‘Edit Advert’,
‘view_item’ => ‘View Advert’,
‘all_items’ => ‘All Adverts’,
‘search_items’ => ‘Search Adverts’,
‘parent_item_colon’ => ‘Parent Adverts:’,
‘not_found’ => ‘No advert sites found.’,
‘not_found_in_trash’ => ‘No advert sites found in Trash.’,
);

$args = array(
‘labels’ => $labels,
‘public’ => true,
‘publicly_queryable’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘menu_icon’ => ‘dashicons-id-alt’,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘adverts’ ),
‘capability_type’ => ‘post’,
‘has_archive’ => true,
‘hierarchical’ => false,
‘menu_position’ => 5,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ ),
);
register_post_type(‘adverts’, $args);

$labels = array(
‘name’ => ‘Adverts Mobile’,
‘singular_name’ => ‘Advert Mobile’,
‘menu_name’ => ‘Adverts Mobile’,
‘name_admin_bar’ => ‘Advert Mobile’,
‘add_new’ => ‘Add New’,
‘add_new_item’ => ‘Add New Advert Mobile’,
‘new_item’ => ‘New Advert Mobile’,
‘edit_item’ => ‘Edit Advert Mobile’,
‘view_item’ => ‘View Advert Mobile’,
‘all_items’ => ‘All Adverts Mobile’,
‘search_items’ => ‘Search Adverts Mobile’,
‘parent_item_colon’ => ‘Parent Adverts Mobile:’,
‘not_found’ => ‘No advert mobile sites found.’,
‘not_found_in_trash’ => ‘No advert mobile sites found in Trash.’,
);

$args = array(
‘labels’ => $labels,
‘public’ => true,
‘publicly_queryable’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘menu_icon’ => ‘dashicons-id-alt’,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘adverts-mobile’ ),
‘capability_type’ => ‘post’,
‘has_archive’ => true,
‘hierarchical’ => false,
‘menu_position’ => 5,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ ),
);
register_post_type(‘adverts-mobile’, $args);

}

add_action(‘init’, ‘my_custom_posttypes’);

A simple media query ensured that only the mobile one would show at screen widths of less than 1200 pixels, only the desktop advert would show on screen widths of 1200px or more.

@media screen and (min-width:1200px) {
.advert.advert-mobile {
display: none;
}

}

@media screen and (max-width:1199px) {
.advert-main {
display: none;
}
}

The painful part was going through all the affiliate accounts and trying to find appropriate adverts to use – problems abound whether that be one company only having Italian adverts when I searched for English, other companies not having filtering options so I’d have to trawl through to find ones with the right size.  And some god-awful adverts too.  Not to mention spending a good 30 minutes or so trying to work out why they weren’t showing on my website – that’ll be Adblock then.

I think they look quite smart.

saqwer

The final part was having to fit them into the particular pages.  Mostly a straight forward case of finding the section after the navigation and before the have_posts loop starts, in the single, page and index pages.

It consisted of two while loops – one for the desktop advert and the other for the mobile advert custom post type, showing just 1 post (advert) per page, and an orderby type of ‘rand’ so that a different one would be shown each time.  I left a couple of divs in there with different classes in case I want to expand or slightly amend the styling at a later date – though now I think about it I wish I have written it as an include, that would have been more sensible.  Job for tomorrow, then.

<?php

$args = array(
‘post_type’ => ‘adverts’,
‘posts_per_page’ => 1,
‘orderby’ => ‘rand’
);

$adverts = new WP_Query( $args );

while ( $adverts->have_posts() ) : $adverts->the_post();?>

<div class=”advert advert-main”>

<div class=”flex-site-title”><?php the_content() ?></div>

</div>

<?php endwhile;

$args = array(
‘post_type’ => ‘adverts-mobile’,
‘posts_per_page’ => 1,
‘orderby’ => ‘rand’
);

$advertsmobile = new WP_Query( $args );

while ( $advertsmobile->have_posts() ) : $advertsmobile->the_post();?>

<div class=”advert advert-mobile”>

<div class=”flex-site-title”><?php the_content() ?></div>

</div>

<?php endwhile;?>

I am going to look into some more interesting affiliate accounts than just gambling ones.  Perhaps clothing, or music – especially for my music-related blogs.  Then again hardly anyone will see them as they use adblockers like me!

It was a good little task to get myself back into the swing of things after my interview disappointment this week and tomorrow I can get back on with some real coding.

Interview Outcomes

I had a flurry of excitement last week with phone interviews, e-mails, applications etc eventually leading to two interviews.

The second interview was for a job that I didn’t remember applying for, wasn’t on my spreadsheet and replied to my unprofessional personal e-mail address (jamesthemonkeh) for which I rarely use.  Apparently my CV was “…selected, from hundreds submitted, to go through to the next phase”.  Hundreds?  My arse.  But I went along with it anyway, had a good telephone interview and a proper interview two days later.

I never received the e-mail confirmation about the interview, but I still turned up, albeit at the wrong entrance, and with plasters falling off my hand having cut my hand open in three places the night before doing the washing up…two hours of bleeding…not pleasant especially when I needed a good night’s sleep.

There was a good connection between myself and the three that I met though the interview itself was only 45 minutes long, and that included a 15 minute test.  They clearly had decided in advance and were going through the motions, though my ego concluded that meant I was in a good position to be offered the role.  I glossed over the suspicion that something wasn’t quite right because I wanted a job.  I want to progress.  I want to contribute.

Thinking back, I stumbled when they asked me to explain why I thought I had intermediate JavaScript knowledge.  I bluffed my way through.  And then there was a question asking why I would describe myself as “creative” – something I have put on my CV header.  Why on earth have I described myself as “creative”?  That was what I immediately thought and had to bluff my way again.  Other questions I answered well and received positive responses.

The first interview was for the job at a green energy company.  I had a good feeling about it from the off, spent a good 5-6 hours on the coding challenge (I will probably upload it to my portfolio, once I change company details) and had a good interview.  Admittedly I turned up 30 minutes early to the interview but I thought that I had performed well and was in with a chance.  It was clear that he was probably interviewing around 10-12 people and had even more applications.

There was lots of good feedback about my coding challenge, in fact he said it was the closest to the design spec out of all of them.  Though there were a few buts.

I came away thinking there was a chance I would get offered both.  The problem in my head was what would I do if I got offered the one I was less keen on before the one I was really keen on?  I don’t like to mess people around, even though I know companies normally won’t hesitate to do the same to me.  I have decency standards.

Neither job was offered to me.

The one that sounded a bit odd, simply said “Thank you for taking the time to come in to **our company**. It was great to meet with you.  Unfortunately, we will not be taking your application further.”.

I asked for further feedback on what I could do to improve but they did not even have the courtesy to refuse to do so.  My ego took a battering as I thought I was a shoe-in, but in time I suspect I will be pleased not to have ended up there.  Something really was not right about it.

The second one I did get constructive feedback.  During the interview, I received specific advice on my code which will be beneficial – a couple of new ways of looking at what I do.  He also advised me to learn Sass, Grunt and Gulp before learning React.

Further to that, the feedback was “I’m really sorry to say that we won’t be inviting you to a second interview this time. It was incredibly close, and you had a really strong interview, it just came down to others having slightly more experience with JavaScript and having a bit of a firmer grasp on Front-end technologies like responsive design and pre-processing.

I really respect your passion and the level you’ve achieved through self-teaching, and I believe that with a little more time learning you will become a web developer.”.

Which is like your football club reaching the semi-final of the FA Cup.  A pretty damn good achievement but there is no reward except for the experience and a bit of kudos.

That I came assumedly 3rd or 4th out of roughly 10-12 interviewees doesn’t feel particularly great now, especially being quite drunk, and after receiving some unrelated pretty damn shit news today too.  It’s been a bad week and a very, very bad day.

I think the main lesson is to keep my ego in check.  Manage my expectations better.

Needless to say, I have not done anything constructive for the last two days and will not do anything tomorrow as I am going to have a fair-sized hangover.

I do have a coding challenge for another role, but it is in PHP which I don’t know so well so probably pointless in trying but I shall hopefully get over my disappointment in time for the deadline.  No harm in trying even though I doubt I’ll get an interview.

Down but not out.

January Is JavaScript Month

Yeah I know, it’s the 9th January already.  I’ve been busy.  First there was New Year’s Eve, then there was a hangover, it was a bad hangover, a long hangover, followed by a cold.  Excuses, excuses.

Actually I have been busy.  Most of last week was spent on telephone interviews, actual interviews, travelling (including the waste of time that my weekly job centre visit is “have you thought about doing any courses for your IT”…yeah thanks for the jobseeking advice) and the required preparation.

There might be another post assessing my interviews – there is certainly a half-decent chance that I will be offered one of the roles that I went for.  For now, I want to set out my plan for January.

I am just finishing the final PHP course that I set myself for December.  It will be finished by time I finish this post.

It really was a step forwards from the “essential” course that I did, introducing classes and Object Orientated Programming (OOP) – though I already understood the structure and idea around OOP from my JavaScript learning.

Whilst it makes sense in my head, using it will be another matter altogether, but I do have one PHP-related project that I would like to try out at some point, and one or two small ideas to use elsewhere.  Learning is one thing, and I do go through and code everything in the video, testing and debugging along the way.  But I know that I will only really start to master it once I have a project or two on the go.

I might still need some advice on how to structure my SQL tables – though I have a very good friend who is very good at PHP that is nagging me to do a PHP project so I know where to go for advice. Hopefully it has given me enough of a grounding in PHP to be able to get my payment system working for my weather forecasting page.  Another one “on the list”.

I Need A Weather Forecast

Further to that I have not been able to get SMTP mailing to work through phpmailer.  I’ve given up for now in trying to figure it out.  But I will figure it out – I always do eventually.

When it comes to PHP, I guess the next step on my learning path is to try to work out MVC architecture.

But PHP is taking a break as for the rest of January I am going to be concentrating on improving my JavaScript abilities.

The first part of my main plan is to complete the JavaScript 30 course, which is a collection of 30 tutorials to create real-world applications in JavaScript – things like making a clock, text shadow mouse move effects and a whack-a-mole game.  I am going to expand at least a couple of them – especially the whack-a-mole game for which I have quite a few ideas for.

The second main part is to continue with the Free Code Camp syllabus – I have around 20 algorithm challenges to do, such as Sum All Primes, then 4 advanced projects to do, including making my own calculator and a tic-tac-toe game (I haven’t got the foggiest how to attempt that!  15 minutes later I do have some ideas on how that might work…the AI, of course being the hardest part to tackle).

I doubt I will get all of that done.  In fact, I will not complete it all.  A vague estimate would be that would take 300 hours to do and I don’t need an algorithm to work out that I wouldn’t have enough time before the end of the month to complete this.

Of course, my time available also depends on whether I get offered a job.  I’d like to think that I will employed soon.  Although I am coping ok with the 8am starts.

 

To break it up I might start learning React too.  There is a course on Codecademy which looks like the perfect way to start learning it.  Knowing React is probably the one thing that would really make me stand out as a potential employee.

Christmas Coding Break

I had every intention coming up to Christmas to keep coding right through it.  Travelling back up north, I only had a surface with me – with no desk or anything suitable at my parent’s home to make it comfortable.

Once I got there, I decided to actually have a break.  A few days with no code.  In fact, I tried my hardest not to use my surface at all – bar weather models and some sale shopping, I stayed away.

It did me some good.  I felt a renewed vigour and focus when I sat down at 9am the morning after I got back to London to get cracking on finishing the PHP with MySQL Essential Training course on Lynda.

Some of the course went over the basics that I already knew, which was fine for a reminder and I picked up one or two tips.  Where the most learning was achieved was from the chapters on working with MySQL – I know SQL reasonably well in terms of structuring data requests, SELECT, INPUT, DELETE yadda yadda, but what I had no idea of was how to actually use it, and also how to structure it within PHP.

The course took me through building my own Content Management System, the four basic functions of data storage – CRUD, and login systems, including theories around hashing passwords.

I still have some questions though, especially with regards as how to best structure tables within databases, so I shall be looking to expand my knowledge further.  The next course I’m planning on starting tomorrow morning, at no later than 9am, is PHP with MySQL Beyond the Basics – pretty much the follow-up, by the same author – only 10 and a half hours of video this time, which could easily turn to double once I have re-coded it all myself and convinced myself that I have enough of an understanding to move on.

No later than 9am as I have a new structure.  I was studying much of the day anyway but getting distracted a bit too much.  I have set myself a 9am to 6pm workday, working in chunks of 45 minutes followed with a 15 minute break, until 4pm at which point I’m working in 30 minute chunks followed by a 15 minute break.  I shall also be allowing myself every Sunday off – to recharge and do whatever the heck I want.  Within the bounds of my strict unemployed budget, of course.

Hopefully I won’t be unemployed for too much longer.  I am doing what I can in terms of applying for every role that looks like I am suited for, and that looks at least vaguely interesting.  I’ve had four telephone interviews over the last week – one I know I won’t get, perhaps two, but one has led to an interview this Friday.  A very interesting role and very interesting company (of course I would say that just in case they are reading!).

Importantly, I also have an interview tomorrow for the job that I did the coding challenge for.  I was really happy with what I did, albeit knowing there were one or two areas that I didn’t have the time to put into it, and it seems my interviewer was impressed too.

I’ve had a good feeling about this one right from when I sent the application, for some reason.  Of course, I may be up against more suitable or more experienced candidates – who knows.  My Dad told me not to get my hopes up but balls to that – I have my hopes up.  I may be a realist but I’m generally an optimist too.

And there are other jobs that I have applied for directly (ie not through those blinking job sites…I could do a whole post just on my frustrations with those) that I think I have a good chance of hearing back from.  Lots going on.

I have always believed that I am a very employable junior web developer, more so by the day, and if I don’t do myself justice in the upcoming interviews I shall be disappointed.  If I do well, it is certainly feasible, without wanting to be too arrogant, that I could be offered one of these roles.  The most important goal is to represent my abilities.

Time to get back on with things – having fun breaking a website that I am making.  All for good reason, just a fun little project.  It isn’t shit enough yet but it will be by the end of the week (apologies for the swearing dear future potential employer, I am affably polite to face, I occasionally swear in writing).  Must sort out those link colours on this blog too.

wqewe

Looks awful doesn’t it?  But not quite bad enough yet…

December is PHP Month

I have decided that my studying needs more structure to it, and that I should concentrate on one particular language, framework or general area each month.

Granted it is now the 18th day of this month, with the Christmas period to come so there isn’t necessarily a huge amount of time, though I am still unemployed and there will be plenty more hours to fill until this changes.

I chose PHP as it is something that I am keen to solidify my current basic learning of, and expand to a level where it could definitely be classed as a skill to a potential employer.

I know the basics fine, if statements, loops, building my own functions, etc – I know that from JavaScript and the principles apply albeit the syntax is slightly different.

Two things that I am particularly keen to learn is how PHP works with MySQL databases, and how to structure a registration/log-in system. I do also feel that I should learn how to use classes and how Object Orientated Programming is reflected in PHP.

There are two courses which will teach me all of this in Lynda – PHP with MySQL Essential Training and PHP with MySQL Beyond the Basics. Totaling a whopping 25 hours of video, not to mention the additional time it will take me to code along with the videos, it would be quite a feat if I completed both by the end of the month.

eqweq

Not to mention that I have my own projects to finish too, including My Website Is Shit, where I will present the user with a horrendous-looking website to begin, and a button to fix it – it will then animate into a nice, finished state. I have only done the finished state so far, and I am not yet overly happy with it. It may well undergo a new iteration not long after it is finished. Its just something fun I’m playing with and who knows, maybe it will get me one or two projects, especially if I can integrate my sense of humour into it.

I’ve also promised a friend that I will do something for him – basically mock up a preview of a website. I’m sworn to secrecy though.

Then I do also have a PHP project that I’d like to do once I know how to use databases and log-ins. Hopefully I will get time to start it next month. It is something I want on the internet and it will fix an issue I have if nothing else.

Finally, in properly exciting news, I had an e-mail on Friday from a potential employer that included the words, “I had a read of your blog”, my first thoughts were “oh crap what have I written” but all positive and he has set me a coding challenge to do. Which I should probably start to do now.

I would give it the whole, its such an amazing opportunity, I’ve truly love to work there thing but he has already read my blog once and I don’t think that would be overly subtle.

But it would be perfect and not only that, they are ethically right up my street. I’ll say no more, I don’t want to get excited. I just need to prove that I can be their perfect junior web developer now.

I best get a shower and some food, and get cracking. Although I have a date with a crazy Cumbrian and a plate of gravy at 2pm.

I Was A Web Developer

I woke up this morning thinking “I might lose my job today”.

I did lose my job.

media-caspianmedia-comimage1988efe4d55b0ef6e71a5d4d2f16d3eb-60105ac69498ca8f3cd606aec0f3bdd9fd212469-700x481

The writing has been on the wall for a while.  Firstly there was the conversation a month ago about me not picking up PHP & WordPress up quickly enough.  Within a week I had much more knowledge and therefore also confidence about them – and my employers had noticed too.

But recently there have only been snippets of coding to do.  The most recent decent block of coding was nearly three weeks ago, and I was really quite impressed with what I did – for a junior.  It wasn’t noticed though.

And ever since then, all I had been doing was content loading.  Very repetitive and boring.  Copy and paste, copy and paste, copy and paste.  Not at all web development.

Ostensibly there is no place in their company for a more junior web developer like myself.  They need designers.  They need content writers and content loaders.  They need experienced web developers.  I simply don’t think they were large enough to handle someone with raw abilities that still needs a little manouvering in the right direction at times.

I do not at all hold it against them.  They were great to work for, great to go out for beers with.  The team were excellent, I worked with 4 genuinely nice yet intriguingly different characters.  Bar the last two weeks, I really wanted to work there for a very long time.  It is definitely going to be a successful agency.

They were visibly gutted to be letting me go.  They clearly didn’t want to be doing so – they said how well I fitted into the team, how well I worked with others – how much they really liked me as a person.  How I had never let them down once.

I was fairly gutted but I was also well-prepared.  I didn’t enjoy the repetitive, frustrating nature of the content loading in recent weeks (the software was buggy).  I am not sat here with a tear in my eye.  I am sat here with hope, opportunity and beer.  Maybe a slight tinge of disappointment.

The opportunity now is to spend the next few weeks working on my portfolio, which is weak, certainly compared to my capabilities – I know so much more now than I did 6 months ago when I created it and most of the websites on there.

After today which will involve nothing but drinking super strength cider, playing roulette machines in local bookmakers and finding out where my local drug dealers hang out, oh yeah and claiming lots of benefits…arrrrrggggh my back…where was I?  Oh yeah, after today I will get on with my myriad of projects that I have planned – in fact, not even planned but in my head.  And finish those I never finished months ago.

I could sit here and moan.  I could sit here and wonder what I could have done better – there sure are some lessons to learn.

On the way back I passed a funeral procession.  It was quite fitting – things can always be far, far worse.

I have no doubt in my mind that I will be a web developer, and a fucking good one at that.  I have come far in the past few years, especially this year, and I do not give up.

If you know anyone that needs a website, please let me know.

I will be a web developer again.

Being A Data Entry Clerk With Occasional Coding Duties

I have a junior web developer job.  My first one.  I am three months in.

Everything started jollily.  I impressed at first with my CSS.  Though I then had my probation extended as I hadn’t picked up WordPress or PHP enough by the time I started my first project that required them.

As soon as I had finished that project, I was feeling so much more comfortable using them.

And then the coding ran out.

I have spent all last week, and much of the end of the previous week, copying and pasting repeatedly.

I don’t want to sound ungrateful – I’ve been given my first opportunity in the web industry and dearly appreciate it.  When I was coding, I loved it.

Now I am doing nothing more challenging than copying and pasting (and with criticism of my punctuation too – despite using correct English punctuation rules).

copy-and-paste

I do appreciate that I am a junior.  I do want to muck in where necessary to ensure the success of those that have taken a chance on me.  But I fear a lack of progress – I still need to prove myself to them.

Annoyingly I have not had chance to do any coding in my spare time recently due to my hectic social life – London is hard to resist.  I have so much I want to do on my own projects, and so much I want to learn to improve my abilities in my job.  I am looking forward to a few purposely quiet weekends in December so I can at least practice my new-found WordPress/PHP skills.

I guess my question to anyone reading who has been a junior, is what did you go through on your first web developer role?  Did you have to do lots of tasks that didn’t involve coding?  Is it par for the course?

I am hoping that it is just a blip…I don’t mind too much, it’s mainly the exceptionally frustrating repetitiveness of it that was draining on me by Friday…I want to progress and pass my probationary period, which looks shaky, and data entry is probably not helping me.

This could have ended up quite a rant on Friday night but having had the weekend to think it through, I should understand that this is not going to be the perfect job all of the time – likewise I am not the perfect junior web developer.  Yet.

I just cannot wait to get back on with some actual coding.  Though may well be waiting until 6:30pm tonight to do so!  I will be a web developer again soon.

How I Became A Junior Web Developer – The Studying

It was about 5 years ago that I decided to look into becoming a web developer.  I was in a miserable corporate job that I hated.  I knew that I was about to be made redundant and I was trying my hardest to achieve that goal.  I didn’t know what I wanted to do but I knew I wanted to do something I enjoyed, something that gave me satisfaction, something that would challenge me.

Someone, who wasn’t a web developer, recommended a book to me.  I was considering a few potential career areas but after a few months of post-redundancy partying, I recalled the name of the book.  I forget it now – it was by Sitepoint – and it was a beginners book.

At the end of following the book (which probably took me 6 months – it shouldn’t have!), I had a very basic website, from a HTML page, a CSS page and something called a responsive CSS page which I hadn’t understood at all.

It looked crap but I had understood a fair bit of the semantics of it, certainly HTML.  Given how awful it looked, I decided without any guidance to learn Photoshop.

I bought a book and merrily (and slightly less slowly) ploughed through it until I had a basic grasp of Photoshop.  I still didn’t understand how to make my website look modern and respectable.

So I bought a book on design principles (The Principles of Beautiful Web Design).  Which was interesting but didn’t teach me any code which I thought was odd.  And then, when asking on a forum, I found out that web developers and web designers, terms which I had previously brazenly interchanged, were separate roles.

My first eureka moment.  I wanted to be a web developer, not a web designer.

So I bought another coding book, this time again a fairly beginners book on making a website with just HTML and CSS.  And when I had finished it, I followed some more wise advice from a forum which was to build my own website.  I didn’t do much in terms of changing the structure, but I changed some of the styling and et voila, I had a half decent website.  Well, half decent if it was 2008 as opposed to 2013 but at least it was responsive (ie positioning of structure changes for mobile/tablet).

It was around this point where I discovered the existence of online courses – if you are getting bored already, the list of the courses that I have completed are at the end.

I was also the point where I stopped partying every single weekend – ie the beginning of starting to put the necessary effort in.  Codecademy was a bit of a revelation, although when I was going through their HTML/CSS courses, I found that I did know most of it already – but it was useful reinforcement.  I particularly appreciated the instant feedback as to whether something was right or wrong.

It was there that I first ventured into JavaScript – another world entirely from HTML/CSS.  Following the JavaScript course on Codecademy was at times difficult, it being my first taste of it.  I followed this up by buying a large book on JavaScript for Beginners, I forget who by.  I followed that through, sometimes by typing into my console, but I didn’t really understand the point of the console.

I did also buy a book called Learn JavaScript In A Weekend, or something similar.  I can confirm that I did not learn JavaScript in a weekend.  2 years later and I am comfortable with the basics.

Unfortunately the more I learned, the more I realised I had to learn.  It seemed as though the list was becoming endless – jQuery, PHP, WordPress, Angular, React, SEO, Node, Express, SQL, Amp, animations…it was quite ridiculous, and I’ve only mentioned those that come to mind right now.  Not to mention just how difficult JavaScript is.  And everyone I spoke to online had a different opinion of what I should learn.

I had to make sacrifices.  10 hours studying a month was not cutting it.  I set myself a strict target of 10 hours every week:

function howManyHoursINeedToStudy() {

var weeklyTargetHours = 10;

var totalHoursLeft = “”;

var totalHoursDoneThisWeek = “”;

totalHoursLeft = weeklyTargetHours – totalHoursDoneThisWeek;

return totalHoursLeft;

}

howManyHoursDoINeedToStudy();

Or something like that.  If I only did 5 hours in a particular week, then the week after I would have to do 15.  Granted I often had a backlog of around 60 hours but then I’d take some holiday from work and clear it.  Yes, much of my holiday was spent learning to code too – not just weekends and evenings.

I also started some courses on Khan Academy on a variety of subjects.  First I did the JavaScript one, which confused me at first as they used processing.js which includes various inbuilt functions not naturally available in JavaScript.

I started with their Intro to JS: Drawing And Animation course, which was fun as I got to use JavaScript through drawing on processing.js which is more interesting than learning JavaScript abstractly – though as I mentioned, that they use processing.js did cause some confusion when I later tried my own vanilla JavaScript projects and tried drawing shapes!  Why isn’t rect(0, 20, 10, 20) giving me a rectangle?

They also had a course on making websites interactive, along with two more difficult ones, neither of which I have completely completed (almost!) on games and visualisations, and my favourite, which was natural simulations.

In fact, I enjoyed Khan Academy so much that I even went over their HTML/CSS courses to see if their was anything I have missed, and their SQL/jQuery courses too.  The ones that are taught by Pamela and… oh gosh, I’ve forgotten her name, are compellingly taught in a quirky and fun way – I think I fell in love with both course-masters at some point.

Not everything I enjoyed so much.  I signed up for a 6 month free version of Pluralsight, but found their teaching more monotonous – with little chance of evaluation and it was often difficult to follow – as I always re-code everything on a course, on my computer.

CodeSchool I also took up the offer of a free month, and a half price month, and did some of their HTML/JavaScript courses.  The JavaScript ones had quite a steep learning curve.  I’m not entirely sure why I did the HTML/CSS ones as by this point I was pretty on the ball with them.

I may have signed up to pay for CodeSchool, it certainly had promise, lots of evaluation points, some form of community and a very wide range of courses taught (probably too many as by this point I was signing up for courses on all kinds of things that I didn’t need to do).

But then I discovered Free Code Camp.  So this was around December 2015 and it was my aim to have my first junior web development role by the end of 2016.  Granted this wasn’t my first targeted date – I had previously said end of 2014, 2015, beginning of 2016 yadda yadda.  But now there was a plan and a true focus.  Free Code Camp was about to really help me.

I started on the easy tasks – it doesn’t teach a lot of HTML or CSS, so I wouldn’t advise starting with Free Code Camp – learn your HTML/CSS skills elsewhere.

It doesn’t even teach JavaScript that thoroughly – it certainly teaches you the fundamentals and enough to do some reasonably powerful coding.  Again, previously mentioned sites will teach you more in depth – they all have their strong points.

But where it excels is in both the algorithm and project sections.  The algorithm challenges really do make you think about how to use JavaScript, how to structure it, when to use chaining, if statements, for loops, etc.  My ability to use JavaScript improved significantly thanks to Free Code Camp (admittedly I’m still years and years away from those £100k a year jobs) – most other courses on other sites either asked questions, or asked you to fill bits in.  This was thinking about a challenge from top to bottom.

Then they have projects.  For these, you have to write a website – the most basic being a tribute site, which I did to a footballer, Dean Windass.  That was quite simple HTML and CSS.

They do go up in difficulty as you pass the JavaScript challenges, most recently I was working on ones using APIs – such as a current weather website.  APIs are not taught well in Free Code Camp so it was a case of investigating – though they also have an excellent forum where I did ask for help on a few occasions, and am sure I will do again!  Also you can see what other people have done with their sites, which I try not to do unless I am really stuck – though there is always a myriad of different ways to solve them.

So, that was pretty much me for the courses side of things, whilst I was learning how to become a web developer.

Now I have a job, for which I need to learn PHP and WordPress (quickly!), I am using Lynda, which is a subscription service (my company pays) and they do have some excellent courses on PHP and WordPress – something not easy to provide via something like Free Code Camp due to the local testing environment required.  It is a whole other world.  Lynda provides a set of videos, the courses are often quite long, longest I’ve found so far is a whopping 14 hours, but generally in depth yet comfortably so.  I haven’t done their videos on HTML, CSS or JavaScript and probably won’t, certainly not HTML/CSS.  They are excellent to follow along to, making websites from stratch or re-designing them and normally give you challenges too.  You can see my collection of Free Code Camp projects here.

I do stress the sacrifices that I’ve had to make along the way.  There were a few occasions were I just wanted to jack my dull accounting job in, with no money saved in the bank, and just concentrate on studying.  Maybe I could have taken a bank loan.  It would have been a lot quicker to have been studying/coding full-time.

But I couldn’t really risk not having an income, so studying part-time on the weekends, in the evenings had to be the choice.  So many social events, so many parties, so many cultural events that I could have gone to that I had to turn down.  I needed to get fit but had no time for that.  I was often very tired.  I ended up drinking too much Red Bull (counter-productive on tiredness).  I didn’t get to watch cricket often, drink beer, sit in the sun, go for walks in the country, go to the theatre, go to comedy shows, go to nightclubs, go on weekends away, get behind my DJ decks, do any art, etc etc.  Occasionally, yes, but nowhere near as much as I would have done otherwise.

And now I have my junior role, complete with significant pay cut, I cannot afford to do them!  Plus, I’m only at the beginning of my journey and now have even more to learn just to keep my job, let alone progress.

Next up I will discuss the other reading materials and useful sources that helped me along my way, followed by websites that I made to go towards my portfolio, and in the final post I will discuss how I approached the job application stage.  Hopefully I will write them before I am looking for a new job – things are somewhat precarious.

Here is the list of courses that I completed (or nearly), prior to being employed – those in bold are those I definitely recommend to beginners:

Codecademy:

HTML & CSS
JavaScript
jquery
Learn Sass
Learn SQL
Make A Website
Make An Interactive Website

Khan Academy:

Hour Of Code
Intro to HTML/CSS: Making Webpages
HTML/JS Making Webpages Interactive
HTML/JS Making Webpages Interactive with jQuery
Intro to SQL: Querying and managing data
Advanced JS: Games & Visualisations
Advanced JS: Natural Simulations

CodeSchool:

Try Git
Try SQL
Try jQuery
JavaScript Road Trip Part 1
JavaScript Road Trip Part 2

Pluralsight:

Pluralsight – Javascript Fundamentals.
Pluralsight – Introduction to jQuery.
Pluralsight – Learning To Program: Getting Started.

FreeCodeCamp:

Currently halfway through Intermediate Algorithmic Scripting

Learn HTML & CSS first.  And thoroughly, before you attempt JavaScript!

Here is a list of books I read:

Photoshop CS6 Unlocked
The Principles of Beautiful Web Design
The CSS3 Anthology: Take Your Sites to New Heights
SEO White Book: The Organic Guide to Google Search Engine Optimization: Volume 3 (The SEO Series)
HTML5 & CSS3 For The Real World
jQuery: Novice to Ninja
Implementing Responsive Design: Building Sites for an Anywhere, Everywhere Web
Drupal 7 Explained: Your Step-by-step Guide
Jumpstart Bootstrap
Jumpstart JavaScript
Create Your Own Website Using WordPress in a Weekend
JavaScript – A Beginners Guide – Fourth Edition
JavaScript – The Complete Reference – Third Edition
CSS Master (not read it yet)
CSS Secrets: Better Solutions to Everyday Web Design Problems (not read it yet)
Professional WordPress: Design and Development (not read yet)
Professional JavaScript for Web Developers (not read yet)

Still A Web Developer – But Only Just

[Written on a Friday evening]

My instincts can sometimes be way off.  But often they are really intuitive – sometimes scarily so.

I am two months into my new career as a web developer.  Employed as a junior with a requirement to do mainly CSS, PHP and WordPress.  Prior to starting, I had never touched PHP, and only touched WordPress through themes and plug-ins.  Never on the developer side.

But I’m reasonably bright.  I work hard and do pick things up, albeit not as quickly as when I was 18.  Too much time in nightclubs or is the pace of social media lives too much for my northern brain?

I am probably being too harsh on myself.  Which is common.  Either I’m a hero or I’m a fuckwit.  Coding simply is not easy.

My employers saw something in me and gave me an opportunity.

All started well.  I struggled with the PHP and WordPress – at first I was just staring at it thinking what the Donald Trump.  But I breezed through the CSS challenges.  Comparing this to my previous career as a credit controller was just a dream.  I used to work with my eyes closed and my brain dead.  Now I am using my brain all day, every day.

Even two weeks ago, my manager said he had absolutely no worries about me.  I still thought that I had a lot to prove.  I had made a mistake on a live site.  I had made other dumb mistakes.  I sometimes struggle to conceptualise what I am doing.  I sometimes spend far too long trying to work something out.  I often go for a far more complicated fix than is necessary.  And I do struggle to communicate technical ideas in human language, with confidence.  And I really cannot draw flow diagrams of how things work.

But since then, the feeling that all was not well started to grow.  I just started sensing things.  I had a project to finish this week, moving a website to WordPress – I had never moved a website to WordPress before, and got the wrong end of the stick with regards to the databases that used to be used – I thought that we were still going to be referencing them.

That was Thursday and I went home thinking, shit, I might get sacked tomorrow.  I was going to ask my manager for a chat anyway as there was one month left on my probation period, or so I thought, and I wanted feedback on what I could improve to ensure I passed it.

I considered getting horrendously drunk but thought better of it (gosh I’m getting old…or mature), and turned up at work on Friday morning.  In bright purple trousers.  Surely nobody could sack someone in bright purple trousers?

Ironically, WordPress suddenly started to click during Friday.  I had so many eureeka moments, both that morning and the latter part of the previous afternoon.  And then the dreaded message turned up during the afternoon, “James, please can you come through and bring your chair”.

It was fairly immediately obvious that I was not getting sacked.  Yet.  But I was getting my probation extended.  They are not happy with my progress with WordPress/PHP, more in terms of understanding the general environment, alongside some of the self-criticisms listed above.

The only surprise was that my probationary period was apparently two months.  I thought it was three.  Other than that I totally agreed with them.  It is hard not to agree with them – I have a huge amount of respect and admiration for them, and boy I love playing Devil’s Advocate.  Even if they had have let me go, I would have had absolutely no bad feelings about them – I genuinely like, admire and respect them both.

I would have been gutted for many reasons.  Mostly for letting them down as they have given me an opportunity that I may have struggled to get otherwise (I would have eventually).  Had it been the company I last worked for, I would not have given a monkeys.  But I am genuinely excited to work for them.  My perfect company – joining as their first permanent developer, watching a company likely to grow very quickly.

I love the company ethos, I love their approach, I highly respect their understanding of business and ability to communicate.  I have somehow landed on my feet – somehow managed the absolute perfect opportunity in the perfect company with the perfect managers…and they buy me beer – everything I have dreamt about and worked towards for for 3ish years.  Can you tell I’ve had a few beers?

I do have a history of fucking things up.  Or at least needing a couple of opportunities to get it right.  From school, two attempts at university, DJing, living arrangements, friendships – I don’t make things easy for myself.  Oh and have I ever had a job without the probation period being extended?  Once, maybe!  Yikes.

Now I have to react to it.  Let’s face it, I could have lost my job today.  My work ethic, team work, general soft skills and personality partly saved the day.  Plus my CSS skills.

Ooh and I just made it to the buffet car one minute before it closed.  Today definitely could have been worse.

Three months is what I have now to prove myself.  And I know after the amount of success and understanding that I had today that I can and will be able to do so.  I am going to spend more of my spare time studying again – screw enjoying life and London, it will have to wait.  I am going to double-down on my WordPress understanding – and find a blog that I can make my own theme for as practice.  Ooh like this blog – which is an unrepresentative shambles.

I am going to find some meet-ups in London related to WordPress and also buy a book or two.  I do not want to have it on my conscience come late January (my birthday – that could be an interesting present) that I didn’t do everything possible to succeed.

But I know the seeds of doubt have been sown.  When I have doubts about something, it becomes even easier to find reasons to entrench those doubts.  I am now battling against the flow, I now have to persuade two people that I am going to be their superstar, that currently think they might have to let me go.  I believe I will be, or can be, but persuading them might be harder than proving it.

As such I will also have to hedge my bets. Update my CV, update LinkedIn, sign up again for all the fucking job alerts and reactivate my profiles in case they turn around next week and say no.

The worst thing now will be fearing another fuck-up.  What happens if I notice that I’ve done something wrong? Do I ignore it and hope they don’t notice? Or admit to it and hope I don’t get fired?  I’m an up front honest person so the latter suits me more, but I’ve already noticed how I am responding to situations with trepidation instead of confidence.

I am not sure how to sum this up.  I do know that the really rough looking woman on the train keeps looking at me and smiling.

I am still a web developer.  Just.