woensdag 4 juli 2018

One year ago I created a github account....

Last week Github kindly reminded me that it was a year ago when my account was first created. I decided to use this anniversary date as the mark of the start of my love and hate relationship with programming.
I remember starting the course in FreeCodeCamp, an open-source online training for web development. I didn't understand 90% of the challenges I had to do and googled almost all the solutions for the problems that I had to solve to advance. For-loop and sorting were mysteries to me and I had to read things three times to understand what I was reading. It was too abstract and I didn't really enjoy it. It wasn't until I had to make my portfolio or develop an application that I found joy in programming. Making real products or getting results using all kinds of algorithms and syntax I learned felt so rewarding, almost like reaching the end of a level and catching the flag in a game.

Still, making an one-page or an weather app was just the beginning.

A couple months later, I delved in java and android development through an intensive program for immigrants. Working in a team and coding together with others is much better than sitting at home alone, without guidance and structure.I finished the training and landed a job as a developer.

Needless to say, working as a developer without a solid foundation in computer science or math meant giving it 200%. I have been working for 4 months now, day and night. In the weekend, I spend time with my family, but will go to any hackathon or IT meetup if possible. It's tiring and I still feel incompetent. I don't have enough time and energy to get good. I love my job but sometimes I'm unhappy at how little I manage to do per day. However, if I take another perspective and look at what I have learned in the past year, I can see so much growth. I have learned:

  • android development
  • programming languages: kotlin, java, javascript, html, css, some python and c#
  • web frameworks: some angularjs and react
  • I learned something about docker, webpack, services offered by Google
  • I know how to make a custom skill for Amazon Alexa, the voice controlled device
  • I made a small game together with a team on a GameJam and won prices!
  • I won prices from 1 hackathon and 1 gamejam. (also won an award for the game we made during the training)
  • I know a bit more about the architecture of a big-scale IT system
  • I have learned how to use the command line to navigate
  • I have done Operation duties and can solve some incidents

Arguably, I could have learned more if I don't have a family and have better analytical skills. But I'm truly proud of myself for what I have achieved so far.
 In the coming year, I wish to learn/achieve:

  • develop (and maybe publish) my own app
  • Machine learning
  • python, C++
  • go to a conference
  • web framework
  • iOs development
  • backend/network architecture
  • Swedish

Only sky is the limit!






donderdag 8 maart 2018

My first three weeks as a developer

First week: 
Full with excitement, I set up my developer environment and talked to everyone. The friendliness and help from fellow colleagues were very welcoming. The microservice and massive system were overwhelming.
Second week:
Managed to do some small tasks and fixed some issues. But nothing rocket science. Had problem with deployment and working with command line. Setting up SSH/GPG keys and running a repo locally were also challenging. Overall, I ran against problems everywhere and had to ask for help regularly. Felt very incompetent
Third week:
The sense of incompetence continued. After my initial excitement subdued, I start to see some negative sides of working as a completely newbie developer. Even the way I approach problems is wrong. Not everything can be solved by googling and I have to learn debugging properly. Most issues are too difficult for me to solve. The language barrier makes me feel a bit left out and isolated at times, even though everyone tries their best to include me and speak in English when I'm around.

zondag 25 februari 2018

How I became a developer

This post has nothing to do with my son, but it documents my career change that happened so fast it seemed like a miracle to some and surprised most people.

With two master degrees in language and culture, I was educated to be a secondary school teacher. Although throughout my life, I had friends who were nerdy and who worked in IT, it never occurred to me that, one day, I would become one of them.

The progress was slowly started after becoming a mother. Being at home with my son gave me time to rethink what I want to do with my career and how to link that to what I enjoy the most in my daily life. To those who know me, I love sitting behind the computer, either gaming or browsing or whatever. Struggling with lack of self-confidence and insecurity almost my whole life, the blurred boundary between my real life and the digital dimension helped me to discover myself and to explore the world. Furthermore, I love to hang out with nerdy people, especially when they have similar interests. programming seemed fascinating to me but I had always thought that I couldn't do it. An emotion-driven person like me can never think logically and deal with lines and lines of abstract code and numbers.

But thanks to the support and encouragement of my dearest husband and this YOLO attitude I have acquired after becoming a mother, I started some online courses in web development. I found out that it's fun to create something and have a working result in front of me. Nevertheless, it was very difficult for me in the beginning, sitting at home without any guidance or structure. I stopped and was convinced that I'm not cut out to be a programmer, and decided to apply for teaching positions again.

Then we moved  to Sweden and my teaching career was thrown out of the window. Living in a foreign country without speaking its language and not knowing anyone, it would take me at least 2 years to qualify for the Swedish educational system. No international schools would take me since I'm not a native speaker nor a very experienced teacher. I put motherhood before my career and hence only had little working experience. I looked into cyber security and programming again and continued my online courses. I also signed up for SFI (Swedish for Immigrants).

Then one day, I saw this advertisement flying by while browsing Facebook: intensive programming training for immigrants with academic background. Only strong motivation required. I applied without giving it too much thought. One day later, the recruiting agency that organized this training called me and gave me further tests. Surprisingly, I passed the logic/math test and a programming test. The next interview process was face-to-face interview, in which they checked my motivation again. It wasn't even a week later that they told me I'm in. I would be one of the 30 participants that they chose out of more than 300 applicants! Although I accepted the offer, I was still skeptical and worried that I wouldn't make it, either because of my incapability or lack of time due to family. My son was sent to preschool just one week before the training started. The timing was almost too perfect.

