Why do I like building Web Apps?

The other day I got asked a question that I’ve thought about but never really taken the time to answer; “Why do you want to develop Web Applications over standard software engineering?“. So I started explaining my answer out to them and it occurred to me that this would be a good blog post.

So, why do I like building Web Applications?

My first reason is the range of technologies that you use on a regular basis. If I get asked to develop an app as a Uni assignment I usually end up just using one or two languages or technologies at max, usually C# or C++, as well as Git. Now compare this to when I develop an app for a freelance client; I’ll end up writing pieces of HTML, CSS, JavaScript, JQuery, AJAX, PHP, SQL, using mySQL, using Git and potentially many more different and varied technologies, furthermore this list doesn’t even include an app that is built using a framework or another library. Essentially, I like the fact that I usually have to use in excess of around 8 different languages or technologies to build a Web App that I’m happy with. This is partially down to the fact that I love learning new things. Any form of software development requires constant learning to stay on top of the game, this appeals to me as I’m attracted to learning new things.

Secondly, I love how the system or app I’m building needs these technologies to work together. I need to make sure the PHP script I wrote is connecting to the database correctly and that it’s returning the correct query result through mySQL with the correct SQL query, I need to make sure the AJAX is returning a value from the correct PHP script, I need to make sure every CSS rule I’m using is applying to the correct HTML tag, I need to make sure that I regularly add and commit these changes with Git, the list goes on and on… having to do so many things may sound tedious and difficult, but I love it. Essentially, making sure all the different technologies I’m using work together seamlessly and bringing my application together like building blocks, making sure they all fit together impeccably to create a seamless and whole solution. I like the beginning design process of building a Web App, having the thought process of “Right, I need a Database with these tables, I need to access the Database with this, I need to produce queries based on this script, I need to make sure the script sends the right values to the HTML, and I need to make sure the CSS is styling these values correctly. This is where I feel like I’m genuinely “building” the system. I love feeling like I’m bringing together different technologies in the same way that a builder brings different materials together.

Thirdly, it’s going to be a long while until the web platform becomes obsolete. It’s unreal how many people are dropping desktop software (like Microsoft Word) for online web apps (such as Google Drive). Don’t get me wrong, they’re so many factors why this is the case, portability, availability of devices, syncing across multiple devices being a few. I know that with a career in web programming will yield customers for the rest of my living life. Many businesses are gaining an online presence, and with the evolution of SaaS (Software as a Service) developing for the Web platform seems like the place to be.

As previously mentioned, I love learning new things. I love being in the field of Web Applications Development as there are so many exciting new modern technologies. One of the reasons I got into web applications in the first place was the range of new exciting things I could potentially be using. Being able to build a modern web application with technologies like Ruby, Angular, MongoDB, NodeJS, Ember, React etc is something that I want to do and am passionate about. Knowing that I’m using technologies that are at the forefront of the industry is something that appeals to me, and I’m passionate about learning these.

Now, this isn’t a hate post against software engineering or mobile applications development. I hold high respect for any developer and it’s incredibly important that the tech industry has so many programmers developing for different platforms and with different technologies. However I thought I’d just give my reasons why developing Web Applications specifically interests me.

Advertisements

My Programming Story!

I’ve been programming for around 4 and a half years now. In that time I’ve learnt and programmed in around 9 different programming languages and used around an additional 7 programming related technologies.

My first official cliche “Hello World” program was written around 4 and a half years ago in Visual Basic, as I embarked what became a life changing moment; my first educational qualification in Computer Science. Throughout this course, the programming continued to ramp up in terms of difficulty, eventually we went on to make programs like calculator apps with user interfaces and caesar cipher encryption programs, which was quite a challenging proposition for someone had only started programming around 3 months before.

Then I moved onto my A-Levels where I began to program in Python. Something that turned out to be one of the best decisions of my life, as learning and programming in Python essentially taught me good programming practice. Indentation and white space, choosing the correct loop, passing values by reference to name a few key skills I learnt during this period.

