Monday, November 14, 2016

Top 10 Cheat Sheets And Infographics To Help You Master Digital Marketing

Top 10 Cheat Sheets to Help You Master Digital Marketing

Since digital marketing first exploded into the marketing scene, it has been growing at an exponential rate, which can make it difficult for an aspiring digital marketer to become a master in the field.

Though marketing resources vary widely and include television, billboards and radio, what comes to mind when people are talking about digital marketing platforms are the internet, social media and mobile. The latter three platforms are subject to many changes and it is for this very reason that marketers find themselves struggling to stay on top of every trend and change.

This post comprises 10 digital marketing cheat sheets and infographics, which will help any aspiring marketer to get into the digital marketing field and capture relevant audiences.

by Guest Author via Digital Information World

What Future Java Might Look Like

During the second week of November was Devoxx Belgium, Europe's biggest Java conference, and as every year the community's who's-who showed up. One of them was Brian Goetz, Java Language Architect at Oracle, and he gave what I would consider the conference's most thrilling talk: "Java Language and Platform Futures: A Sneak Peek". In it he presented ideas that the JDK team is currently kicking around. And boy, is the pipeline full of great stuff! Java won't look the same once it's all out in the wild.

When will that be? Nobody knows. And that's not nobody as in nobody outside of Oracle, that's nobody as in nobody knows whether happy endings exist for arbitrary n. Brian went to great lengths to stress how very, very speculative all of the following is and how much things might evolve or simply get dropped. He went so far to let everyone in the audience sign an acknowledgment thereof (just mentally but still) and explicitly forbade any sensationalist tweets.

Well... first of all, this is no tweet and second of all, I wasn't in that audience. So here we go! (Seriously though, take this as what it is: a glimpse into one of many, many possible futures.)

Crash Course

Before we go through the ideas one by one, let's jump right in and have a look at what code might look like that uses all of the envisaged features. The following class is a simple linked list that uses two types of nodes:

  • InnerNodes that contain a value and link to the next node
  • EndNodes that only contain a value

One particularly interesting operation is reduce, which accepts a seed value and a BinaryOperator and applies it to the seed and all of the nodes' values. This is what that might one day look like:

public class LinkedList<any T> {

    private Optional<Node<T>> head;

    // [constructors]
    // [list mutation by replacing nodes with new ones]

    public T reduce(T seed, BinaryOperator<T> operator) {
        var currentValue = seed;
        var currentNode = head;

        while (currentNode.isPresent()) {
            currentValue = operator.apply(currentValue, currentNode.get().getValue());
            currentNode = switch (currentNode.get()) {
                case InnerNode(_, var nextNode) -> Optional.of(nextNode);
                case EndNode(_) -> Optional.empty();
                default: throw new IllegalArgumentException();
            }
        }

        return currentValue;
    }

    private interface Node<any T> {
        T getValue();
    }

    private static class InnerNode<any T>(T value, Node<T> next) implements Node<T> { }

    private static class EndNode<any T>(T value) implements Node<T> { }

}

Wow! Hardly Java anymore, right?! Besides the omitted constructors there's only code that actually does something - I mean, where's all the boilerplate? And what if I told you that on top of that performance would be much better than today? Sounds like a free lunch, heck, like an entire free all-you-can-eat buffet!

Here's what's new:

  • The generic type argument is marked with any - what's up with that?
  • Where are the type information for currentValue and currentNode in reduce?
  • That switch is almost unrecognizable.
  • The classes InnerNode and EndNode look, err, empty.

Let's look at all the ideas that went into this example.

Continue reading %What Future Java Might Look Like%


by Nicolai Parlog via SitePoint

Dear Hiring Manager: UX Designers do not need to code

Dear Hiring Managers,

I get it. I really do. You want the best possible employees on your team, and it seems like the more skills that they have, the better candidate they are. You’re not the first to think this way – there’s plenty of controversy in the UX industry, and other industries too. 

When I worked in special events, I found that many jobs expected me to not only be an excellent event designer and manager, but also a fantastic salesperson. The problem was, if I was out driving around, trying to drum up sales, I wasn’t working on my clients’ events.

