The journey from Novice to Seasoned developer
Me being a novice engineer only wrote some rudimentary programs with bounded knowledge of the programmatic notations taught in the way which was restricted only for academics & not well aware of the application knowledge as to why these programs or concepts of the programs are really required in the real world.
Most of these learned concepts came to realization when I started my internship program as a front-end developer at a start-up. Yeah, even though I knew Java, Dot-net, C, HTML, CSS, and JavaScript languages it was all learned as different languages but never realized that it was all the same underlying concepts but named as different languages in their own representational syntaxes.
Even the interviews of the internship were a realization for me that it was never a test of knowledge as to how many languages I know, but rather testing the broad view of how can the knowledge be expanded when arriving at a solution for a problem given.
With all these realizations at a time, I had to jump into the project which was in the design phase & have to be started with the letter “A”. I was in a new environment with a new office, new people, new project, new keywords, new jargon; everything “new” & where that “new” started to shoot at me all at once like an “Arnold’s Terminator Rail Gun”.
Oh my god…!!! It was a start-up, and the bombardment of that “new” started to rain on me like the above GIF image. The project had to be started from scratch. We were 4 of them. Two for front-end & two for backend development. Of we 4 people, I was the fresher for the front-end who had to write an abundance of code. I felt the word abundance was suitable because I kept on writing…writing…writing… the code & if started to write in the morning, by the evening it was like a thousand lines of code with multiple files. In the end, when I saw those codes, I realized that it was just a peanut code that I had written in academics against these abundances.
I had forgotten day-night everything. Sometimes, I had spent the whole night alone at the offices so to just write the code as per requirement and since it was a front-end it requires a lot of Patience, Precision, and Perseverance to match the mockups., sometimes it would seem so fun to write but sometimes so frustrating to match the mockup. I realized converting the UX with some code to satisfy the product manager's requirements and the UX engineer was always a hell of a challenging task. Also, the requirement used to change in a day & all the code which was written yesterday had to be scrapped. (I felt like throwing away everything & run away from the office because all the hard work & night out was scrapped).
But…!!!
Learning never stops… It was the application knowledge I started to gain day by day. So many scrapped pieces of stuff exposed me to a new way of thinking, a new way of analyzing, a new way of writing the code — A total new exposure to a whole new fun experience of coding. That is where all my academic basic skills stood as pillars to support me on my journey of building the project & that's when I figured out the real meaning of education.
Errors, Issues, Mistakes, debugging, integration, writing, brainstorming, analyzing, exceptions, blockers, testing, building, compiling, deployment, production, staging, etc… All these jargons were no more jargon, instead it was embodied all over me like “Ghajini”(It a movie name & character named Ghajini who has a short term memory gets a tattoo all over his body to remember everything before he forgets). But I have not got any single tattoos yet. (I am still thinking of what to get tattooed).
There is a quote that I wanted to add up here:
“Experience is the name everyone gives to their mistakes.”
— Oscar Wilde
This is 100% true for everyone in life & that is what it adds to your experience. But there has to be a mentor who corrects those mistakes to channel the knowledge. Mentors are important in every part of life.
Be childhood; being mentored by Parents.
Be academics; being mentored by Professors, friends.
Be office; being mentored by colleagues.
I made so many mistakes in my career from silly to large mistakes. I was mentored which taught me how to be dedicated, smart, and hardworking rather than just working. Because mentoring wasn't just mentoring about how to write code, it was all about dedication, smartness & hardworking & more important commitment to what was promised. I'm in debt to two mentors with whom I have learned how to work.
Now from being constant to the exponential growth of my career, I was a full-stack developer in the company who could handle tasks in front-end(Angular), back-end(Java), DB(MySql) & sometimes DevOps as well. When some critical issues had to be discussed, I was also a part of a discussion and,
Mentoring & Mistakes made me from a Novice engineer into a Seasoned developer.
Keep Learning… Keep Mentoring…