Thoughts after 3 months into full-stack engineering
“Only those who dare to fail greatly can ever achieve greatly.” ― Robert F. Kennedy
I made a decision - a critical one in my career - to jump straight to full-stack software engineering. I spent almost 2 years in backend development and in some projects I had to closely work with front end engineers, so I was curious how front end works and what skills required. So I decided to jump start full-stack ,not knowing whether I am gonna fit it or not. Lol.
Why I wanted to start full-stack?
As I told earlier I always like new challenges. After about 2 years with Java back end development I was pretty comfortable about the development tasks. I felt like I was starting to freeze my learning curve as I always was developing some REST Apis for various projects. Same flow and nothing much new. Doing same things for all day. For some small POC projects It was needed to develop pretty simple frontend uis but I had no skills. So I decided to try some ReactJS stuffs here and there.
Apart from that I wanted to learn the full flow of software product engineering. In long run I might not doing the front end stuffs all the time, but to work with others I should have the idea about how they behave. My previous Tech Lead was pretty confident about everything. He had a good idea about how fullstack works and time to time he works on both sides. So I thought to have a good career learning both ends is a good idea. So I was checking the opportunities to change my career into full stack space.
Front end is a different paradigm (I have learnt it after three months). It requires different thinking pattern and skill set. In backends I don’t have to care amount the UIs or how users interact with the product but just process data and present. While working with frontend I have to work about the UI/UX, resource rendering, response times, utilizing limited resources - lots of things.
So learning a full-stack specially stepping into front end requires lot of changes in way of thinking. And I thought it is valuable in the long run. I am enjoying it now.
How to ramp up quickly into fullstack space?
I believe in 20 hour rule. If you want to learn something new and perform a task, you can come up to a competent level by spending 20 hours on the material. So in the first few weeks I spent many hours watching tutorials, reading documentations and talking to people about different things. I learnt PHP,React JS and GraphQL quickly so I can learn rest of the things on the go.
Next easy way to ramp up is build something. Since the very first day, I wa fixing small issue and building things , so while I learning I could apply the concept to real world project so the ideas digest so quickly. I looked for how others have done it before and with that help did my tasks understanding the flow.
Even though, it is new area, I always apply my previous experience like DRY,KISS,YAGNI principles,Clean code concepts and OOP approaches. Concepts remain same while the technology changes.
The best way to learn is to talk to people and learn from their experience. When I got into fullstack I was curious about what tools I should work and other developers gave me good help on tools and extension so I didn’t want to spend lot of time on researching and reinventing the wheel.
Finally, I would say after three months of full time fullstack engineering, I feel happy about my decision to start it early and worth the effort.
Happy coding.