The same can be said for user experience design and development. The focus should be on researching and testing and planning out the best user experience for the users, not coding and debugging. UX designers should be able to focus on continuing to learn their craft, rather than aspiring to do everything. 

They are two different jobs

The best metaphor I’ve come across in my digital travels is that of the architect and the construction worker. The architect designs and plans out the blueprints for a building. A construction worker then takes those plans and builds the building according to the plans. You won’t find anyone expecting an architect to pick up a tool belt and build a building, but that is exactly some people expect from UX Designers in the digital space.

Probably not a UX designer.

Probably not a UX designer.

UX Designers research and plan out the apps and websites, and create digital blueprints in the form of sitemaps and wireframes. Developers build the app or site, using the digital blueprints provided by the designers as their guide.

While there needs to be some understanding of coding principles and technical frameworks, a UX Designer doesn’t need to be able to code to understand how it works. They accomplish entirely different tasks.

Takeaway: Hiring Managers should limit the number of skills listed on job postings to those that are only related to UX.

Divided focus means less quality work

Admittedly, there are rare Unicorns – people who have skills in both development and UX. Perhaps they started their career as a developer then decided to pick up some UX skills to make their resume stand out, or maybe someone told the UX designer that they needed to be able to write code so they took a crash course online in JavaScript or Ruby.

The key point is that they started in one then dabbled in the other – the majority of their skill set is focused on one field rather than both.

ambers

A good designer is constantly looking for better ways to design, and a coder is always looking for better, more efficient code. To take focus away from their own field and work makes it likely the quality could be diminished, and that’s never the goal of a product. According to this article from the Harvard Business review, “Quality improves when more of the work that goes into a final product is done by people who are good at it.”

Takeaway: Competent UX designers may feel like they are a bad fit for the job if they don’t have every UX and coding skill under the sun, so you may end up scaring off good candidates if you list coding as a required skill.

From ideation to creation: UX is the buffer

In the past, clients used to go to a web designer with their business idea and then the web designer would build it for them. If they were lucky, the client would have a good idea of their customers and the web designer would have decent design skills and it would be a successful website.  

Websites, however, are a dime a dozen and there are more bad websites than good. Nowadays, the focus is on creating good content and a good user experience so products stand out from their competitors, and people become repeat users.

That is why User Experience Design was created – clients can now speak with a UX designer who will help them research their customer base, figure out what their goals are, and create designs to bring to the developers, building only when the content and designs have been approved at every level. It’s a longer process, but it results in better products and fewer rebuilds.

Takeaway: Good research skills are essential to UX design and should be the focus of the job requirements. Job postings should also focus on research skills.

Wearing different hats is fine, but make sure they’re similar

Finding the right candidate for a position can be difficult, especially in smaller companies that need people who can multi-task and possibly work in other departments. This can be done right if one pays attention to the skill sets of each candidate. UX might not fit into the development or tech departments, but marketing, research, product design, and even project management would gladly welcome the skills and perspective of a UX Designer.

Takeaway: On job postings, list UX as your ‘must have’ skills, and then list similar skills as ‘nice to have’. Be open to those applicants who have a background that is not UX – they are more likely to have extra skills in another department.

Concluding thoughts

The field of UX design is surprisingly large considering its relative youth as an area of expertise. It can be difficult to wade through all the possible candidates and their varied skills and backgrounds.

Your job will be much easier, however, if you separate the user experience experts from the developers. Just remember the following points:

  • User experience design and web development are two different fields of study that just happen to work together. 
  • A dedicated UX designer and a dedicated developer will provide better quality work than someone who is both a UX designer AND a developer. 
  • User experience design is focused on the users and how to reach them successfully, which creates a necessary buffer between the product idea and the product creation. This results in more effective products from the get-go and less need for rebuilds later. 
  • If you’re combining roles in the company, combine UX designers with similar roles and departments, such as research, marketing, and product design.

Why do you think hiring managers expect UX designers to have such an extensive skill set? Let us know in the forums!

The post Dear Hiring Manager: UX Designers do not need to code appeared first on UX Mastery.


by Amber Stechyshyn via UX Mastery

Web Design Weekly #259

Headlines

