Learning serverless Netlify/Firebase Functions as a New Developer
While making the decision to change careers from the hospitality industry to a Software Development Intern after coming out of a six month, part-time Full-Stack bootcamp, I thought I had all the materials I needed to have a smooth transition. I quickly learned that the development field is an ever-changing, knowledge-expanding fantastic world of constant learning. The intention of this post is to provide insight to help anyone who might feel slightly lost in their development journey and to communicate that some of the feelings you may have are in fact extremely common, especially for new developers.
My first piece of advice:
Always keep an open mind, be open to continuous learning as well as healthy feedback. You will be amazed with your self-progress; I can promise that much.
At a future point, I would be happy to publish a step-by-step guide for setting up your application with Netlify functionality utilizing Firebase’s CloudFirestore for those looking specifically for that type of guide. For now, this insight is based off my own experiences and opinions and I can only hope this post is beneficial to you!
Learning serverless Netlify/Firebase Functions
My weakest knowledge point in development was, and still is, Back-End functionality. Beforehand, I could spend hours with the easy stuff (in my opinion), HTML, CSS, developing an entire webpage that LOOKS beautiful, yet not too inclusive of extra functionality. Sure, I had some experience with RESTful and CRUD API implementation, but not nearly as much as I ended up needing in the coming weeks.
My first technical task with Techucate was to create an application from scratch and jump right into creating serverless lambda functions. My first reaction: “Wait - was that English?”. My first instinct was to create the application with REACT, since this was the framework I had the most recent familiarity with. I decided to pick an easy subject: The all-too-common to-do app. My internet search consisted of, “React app with Netlify Lambda Functions”, which led me to a wonderful tutorial written by Yusuff Faruq. Check out his tutorial here on logrocket.com if you need a great start!
Side note: You may hear from others that a to-do application is one of the least favorable to choose, but I would absolutely encourage anyone to choose this subject for any project they want to work on to improve skill. There is nothing wrong with picking a seemingly simple idea and completely making it your own!
Organizing your thoughts and finding a great place to start can be challenging. I will highlight a couple points of which seemed to help my organizational process in hopes that it will benefit you as well!
“Master the art of GoogleFu” – A.B., Bootcamp Instructor
I knew my first step with learning Netlify serverless lambda functions, before finding Yusuff’s tutorial, was to Google. Google everything that I could. Even if you are not sure what to search for, just start somewhere. My suggestion is to create a folder on your bookmarks bar and save each site that you even slightly understand and that you think will provide you with resources you might need. A good habit to practice is refining your search when you can. This will not only help you find potential answers to your questions but refine your context communication skills when searching for insight from a colleague. Great places to start:
Read and Check the Documentation
Nearly every piece of information you try to implement into your application should come with some version of documentation on its website. Check the docs – try to engrave that into your knowledge bank. Much of the time you will find the answers to what you might be looking for and the documentation is usually well-written out. Here is a snippet from Netlify’s documentation:
Embrace the Tornado of Knowledge
Learning hurts, physically and mentally, and that is part of the process. Someone can claim to be the most logical and intelligent person on the planet, but it is not like they were born knowing all things coding and development. Your experience will take time, patience, commitment, persistence, and much more that you are unaware of. Try to embrace the periods of staring at your screen, trying to figure out where to start after you have bookmarked 100 sites, and accepting that you will learn it eventually. I will review Imposter Syndrome later in this post as it ties into much of this.
Progress Timespans Will Shorten
I spent the first couple of weeks of my internship working on just ONE of four functions, all of which I had a reasonable timeframe to complete. Although, I had mixed feelings about my progress, as it seemed to me that I was spending way too much time on the one function. I was not patient with myself (or with those around me) and panicked, trying to ensure I met my proposed deadline while keeping my head above the learning water.
After completing the first function, my second function took half the amount of time and the other two functions seemed to have taken less time as well. Granted, the total of four functions did take me some time to complete, since I was learning material I had NEVER experienced before. Remember to give it some time, be patient and persistent with yourself and you will get it. The results are incredibly rewarding for your self-growth.
Take Notes and Seek the Knowledge of Those Around You
There are three people (aside from ALL of Techucate) who I sincerely appreciate the guidance from during this experience: My amazing husband who has helped me push through many instances, and seems to have the most patience out of anyone (also a Software Developer), my mentor and CEO of Techucate LLC, Zach, who continues to push through with guiding a brand new developer and the frustrations that may come along with that, and myself.
I am not mentioning myself to emphasize anything that I have accomplished – that is far from it. I mention myself because I am passing learning curves and through ceilings that I was not sure I was capable of. I have much to learn still and always will, but trust in yourself and you will take yourself far. Although I may have made small steps, I know I’m on my way to something rewarding.
Also, take notes during your meetings, from those around you, the documentation you visit, YouTube videos you watch, any resources you can get your hands on. Review the notes and the knowledge that has been provided to you and you will be thankful for it.
The Rewards are Exciting
People mention it all the time – those, “Ah HA!” moments - the lightbulb moments. These instances are incredibly exciting, and you will experience them! Your persistence will pay off in ways such as being able to finally communicate what exactly you are trying to create, detailed debugging issues, questions that contain context pertaining to what you want to figure out, and fellow developers will be able to understand much easier as well. Essentially it may be compared to learning a new language and finally being able to communicate with another person who speaks that language. Persist for those instances.