It was also around this time where I had my first real serious experience of Web Programming. I distinctly remember it. Around early December I challenged myself to complete the Extended Project Qualification (EPQ) as part of my A-Levels. For this project I gave myself the task to essentially teach myself HTML, CSS and JavaScript. I decided it would be a good idea to create a website explaining how to create a website (inception). Now the thing about this that I distinctly remember was sitting at my desk in my room around 5pm on a Christmas Eve ready to head to my Grandparents for the traditional family meet-up. “What person codes on Christmas Eve?!” I hear you scream and judge,  but I assure you that I had opened Jon Duckett’s “HTML & CSS: Design and Build Websites” (which is still the best resource for web development out there in my opinion) at around 12pm that day and I’d been so engrossed in it that I simply looked up at 5pm to realise I’d been lost in the matrix of header tags and unordered lists for the last 5 hours.

Don’t get me wrong, looking back at the website that I created during this time is painful. It’s an awful blend of header and paragraph tags mixed with the most boring font ever created and an awful bullet point stlye navigation bar. But it felt so magical at the time. Looking at the screen and seeing that I’d learnt the basics of web development, knowing that the world was now my oyster and that I could go out and learn anything I wanted.

The next stage of my programming journey is my A2 level in Computing. Again this was Python, but now it got serious. Elements of object-oriented programming were introduced, and the assignments became very difficult. However, one of these assignments became the piece of work that I can without doubt say has made me the proudest.

We were tasked to create an GUI application that benefited people. This was a very large section of our final grade so I knew I needed to challenge myself. So for this I tasked myself with creating a drag and drop quiz style game that essentially asked students questions from real life A-Level Computing past papers. If the student achieved a high score then they’d be rewarded with a game of Space Invaders! This was one of the most difficult programs I’ve ever had to build. But after hours, days and weeks of surfing Stack Overflow and plugging away at writing code, I found that I’d learnt so much and somewhere over the last couple years I’d actually become quite a good programmer and somewhere I’d stopped being a beginner. Now the reason I’m so proud of this piece of work is that the application I’d developed, submitted alongside a 300 page document report resulted in me achieving a new school record for A2 Computing Coursework. The pain, sweat and tears has meant I’d achieved 69 marks out of a possible 75.

About 5 months later I began to study a BSc (Hons) in Computer Science. The next stage of my developer journey involves studying C# in my first year at University. This was a challenging language, but one that I picked up quite easily having already experienced about 3 programming languages prior to this. 3 challenging University assignments further developed my confidence with programming, with the projects including developing an encryption program with built in frequency analysis, a weather analysis tool that used 4 different sorting and searching algorithms, and a GUI note taking application. Furthermore it was around Christmas this year (I have a thing for having epiphanies around Christmas time okay) that I was very lucky and had another life changing moment; I realised what I wanted to go into in the future. Don’t get me wrong I already knew I wanted to be a programmer, but I didn’t know what area in particular, would it be desktop, would it be web, would it be mobile, or would it be hardware?

I got really into the idea of Web Applications Development. With the main selling point to this being that I wanted to constantly learn new things and I wanted to program using numerous technologies instead of just one standard programming language. This was a turning point for me as it really allowed me to dive right into a Web Development career. I began to build a portfolio of websites for clients, I began to research into things, I learnt numerous new technologies, I gained important contacts. Basically I knew what I wanted to get into, and nobody was going to stop me!

Now fast forward through the 10 months of web programming to today to where I am, sitting in the library writing this blog post. Currently in my Second Year at University we’ve been thrown headfirst into learning and programming in C++.

Who knows what the future will hold? I’m out there searching for a placement year for summer 2017 to summer 2018, ideally in Web Applications Development. This placement year is sure to become one of the most influential things in my life, I’ll learn so much and it would allow me to gain imperative real world experience in the field that I wish to build a career in whilst simultaneously allowing me to expand my knowledge, skills and abilities within the area of Web Applications Development and Web Development.

