Web Developer Books for Xmas

The holidays are finally here! That means it is time to find some gifts for the people who we truly care about. Here are some of my personal favorites and recommendations for the web developer and designer in your life that likes to read.

  1. Designing for Performance by Lara Hogan – This book is awesome! Performance is such an important part of web development and design but it is often overlooked. Lara does a great job of showing the various tools and methods your team can use to make your websites snappier and happier.
  2. Soft Skills: The Software Developer’s Life Manual by John Z. Sonmez – Every now and then you come across a book for programmers that isn’t about programming and this is one of the best I have read. You should be working on your career and life goals and this book aims to help you learn the in’s and out’s of various topics such as finance, job seeking, and personal health.
  3. Responsible Responsive Design by Scott Jehl – Another must have book for the front-end dev. When we talk about responsive design we always talk in it within the context of how fluidity, how it looks on every device. Rarely do we ever consider the impact of the bandwidth we have available to us and Scott makes a lot of great arguments about why we need to factor that in as well. Most of us think that the internet is really fast but in reality it is average at best and we are the exception to the rule. Most people have limited connection speeds and we need to make sure we build our sites with that taken into consideration.
  4. Smashing Book #5 – No list would be complete without mentioning a Smashing Book. This one is thick (2″ or so) and chocked full of all sorts of vital information. One of the best sections of this book talks about SVGs which are becoming an important part of the web. The design of the book itself is very vibrant and each section is organized with a different color.
  5. The Uncertain Web by Rob Larsen – Anyone who works on the web knows that there are numerous decisions that happen when choosing which technologies to use and what devices to support. Something that we build today needs to work for devices tomorrow and Rob does a great job at looking at the web today and how it may look tomorrow while providing examples of how technologies have evolved and how they handled certain obstacles. Instead of leaving us worried about how we are going to support such uncertainty, we are left embracing the nature of the web because this uncertainness is the result of the power of having an open web.

 

These books are the top 5 I have read this past year and they will make an excellent addition to anyone’s read list.


Making Time: Learning New Things

One of the hardest things about being a web developer is finding time to learn new things. We spend a lot of our mental capacity each day solving a multitude of problems and yet we still have the biggest problem to solve of all, finding spare time.

Task and Commit

For the longest time I struggled with finding time in between work and family life to do the things that I liked doing, while still being able to add new skills under my belt. It wasn’t until I started making a list of things I wanted to work and forcing myself to complete that list each week that I really started to make progress.

You don’t have to do anything special, even a 30-minute block of time can make a huge difference and starting small you can always increase those blocks by 15 minutes or so.  Some nights I’ll spend a few hours working on something new, and on Sundays I am always going through Team Treehouse videos and making sure to complete a track section.

Preventing Burnout

Don’t be afraid to take a break from your learning to have some fun time. Play some CS:GO or ride a bicycle. A lot of studies show that the only way to increase your memory and skills is to exercise as that adds new grey matter to your brain which in turn allows you to absorb more data.

Learning How to Learn

It is also important to know the styles in which you learn the best. I am a watcher doer so I have to either watch a video of someone working on a problem or I have to throw myself deep into it until I solve it. Knowing your learning methods is critical to effectively make use of your time. There is no point in watching a training lesson if it does absolutely nothing for you, if a book is the best way, then stick to that.

Have Fun

Make sure that what you are learning is something you are actually interested in. I can’t tell you how many times I have seen people get started on a new technology only to not progress simply because they did not enjoy the material. If it is something that doesn’t get your brain juices going, skip it and move to something else that does.

 


Bleeping Awesome Beta Blog!

Finally.

After many days and nights of working hard I have finally uploaded the beta version of my site. So far I am really proud of what I have done so far.  There is still a lot to do, and I plan on going all out, using as many new technologies as I can to see what I can do.

Performance

One of the important focuses I have while building this site is learning how to make everything run as fast as possible. Whether that means compressing images a lot or modifying the expiration on served assets, I’ll be taking care of it all. Currently using Yslow my site gets a rating of 92. Not half bad! The only other changes I could make to impact that would be using a CDN or doing cookie-less domain stuff, which I don’t really need to do.

On Pingdom everything looks good as well.  The site gets a 99/100 performance grade (damn you Google Fonts). Oddly enough it looks like 71% of the time my site is waiting on Apache reverse lookups and I am trying to find a solution to solve that, so if you have an ideas let me know! 😎 Using Grunt has helped a lot since I merge and minify most of my CSS/Scripts except for the ones that come with the few plugins I use.

Design

