Programming insights to Storytelling, it's all here.
The answer to this question has ended friendships, ruined relationships and lives. OK maybe not, but I am certain for the friendship parts. Just like people call themselves PC or Mac, the mobile industry has found a way to segregate us once more. We have the iPhone people, and the Android people. There are no Windows people, sorry. (Just like there are no Linux people)
A couple times a months, I play call of duty online. It is fascinating that when you are really into the game, you forget that the people you are playing with are no where near you. They could be thousands of miles away yet, playing the game feels instantaneous.
After the hello world application, the logical step for a beginner is to learn to build a CRUD. CRUD stands for Create Read Update and Delete. It refers to an application that can perform each of those tasks the name implies. The term is also often used to say a project is too simple, it's just a CRUD app. Most applications on the web do just that and after so many years of working as a web programmer, I can assure you that it is not so simple.
One of the things that get usually ignored on a server is the firewall. A firewall is a security measure to block all unwanted connections. Unfortunately, the rules are written in gibberish. That's how I felt every time I had set up a new server. I have to search through multiple tutorials to find the right values to add to my settings. This is my attempt to document as much as possible so I can come back here to refresh my mind, and you can help yourself too of course.
When you follow a CSS tutorial, you are presented with the simplest situations possible. When you want to change the color to a paragraph, write some pseudo code including color: red and the color changes to red. This is simple enough. However the moment you start creating styling for a whole website, you realize that things don't work the way you want them too. Sometimes you set a color to white, but it shows black. Other times, no matter how much you try, any of the styles you are applying simply refuse to work.
Like I said before, when you know how to solve a problem, coding is simply a matter of typing. As developers, it is really tempting to start a project by coding. It's hard to argue this method, because I do have projects that worked just like that and I managed to complete them. However, the better approach is to organize your workflow before getting started.
I'm one of those people who never brag about multitasking. I can't. I see people who do it all the time and I see those who say "actually no one can, there is research that blah blah blah" simply because they can't do it themselves. Despite this I try. When I'm working, there are multiple windows floating, multiple sessions of my IDE, certainly the illusion of the pro multitasker.
PHP is the webs most popular language on the web. Some insist that is it not a programming language at all but a scripting language. It doesn't matter to me as long as I can do the work I want. I learned PHP like everyone else, by reading a tutorial from an author that was just one function ahead of me. It didn't matter that we were all clueless, the important thing is that some people where teaching and others were learning.
In the web development world, the most dangerous security vulnerability is allowing users to run arbitrary code on your server. Failing to protect your server will result in them doing whatever they want. I certainly remember when one of the website I was working on was getting hacked daily. When I finally discovered the vulnerability 3 years later, I realized that in addition to stealing our traffic the culprit used our network of machines as zombies to DDOS and brute-force password on WordPress websites.
Code is something you can see and read but can't understand. The whole point is to hide its real meaning in plain sight. It is coded. Code, that we use in programming is not hidden. You can read it, you can understand it, you can extend it. What we refer to as code is just a language.