Useful web development technologies you need to know
I work as a web developer since 2010. So, it’s almost 10 years now. Many technologies and services I had used during my journey as a web developer. Some of them, though they may be not on the top of the list of popular web development tools today, is still working perfectly. I still use them. The rest, I don’t use it anymore. Here they are, the useful web development technologies you need to know.
Caution: I wrote the contents below based on my experience and some opinions can be subjective.
HTML and CSS
I learned HTML and CSS when the Friendster was still around. It’s the time before Facebook is built.
Friendster allowed me to do customization on the profile using some sort of scripts.
When I learned the script later, they were some combinations of HTML and inline CSS codes.
Apache, PHP, and MySQL
I started with PHP. I use it during my time as a university student. I can’t remember which version I used at that time. But, I had learned PHP since 2008.
At that time, I don’t know any PHP framework. I learned it along with MySQL using the Xampp tool on Windows XP. It’s long before I switch to a UNIX environment.
I still remembered that the codes were a “spaghetti codes”. Both PHP and HTML are mixing in one page. Not a best practice, but I learn a lot from there.
During this period, I don’t even have any idea how it was set up. This because I install the Xampp. Later, I found out that Xampp will install the technology stacks I need to develop web applications: Apache Server, PHP, and MySQL.
Not only that, but there is also a web application tool that comes along in that package. The tool to access the MySQL database from the web. Its name is PHPMyAdmin.
The first database management system I learned is the Oracle DBMS. It was Oracle 10g version. It’s part of the curriculum at the university.
The most usable thing I learned using Oracle is the stored procedure. That is, where we can write a couple of SQL commands in a programmatic way.
Later, once I knew some web frameworks along with their ORM, I hardly use this stored produce anymore.
Though I don’t use Java to build a web application, I did learn during my time as a university student.
We, the students, need to learn Java as part of learning the Object Oriented Programming.
It was fun and I love to learn it. However, the career path I took did not cross the path with this tech.
Visual Basic along with SQL Server
I used this for my final assignment task. Visual Basic is simple and easy to understand. As for the database, I connect it to the Microsoft SQL Server.
The tool I use to write the VB is Visual Studio 2008. It was a heavy tool and eventually, it was the last time I use Windows.
After my graduation, I had more interest in open source projects and the tool based on the UNIX operating system.
I learned CakePHP during my first internship. This time, I also learned its plugins and its ORM. I also work with CakePHP on my first full-time job as a web developer.
I used version 1.2 at the time. The latest version I still use is version 1.4.
One year later, around 2011, my employer asked me to learn Ruby on Rails and switch me to some Rails projects.
Ruby on Rails
I started with Ruby v1.8.7 along with Rails 2.3.7. Now, most of the projects I handle are still using Ruby on Rails.
I had updated most of them to the latest Ruby version of 2.5 or 2.6 along with Rails 4 or Rails 5.
There is also one project that’s still running on Rails 3.2 but it’s still working fine.
As a Rails developer, I am also familiar with many popular gems to help me building an MVP quickly.
When I am working as a full stack developer, there is some project that needs a full integration test.
Such an integration test will need us to use a headless browser, a web browser that has no graphical interface and can be executed through CLI.
The headless browsers I had used along with Selenium are:
In our case, the most stable headless browser is Chrome. PhantomJS often gives a false alarm though it’s run faster.
After learning Rails, I crafted my way to be a full stack developer. I start by learning the Bootstrap CSS framework and its grid system.
The Bootstrap version I used first was 2.0. Then, I learn again when they update to version 3, and now version 4.
The coolest thing about jQuery was there are many plugins to use at that time.
Later, I found out Bootstrap also provides many things that jQuery plugins also provide.
For example, after Bootstrap introduced their modal, I replaced the ColorBox plugin with that.
I may remember this wrong, but it was the time when Facebook introduced AJAX and its popup.
Suddenly, it’s becoming trending and most of the web application adapts those techs until now.
Unfortunately, I did not go deep with AngularJS so I can’t tell much stories. But, at a glance, just like other tools, not every project is the best match with AngularJS
Sometimes, for smaller projects, using jQuery makes it easier to develop and maintain.
The thing I learned about NodeJS is don’t build an application that needs to interact with a database that had many associations.
At that time, even we use Sequelize (like ActiveRecord ORM on Rails), we need to specify which table and associated tables manually, for just saving or updating a data coming from a form.
I guess if we build an app that needs to interact with a database that had many associated tables, it’s better to go with PHP framework or Ruby on Rails which had good ORM.
However, NodeJS is indeed powerful when you need to build an app that provided updates in real time like a chat or messenger application.
I learned WordPress when tinkering with my own blog in 2012. However, it turns out that my learning was not in vain. Now, some client projects I handle are using WordPress.
I am able to build a WordPress plugin. Not only that, but I also know how to build a custom WordPress theme or build a child theme from an existing WordPress theme.
But, most of the time, I am always able to find a plugin that served the needs of the project.
Besides, I am also familiar with some popular page builders coming with popular premium themes like Avada and Divi (sorry can’t remember the builder’s name, was it “Elementor” ?)
AWS, Digital Ocean, and the likes
On my quest as a web developer, I also had a chance to work as a part of the DevOps team. This is when I learn many DevOps technologies like AWS and their services.
Along with AWS, I also had the experience to deploy a Ruby on Rails application to the Digital Ocean droplet.
Though I did it manually at the time because it was a simple application. Setting up a CI or Jenkins is not worth the time when I can deploy it manually through SSH.
The project owner also agrees with me since I was the only developer and the tech guy he hired.
Most of the Ruby on Rails projects I handle is deployed to Heroku. Yes, Heroku is a platform that runs on top of AWS.
Unlike AWS, where we need some DevOps knowledge to deploy the application to EC2, maintain the packages, security groups, and others, deploying to Heroku is much easier.
I used Heroku toolbelt along with git commands to deploy the application.
Now, Heroku also improved it with their deployment workflow.
But, I still prefer to use the “git push” command to deploy, then run the “Heroku Toolbelt” to debug the problem which happened.
With extensive experience to run the Rails on Heroku, I also write some of my knowledge about the way to save costs there.
Git and SVN
Both are the popular source code control. I learn SVN first but soon I switch to Git due to the nature of projects I am working on.
Nowadays, I still use SVN only to commit updates on some simple WordPress plugins I write on WordPress.org
In my opinion, Git is much more popular because many big providers support it. Github (which now owned by Microsoft), then Bitbucket of Atlassian, and Gitlab.
I used the three of them, but the most popular and the one that many open source communities are hanging around is Github.
Shopify and its liquid syntax
I learn liquid template that powered a Shopify theme because one of the client’s project is using Shopify.
It’s written in Ruby so it’s not difficult to adapt to that.
The syntax mixes with HTML tags, so it’s not as neat as HAML.
Netlify and NetlifyCMS
This is the latest technology I use. I even move my almost dead blog from WordPress to Netlify. Though in the end, I revert it back to WordPress, it was a good experience to use Netlify and its Netlify CMS.
We can deploy only using the “git push” command to the Netlify platform, so it’s similar to Heroku.
What surprised me at that time was how it’s fast to deploy to the platform. I never wait more than 30 seconds to see my changes on the blog I hosted on Netlify.
Recently, I even have an idea of hosting WordPress on Netlify. However, I still need to think more of that, especially how to automate it so when I update the WordPress on an admin dashboard, the update will go through and deployed on Netlify.
It’s because Netlify, at the time I write this post, only allow hosting a static site.
During my time tinkering with Netlify, I also play a little bit with Hugo static site generator. Then, I deployed it to Netlify as it’s working seamlessly with the NetlifyCMS.
I haven’t explored it far, but surely this Hugo site generator is an interesting tool, which may be able to replace traditional CMS like WordPress or Joomla – when it’s combined with NetlifyCMS.
These are the tools I had used and still use in my quest as a web developer. To be honest, I never follow the trending in technology.
Given the fact that most of the projects I am working on are old projects that have been started in 2010 or even 2008, I don’t know if those technologies are still in high demand for new projects today.
Thanks, for reading my story.