I'm James

Chronicle #1

  • chronicle

Since I embarked on my career change in last few months of 2014, things have certainly changed for me. For the past several years, I worked doing a variety of digital jobs for small companies along with helping run blogs & all manners of projects in my spare time to continue learning and developing. While a lot of those jobs were in the web domain such as managing e-commerce sites, web design, working with developers etc some of them we're more offline including setting up till systems (namely Checkout for Mac), databases & CRM (FileMaker & SalesForce) and looking after hardware solutions. I even gave a company talk and demonstration on developing for iOS back in the early days of the platform.

This post was originally written in the late Summer of 2015 - it turned out a lot longer than I expect. Grab yourself a coffee!

Up until this point, so much of my learning has been during my spare time (and still is now). Almost everything I know and have learnt has been in my spare time and last year when I finally, after many years decided to take the plunge and focus more of my time and learning on Front-End Development (although I would never limit it to just that - I have a thirst & curiosity for knowledge). After immediately making this decision, I began looking for a new job, one that would let me use my existing knowledge, passion and ability to learn quickly in order to chase the work.

As with most things in life, not everything goes to plan. I forwent the opportunity to work as a developer for a medium size agency instead taking a position in a large corporate (which I won't name) and working with digital content management & e-commerce systems (something I've done for years from Wordpress to Magento and Shopify). Although this wasn't what I'd initially had in mind, it seemed like a step in the right direction and the promise of a much larger pay check would certainly aid me in continuing my journey.

It's not always the obvious choice that turns out to be the best.

A quote from a good friend & senior developer that read over this post.

I've now been in that position for over 6 months and it was one of the best gambles I could have taken. Even though at this moment in time I am not employed as a developer, the amount I have learnt in the last 6 months both inside and outside of work has been excellent - learning a lot about the way large corporation's development process works (using Agile, contractors, the way the server infrastructure is setup and managed), I've run successful classes on HTML & CSS for novices and then expanded that to covering more advance HTML, CSS and Javascript, and also been able to have conversations with many veteran developers.

In my spare time (which granted as reduced since I now have long daily commutes along the dreaded M4 corridor) I've upped my skills as much as possible with HTML, CSS, Javascript, Gulp, Git, systems, servers and more - of course there's still a huge amount to learn. I tend to read as much as possible and engage with as many people as I can to make the most of the environment I'm fortunate enough to work in. I can't stress enough that its so important to converse and engage with other developers you work with (and your peers). It's great to help you over come things you may not fully understand or to pose solutions to projects they may be working on. In my experience they welcome a good geeky chat and are more than happy to help you learn.

So important to converse and engage with other developers.

I mentioned running successful classes, I have been running two courses HTML & CSS for beginners along with an intermediate class that focuses more on HTML semantics, more advanced CSS such as animations and transitions along with some Javascript & jQuery. I was approached to setup & deliver these course along with some help from a veteran developer. I assembled the lessons (slides & materials) and delivered them with the developer there to assist if needs be. This was a very exciting and rewarding challenge that has greatly helped me in an array of areas. Before running these classes I would never have stood up in front for 15 or more people and felt comfortable speaking; after running several sessions I felt more & more comfortable. Teaching has not only helped me develop my presentation skills & confidence but allowed me to strengthen my own knowledge. The process of assembling the lessons & delivering them helped me further advance my knowledge of the subjects and also dive deeper into them (I wanted to be prepared for any questions the attendees may have). All I can say is, no matter your confidence level or skill set, if you are fortunate to land an opportunity such as this then grab it & enjoy the ride. If your company currently doesn't have programs like this then why not try setting one up yourself?

If I'd taken the agency job, I would have had a lot of hands on time with code & learning (something that I still long for but I'm playing the long game and learning a lot while doing it), but by putting myself into a corporation and working with people with a lot more experience that me, I've learnt a lot about the business end of things, enterprise level software, communication and enterprise scale development (testing, deployments and maintenance) - all this isn't righting code, its the way the modern development world is moving towards where developers aren't just writing code but adding value to the team, solution and business in other areas too. I would never have had such a good opportunity to learn about all this had I just taken the first job that popped up for a developer. I believe in the long run this will only making me stronger knowledge wise and in turn make me a much stronger developer.