Google’s Material Design guidelines served as inspiration for me. In particular I like their approach to handling shadows via inferred global lighting and how animations are created to “make sense” of the changing user interface. There are a lot of developers out there with really fancy websites that have crazy animations and effects which are awesome but not really what I wanted to do.  Since I try and blog as much as possible I really wanted a layout that focused on the content instead of aesthetics .

The homepage consists of a layout of cards which are a modified post content format. This makes it really easy to see a quick overview of the various topics the site is about without overloading you with a lot of copy. Eventually I would like to use AJAX to load each segment of paginated posts in but for now I think it works just fine.

One of the things I would like to fix the most is the slide out menu on the right. It works great on tablets and phones but on desktops it is too far away from the center content area and I need to either find a better solution or I may end up using a full screen menu.

Content pages have changed a lot and for the better. The featured images now span full width and the copy is a larger size which makes reading a lot more enjoyable. Since there is little to deal with in terms of layout, it all scales down nicely. At some point down the road I will create some page template types for special posts and more enriched content.

Tools

During the design phase of this project I used Sketch as it was the perfect time to learn a new program.  It is probably the best design software I have used in a long time and it is tailored towards website and app design. Everything is vector based and styling falls within the constraints of what the web can do i.e shadows can only look the way that they would using CSS.  There are a lot of plugins out there that extend Sketch and allow you to export CSS/SCSS, HTML, and even multiple sizes of images.

Foundation 5 comes with Bower and Grunt and I made sure to use both extensively during this project. In the past I just used Compass, but I am glad I made the change as I feel it helped decrease the setup time. Bower allows you to download packages either through its own repositories or Github urls. This is great because you can package manage all of your libraries and update them all from the command line. Grunt is definitely the hero of this story though because it allows you to do all sorts of automated tasks. I was using it to compile my SASS and minify it while also doing the same to my Javascript files.

More to come

There is still a lot left to do and I don’t plan on stopping anytime soon. Lots of changes are happening in my personal life so I hope that they do not interfere with all of the great ideas I have in store. The one thing I have always liked about websites is that they are never finished, at least not if you plan on it being successful.  Anyways, thanks for stopping by and I hope that you like the direction the new site is going!


Goals for 2015

The past year was a really good year for me. I started a job at an agency, got really good at building responsively, started a few personal website projects, and read a bunch of books. This year I hope that I can do even more. Putting these goals here is a way for me to track what I said I’d do. (Apparently I had this set to 2014, it pays to make sure you type things correctly!)

  1. Read more – I’ve been doing a lot of reading and it really has helped me tremendously. Every book that I have picked up contained at least one gold nugget of information that I have used numerous times. My goal is to read at least 20 books, and try to do a write up as I finish each one.
  2. Learn AngularJS – A lot of projects on the web are starting to use Node/Angular/whatever to make fullstack applications. I definitely see that being important to know and I want to learn as much as I can about it. I already have a good solid understanding of the OSI model so it shouldn’t be too hard for me to figure out… at least I hope not!
  3. Bike to work – Not really a development thing, but I know that I want to ride my bike to work a lot more. I think that doing this at least twice a week should be doable and help me out a lot with the next goal I have.
  4. Lose Weight – I sit down A LOT. Due to the nature of the work that I do, I am not moving around as much as I probably should.  If I could lose about 20lbs. that would be amazing, so I will see what happens.
  5. Travel to California – This has been on my wish list for a while and Becca really wants to go so hopefully this is happening.
  6. Write Articles More –  I definitely need to step up my blogging game, I should be posting way more. I run several other blogs and feel like I have neglected them as well.
  7. Practice Design – I’ve always been a coder but I want to spend some time working on learning and getting better at design. If designers have to learn to code a bit these days I supposed I can learn how to make pretty things.

Well here are the primary things I am really striving to work on this year, if I come up with anything I will add them to the list.

 


(MY) {GEEK} Mental Health Week

An Important Idea

You may or may not have heard, but this week is Geek Mental Health Week.  The idea is to spend a week writing articles about how serious of an issue our mental health is, as well as to tell the world about our own personal struggles, or to provide support for those in need. I’ll admit I didn’t hear about it until a few articles on A List Apart started popping up but after reading them I got really excited. I’m a firm believer that our work lives impact our physical and mental health in significant amounts.  Once we “grow up” we start spending at least one third of our day at work and if you count getting ready in the morning, and getting home that number can quickly become greater than half.

The Chair of Listening

