I was thinking about writing this kind of a summary of my journey into software engineering for quite some time. And even though it is still ongoing, I decided to share it as I truly believe that “sharing is caring”: maybe it will inspire someone else to follow their dreams, maybe someone is also learning how to code and is having one of the “Omg, I don’t know anything and can’t code” moments. Whatever the reason is, I hope you’ll enjoy reading it 😉
How it all started…
I think first time when I was super happy about being able to build something on my own was high school. During one of Informatics classes teacher introduced QBasic to us. We were practicing it and I decided to solve one of his tasks he prepared for us. It took me quite some time (and a lot of lines of code) but in the end it worked! I showed it to him, and he quickly made changes: my code was rewritten to just few lines.
I cannot remember why I didn’t continue back then. What I remember though is the fact that I was considering choosing mathematics as one of the exams for my secondary school certificate, but in the end, I picked geography. Why? I discussed my plans with one of my teachers and I heard from her: “you better go with geography; it will be easier”.
Second time was during “Rails Girls Warsaw” Ruby on Rails workshops (if you never heard of them go and check what they’re doing). It was the time when I was already working in recruitment industry. I was super curious to learn more about that community and ROR but wasn’t seriously thinking about changing my career.
Here I’d like to pause for a moment and say huge “THANK YOU” to our Mentor: Olga Grabek! 🙂
Everything changed when I joined Microsoft in August 2014. Working with passionate people, on the projects using latest technologies made me feel that it would be good to get better understanding of how particular languages and programs works – not only know theory.
And as I am primarily hiring Software Engineers and working closely with Managers who are building/growing their teams, I decided to take next step.
Learning through online courses
Based on my experience I can highly recommend it and together with freeCodeCamp they’re just perfect (in my opinion 😉 for all beginners.
They are free and user friendly: you do not have to install anything; you just log in into your account and write code directly there!
At some point I felt that it would be good to try something else. Thanks to social media (again:) I learnt about Udacity. I decided to give it a try and it was very good decision: while Codecademy was mostly about reading text and doing tasks, here you have videos with topics being explained by industry experts.
Depending on language you want to learn or “path” you want complete you might be doing some coding on their website or using your IDE. There is a lot of free content available, but they also have some paid Nanodegree programs.
They offer a lot of courses – the trick is everyone can create content and become “an expert”. I would recommend you do some search online before investing money (even if it is only 10 euro) into something that might be not worth it.
Thanks to being part of #100DaysOfCode, #301DaysOfCode, #WomenInTech community on Twitter I was able to select great courses.
Videos on Youtube
Meetups and Tech events
It can be fun to attend them! Not only you have a chance to learn more about various topics, but you also have an opportunity to network (NEVER miss networking -> that is often the best part of every meetup or tech event!).
Don’t be afraid if you don’t know anyone: I recently met girl who came to the meetup because she had free time during the evening. Her background was not tech and she told me she doesn’t understand what speakers are telling about, but she likes the atmosphere and people.
And never think “you’re not smart enough” to attend them. When in summer 2018 I noticed on Twitter that WarsawJS is organizing regularly meetups (every month, if you’re in Warsaw join us!) I just thought “Ok, I’m going”. I knew that few people I am following on social media will be there, so it was a little bit easier for me but believe me: I had NO IDEA what they are talking about.
There are still cases when I feel like this, but the more I am into coding and going to meetups/tech event, the easier it is for me to understand them.
I was super excited to go on my very first workshop (it was about “unit testing”)! If you want to know how I felt sitting there among all other people who were already working as Developers and knew what do to have a look at this pic below (I just love it <3)
Did I know what to do? NO. Was I lost? Yes. But as group was really supportive (as well as our Trainer Rafał Pocztarski) and I’m the type of person that whenever I don’t know something I ask until I get the answer, I was able to understand a lot in the end:) I even made pull request to GitHub repository that improved frontend part of the application we have been working on!
Outcome: I liked that workshop that much that I decided to go on another one..and another…and… In total I took part in 7! And I was even able to help others when they were stuck or lost during coding.
Here’s full list if you are interested what I was learning about.
Working on my own projects (social media, mentoring, GitHub)
That was probably the most difficult part. Online courses, YouTube videos, workshops are great because you are following someone else. They tell you what to do and how to build app. But when you are about to start building something on your own, that is when “so how do I write that code” thoughts are coming.
I consider myself super lucky because thanks to my activity on social media (one more time let’s mention Twitter here;) I “met” many great people who were helping me overcome many challenges (Wassim Chegham – thank you for your patience, you saved me many times!).
Another benefit of being active online is community. If you’re using Twitter I’d advise you to follow i.e.: #100DaysOfCode, #301DaysOfCode, #CodeNewbie. You’ll see what they’re working on, you’ll understand that you’re not alone and you’re not the only one struggling with writing code.
2 years ago, I decided that “I want to become a Software Engineer and I need a mentor!”. I discussed that idea with my colleague from Engineering Recruitment team, Milena Iwańska and she asked me “Why don’t you find a mentor at Microsoft?”.
If you think I was 100% supportive of this at that time, you are wrong. I was full of doubts and wasn’t sure someone will be willing to mentor me (2 years ago I was just starting seriously learning coding, so let’s say I knew “zero”).
Long story short: in the end I found 2 mentors at Microsoft (one of them was my former candidate and we’re still continuing mentoring sessions – thank you Martin Petrla, I wouldn’t made it that far without you!).
I also learned what mentoring means to me and that I cannot imagine having sessions with someone who does not believe in me.
The more time I spent working on my projects, the more I believe in myself. I keep track of all my coding/learning activity on my GitHub. The project I’m most proud of: I was able to built from scratch my very first Chrome extension with Martin’s help (you can find it here).
Those are the most important challenges I had (or still have) to overcome while I’m following my dream to become a Software Engineer:
- Changing career path & switching to another role is not easy and does not happen overnight. You need to put a lot of energy, time and passion into it, otherwise you will not succeed.
- Combing full-time role & learning how to code – I wish I would have more time to code and that way make faster progress, but I’ve “9-5 job” and family. I also need to find time to relax and take care of myself. And sometimes I am just too tired to code and not opening my laptop for a week (the longest break I had was around 2 months).
- Believing in myself – we all have ups and downs. I had few moments when I wanted to quit, because I did not know how to write to code or I considered myself “too stupid to learn coding”. Being part of #100DaysOfCode, #301DaysOfCode, #CodeNewbie communities is great, but you can sometimes feel like you are doing less (or less cool things) than others. In my case I was also comparing myself to people already working at Microsoft as Software Engineers and believe me, I felt frustrated many time (luckily that was mostly in the beginning and I am not doing it now).
- Resources – there are many resources available and that is great. At the same time, it can be hard to pick the right one.
- Trying to learn everything – I always like to get deeper understanding of how particular things works, how they are connected, but at some point, I just had to focus on one area and stop jumping between topics.
- Haters – they are present and no matter how hard you are trying, there always will be people trying to put you down. Below are just a couple of thigs I have been hearing from completely anonymous people as well as from people who know me.
“Frontend is not serious programming”
“She’s just nice face looking for attention”
“Hahaha, good luck”
Below are some learning I want to share with you:
- Be open about learning new things – as I had moments when I doubted my skills, it took me some time to start being open about my plans and career aspiration. Since I became more confident I started sharing my coding journey here, on LinkedIn, Twitter and also on Instagram. I believe it might be helpful for other people following their dreams 😉
- Track your coding progress – this is what I decided to do. GitHub is perfect place for that. Also, you never know who might find your repositories useful!
- Attend meetups/tech events and programming workshop, be active on social media – all those things will help you on your journey!
- Don’t compare yourself to others – what you see is just a part of “their journey”. You don’t know how they life looks like or how much time they have to learn. Find your own pace.
- Taking a break is important – don’t put a pressure on yourself that you have to code every day. If you feel that you need a break just do it. Otherwise you might soon find yourself frustrated.
- Never give up – progress is progress no matter how small. Some people will change role in few months, others will spend a year or more to achieve their goal.
This was my very personal story about becoming a Software Engineer, I hope it will have a “happy ending” 🙂 Maybe you are also considering career change? Or you’re currently learning programming? Leave your comment 😉
*article was originally published on LinkedIn (11th November 2019)
Thanks for reading,