I caught up with my reading again.
With nothing on my mental To-Do list (except such vague ideas as ‘work on something’), I’ve had the opportunity to do random stuff. I picked through my To-Read bookmarks, where I put everything when I was swamped with reading. It turns out a lot of that becomes completely useless to me, after reading a thousand other things over the last few months, so most of it can be deleted. Other things required me to have time in abundance, so that I can research some topics and possibly apply a few ideas.
While I was doing that, I decided that the only way I was ever going to learn the stuff I didn’t feel comfortable with was if I spent some time using it.
I want to know absolutely everything about HTML, but I don’t even know about half of the elements and attributes. So, I’m going to use it all; I’m going to memorize the big list of things (199 elements, at the moment).
I’m currently going through a whole smack of W3C specs, and a few Wikipedia articles. I’m going to find every proprietary tag I can, and try to find out which browsers use which.
You see, I constantly feel as if I have nothing to contribute. I don’t have any opinions of my own, and when I’m reading about all sorts of HTML things and the authors of those pages ask questions, I’m never able to add anything they don’t already know.
Things I need to know:
- How browsers work, on the code-snippet level
- All the differences between at least the main five browsers
- All the differences between versions (Firefox 2, for example, doesn’t support display: inline-block)
- What the heck all these RFCs are
- The ability to quote an RFC’s requirements
- The current issues in the HTML5 and WHATWG working groups
- All the different types of ‘accessibility’ (blind, paraplegic, cognitive)
- User psychology, UX, and other human-brain things
- All the different ways to do things (javascript, server-side, different languages)
- Different ways of coding (lisp-style, queries, procedural)
I need to learn the internals of:
- JavaScript
- HTML
- PHP
- Perl
- Java
- C
- Ruby
- Erlang
- Clojure
Where I’m at right now:
- I know roughly how browsers do what they do
- I know some obscure browser trivia
- I’m part of the W3C HTML5 lists, and am trying to keep up-to-date
- I’ve got a base in A11y and UX
- I know a lot about HTML
- I’ve got some Java, PHP, and JavaScript under my belt
- I can name a good deal of the more obscure browsers
I’ve still got a long way to go.
I want to teach this stuff, at some point. That means I need to know everything. All the tiny, obscure details. I need to know that the SVG 1.0 spec says that negative attributes are an error, while the 1.1 spec says that negative attributes are ignored.
It’s kind of funny how things go. My whole life, I loved computers. I wanted to design games, when I was young. I went into programming in high-school. I took a computer-based diploma program in college, and graduated in 2007.
I remember my online journal, which I created in 2005. I had no idea how to make links, or emphases, or any other stylization. But I learned how to make links, and then how to embed images. I took a class on HTML, and then one that included CSS, and then I made a couple half-hearted websites.
In 2009, I abandoned almost all that programming stuff and flew headlong into HTML and JavaScript and CSS and websites. I spent a great deal of that time designing, rather than programming.
When you find something you want to do, you’ll notice. But you won’t know what you want to do until you find it.
So try everything. Find what you want to do. Then learn everything you can possibly learn about it.