There has always been one commonality in every place that I have worked. Whatever office I am working in, there has always been a chair, not just any chair, but THE chair.  It is the place where many of my fellow coworkers go when they have something going on, be it at home or work. Sometimes there is a project going on that is kicking them down, other times it is a grievance about management and they just need to vent out. Whatever the issue, I have found that offering an ear to listen is one of the greatest traits that you can posses in any company.  I’ve noticed a difference in any work environment where there is a place for people to go to voice their frustrations or seek advice about life issues.

My Own Struggles

Maintaining a healthy work-life balance is something we all strive to do but I have to confess that it is something I am very terrible at.  People always look at me like I am crazy when they ask me what I did over the weekend and I tell them I spent most of it learning to program on iOS or building a new website for a personal project. They often wonder how I can go home to do essentially the same work I do all day. To be honest I don’ t really know the answer 100% but sometimes it can really wear me down.

The single handed hardest part about trying to learn new skills is bouncing back from a very rough day. I’ve had my fair share of days where I just wanted to walk out the door and never come back, and when I got home I would sit in front of my keyboard wondering how I could even find a shred of energy to start a project, much less finish one I had been working on.  That is often the vortex that many find themselves caught in, trying to progress their skills and not burnout. It is actually one of the reasons why some people get out of tech after only ten or so years. Some people find the energy to keep up with the constantly changing requirements and standards, while other simply toss in the towel.

The most important thing at the end of the day is finding out what matters the most to you, and making that become your motivation to continue progressing you skills. A lot of themes at tech conferences lately focus on side projects. Whether that is a cooking blog, or building a new tool that others can use, so long as it combines your skills with something you love to do then you are on the road to making your outside life far more balanced while still learning new skills.

Projects on the Side

I am a huge advocate of working on side projects. Most of the time I work on websites for activist groups, other times I do really simple electronics projects with my Arduino or Raspberry Pi. For the longest time I would come home and zone out in front of video games (which I still do sometimes) but after looking at the hours spent playing a game, I started thinking about how I could better use that time, and what sort of impact it would have. I was really frustrated that I wasn’t learning new skills at work, and that I felt like I didn’t have anything to show for the past year or so. That is when I started VeganRVA, which began as an idea for a food blog. I went all out with that, using Git and setting up a repo with Beanstalk, as well as using Foundation as a framework.

Working on a project that you are passionate about help gives you the drive and determination you need to work through all of the tough learning challenges you might run into, as well as motivate you to keep working.  At the end of the day you have something to show for all your time and effort as well as a bunch of newfound skills.

 

full-mental-health
No more of this!

Mac Development – WHAT?!?

Joining the darkside

Recently if you’ve hung out with me you might have noticed that I am primarily developing on Apple now. For the longest time since I worked in IT, I was always heavily biased towards Windows because, let’s face it, the networking tools are way better. You can’t beat Active Directory and Group Policy. Nowadays though, must of my sysadmin work is done on the server side, outside of the network, and I spend a lot of my time writing code. After many long nights of reading articles all over the internetz I decided that Mac was the way to go for me.

It just works

I know that a lot of my Windows friends are going to cringe at my saying that, but they really do just work. The fact that I am able to run Ruby, SSH, and all sorts of other tools I use on a daily basis directly in the terminal with minimal fuss is enough of a selling point for me, and on top of that I can drag folders into bash as well so that I can easily cd to the directory I need. I can even install programs from the terminal with ease too. One of the programs I use a lot is AMPPS and right after installing it, I was able to get running whereas on Windows I was stuck troubleshooting issues with Apache, something I ran into with MAMP as well.

Design

It may seem silly but aesthetics are very important and Apple has that nailed down. Their computers are beautiful and the user interface is very minimalist, which helps focus on that task at hand. The hardware design is also spectacular. I’ve had the battery last in my laptop for an entire day of heavy usage, something I’d only get maybe 4 hours on with other laptops I have owned in the past.

Not Bloated

One of the other great things about Apple is that they don’t load crapware on your computer like OEM’s do. Obviously that isn’t something that Microsoft can do so much about, and if I was building a computer (which I would), I most definitely would be using an OEM disc so that I wouldn’t have to worry about it. It is nice to buy something and not feel like you are still being marketed to.

Final Impression

All in all, I love working on my Mac now and I don’t think that for web/app development that I would want to go back to Windows. I just don’t run into all the extra issues I am used to having to deal with and it is nice. I still love my gaming rig, and that is what it is going to remain as. I plan on getting a 4k display and moving my two new 24″ monitors to a dock so that my mac can reside there with both of those hooked up. I’m glad I made the switch.