*Monday, January 1, 2024* ![[Paper.Comical_Moments.37.png]] Work smarter *and* harder. And boy, web development seems like it has gotten harder than ever. As we enter the new year, I thought I'd share some things I've learned in 2023 as a freelance web designer and developer. ## Front-end development is definitely more difficult than back-end development. This was a really surprising revelation to me. I remember when front-end design was so much simpler - I think. Maybe it wasn't (remember using tables for layout purposes??). But it sure feels a lot harder. Years ago (circa 2003) I remember feeling a huge sense of accomplishment building out the first completely table-less website ... in Dreamweaver. There was only one screen to design for and it was Desktop, on IE. But then, I took a look at some of the designs I'd done back in the day and wow ... *they were just plain awful*. So I guess it's time to strap in and up my game, and accept this fact: with even the most basic layouts, I should plan on that taking at least 3 times as long as my gut reaction "Oh that'll be easy" brain tells me. ## AI makes things much easier and much harder at the same time. I'm a TNG fan. Some of my favorite episodes were of Geordi or Dr. Crusher reasoning with the computer in long conversations. What always amazed me was the rationality of the conversations, and even the frustrations that come with dealing with machines (you still got a very clear sense that, after all, it was just a computer ... input and output) and as a kid, I never thought I'd see the day where you can truly rationalize with a machine. I don't see AI taking developers jobs any time soon. The hardest part of software development is not building something new, it's maintaining existing stuff, and until AI is able to take full ownership over things without having to start from scratch each conversation, I'm finding myself spending as much time as I did before maintaining. Additionally, while exploring or learning about new things is *far* easier that it was just a year ago, the bar has also been raised much higher. Just a year ago, I couldn't imagine doing some of the obscure niche work I've been able to do in a pinch with AI (hint: [Open Interpreter](https://openinterpreter.com) with OpenAI has been a lifesaver), but I also have experienced higher expectations overall from any dev. So yes, I am able to do far more with AI in general, but so is everyone else. And with any bar raised, comes more work that you didn't even know had to be done before. And that's a good thing. ## Learning VIM is a must. If you want efficiency, you *have* to learn VIM. Learning VIM wasn't a problem for me; I've known *how* to edit anything in VIM for years and I would do it all the time in the terminal, when connecting to a remote server. But *preferring* it as my primary coding workflow was a different story. I tried numerous times (and I loved playing the [Vim Adventures](https://vim-adventures.com) game), but on a day to day basis I always reached the point where I said *screw this* and reached for the mouse. Then I realized I couldn't remember 80% of all the wild keyboard shortcuts I was making for myself on an almost weekly basis in VSCode. I think that's when it hit me: *Most of my time is not writing, it's editing.* And for that, VIM shines. Now I can't look back, and it has sped up my coding significantly. ## Obsidian doesn't suck. The whole point of taking notes is so you don't have to remember something. But there's many different types of notes: Client meetings, reference documentation, code snippets, etc. ![[obsidian.jpg]] Quick backstory: I'm one of those people who prefer pencil and paper, but I hate having paper everywhere. So I got a NeatDesk to scan all my paper and receipts. Then once I realized NeatDesk's marketing was better than their actual product, I kept the scanner but signed up for Evernote. Then once I realized that Evernote was just getting too bulky and slow ... I looked for alternative ways. I just wanted something simple. At some point, I realized what I really hated about every note taking app was the formatting (or, spending any additional time thinking about formatting my notes). Enter Markdown, which was designed exactly for that. So, I needed a Markdown editor. After some digging, I landed on both [Caret Beta](https://caret.io) and [Obsidian](https://obsidian.md). I found myself using Caret more though, because it still seemed simpler to use than Obsidian. I didn't really understand what was so great about Obsidian, honestly. But Caret proved to be too slow for me for very basic things, and since I kept hearing rave reviews about Obsidian, I thought I'd give it a second chance. I noticed immediately their 1.0.0 release was a huge improvement. It's since grown, and now the only regret I have is that I didn't start using it for *everything*, much earlier.