Back in 2009, I was fortunate to find an advert in the paper for a junior PHP developer. I had been using PHP for around a year at this point. I had not been to University or collage to learn any programming, it was all self taught. I applied and was a successful candidate and worked there for just over a year and a half.
Me, a junior? Cool!
I had only really been a hobby developer in my spare time.
Within my first role I was part of a team where we managed an internal application for the business. It was your usual set up, a change team, development team, a person who tested the changes and so on. Back then though I was still learning PHP and MySQL. I had only really been a hobby developer in my spare time. This role was going to allow me to understand PHP and development ethics; or so I thought…
My first job was a brilliant introduction into the world of application development and I owe a lot to my two seniors. However I felt like I was not learning an awful lot, and as time went on, I was fixing issues that I was not 100% confident with and was working on things I was not familiar with and was asking questions to the team a lot which knocked my confidence as a person and made me question if I was in the right career due to certain members of the team as they were holding back key information and not actually helping me like my seniors were.
My first move within my developer career
Exiting times, I had found my next step in web development; I could make my stamp as a developer!
Around the time of my second Christmas at the company, I found an opportunity at another place. This was to create a business web application. Exciting times, I had found my next step in web development; I could make my stamp as a developer!
This, unfortunately was not the case. The role was not what was advertised and nothing was ever set in stone in terms of time frames. There was no structure to the project and I was not able to fully learn about the business which hindered any development as well as being pulled from the project to work on Wordpress and Typo CMS which I had no idea of how it worked nor did I have the time to learn it.
I lasted around 3 months. My shortest ever job in my working lifetime so far.
A sensible choice.
2014 was the year I started to become a professional.
My third job in two years. Not the best thing on your resumé, but I had my reasons. This time I searched around and researched the business I was applying for.
I was successful in the application and started the following week.
My first year here seemed good, I was involved in a fair few projects which was great; or so I thought. I yet again learned more about myself. Within a year into my position, I found I was trying to fit in with the team which was effecting my performance and judgement for what I was getting paid for; developing the business, it’s applications and tools.
I had a discussion with the other developer I worked closely with, I explained that I didn’t feel I was where I wanted to be and explained my concerns. I asked him how he manages his time and creates estimations. Over the Christmas break I started to work on my time management and wrote an article, self management, about what I had learnt. I then started to apply this in my job.
2014 was the year I started to become a professional.
Throughout the year, I started to learn a lot about what it was to be professional, learning about testing (only phpunit testing at this point), design patterns, coding standards, working as a team member and become a clean coder.
This was all thanks to the guy I worked with, my senior. He was the person who introduced me to PHP Unit testing, got me to read ‘The Clean Coder’ by Uncle Bob and also introduced me to Domain Driven Design. All these new found things I had started to learn that year has made me who I am today.
Just before Christmas 2014 I moved job again due to not being happy with the team and unfortunately certain issues snowballed, with partly myself to blame for by not addressing them fully and in a quicker time frame.
My time here was a time spent learning a lot about my career path, professionalism and myself. For that I thank my manager and my senior developer for helping me become a better developer.
From junior to now
Since 2009 I have managed to move from a hobby coder with basic HTML, CSS, PHP and MySQL knowledge to being comfortable to look at other programming languages, design patterns and read books which have all gave me a greater understanding about my role.
If you are just starting out, starting [or are in] a junior role, at university or have been in the profession for x number of years; I suggest reading (PHP Books), following people on Twitter and getting yourself on GitHub as a start.
Whether you know the language you want to use or are currently developing in, look at online resources, talk to people involved in the community, sign up to mailing lists and don’t listen to others because you think they are always right, but because you can learn from them. Even some of the most influential people out there are not always right, and the best ones don’t protest to be either, but you will learn something from it.
Get your head around time frames and the tracking of time, it is so easy to get distracted when you enjoy learning and doing cool things. Talk to your team and seniors, from issues with coding to issues with team members.
That place that you are working in is where you spend around 8.5 hours of your day with people you don’t really know and may or may not like, so make sure you are happy there and let your team/manager know if there is a change or there are any issues that need addressing. This will affect you as a person, as a professional and will cause the business you are working for to suffer.
Work on projects of your own outside of work, even if it is a simple ToDo app, or your own twitter clone. Work on it, learn how to structure your code, how to name your classes and methods, how to separate logic and how to create that well thought out database schema. This allows you to make errors and learn from them. Push it all up on GitHub.com and you can share it or easily tweet someone about the issue you are having with a reference to the code. You can also learn how to write them informative commit messages instead of
Added buildPage() function which tells you nothing significant from a git log.
Above all, to be a professional in my opinion is to enjoy what you are doing, think about what you are going to write and how the end user is going to interpret what you have artistically designed and created. With no care taken or lack of attention to detail then your product, feature, refactor and whatever else will show not just in your code base but represent you as a developer.
These are all things I have taken from my own findings, I may have the wrong view or thoughts on some sections but it is my interpretation of it all.
When starting out, don’t just become a bug monkey. Prove yourself, ask questions and above all enjoy what you do, the language(s) you use and be part of the community, these will be massive pay off’s in more ways then one and quicker than you might think.