Skip to content

Instantly share code, notes, and snippets.

@bastianallgeier
Created December 16, 2015 14:01
Show Gist options
  • Save bastianallgeier/9a9bf38e925fa3581f75 to your computer and use it in GitHub Desktop.
Save bastianallgeier/9a9bf38e925fa3581f75 to your computer and use it in GitHub Desktop.

When I was a beginner…

This is a little exercise to try remember the things I struggled with, when I got started with web development. It's too easy to forget about those things after years in business. I think it's super important to keep the ability to put yourself back into the position of a beginner from time to time in order to not overcomplicate your own work and to not throw the typical "just" and "simply" sentences at other people, who get started.

The following list is not complete or very detailed. It's really all about writing down some memories quickly. Feel free to follow this experiment for yourself if you think it's useful.

HTML

  • Breaks. Why the hell doesn't text wrap in the browser when I add a line break to the source code?
  • Paths: I absolutely struggled with the basic concept of absolute and relative paths and why stuff doesn't get loaded correctly when I messed paths up in URLs.
  • Typos in tags. I.e. <tabel> instead of <table> and hours of trying to debug issues connected to it.
  • Never being able to remember how to link to a stylesheet or how to start a document without Googling it.
  • Learning about all the tags and attributes felt so much like learning vocabulary in school. Aweful!
  • Forms. It took me forever to feel in control of all the form elements, how to use them correctly and how to handle form submission in PHP.

CSS

  • Coming from Indesign, Illustrator and Photoshop and suddenly throwing all your ideas about layout over board.
  • Floats!!! I mean, seriously, is there anything more difficult than to learn how floats work and how to control them?
  • The box model. Another serious WTF.
  • Paddings and margins. When to use what? Why do margins sometimes not have any effect, for example in connection with floats.
  • Understanding EM. What a weird concept at first sight. It took me quite some time to appreciate the idea of EMs.
  • Hex colors. People who claimed to understand the system behind them seemed like voodoo masters to me.

JS

My first year with JavaScript can be boiled down to two simple keyboard shortcuts: CMD+C & CMD+V I had absolutely no idea what I was doing. I started learning JavaScript in the age of DHTML. I spent hours of stealing massive amounts of JS code from other sites with cool dropdown menus or accordions and used bruteforce techniques to bolt them onto my own site in endless trial and error sessions. Afterwards came Prototype and Scriptaculous and then Mootools — long before jQuery. I started to understand parts of what I was doing by building the first interface version of Zootool and it took another year until I started feeling comfortable. It was a mess.

PHP

I started to learn PHP with a book by Kevin Yank about how to build a joke database. This was also my first intro to MySQL. I bascially just typed all the examples from the book bit by bit and tried to get it running somehow. It took forever to get Apache and PHP4 running on my Windows machine and it felt like I'm really close to destroying my entire machine.

I was crazy enough to take my first paid PHP job almost instantly afterwards. I was asked to extend and administrate a big content management system for an NGO, which wasn't able to afford a real developer anymore after wasting tons of money on an overpriced agency from New York. The CMS was custom-made by that agency and it took me three months and endless hours to start understanding at least a bit of what was going on under the hood of that CMS. Ironically it was still cheaper for the NGO to pay me for those three months, than hire the agency folks again :)

I remember that the hardest part about PHP have always been the typos and weird error messages in the beginning. PHP was the first programming language I ever learned and it took me a long time to understand stuff like loops and functions and even longer to understand classes. My learning methodology of choice has always been trial and error. Well, more like trial, errors and random successes.

The combination of PHP and HTML also produced a lot of headache in the beginning. Why the hell do I have to submit a form like this and what is this POST and GET stuff they are talking about?

More unordered PHP issues:

  • database connections
  • charsets: OMG
  • understanding arrays, especially the multi-dimensional ones.
  • PHP's inconsistencies
  • Recursion!
  • Deleting big parts of my hard drive because of proudly writing a recursive function to delete directories and testing it…

MySQL / Databases

  • Why has a database a server, when there's also the web server? What the hell is a server anyway?
  • Debugging queries. All those typos! All those issues with the wrong quotes or missing commas.
  • Protected words. Oh, I can't use value as a column name?!!
  • Truncating my first table with important data, that didn't have a backup.
  • Forgetting to backup all the databases for my projects, before moving to a new computer.

Terminal

This black scary thing was just too frightening for a long time. It took me ages to really get started with it, just because I was too scared to do some serious damage to my machine. Of course I did seriously damage my machine pretty quickly after getting started (yes, you should double-check before copy/pasting a command from dark deeps of the web)

Servers, Domains, FTP & stuff

I started with shared hosting and stayed there for a while. I only partly understood what a server is or what shared hosting really means. A friend introduced me to Strato (a lousy German hosting provider) and I never dared to look any further once my site was successfully installed there.

Registering the first domain seemed crazily offical. A 1-year commitment to something I wasn't too sure about yet felt like a very long time. I had absolutely no idea what DNS is, what an IP is, how data is travelling across the web. I knew how to connect to my server via FTP and that I can put stuff there and it will be displayed in a browser if I did everything correctly.

Of course I ran into the typical FTP mistakes in the beginning:

  • overwriting the wrong files
  • making changes online and not syncing them with the local version, so I killed my changes with the next update
  • broken uploads, which broke parts of the site or the entire site.
  • not having a local backup and after a server crash I wasn't able to bring the site back again.
  • etc.

SVN & Git

I got into version control systems very late. I started with SVN, but never really understood it. I spent more time deleting .svn folders than actually getting any benefits from it.

When I got started with Git I was just copy and pasting commands most of the time. I felt again like in the early days of being a complete PHP or JS beginner and it took again quite a while to feel more comfortable. Until today there are still a lot of Git parts I don't fully understand.

So much more…

I could actually go on forever about build tools, package managers, project management tools, webfonts, design in general, server administration, freelancing, budgets, etc.

I'm still a beginner in so many disciplines and I hope I never loose the ability to remember this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment