Daydream Driven Development

Heads Up!

This article is several years old now, and much has happened since then, so please keep that in mind while reading it.

So, I’m a Developer now! Most people wouldn’t know why that’s significant to me, rewind 18 months… and I would’ve told you I was a Marketing Manager. I was working as a CRM Strategist and fell out of love with my job, and I was daydreaming about becoming a developer. My work life balance was out of sync and I was struggling to cope with the increasing pressure and high demands. It was tough. I decided to change my career and here are some of the things I have learned over the last year.

1. Coding isn’t easy, no matter what anyone says

The number of times at meetups, conferences I would hear experienced developers say, “it’s that simple”, or “it’s as easy as that”. I’ve been guilty of doing this in the past when talking to a colleague, I would say to them how easy it was to build an email template from scratch, or it was easy to think of content for each email. Truth is, it wasn’t easy, it just gets easier with practice and time.

One of my most memorable “it’s easy moments” was when I was told how easy it was to invoke a method and instantiate a class, not knowing what those terminologies meant my anxiety would peak and I'd feel a bit silly. When you’re starting out and still learning to code, easy doesn’t cross your mind. I think the look on my face would give the game away, I’d stay like a rabbit in headlights, panicked. Since starting out with getting to grips with the code I have always joked that I’m having to manipulate my brain into thinking differently, almost breaking it to allow me to understand what on earth my code was doing. I went from ‘Hello World’ apps to looking at a real-world codebase in a matter of months and I can honestly say, it wasn’t easy.

meme of captian picard with his finger in the air, text reads Umm, yes I have a question... WTF?

I did find a way to overcome the complexities of code, which has helped make it a bit easier, I do this by keeping a glossary of “terminology”. In the beginning, I carried a little notebook around with my own code dictionary, adding new words which I didn’t quite know.

Invoke = Call

Instantiate = Creates an object, which is an instance of the class

Thank you, Google!

 

2. Terminology

One of the biggest hurdles I had to face, was getting to know the correct terminology that wasn’t “thingy-ma-bob”, “whatcha-ma-call-it” or “that thing”. I would feel nervous talking about my code, or reviewing other people’s code because I wasn’t sure what the correct words to explain what I was trying to say were, a great example of this was the time I told my colleague I had learnt what “Lamb expressions” did the night before or another occasion where I told a friend “I’d had a go at the backend” which was met with fits of laughter.

Meme of a lamb saying da!

I have since learnt and understand the terminology better and can confidently hold my own in meetings and stand-ups. However, I still have the odd slip-up… which has led to a few raised eyebrows.

 

3. Mistakes are ok

Making mistakes can be stressful, nobody likes to make them. I really struggled with the smallest mistake, I’d end up feeling anxious about owning up to them. Part of learning means that mistakes are going to happen, they’re not a bad thing. Unless you drop a live database table but are you even a real developer if you’ve not dropped a live table in SQL? I’ve learned this the hard way. My first code review I hid behind my monitor nervous about the outcome, as I was worried it would be called a fraud, I wasn’t and the feedback was more than helpful and taught me how to improve my code.

I found that I would make more mistakes when I was trying to learn everything, Angular, C#, Vue.js and JavaScript all at once. After a few “why isn’t this method working… oh, wait it’s a class, wtf... cries for help” I have discovered that focusing on one goal at a time is better than trying to learn everything all in one hit. My current focus is to learn more about Umbraco to improve my personal side projects, in addition to getting to know Umbraco I can also focus on a bit of C#.

Another key part of learning from your mistakes is knowing that not everything or everyone is perfect. There’s a famous saying about practicing makes perfect. I disagree, practice makes you better at something, it doesn’t necessarily mean it’ll make you perfect. In my eyes perfect doesn’t exist anymore and it’s taken a long time for me to realise that! If I’m struggling to get to grips with something I usually reach out to other developers, my colleagues, read the docs again, look up my question on Stack Overflow, or watch a tutorial.

An excellent piece of advice I was given by a developer when I first started out was to embrace your mistakes as they’ll help you learn, think differently and improve!

 

 

4. Being mindful

I went from knowing everything to knowing hardly anything, another learning curve I have found over the last year is that I’ve become more mindful. Learning something new can be tiring and difficult, sometimes this can affect your mental health, spending 3 hours learning at night after an 8 hour day can be exhausting. When I took part in the #100DaysOfCode challenge I kept a diary, and colour coded my days. I used a traffic light system where green meant it was a good day, amber not so good, and red meaning ‘it was difficult’. The below diagram gives you an idea of how my first round of #100DaysOfCode went. As the mindful map shows, I had mostly good days and a few difficult days. These were due to a number of reasons, I wasn’t understanding the code (mostly JavaScript), I was exhausted, or I was spending so much time trying to learn everything all at once.

mindful map showing how I got on in my first #100DaysOfCode round

Imposter Syndrome would sometimes rear its ugly head, during these times I would close the laptop lid and take some time out. After getting my job in Software Development, I struggled to deal with feeling like a fraud as in a few short months I had gone from writing ‘Hello World’ apps at home, making and breaking things to sitting amongst a team of qualified developers pretending I wasn’t doubting my own abilities. Even now Impostor Syndrome takes hold of me and eats away at my confidence, I don’t think it ever goes away, but now that I recognise the signs, I use the below strategy to put it back in the box:

  1. Nobody is perfect and everybody makes mistakes, even the seasoned pros!
  2. Stop comparing yourself to everybody else. We’re all unique, and we each have a unique set of skills, deal with it!
  3. BUT understand that nobody really knows what they’re doing
  4. Fake it ‘til you make it!
  5. Ride the way, as this will pass… be patient!

There are a lot of tips of being more mindful, I use an app called Stop, Breathe & Think to guide me toward a happy, more mindful headspace.

 

 

5. Find a mentor, become a mentor

The best thing I ever did was reach out to other developers and ask for help. Asking for help doesn’t mean you’re a bad developer. Having a mentor means I can ask (what I think are) silly questions, no matter how big or small. When I first started out I struggled with getting to grips with using separate CSS files, instead, I’d end up defaulting to in-line styling, I don’t know why that was the case, maybe it was a habit? After finding a mentor I started out by creating a HTML skeleton of a BBC News article adding the CSS to create a carbon copy of the article, and from there I built my CV site working with Sass and BEM, after getting to grips with code I decided it was time to learn a bit of JavaScript. Having a mentor teach me JavaScript has been incredibly helpful, breaking up the learning into smaller chunks has helped me get to grips with how most parts of it works. Helpful tools and books have been recommended to me which I didn’t realise existed, having a mentor has helped me realise there are more resources available out there than the usual learning material I’ve used previously.

A mentor is able to share their own personal experiences that will inspire and motivate you to achieving your dream. This can help prevent unnecessary mistakes. Another benefit of having a mentor means they can help you to set measurable goals. When learning to code it’s difficult to know what and how much to learn and you can feel like you’re going backwards. Starting out, you think you should learn everything at once to increase your chance of getting your first job as a developer it can be daunting, which area do you focus on, front or back end, C# or Python, JavaScript or TypeScript. Your mentor can guide you and help you figure out what direction to take, which can help you to achieve your goals as; without a set strategy of actions to achieve your aim, your goals become wishful thinking rather than achievable targets.

“A mentor is someone who allows you to see the hope inside yourself.” Oprah Winfrey

Over the last few months, I have become a mentor for some developers starting out. I’ve found that being the mentor has helped me to become a better teacher and developer. I find that I’m a lot more patient when it comes to solving problems and instead of tackling a problem from the get-go, I break the problem down into smaller manageable tasks. I’ve taught this to my mentees as, like me, you always want to run before you can walk. Going back to basics has also helped me stop being lazy with my HTML/CSS and to actually take time on making sure the structure and semantics are correct.

When reflecting on the past 12 months, I can’t believe how far I’ve come as a developer and a person. I could have added more to this article, but I think I may have hit my limit on word count. I have incredible memories; there have been tears and it’s all been so worth it. Being a developer isn’t easy, and at times you can feel like you want to throw in the towel, and then you have times when you don’t want the bubble to burst because you’re having the best time doing what you love.

Having a support network around me has helped me to continue with my desire and the drive to be a good developer, and making friends with so many Umbraco developers has also helped me to gain confidence in using the platform. The community have welcomed me with open arms since day one - no questions asked! I will continue to learn as much as I can and evolve and give back to the community and to help those #CodeNewbies that may need my help.

I’d love to hear about your most memorable moments during your career, or if you’re starting out and would like a mentor my DMs are always open, you can find me on Twitter @HolaJacquie, reach out and I’d be happy to talk more!

Jacquie Steele

Jacquie is on Twitter as