New Horizons: My First Steps Into The World Of Web Development
Published on March 18, 2023 by Hemanth
--
Over the past few years, I have been steadily writing down interesting and prospective project ideas. Each time, the idea hits me like a lightning flash.
In the beginning, I made the mistake of thinking that I would write the idea down later. To my horror, after an hour or so, I completely forgot about it. Having learnt my lesson, I started jotting them down.
While most ideas languish in my notes application, I have indeed been able to attempt a few. Most of these attempts failed, of course. But some of them did not. One such successfully-implemented idea is my blog. If you are reading this, then it is all thanks to this idea of mine.
Running a blog is no easy task. However, it is still a relatively simple idea: you write about what you value and share it with the (internet) world. If people like your work or gain value from it, they would choose to read it. It is indeed simple.
Not all of the ideas in my notes application are simple though. Some of them are very technical and require sharp problem-solving skills. This is the kind of challenge that stimulates me and motivates me.
There was just one factor stopping me from acting on these project ideas: the ability to write web software. In modern times, people call software āapplicationā, or āappā for short. I still like the term āsoftwareā better than āappā; I find the term āappā derogatory for some reason.
After miserably tolerating my lack of software development skills for a couple of years, I finally decided to take the challenge head on.
I have been doing everything I can and could do to learn the ropes of web development in as short a time as possible. In this essay, I share my experience and results so far. Let us begin.
I do not want to give you the impression that I have now magically become a web development expert. I am just a beginner. But I am a proud one at that. Why?
Well, I have been steadily building baby projects to learn the ins and outs of the trade. I started out by making simple CRUD (Create, Read, Update, Destroy/Delete) applications.
From thereon, I slowly started adding more functionality to my projects. My most recent one is a (deployed) web software that implements user authentication, authorisation, basic security defence, geocoding, etc.
Itās not much, but this is a level that makes me happy. Unlike earlier, I am now able to start building stuff without much resistance or helplessness. The more I build, the more I learn.
Next, one has to ask the all important question. What exactly am I learning for and where am I headed with this path?
What is My Aim with Web Development?
As far as I could see, most people learn the trade of web development with āemploymentā in mind.
This thought process eventually leads to people specialising in particular areas of web development such as front-end, back-end, database-administration, front-end web design, architecture-design, etc.
For reasons I will be revealing in a bit, this path did not (and does not) interest me. I chose to learn everything (I can) about the field of web development instead. To be fair, there also exists a technical term for this approach: full-stack web development.
But the more I think about it, the more the term āfull-stack developmentā feel like an illusion. No matter how much effort I put in, I donāt see myself becoming an expert in every side of web development. I accept this truth.
But people who claim to be āfull stack developersā also often claim to be able to do everything well. I am perhaps still a novice but this claim feels like a blatant lie to me. From my experience, a generalist can never outdo a specialist in their specialty.
What, then, is my goal in learning everything I can about this field? Simple: Build functional software alone. At the very least, I would like to be able to build functional prototypes alone.
I do not have the luxury of hiring a team of competent folks. If I wish to implement and test my creative ideas from my notes application, I have to learn anything and everything necessary to accomplish this task. In short, I do not have an option.
So far, I have established that this path can be frustrating and rewarding. Letās talk about the negative side first.
The One Word I Hate the Most in Web Development
Back when I first learned about writing software in my school days, one had to write literally every line of code from scratch. What surprised me about modern software development is the fact that one need not write every single line of code for oneās software.
One can import libraries and build on top of that. This is a fancy way of saying that you take other peopleās code (which they have chosen to share, by the way) and write your code on top of that to build something new.
All of a sudden, the world of web/software development seems like a Lego playground, as you pick and choose the modular Lego blocks you need. But there is a grave downside to this.
Donāt get me wrong. I am not very far into my journey with web development. But there is already one word that I hate passionately: āDeprecatedā. This means that some piece of software or code is going or is already obsolete.
Why does this happen? Well, technology and ideas develop further. So, it is inevitable for the new to be welcomed and the old to be ādeprecatedā. But what if one of your Lego blocks gets deprecated?
The Web-devoloping Spider ā Illustrative art created by the author
Aha! The code that you wrote on top of that block may come crashing down if you did not prepare for it. The problem has several levels of complication. But even without deprecation, simple version updates to āborrowedā code often break functionality in your code.
I donāt even wish to get started about the misery of watching your software work perfectly in your local development environment, while it gives the most bizarre errors in the production environment.
One version of one Lego block that works in one environment does not work in another environment.
I initially thought that this should not be a difficult challenge to solve. But as my software started using hundreds of these libraries, a one-man show turned into a recipe for sorrow and misery.
But hey, itās not all doom and gloom. There are certainly positives to this approach.
The Two Words that I Love The Most in Web Development
Working alone means that I also have a lot of freedom to drive project decisions that make sense to me. I have had the pleasure of interacting with some folks from the industry.
I might be weird for saying this, but there are certain red flags that I see among web development folks. A word of caution here: when I mean red flags, I mean red flags for my approach and am not generalising the notion.
One of these is when someone starts talking about āAgileā or āScrumā. All this is mumbo jumbo in my head and slows progress down. Sure, these can work when implemented well.
But then again, these are terms that people often twist and turn to suit what they are doing. In essence, terms like āAgileā can mean anything. So, if I donāt like these words, what do I like then?
Two words: Artificial Intelligence (AI). Before you judge me, I am not talking about the AI hype train. When Iām struggling with the most prickly of errors, I find myself turning often to AI for help, and it reduces my cognitive load significantly.
Working alone to debug errors can be depressing. I never knew that AI could be such a valuable social and technical companion. But here we are!
Where Does the Journey Go From Here?
To be frank, I have no clue. As the world of technology surges with an incessantly rapid pace of development, I feel like I am falling behind the curve every single day.
With this insecurity driving me, I am doing the one thing that I can do: learn and put in the work every single day. Perhaps one day, my work creates value for others as well. Time will tell.
If you are interested in learning about interesting technical projects, keep an eye on this space.
If youād like to get notified when interesting content gets published here, consider subscribing.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking āAcceptā, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-advertisement
1 year
Set by the GDPR Cookie Consent plugin, this cookie is used to record the user consent for the cookies in the "Advertisement" category .
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
CookieLawInfoConsent
1 year
Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie.
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Cookie
Duration
Description
_gat
1 minute
This cookie is installed by Google Universal Analytics to restrain request rate and thus limit the collection of data on high traffic sites.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Cookie
Duration
Description
__gads
1 year 24 days
The __gads cookie, set by Google, is stored under DoubleClick domain and tracks the number of times users see an advert, measures the success of the campaign and calculates its revenue. This cookie can only be read from the domain they are set on and will not track any data while browsing through other sites.
_ga
2 years
The _ga cookie, installed by Google Analytics, calculates visitor, session and campaign data and also keeps track of site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognize unique visitors.
_ga_R5WSNS3HKS
2 years
This cookie is installed by Google Analytics.
_gat_gtag_UA_131795354_1
1 minute
Set by Google to distinguish users.
_gid
1 day
Installed by Google Analytics, _gid cookie stores information on how visitors use a website, while also creating an analytics report of the website's performance. Some of the data that are collected include the number of visitors, their source, and the pages they visit anonymously.
CONSENT
2 years
YouTube sets this cookie via embedded youtube-videos and registers anonymous statistical data.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Cookie
Duration
Description
IDE
1 year 24 days
Google DoubleClick IDE cookies are used to store information about how the user uses the website to present them with relevant ads and according to the user profile.
test_cookie
15 minutes
The test_cookie is set by doubleclick.net and is used to determine if the user's browser supports cookies.
VISITOR_INFO1_LIVE
5 months 27 days
A cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.
YSC
session
YSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.
yt-remote-connected-devices
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
yt-remote-device-id
never
YouTube sets this cookie to store the video preferences of the user using embedded YouTube video.
Comments