The cloud has become a really important platform in recent years. Cloud computing, artificial intelligence and internet of things are some of the popular trends that are spear-heading the movement. But beyond those emerging technologies, on the personal side, I feel it is quite important for a software engineer in 2019 to maintain their own cloud. Having your own cloud means you can store a website, a portfolio, and many other tools that can help with daily coding routines. Plus it is good coding practice when you have something else to code up other than your main projects at work.
So without further ado, let's get right into it. It's good to have some knowledge about the recent tools and frameworks that are being used by web devs around the world. Here's an excellent video on Youtube that will introduce and explain to you why and how each tool or framework should be used in your project:
Beyond that video, here are a few tips of my own:
0. Avoid PHP if security is your top concern. I get daily entries in my server log telling me someone is trying to access common PHP admin pages. Even if PHP is fairly secure now, getting attacked daily is still quite annoying. You should choose a more secure server-side tech stack for peace of mind. As an aside, the attackers have Chinese and Russian IP addresses, if that is of any interest.
1. The video neglected to mention Java and JSP for server-side development, and I think that's a huge omission. I was recently on a job hunt and I applied to no less than 10 different jobs in which Java is the main server-side language. So Java is very much alive and well as a server-side technology. That means if you know Java, you are already somewhat ahead of the game. Silicon Valley still seems to have many companies that run on a Java-based infrastructure, so if you plan on working here, now is a good time to polish up your Java skills.
2. To get more JavaScript practice, you may be tempted to select Node.JS as your server-side framework, but I think that's quite naive. It is better to choose a framework that uses a different language (so either C#, Java, PHP, Ruby or even Python) because then you will be able to practice two languages at the same time. Trust me, you will get no shortage of JavaScript on the front-end. And that's especially true if you decide to expand beyond what responsive UI frameworks like Bootstrap provides. On top of that, there's also performance consideration if you decide to do more work on the back-end. This stuff creeps up pretty fast if you try something like AI or OpenCV.
3. SQL is still the dominant database tech, so you may be tempted to use it with your cloud. If you already know SQL or you are already familiar with SQL, though, I'd say... pick something else, like MongoDB or Redis, as your back-end. This means you get the chance to play around with new technology, and... please don't quote me on this, but the shift away from SQL still seems to be a trend in Silicon Valley. Many companies are hiring for positions where the developer has both SQL and noSQL experience, so I'm guessing they are trying to move on from SQL. Perhaps because there are some promising performance and resource usage improvements to be had with a noSQL database. On the other hand, if you don't know any database tech yet, definitely go for SQL first. SQL is rock solid stable and secure after all this time, and it won't do anything unpredictable, and you will most likely find more than a billion articles in a Google search on how to do one thing in SQL.
4. I would highly recommend you go with the cloud computing route and skip all those hosting services mentioned in the video. That means... dipping your toes into managing Linux/Unix environments in Google Cloud Platform, Amazon Web Services, Digital Ocean, etc... and essentially starting from scratch. This will give you full control over the security and setup of your cloud platform, and on top of that, you may also be able to make use of Git/Docker, etc... So at the end, you get to put more technologies under your belt as well. Trust me, it looks good to a hiring manager when they know you are familiar with more than just the codes that go into making a website work. Also, you get to be able to use your cloud computing platform for more than just your website, after all.
5. If performance is your main goal, don't lean too much on the new ES6 ways of doing things with JavaScript. Sometimes the native methods will just be the fastest, even when they may not be the prettiest. Despite widespread use and a lot of browser optimizations, JavaScript is still quite... slow in 2019. Perhaps it will get better some day, but for now, trust your own programming fundamentals over concise one-liners. On the other hand, if readability and maintainability of the code base is more important to you, then definitely try ES6 more, as it does help make your code look more like human speech and less like machine talk. Just keep in mind that sometimes, there are performance trade-offs, and they can be pretty significant when you start scaling up.
And that's it. Just some tips and a video to hopefully get you started in the right direction. You can check the "About" section of this site to get a glimpse of the stack that I used if you need an example. But there is no right answer, so you are free to make any consideration to suit your own needs. The one thing I will tell you is this: if you are planning a career as a software engineer, and you know it is something that you want to do for a long time, you should start building your own website now! Technology is ever-evolving, and you will be left far behind if you don't keep up.