Inspired by Dan Abramov’s “Things I don’t know as of 2018“, I think it’d be good to list both things I know and don’t know in my career as a web developer.

i know…

  • HTML -> XHTML -> HTML5. <details> and <dialog> are great new additions to a semantic web, of which I’m a fan, using the elements where they’re intended to help with accessibility and meaning. I’m learning to extend semantic meaning with…
  • ARIA attributes are a newer concept for me but I like how it relates components to each other. For example, on a mobile device, a non-semantic toggle button uses the aria attribute to associate to hidden menu. We should all be fighting for an accessible and inclusive web before laws make us do that
  • SVG image elements are too powerful to not know. I default to SVGs when 1) images are small and 2) images aren’t photographs. In other words, icons
  • CSS -> CSS3. If I look through CSS3, my last decade of projects is littered with these rules.
  • CSS Methodologies – I’ve used several including variations of BEM, ITCSS, and SMACSS
  • CSS Grid Layout is the only way I want to move forward in new views and layouts, with Flexbox following closely behind. You can forget floats for layouts
  • I’m learning how to utilize CSS Variables in combination with…
  • Sass => CSS, but I’m rethinking of how to continue on with CSS Custom Properties (CSS Variables) support being so good. I like the use of nesting, mixins, variables, and the organization that imports allows, all of this similar to…
  • Javascript is the slippery language which has taken me time to know. I’ve used jQuery for more than a decade, more often inside of WordPress plugins and themes, but I also used it moderately or heavily in sites and apps as recently as 2018. It’s too bad that my CMS of choice relies so heavily on jQuery today, but I still choose…
  • WordPress is still the primary way I start and complete freelance projects since I’m usually working with smaller clients. Theme development, plugin editing and setup, the ecosystem and architecture of WordPress, this is what I’ve used and known since the mid 2000s and probably will continue into the next decade
  • Git version control is vital on most projects if you’re working with others. The most advanced things I use are merging, fetching, stashing, and rebasing, but for the rest I look ’em up
  • Graphic Design for the web is where my interest developed as I began into the web industry. I’ve used Photoshop superficially since about 1999. I find it difficult create artistic concepts from inception but I excel at manipulating and remixing existing art. I understand many aspects of User Interfaces and always try to keep User Experience in mind when I make designs. I’m proficient with Photoshop editing designs, can give educated feedback on existing mockups and views, but it’s been a while since I’ve had a heavy design-focused project where I needed to use design skills from scratch
  • Networking I spent almost years in college learning networking and still understand the fundamentals, how packets are sent and received, changing IP addresses and using custom DNS servers, Hosts, etc. I worked part-time as a network administrator in a medical clinic so I know how to get around a network

i’m learning…

  • ES2015+ is exciting. I’ve had a lot of recent exposure to consuming APIs with newer array methods and am learning how to move this data around with the syntactic sugar given to ES6 in things like classes, arrow functions and more. While most freelance and recent full-time projects are usually ES5, I’m moving into a “JS Next” world regularly as I come up to speed with…
  • React.js, all the rage for most modern companies today, is my latest learn. I’m in the middle of various open source or personal projects to give me a better understanding of how modern Javascript is used inside of React.
  • Webpack might not be right to add here since “learning” it means using it but it is what I currently use to build this website as well as React projects. I’ve previously used Gulp and Grunt and can still utilize them as needed.
  • Functional programming and Object Orient Programming based within Javascript is the currently accepted way to write modern Javascript. Simple DOM manipulations I make using jQuery never made me think in terms of OOP or FP but my latest jQuery code is written with this in mind. Now I’m slightly behind and renewing what I’ve learned throughout the years to level up
  • PHP belongs on this list because as long as I have to support or use WordPress in the foreseeable future, PHP will be an ongoing learning and look-something-up language for me, with good features to use such as namespacing introduced in PHP 5.3 and the performance improvements from PHP 7
  • VMs – I moved away from MAMP and similar development environments to now use mostly Vagrant, learning Docker with Virtualbox VMs, and similar environments. The portability built using a few commands is powerful and I prefer not integrate deeply into the OS
  • Node.js/NPM isn’t really something I’m actively learning as much as I use them for modern projects regularly. I’ll probably help me to understand more how I can use Node.js to tie Javascript into server side rendering instead of everything being on the client side, but that’ll be more useful when I’m exclusively inside of a modern JS framework
  • Command line languages like Bash and Powershell come in handy. I don’t use them for searching but I can rm -rf like a mad man. If you search my command line history, you’ll also some a lot of git and some npm, ls -la, yarn, gulp, grunt, ssh, vim, vagrant up, brew, whois, choco, mkdir [dir] && cd [dir]
  • DevOps and data is actually where 16 months of my career was spent as a front-end developer when I worked for a startup in that side of the tech industry. That whole world baffles me and you could put me to sleep talking about data management, data metrics, databases, data manipulation, VMs, containers like Docker and Vagrant, but being exposed to it probably helped me realize how important a lot of these concepts are as we move to AI and machine learning and how to manage all the metrics many services consume on a daily basis
  • Server-side Python, PHP, JS, C++ as server-side languages are not in my head like when they are mixed with the client side languages. I can look at PHP, Python and JS and edit them but I’m not fluent in server-side versions of any of them

i want to know…

  • PWA are what I hope to get deeply involved in for my next roles. I want to be able to create sites and apps that smartly work offline and cache locally for better subsequent loading, combining with concepts like Critical CSS and JS, asynchronous and deferred script and asset loading. Essentially, I think performance tweaking must be a focus on the forefront and learning how to only load what’s necessary via JS and SSR is vital

i don’t know…

  • HTML Preprocessors don’t really jive to me. I’ve seen examples of them all over, like Haml, Pug, Slim, but I’m only marginally interested
  • JS Preprocessors are in the same class as above, CoffeeScript, TypeScript, etc., just don’t speak to me. I’m still learning Babel to some extent and I’m kind of looking forward to not having to rely on it as much but I know that’s a few years off
  • Canvas, D3.js, Greensock, JS animations might be where a lot of effort is spent making websites and web apps more appealing but there’s too much in these technologies for me to learn or care about right now
  • AWS, Azure, Google Cloud Computing are beyond the scope of what I’ve done. This bleeds in to the DevOps world which I’ve had a bit of exposure to from previous work but not at a level where I could be given a problem to solve in decent time
  • API Creation is important for what web developers do. They expose the database stored data and could even be stored JSON data themselves, but asking me to write an API itself is still elusive and confusing to me. My first real attempt at creating a JSON API from scratch took me days to wrap my head around since it was creating a hierarchy of JSON that had nothing to do with a specific language
  • Native App languages also don’t appeal to me. I’m not interested to get into Objective C and Swift for iOS and macOS, Kotlin for Android or Visual Studio for Windows. So I’m not really useful for native app development unless it involves something more visual