A Study Plan To Cure JavaScript Fatigue

A nice refreshing article that looks at tackling the current JavaScript ecosystem, rather than complaining about it. (freecodecamp.com)

Lessons Learned From Scaling Uber To 2000 Engineers (highscalability.com)

Sponsor Web Design Weekly and reach over 22,000 passionate designers and developers

Articles

CSS Architecture for Design Systems

Creating a solid CSS architecture is extremely difficult and is in need of constant evaluation. If you are starting a fresh project or battling an existing codebase hopefully these tips from Brad Frosts help ease the pain. (bradfrost.com)

Let’s talk about Design Portfolios

If you are looking to pack up your bags and move jobs this post offers some nice insights into making sure you nail that new gig. It’s written for designers but I feel the majority is still applicable to developers. (medium.com)

Things I’ve Learned About CSS Grid Layout

Oliver Williams has been working with CSS grid layout recently and in this post he shares what he has learnt so far. (css-tricks.com)

Hamburger Menu Alternatives for Mobile Navigation

There isn’t a one-size-fits-all solution for mobile navigation, it always depends on your product, on your users and on the context but this post by Zoltan Kollin explores some alternatives that are worth considering. (medium.com)

Libraries vs Frameworks(youtube.com)

Tools / Resources

Tools for Developing Accessible Websites

In this post Ire Aderinokun gives an overview of 5 (mostly Chrome based) accessibility tools to help make sure your sites can be enjoyed by all. (bitsofco.de)

10 principles for smooth web animations

Anand Sharma shares a series of design and code principles that seem to reliably result in nice animations. (blog.gyrosco.pe)

Designing a Usable Dashboard

A product managers guide to quick and effective design. (rahulgulati.com)

Function Components in React (medium.com)

The translateX CSS Property (sitepoint.com)

Firebase Dev Summit 2016 (youtube.com)

CSS Flags (pixelastic.github.io)

Inspiration

Useful Pens for Everyday Front End Development (codepen.io)

Yes, your team should be blogging (michaelrbernste.in)

The secret history of the Mozilla logo (jwz.org)

Jobs

Web Developer at Dropbox

Our Web Devs at Dropbox are front-end experts. We use HTML, CSS, JavaScript and a/b testing to improve the core flows of our website. As a growth team, we’re extremely passionate about fast iteration and high impact code. Get in touch if you want to be involved in creating an amazing product. (dropbox.com)

UI / UX Designer at Freelancer

We’re looking people with a strong knowledge of web products and a keen sense for usability. If you are an advocate of user-centric design and have a love for developing intuitive solutions, we’d love to hear from you. (freelancer.com)

Need to find passionate developers or designers? Why not advertise in the next newsletter

Last but not least…

Google Launching WebVR Support Chrome (roadtovr.com)

The post Web Design Weekly #259 appeared first on Web Design Weekly.


by Jake Bresnehan via Web Design Weekly

Editorial: What Does Open Source Mean to You?

We love our themed weeks here on SitePoint. Earlier this year we had IoT week, which saw us (me in my tin hat) publishing articles focused on the intersection of the internet and the physical world. The week was a big success, and so now we're back by popular demand with an entire week dedicated to all things open source.

We'll get on to all the goodies we have lined up in a minute, but first I want to take a moment to reflect on what open source means for me.

The open source project I use most often is my computer's operating system (Linux Mint). It is stable, polished, has a sleek UI and puts a whole host of (awesome) free and open source software at my fingertips. It would be easy to take this for granted (I mean you just download it and install it, right?), but in reality it is made possible by an army of volunteers, who are hard at work behind the scenes. I think it's important we don't forget that.

The same goes for the large amount of open source JavaScript projects available to us developers. Whether they are intended to help you build amazing apps, or as a learning resource to help you level up your skills, these are all projects, supported and maintained by the community. Thanks to the collaborative nature of open source, you're free to download and modify any of them and, most importantly, to contribute any changes you make back to the project itself.

Continue reading %Editorial: What Does Open Source Mean to You?%


by James Hibbard via SitePoint

Hashicorp’s Packer – Is It Something for PHP Developers?

Packer logo

