Learn Web Development – The Super Simple Way

So you want to learn web development, but are too intimidated by the complexities of it. It should never be intimidating. It should be pleasant and fun. You should feel like you want and enjoy to write code. After a friend of mine asked me to show him how to code, I thought I would write this post to make him understand how to write code. Just like everything worthwhile, take your time to gradually learn all of basic things before diving in.

Languages used to do learn web development

Languages used to do simple web development

You might have heard of other developers stinking their noses up in the air when you ask them about how to code, and they may throw words at you that will intimidate you. IDE. OOP, Abstract, Signleton, DOM, methods, attributes, and on and on. These words are simply just words to describe some things you will learn in the following paragraphs.

The setup to learn web development

I prefer to code on my Windows machine. At the time of this writing, Window 7. I’ve tried Windows 8. It just didn’t do it for me. It had nice bells and whistles, but there were significant driver issues, plus the start menu took over the whole screen. I personally found it counter productive.

Why not a Mac? Because of Notepad++. I’ve tried other integrated development environments, or IDEs, the program you use to write your code, but Notepad++ was always ahead of the curve. Netbeans, Eclipse, Coda (Mac only), Brackets, and many, many more. I just didn’t understand why developers would use such bulky, slow programs that would take a developer just to configure it? On the other hand, Coda and Brackets just lacks all of the nice features that Notepad++ has.

IDE?

So, I decided on Notepad++ because of the following reasons (don’t worry if you don’t know what they mean yet:

  1. Fast Application Startup Time (FAST)
  2. FTP
  3. Easy File Explorer
  4. Plugins Manager
  5. Multi line tabs
  6. Multi Window Split Screen

Coding Preferences

I prefer to use PHP for the backend. Why? Simple. It’s open source and TONS of support. Yes, I made it all caps because it’s the most supported open source back-end language.

Same reason for using MySQL (or Maria DB as it’s known now), and jQuery as a front end JavaScript library.

For an explanation of what languages I use:

  1. HTML – Render content
  2. JavaScript / jQuery – Page manipulation after the page renders.
  3. CSS – Make things pretty
  4. PHP – Create dynamic content
  5. MySQL – Manage data

To learn web development and create websites, that’s all you typically need.

Next: Let’s just get down to it

Package Managers and why I hate them: npm or composer

Package Managers Just Suck

They suck big time. Let me tell you how I arrived at that conclusion. First off, theoretically, package managers sound amazing. The idea of running one command sand have everything magically created for you, updated for you, compiled, without too much sweating, is truly a marvel.

package managers suck

Sure, package entire servers when you can simply run a couple of git / svn commands.

In reality, however, this is sadly not the case. Every freakin’ time I try to go back to npm to install something, either for a cordova app, or a Laravel install, or just some custom dependency, I start off following some instruction manual. npm install this, npm install that, and on I go. Until I get to a package that requires something else.

This happens every time. Documentation is very unclear most of the time. Sometimes I have to run npm install with a -g flag, somtimes –save-dev, all sort of options. And Make sure you always have the latest version of npm, unless their site is down, which happens every hour on the hour, or it’s slow, or non responsive, etc.

Communism is the Perfect Form of Government

Just like communism, package managers packatoo shall fail. Not today, not tomorrow, but one day when developers figure out that they can do installs simply by downloading libraries or git/svn-ing them to their development environments.

Just as an example, this one project, I had to install about 30 packages, but that wasn’t enough. There were dependencies like .Net framework, and python, ruby, etc. All for a one page website. Who are these idiots developing websites and making them so complicated? It’s a one page website that could have simply ran off of a simple CMS like WordPress if you really needed a CMS. It was insane.

Ah, Magento Probably Sucks Worse

It was like my old days of when I worked on a one page Magento Sucks project. What a waste. One page just to store addresses of people wishing to win an iPad, with a gigantic, full Magento install in the backend. Ridiculous!

The Dependencies

I honestly thought the whole idea of writing code is to be less dependent on crap and architect something that can easily be modified by others, pick up, learn and hit the ground running. Instead, we find that most developers who enter a new environment these days, have to re-learn a whole new flavor of development. Everything to learning a new server (nginx), backend (node), database (postgress and express), and even front end (sass, less, angular), and there are a bunch more that I haven’t listed, but they’re there. And all for what? There’s no gain in any of it. It’s all how you use the tools at hand. Nginx can be much slower than apache if not configured right, and it’s much more limited in what it can do. Same with Angular and everything else in between.

Why stick with systems that are broken? Use things that were tested over the years and can be more dependable. Things that have a much larger community.