From spare-time freelancer to full-time developer and beyond
Let me introduce myself… my name is Michal Nagielski and, as you probably guessed from this article’s title, I am a developer. I have been writing lines of code since 2010 in many languages such as PHP, JavaScript, Ruby, Python and many more. Before I moved to full-time development, I worked as a graphic designer and IT analyst. In my spare time I spend time with family, play guitar, compose music, practice martial arts and if I manage to find myself outdoors surrounded by nice scenery, I take some pictures, which you can admire for yourself on http://michaln.com.
I have to say that I also enjoy maths and problem solving in all forms. Whether we are talking about login issues or wobbling doors at home — I have to solve it.
Why am I telling you this? I recently changed jobs, and I had one of those self-reflective moments where I saw the journey I had come on since those bedroom coding days, and it occurred to me that I wish I’d had someone to offer me some advice in those days, and even more recently as I made the tough decision to move to another company. So, here is a little of my story with the advice I wish I’d had at the time.
Starting Out
All you need to get into development is spare time and YouTube, really. People set out down the developer road for many different reasons, and there is no right or wrong way to do it. Sometimes, people have their eye on the end goal (to make a career out of developing), but sometimes people (like me) sort of end up down the road by accident.
Back when I was a graphic designer, I also designed websites. This soon led to someone asking me to create a website, and I thought “hmm, maybe I could learn some basic HTML and CSS and put it together myself…” Famous last words. This soon turned into “it would be nice to have some interactions…” which led me to pick up JavaScript and jQuery. Then (I think you know the drill by now)… “how do I process and send a contact form?” which turned into me learning to write PHP.
Fastforward through many similar thoughts and I found myself with a stack of technologies I’d learnt. I was constantly pushing myself to learn more and more, sometimes offering products I had never made before, but I wanted to and so I believed I could. And when there is a deadline and a potentially angry client calling you on top of this… what better combination of motivating factors is there in the world to learn something new?
This is how I learned basic development. Whatever your starting out journey is, don’t be influenced by what others think or tell you to do (or tell you you can’t do).
Be your own driver and don’t be discouraged. If you want to try something, give it a go.
Getting Serious
Once you know how to deliver the basics, you will probably start asking yourself — “am I good enough to do this as a profession?” The truth is, “good” is difficult to pin down, especially when you have been going it alone for a while with no-one else to measure yourself up to. All you can do is give it a go and see if a company will think you are “good” enough to give you the opportunity to prove yourself.
When I first started thinking about developing full time, I spent a good deal of time and energy worrying about whether I would be “good” enough, but actually, when I landed my first permanent role I was told I was working above Junior Developer level. So all that worrying for nothing!
If I could send a message back in time for myself, I’d say — just stop worrying and go for it. You might surprise yourself!
So, my advice would be: start applying for jobs and be honest with yourself and the companies you apply to. You might get an opportunity straight away, but chances are you will get knocked back again and again. It is a competitive market out there and getting your foot in the door is never easy. (Of course, you should know by now how good things take time. Just think of all the errors you had when you put your first lines of code together!) Stick at it and don’t lose hope.
Your First Developer Job
Congratulations! Now begins the real journey.
You will quickly start to realise that there are tons of things to learn and you will be questioning your skills every five minutes.
The more questions you have, the better the job is for your growth.
So, every time you have a question, think of this as an opportunity for growth and not as demotivation.
In my first role, I was keen to push myself and learn fast. One example of this was deciding to learn to use Linux. I noticed a lot of the other devs around me were using Linux, so rather than being scared by this I thought — what a good opportunity for me to learn to use it. Now it is my main development OS.
So, accept the fact that you are not as experienced as others. The sooner you make peace with this and realise it has nothing to do with who you are as a person and the potential that is inside you, the better. Of course, this is not a permanent state, but rather see it as a “for now” state and work to change this.
Fast Forward a Few Months/Years
So, you’ve been a developer for a decent spell of time. You’ve learned a lot. You may have even been promoted to mid level. But somehow you still don’t feel satisfied and fulfilled in your role and you are not sure why. You may have noticed that coming to work is not as challenging and exciting as it used to be and you are getting tired spending less time delivering projects.
I found myself at the metaphorical crossroads wondering what to do recently. I felt like I was missing something. Even though I had progressed so much since I started with the company I found myself craving the early days where I was learning something new everyday and pushing myself beyond what I thought I was capable of. But, I had only worked at one place and didn’t know what to expect from other positions. Should I stay put and figure out a way to restart my learning? Or should I jump ship in the hope that another company can offer the excitement of learning new things in a different, greener land?
If you find yourself in this situation, only you can make that decision, but here are some things you might want to think about:
- Are your feelings of dissatisfaction coming from the role or is there anything internal driving this which might follow you to another company?
- Have you tried asking for a new opportunity at your current company? There might be new and exciting projects available to you if you were to just ask.
- Do you know what else is out there? Make sure you look around carefully, talk to people at other companies and find out why they work there.
- Do you know what is important to you? What would your dream company be like? Make a realistic list of things that are deal breakers to you, now how does your current company compare to that?
It was at this point, after a lot of thought, that I decided I needed a change. Whatever you decide — whether it is to move on or to kick-start some new learning at your current company, never stop asking questions. Hang on to that feeling of working something out for the first time when you first started out, that is why we develop. Never lose it.
If you found this interesting, watch out for my other articles coming soon — “Why Developers Leave” and “Why Developers Struggle to Find a New Role”. Useful if you are a developer and you feel like you need a change, or you are a company or recruiter working with developers.