There's a lot more than just writing code.

As I'm sure any veteran web developer will tell you, you can never know enough. Every week there are new frameworks, libraries and technologies; its hard just keeping up with them but it's always worth keeping your pulse to the ground to know whats going on. It can be very tricky to know what to learn, I have admittedly struggled with that. There is just so much to learn but all I can say is embrace it. A good example of this would deploying code; FTP is a simple solution but now-a-days is a somewhat aged technology (although it's still very useful) and there are many other alternatives. When I first began looking into deployment methods I read about using Git, git was a tool I had just started using and so I was intrigued, long story short this lead me to read up on lots of deployment methods, then understanding building server-side which eventually lead to me reading up on and deploying Ubuntu servers etc. As you can tell, that's a lot of time reading & researching and a rather large tangent but the whole thing gave me a decent understanding of the options, processes and work involved. At first I worried that things like this were holding me back because I wasn't writing code but all of these hours reading and learning only made me thing a lot more about what I was doing when writing code and also made me realise that I don't want to just write code for the front-end, why? Because I'm curious, there is just so much to explore learn and get engrossed in.

One thing that did strike me more than I expected was the well documented 'imposter syndrome' - the feeling that your a fake, a fraud and not cut out for the job. As I mentioned before, you can never know enough and you have to learn to deal with that. Just knowing how to approach a situation, using your past experience, stuff you've read and communication skills is what you need, just like a builder won't have built every type of house design, neither will you or I touched all the different types of code, frameworks, libraries and languages at our disposable but that builder will go ahead and take the plans and build something he's never done before, just like we can with websites and applications. All of these things, just help make us more knowledgeable and our skill sets stronger. Just keep pushing to further your knowledge, get experience by playing around on your own or following courses and most of all talking to other developers (and if able too, see if you do some pair-programming with them).

I just wanted to know & understand what was happening at a much lower level.

I also made a rather large & unexpected change to my hardware & software setup in the Spring of this year. After using Mac's for the best part of a decade I made the jump to using Linux full time for several reasons - I'd started to get fed-up with the way OS X had been going for a few years and my MacBook Pro Retina running Yosemite was plagued with software issues and Apple weren't as helpful as I had hoped. Another reason was that I'd read somewhere that it made sense using Linux if you were running (or intending to run) servers that were powered by Linux, if you were using it all the time on your desktop it would help a lot when it came to remote servers and whoever said that (I wish I could find the reference) couldn't have been more correct. This all stems back to my earlier points, I just wanted to know & understand what was happening at a much lower level than just writing code for the front-end and placing in on a server.

When I spun up my first Ubuntu VPS on Digital Ocean, things we're a lot more fluent, it was just like the article had said. A lass moving to Ubuntu was something I'm glad I did and at the perfect time for me too. I am now running Ubuntu 15.04 on a Dell's latest XPS 13 (Intel i7/8GB RAM/256GB SSD) along with a 27" 2K display and my beloved Logitech MX Performance mouse (I wish I'd brought one of those years ago rather than using an Apple Magic Mouse).

Changing hardware also brought about big shift in the software I'd been using. Up until this point I'd been using mainly Sublime Text 2 for my text editor, CodeKit for managing my preprocessing and I had been using Terminal but not much as much as I do now. I'd chosen to move to Atom & Gulp with my move to Ubuntu, which worked out very well.

So to round off what's become a rather lengthy monologue, progress is progress and I feel like I've certainly come a lot further than I had expected (typing some of it out had endorsed that more than I would have thought) and in areas that I'd perhaps never known of or realised how important they were. My aim for the rest of 2015 is to continue at much the same pace.

I'm James © 2023