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.
- HTML -> XHTML -> HTML5.
<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 toggle button to open a hidden menu can now have attributes which tell a screen reader that a hidden menu is what will show when that button is used. This also helps keyboard-only devices, people with poor sight and limited hearing. Why can’t we have a more accessible and inclusive web? Web accessibility is very important and increasingly becoming law
- SVG image elements are too powerful to not know. I default to SVGs when 1) images are small and 2) images aren’t photographs
- CSS -> CSS3. If I look through CSS3, I’ve used the majority of these in my projects in the last decade.
- 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 Variable support being so good. I like the use of nesting, mixins, variables, and the organization that imports allows, similar to…
- WordPress is still the only way I start and complete freelance projects for pay since I’m usually working with small business or one man shows. 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 is where my interest developed as I began into the web industry. I’ve used Photoshop superficially since about 1999. However, it’s difficult it is for me to come up with original concepts to go to the screen. I understand many aspects of User Interfaces and always try to keep User Experience in mind when I make designs. I can get by with 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
- 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…
- 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.
- 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
- Command line languages like Bash and Powershell come in handy. I don’t use them for searching but I can
rm -rflike a mad man. If you search my command line history, you’ll also some a lot of
mkdir [dir] && cd [dir]
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
- 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 and JS and edit them but I’m not fluent in server-side versions of any of them
- 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
- 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 and databases, 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
- 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