tl;dr; - Is Packer a tool you'll need in your tool box as a PHP developer? It depends.

If you do a lot of server work for your clients or on the job, along with development work, then yes. Packer can help you a lot.

If you are only a developer and don't really do much work on the server directly, then no. Packer won't be very helpful.

That being said, it is wise for any PHP developer to learn the basics of creating server environments. You will run into these technologies in your career in one way or another (everything you create runs on them!). This specialized knowledge will help your career in the future for sure! At a minimum, you'll understand your dev-ops colleagues and the work they do much better.

If your interest has been piqued, or if you do a lot of manual server work, please do read on.

An image of two numbers: 2016 and 2006, and an arrow from the former to the latter

A Look Back in Time

tl;dr; #2 - If you have a command of Vagrant and understand it's purpose as a tool, please jump to this section of the article.

Only 10 years ago, developing PHP applications basically worked like this: the developer would throw some code up on a web server via FTP and see if it worked. If it didn't, they would troubleshoot it, edit in a change in some text editor, reload the affected file via FTP again and see if the changes fixed the problem. In that case, they'd go to the next feature or issue, wash, rinse, repeat (and hope nothing they just worked on broke). They might have had some synchronization going with FTP, too.

This was the workflow of the average lone PHP developer pushing stuff to a development server or, heaven help them, directly to a production server (and still is the same process for some developers today, actually). Building the web server itself back then was usually the work of someone else.

Also, in that not-so-distant past, to get teams of developers to work together, there might have been some form of concurrent versioning system and maybe the team even had an auto-deployment set up. When changes were committed to the repository, it would deploy to either a staging or a production system automatically. This scenario was actually the best technology for web application development back then.

In those good old days, things like continuous integration, virtual machines, cloud computing, infrastructure orchestration, data-center automation and even the term "devops" were basically unknown. They were just coming to life. Amazon was just starting their Web Services business. And remember, this was only 10 years ago!

Ahhh, how simple life was back then, right?

Well, no. Back then, development was slower and more tedious, and also more error prone. Servers also always had to be "put up" for testing, which often meant developers had to wait until the "network guys" got a server ready for use with, say, the newest version of PHP. It was often a fight in a lot of cases and for the "network guys", keeping servers "in shape" was often like fighting fires.

Funny image of fire being put out in IBM office

Computing Today and Virtualization

Today, with the computer technology within everyone's grasp, developers can carry a much more sophisticated development infrastructure right with them on their own laptop. The computing power of a laptop or PC today is considerably more than what was available just 10 years ago in a web server.

In fact, many of the smart phones we have today are more powerful than the servers of 10 years ago.

Image of server next to an image of an older iPhone

Technology is amazing, isn't it?

Because of the growing amount of computing power available, more and more people started to realize that this computing power could be split off into separate "machines". This allowed for totally different things to happen on them at the same time. More importantly, the computing power could be much better utilized, saving resources. These were the main drivers for the virtualization of computing power.

In other words, today, with the ability to make virtual machines, developers can carry their own development environments with them and are no longer restricted by another party of people, who have to "give" them a proper environment to work on. More importantly, they can locally build a complete development environment, which mimics a full web server.

Not only does this make developers much more autonomous, there is another big advantage to this kind of local development environment: it is called "development-production parity" - a concept we discuss at length in the newbie friendly "Jump Start PHP Environment" book. Dev-prod parity basically means that the developer can develop on a system virtually identical to the one the app will end up on when deployed live.

A stock image displaying a rating of adjectives, the top one names "Excellent" being selected with a checkmark

The Production Parity Advantage - it allows the developer to produce higher quality code, because they can do the right things, the right way, the first time.

Today, a developer can have everything they need to develop highly complex applications within a highly complex environment, right in their own backpack.

Continue reading %Hashicorp’s Packer – Is It Something for PHP Developers?%


by Scott Molinari via SitePoint

Weather Map – Beautiful, Dynamically-Updated, Searchable Maps with Javascript

Weather Map is a JavaScript library that helps your create beautiful, dynamically-updated, searchable maps and charts with all kinds of weather-related information.


by via jQuery-Plugins.net RSS Feed