I turned one year of writing code full time sometime in the 31 days of August that just recently ended.
Honestly, I cannot believe how fast time has gone by. I remember reading different articles from programmers about their first years of writing code, and be thinking: “When I turn my first year of coding I am going to write about my experience.” Wow, a year later, here we are writing it.
I want to start this introspection noting that doing a career change to web development has been an assertive decision. I do not think that programming the web would motivate me so much.
To solve a problem by writing code gives me the same dopamine hit as when you receive a ‘like’, a heart, or any social media notification.
Sure, I understand completely that this type of motivation does not come to anyone initially. And everyone has their own style for processing information. But, if you are consistent, you will approach each new coding challenge with less difficulty.
New Challenge: Write Code
I write code full time since a year ago but I started to write code around four months earlier. During that period, I searched and tried multiple resources online. I lost the count on how many resources I tried to learn from, but with only a few I experienced that ‘Ahá’ moment. My article Resources for Newbie Coders lists different articles that have helped me to understand coding.
I write this because the process of searching for resources to learn to code on your own can result in discouragement. I felt like an idiot many times because, after trying very hard to understand basic concepts, I felt that I did not understand the language, that it was too abstract, and that this world was not for me.
But later I realized that I was not an idiot. The resources I was using, were not the type that would really help me understand a topic. Therefore, I needed to understand what type of resources would help me learn.
I understood that after reading the book, Learning to Program by Steven Foote. From the first chapter. You are doing a coding exercise that you can relate to real projects. It helps you create a plugin that blocks Facebook from your browser. Because I did not use social media before starting this blog, I found the project that was a clever way to catch my attention.
Also, Steven Foote writes in tune with how my mind comprehends. I felt that I was reading a colleague, not an erudite professor. For that, I cannot stop recommending the book.
When I understood that my web development learning style was to perform theoretical problems and perform practical problems, I proposed to myself that I would perform a series of personal projects. With these projects, I would learn the languages commonly used in the current industry and create my personal portfolio.
One Year of Writing Code
When you do a search about learning to code on your own, one of the projects that you typically come across is the 100 days of code challenge (#100DaysofCode). A challenge about writing code for 100 straight days. At first, the challenge was interesting to me because it makes you structure your time to learn a difficult topic on your own.
Eventually, I did not start with that type of project because I know that I put too much pressure on myself to meet my set objectives. I know about myself that for me to learn something new, I need to take my time, and if I try and hurry things up, a sense of dislike begins to take over. If I want to make a career change, I cannot begin it with some negative sting.
Now, how can I learn to structure myself to learn how to code if I can barely even make a basic compromise of writing code for 100 straight days?
It has 30 videos, where you build 30 different projects. The excellent thing about this course is that, not only Wes explains very well each topic, you can practice writing code for elements that you would use normally. Therefore, you can relate it quickly with what you would encounter on a daily basis. I still use these videos as references and a lot.
Although the concept of the course is to follow each video for 30 days, I would follow them on my own time. There were days where I was sufficiently motivated to follow 3 videos back to back. There were other days that I did not follow any.
Now, every time I practiced, I felt the difference between days. The difference in the sense that when I started to build a new component, I felt that I could continue to build the component on my own instead of waiting to follow the video, or wait until the video was done so I would try myself.
Then the first time came to challenge my practice.
A friend was in charge of organizing a fair booth about ecological conscience. Her group wanted an activity where the participants were to make a compromise to make a small change that would impact and help the environment.
My friend was searching for an app where she could create multiple counters with images and personalized texts referencing the pre-established compromises and give them to the booth participants.
By then, I already had made through a couple of We Bos’s video course. Also, I had worked with Zell Liew’s “How to Make a Calculator’ Tutorial”, so I was comfortable enough to take the challenge.
My friend and I came to an agreement that I would work on her specifications for me to practice code. If I finished the app on time, I would send it to her so she would use it.
This application took me about a week to complete. I would not know if it took me a lot of time or a little time, but I met the deadline. Therefore, my friend used the app for her activity.
She let me know that the reactions and feedback from the participants and colleagues were excited and amused that she could find something so personalized.
This project opened my appetite to continue working with this, because the dopamine shot I received after listening to my friend’s feedback, empowered me. To feel that I can solve something, on my own, using code felt great.
My Portfolio from Scratch
I felt it was a good idea to work in my portfolio while some other idea occurred to me, or another opportunity presented to me. I had this idea because I read many articles that highlighted the importance of creating your portfolio for credibility in the industry. The portfolio is your way to showcase your final work and who you are.
Originally, I wanted that my portfolio would have some kind of animations, so I learned a lot about animations, both in gifs and CSS, and styling. Also, I wanted to create my portfolio from scratch so, again, I could practice writing code. Without any template.
We can debate if starting the portfolio from scratch is worth it, or not. There are multiple templates that facilitate a web developer’s job if you want to deliver.
I think that if you do not have another project to work with, or you do not have any idea on what to work on, it is not a bad practice to make your portfolio from scratch. But, it is not something you must do to show your abilities as a developer.
But, I left this project incomplete.
I know, I recognize that I never ended my portfolio.
I did not finish the project because I never decided, nor maintained firm, on the portfolio’s design. Each time I searched for inspiration, I would want to change the whole thing. Every time I would write code for the portfolio, I would redesign something, or I would start from zero.
Someday I will finish my portfolio to showcase my different projects. Meanwhile, I will work on this blog that is NOT made from scratch and its made with WordPress theme and plugins. I needed to make my life easier once I got more project opportunities.
The first project I worked with my partner also happened during this past year. TAIR (Tokenized Airtime) was my partner’s initiative which sought to automate the capture of events through radio waves. My role in the project was to ensure the quality of the tool.
To facilitate testing of the tool I designed a system that would automate a big chunk of the work that was being done manually. Part of the job consisted of cut and paste audio clips for later categorization. The system was designed with ReactJs and NodeJs. Also, it used WaveSurfer Js to work with the audio.
Because we hit a difficult problem that required too much time to solve and the team became too busy with projects that paid the bills, we gradually stopped working on the general project before implementing the quality system I designed. But, still, it was a great experience that I learn a lot from, especially about implementations of elements type audio.
Content Management System
On the About section of the ctrl-y blog, I mention that my partner was overwhelmed with work, so he was willing to delegate some of his work so he could mentor me while I would learn to code. This project marks my official full time as developer birthday, and already a year has gone by!
This project consisted of a redesign of a client’s CMS (Content Management System).
Because the project consisted of redesigning something that was already implemented, this project approach was different from everything else I faced previously. This time, I had data to design and implement the Front-End of the CMS platform. This redesign took around 6 months to complete.
The feedback around the platform redesign has been great. Furthermore, my partner receives significantly fewer calls regarding data entry. It was a win-win thing.
CINCO Engineering is a startup company that is developing a web-based Quality Risk Management Software for the Life Sciences Industry. I have been participating continuously in the development of this product for almost a year (work anniversary is in November 🥳).
The opportunity to work on this project presented itself very unexpectedly, but I was ready for the challenge. The project appealed to me overall because I used to work in that industry and I know first hand how tedious is to document the risk associated with a product, system or facility. This is my opportunity to help my manufacturing engineer colleagues to facilitate their work.
You can Meet CINCO following this link.
I have had the opportunity to work on different frameworks other than ReactJs and ExpressJs throughout my work experience with CINCO. I will not detail the language because of privacy stuff but this opportunity has been an excellent test. I have had to wear and balance my Manufacturing Engineer hat with my Web Developer hat.
Do not get me wrong. During my bachelor’s degree in Industrial Engineering, I had to do some programs and write algorithms. Also, I had to evaluate code as a Quality Manager. But I was programming industrial machines, machines that mass produce or do statistical equations. Those programs were not focused on the web, at all. So, for me, to use the web to improve processes is interesting and motivates me a lot.
🎶 Got to Keep On. Got to Keep On. 🎶
My first year of writing code as full time has been very fulfilling and I have felt a lot of encouragement that I was not feeling before. Therefore, I will continue to work and learn as I have been doing for now.
I feel like I am barely starting to understand a complex topic like web development. The more I understand it, opportunities to solve more complex problems will arrive, whether in current or future projects. So, I will keep writing computer language, happily.
By the Way
This article was written while I was listening to a playlist I created from the discography of the British band Bombay Bicycle Club. I follow this band since I discovered them in 2012. They were playing at Lollapalooza 2012. The band name stood out to me on the lineup so I searched and listen to them. I fell in love with their music instantly. Recently, they released a new single “Eat, Sleep, Nothing but You” which is a good sign that the new album is going to be another great work.