So there you go, that’s my programming story! Pretty much every big programming related eureka moment I’ve had over the last 4 and a half years. Now, as I begin to design and write programs in C++, one thing is clear to me; I still get the same buzz from programming. I still love the endless problem solving and the challenging thinking processes that are involved in programming. The languages and technologies I use change regularly, but the feeling of compiling a program that you’ve been working on for weeks I still find absolutely fascinating.

 

Escapism: The best method to work-life balance?

We all face daily stresses. It’s a natural park of adulthood. Whether it’s working a rough 9 to 5 day, arguing with a loved one, building our dream career’s or even simply having too many tasks to complete and not enough time, stress is everywhere and we need to relax, or be prepared to suffer the consequences of burning out.

Everyone has their own methods of relaxing and relieving their brain of stress. Whether it’s socialising with friends, exercising or taking time to do one’s hobbies, the result is the same. We become relaxed. Now in this post, I’m not going to suggest how to relax or achieve that so talked about “work-life balance”, instead I’m going to talk about what I believe to be the most successful way of forgetting our stresses and worries; escapism.

Stress Man

“We all face daily stresses”

At the time of writing this post a quick Google search throws up the definition for escapism as “the tendency to seek distraction and relief from unpleasant realities, especially by seeking entertainment or engaging in fantasy”. In my eyes, this essentially boils down to one key concept; that escapism is simply experiencing a separate completely fictional reality, one where we have almost no responsibilities. We are simply either observing, or we are simply completing tasks that if we fail, have no real damaging consequences. This is completely separate to our actual true reality, where if we fail at an important task, for example making a deadline, then there are (sometimes) dire consequences.

This almost act of living a different life, I find completely magical. That for as little as say 30 minutes a day, we can essentially substitute our stressful life for a completely fictional life that holds almost no stress, worry or responsibility.

So how does one achieve this form of escapism? The wonderful thing about escapism is that all you need to achieve it is find something that gives you the sense of an alternative reality or world; a good book, a thrilling video game, an engaging movie or TV show.

I firmly believe that relaxing with escapism is on a whole different level than relaxing with other conventional methods, such as playing a musical instrument, exercising, listening to music, or playing sport to name a few. Don’t get me wrong, these “conventional” methods of relaxing are still great. They achieve what relaxing is intended to; they take our mind of our stresses, they give us a sense of achievement and they make us happy. But what I’m getting at is that whilst we are playing an instrument we are still sub-consciously thinking about our stresses. We’re still thinking “Once I’ve finished learning this chord progression, I’ve got to take the bins out, do the dishes, clean the kitchen…”. Now if one compares this to getting completely immersed in a fantasy novel, the results are quite fascinating.

Over the last 2 years I’ve been reading George R.R. Martin’s “A Song of Ice and Fire”. Currently this series has 7 books in it, with a grand total of 344 chapters. During these 2 years of reading this book series I’ve had a fair share of stress and faced my fair share of challenges, and I cannot put enough emphasis into how incredible it was to be able to come home after a long day and dive into this wonderfully crafted fictional fantasy world and simply forget my daily stresses.

a-song-of-ice-and-fire-set.jpg

“When immersed in a fictional world, whether via a book, video game or movie, you simply forget your own life for some time”

The thing about using books and video games as forms of escapism is that it’s almost impossible to not become engrossed and completely immersed in the world that you’ve been thrown into. You want to stay in this new fictional world that’s been created for you, so much that once you put the book down or pause the game your real life surroundings feel strangely alien, almost like you’ve not been there for a while. This is the key point that I’m attempting to emphasis. When immersed in a fictional world, whether via a book, video game or movie, you simply forget your own life for some time, and you pick up a life of a fictional character, one that has been created to have no stress or real life worries.

This completely harmless method of relaxing is what I personally find to be the key to staying in a good solid state of mind.

Next time you feel like your life is taking control of you, or you begin to feel the pressure that is simply natural in a human life, I want you to pick up that Sci-Fi novel on your desk, or load up that zombie apocalypse survival horror game and get completely, totally and uncontrollably lost in the magical fictitious world, become the protagonist and substitute your stresses, worries and anxieties for their imaginary responsibilities and you will have successfully found what we all seek when stressed: “distraction and relief from unpleasant realities”.