What happened during the training could be another lengthy post, but it turned out that I was very good at learning how to code. My classmates all had engineering background and some even had a master degree in computer science. Why they couldn't find a job in Sweden still baffles me. I had little problem keeping up with them and sometimes was even ahead of them. I was the only one who scored 100 for the test at the end of period one, which surprised EVERYONE (I even got a personal congrats from the recruiting agency manager). I had very positive feedback for my individual project and my team won the best software design for the group project. Additionally, I used my soft skills to make myself well-received by my peers and to create a sense of community for the training, which was very appreciated generally. Long story short, I aced it.

However, I didn't get a single interview from companies. I applied to some companies myself and got eliminated as soon as they found out that I have no IT degree. I realized it's hard for companies to trust my abilities as I have no relevant background at all. As more and more classmates got a job, I started to feel desperate and doubtful. Even my mom, who initially cheered me on started to voice her doubt and skepticism. It was a big blow to me...to think that I have once again disappointed my family and that maybe it was another mistake I made in life. But my husband told me not to give up. I swear, I wouldn't have come so far without his support and unwavering belief in me. After finishing the training, I continued to learn on my own, but not with the same intensiveness and rigor. I tried to code everyday and keep my GitHub active. Everyday I applied for jobs and even managed to score some interviews. I figured perhaps it's better to do an internship first to gain some more experience. In the meantime, the recruiting agency helped me in finding a job as well.

Two months after the training ended, I suddenly got positive responses from four companies in about the same week. I managed to pass the first round and got to the second round, which is a programming test. Those companies really liked my personality and thought I have an interesting background. I "failed" one testing-related test and they went on with a more experienced candidate. One company couldn't offer me an internship even though they like me because of external administrative reasons. Two companies sent me programming tests with a tight deadlines....and suddenly I had to make choices. I decided to say no to the internship and put all my effort in doing the programming test for one of the companies. it was a test about making an expense manager using JavaScript, which I'm not all too familiar with. I spent one (traumatic) week completing the test, asking for all the help I can get and camping StackOverflow. I had to learn framework and package managers from scratch. Every feature that I had to implement did not happen smoothly. I almost rage quit several times XD That week I had very little sleep. On day 7, the application was not completely bug-free. I submitted what I managed to do and I thought I would never hear back from the company again.

But the next day, the CTO of that company emailed me back and invited me for an interview meeting the team. My initial response was like "Oh no! they will ask me a lot of technical questions" and "How should I explain the mistakes I made in the app". I prepared for the worst and went there nervously. The team interview turned out to be very pleasant. My "biggest mistake" turned out to be an advantage. And I managed to leave a great first impression on the team thanks to my super stalking skill, haha! I felt so good after the interview, I knew for certainly they would hire me.

And they did :)

Two lessons to gain from my story are:

1. Believe in yourself even if nobody else does. Keep chasing your dream and challenge the impossible. Being an underdog can be a disadvantage AND an advantage. It makes your work harder :)

2. The CTO handpicked me out of all the presented candidates because I was the only one who kept my GitHub account active. It showed my commitment and passion. I'm sure that some of my classmates code daily like I do, but how you present yourself is also one way of getting noticed that sets you apart from others.



zondag 21 januari 2018

2 years and 4 months

It's about time for an update! After D's second birthday, I stopped counting as I started focusing on my personal and career development. What followed was a period of busy days due to an intensive training in programming while D went to nursery school almost every day from 9 tot 4.
Despite that, I noticed the little changes now and then....my toddler is growing and he is picking up information so quickly that I really should watch out what I say and do. The age of "terrible two" is here and it's strong, but it's also the time when we have to teach him manners and rules.

Behavior:
He loves to talk and screams for attention if you are not listening. When I'm talking to other people, he would insist on "listen to me" or purposely lead you away from them. He likes being naughty but can say sorry and stop when he senses that you are too angry. It's also easy to make negotiation with him...like "you will get a teddy bear multivitamin if you cooperate in getting dressed and going out."
He mimics my angry mood and doesn't want to be tickled or touched too much/too rough. For a while, he is very possessive but if I insist on sharing, he would share his toy or drink with me. He likes to cuddle/being carried and giving kiss. He can sing songs in Swedish and English :D
He can put puzzles together with a bit of guidance. He likes to help, such as throwing away full diapers and cooking/stirring.

What I'm really proud of him:
- he poops on the toilet
- when he wakes up in the morning, he can play on his own or stay a bit quiet until I'm awake enough to get out of bed
- he can count in three languages till roughly 20
- he likes to draw, and can use comparative and adjectives: "this is bigger than that"/"a small red car"


Favorites:
Teddy bear multivitamin
Scary books like "Creepy Carrots" by Aron Reynolds
All kinds of vehicles
Monsters and dinosaurs
Super Why and some other cartoons
Cookie (but he knows that he only gets one per day so he won't cry for a second) and cake
Salmon/sushi/onirigi
Meatballs
Passion fruit
Milk tea and chocolate milk with honey
Singing