Monday, February 23, 2015

How to Recruit Millennials


Top notch IT talent.
We’re all looking for new superstars.
I thought you might find this interesting from Resource1.com about how to recruit from Generation Y (a.k.a. Millennials) and their differences between Generation X and Boomers:
Everet
A Heck of A Nice Guy


4 Things Your Company Can Do To Attract Millennial IT Talent
by Anastasia C. Valentine

With the IT unemployment rate at 2-3% in most states, many companies are facing the most challenging times in managing an IT workforce since the late 90s. To confound current market conditions, you have to attract and hire from a pool of three diverse generations: Baby Boomers, Generation X and Millennials. While Millennials are often noted for being a challenging bunch, you have to properly integrate them into your current workforce and foster a unified work environment for all three generations.

Understanding the key differences between the three generations is a great starting point to help you facilitate a cohesive workplace. According to Vivian Giang from “Business Insider:
  • Baby Boomers are loyal, hardworking, team players.  They place importance on healthcare and retirement.  They also are the least adaptable of the three generations.
  • Generation X are effective managers, adaptable, great at solving problems and put an emphasis on workplace flexibility.  However, they have the least executive presence of the three.
  • Millennials are tech savvy and enthusiastic about their jobs.  More than the other two generations, they want to know how and when they can get promoted.  However, they’re not big team players.
Graphic from the Business Insider (http://www.businessinsider.com/how-millennials-gen-x-and-boomers-shape-the-workplace-2013-9)
Graphic from the Business Insider (http://www.businessinsider.com/how-millennials-gen-x-and-boomers-shape-the-workplace-2013-9)

Now that you have some more insight into the different generations, let’s look at 4 things you can do to better recruit technical Millennials to your company.
1.)    Corporate Culture and ResponsibilityMillennials have a different view than Baby Boomers and Generation X of what corporate life should be.  They don’t want to be a piece of a big corporate puzzle.  They want to feel that they are making a difference in the overall business.  In your own IT department, you should show your employees how the projects they’re working on help the organization as a whole.  Millennials also want infrastructure to get the job done – with technology and connectivity, not cubicles and lunchrooms.  Corporate social responsibility is also something that Millennials value.  According to a recent Towers Watson study, 71% of Millennials want to work for a company that encourages some form of global or community social responsibility.  Your company should be communicative about their role in the community and what organizations they support.

2.)    Flexibility and Mobility
Where Generation X finds flexibility important, so do the Millennials.  The recent Millennials and the Future of Work report found 84% of Millennial workers in traditionally well-paid corporate roles would quit in order to pursue more flexible options.  IT Millennials have gone through college wooed by stories about start-up companies with flexible work schedules.  Also, being the first generation to grow up with PC’s and the Internet, this tech-savvy generation has the capabilities, equipment and knowledge to successfully work from home.  If you don’t have one already, consider a flex-time plan and a work from home policy.  Implementing these two things could have a meaningful impact on your recruiting efforts not only for Millennials, but for Generation X as well.

3.)    Inspired to Learn
A recent survey conducted by JobBuzz found 27% of Millennial workers most wanted their boss to be a good motivator.  They value someone who is understanding, encouraging and hands-off.  Millennials in IT want responsibility and the opportunity to wow their leadership.  Brian Halligan, CEO of Hubspot, says “I take these young kids and I give them huge responsibility.  Sometimes they mess it up, but more often than not they get it right.”  When hiring, make sure you communicate not only the types of responsibilities they will have, but also what they can expect to learn from you, as a manager and their role in the department.

4.)    Opportunity to Grow
Tech Millennials want to grow their careers just as much as any generation.  Baby Boomers and Gen X are established in their careers paths and know what they want to get out of their job.  Millennials are still finding their way in the corporate world and could change their direction at any time.  Many firms have taken to implementing certain programs and policies in order to help attract and retain Millennials.  For example, Hubspot makes sure that there is a certain percentage of employees changing departments or jobs every three months to keep their Millennial employees interested in their work.  When recruiting, it’s important to give your IT Millennials insight into the various aspects of technology at your company and give them the opportunity to change their career path if so desired.

Some employers have expressed concerns that Millennials expect too much from their workplace.  That concern has made many companies research Millennials to learn how to best manage them and to also understand how to make Baby Boomers, Gen Xers and Millennials understand each other.  For example, Goldman Sachs hires actors to portray Millennials in the workplace and then has management analyze the generational differences.
By 2025, 75% of the global workforce will be the Millennial generation.  In order to attract them and keep them committed to a stable career with your company, the most important thing you can do is to understand them. Knowing their strengths, weakness and what is important to them will help you develop a cohesive, blended workforce and attract this new generation of workers.

Wednesday, February 18, 2015

9 Cutting Edge Programming Languages


When reading this article I had only heard of three of the new languages.
I thought you might find this interesting from CIO.com:
9-cutting-edge-programming-languages
Everet
A Heck of A Nice Guy


The big languages are popular for a reason: They offer a huge foundation of open source code, libraries, and frameworks that make finishing the job easier. This is the result of years of momentum in which they are chosen time and again for new projects, and expertise in their nuances grow worthwhile and plentiful.
 
Sometimes the vast resources of the popular, mainstream programming languages aren’t enough to solve your particular problem. Sometimes you have to look beyond the obvious to find the right language, where the right structure makes the difference while offering that extra feature to help your code run significantly faster without endless tweaking and optimizing. This language produces vastly more stable and accurate code because it prevents you from programming sloppy or wrong code.
 
The world is filled with thousands of clever languages that aren't C#, Java, or JavaScript. Some are treasured by only a few, but many have flourishing communities connected by a common love for the language's facility in solving certain problems. There may not be tens of millions of programmers who know the syntax, but sometimes there is value in doing things a little different, as experimenting with any new language can pay significant dividends on future projects.
 
The following nine languages should be on every programmer’s radar. They may not be the best for every job -- many are aimed at specialized tasks. But they all offer upsides that are worth investigating and investing in. There may be a day when one of these languages proves to be exactly what your project -- or boss -- needs.
 
Erlang: Functional programming for real-time systems

Erlang began deep inside the spooky realms of telephone switches at Ericsson, the Swedish telco. When Ericsson programmers began bragging about its "nine 9s" performance, by delivering 99.9999999 percent of the data with Erlang, the developers outside Ericsson started taking notice.

Erlang’s secret is the functional paradigm. Most of the code is forced to operate in its own little world where it can't corrupt the rest of the system through side effects. The functions do all their work internally, running in little "processes" that act like sandboxes and only talk to each other through mail messages. You can't merely grab a pointer and make a quick change to the state anywhere in the stack. You have to stay inside the call hierarchy. It may require a bit more thought, but mistakes are less likely to propagate.

The model also makes it simpler for runtime code to determine what can run at the same time. With concurrency so easy to detect, the runtime scheduler can take advantage of the very low overhead in setting up and ripping down a process. Erlang fans like to brag about running 20 million "processes" at the same time on a Web server.

If you're building a real-time system with no room for dropped data, such as a billing system for a mobile phone switch, then check out Erlang.

Google wasn’t the first organization to survey the collection of languages, only to find them cluttered, complex, and often slow. In 2009, the company released its solution: a statically typed language that looks like C but includes background intelligence to save programmers from having to specify types and juggle malloc calls. With Go, programmers can have the terseness and structure of compiled C, along with the ease of using a dynamic script language.

While Sun and Apple followed a similar path in creating Java and Swift, respectively, Google made one significantly different decision with Go: The language’s creators wanted to keep Go "simple enough to hold in one programmer's head." Rob Pike, one of Go’s creators, famously told Ars Technica that "sometimes you can get more in the long run by taking things away." Thus, there are few zippy extras like generics, type inheritance, or assertions, only clean, simple blocks of if-then-else code manipulating strings, arrays, and hash tables.

The language is reportedly well-established inside of Google's vast empire and is gaining acceptance in other places where dynamic-language lovers of Python and Ruby can be coaxed into accepting some of the rigor that comes from a compiled language.

If you're a startup trying to catch Google's eye and need to build some server-side business logic, Go is a great place to start.

Groovy: Scripting goodness for Java

The Java world is surprisingly flexible. Say what you will about its belts-and-suspenders approach, like specifying the type for every variable, ending every line with a semicolon, and writing access methods for classes that simply return the value. But it looked at the dynamic languages gaining traction and built its own version that's tightly integrated with Java.

Groovy offers programmers the ability to toss aside all the humdrum conventions of brackets and semicolons, to write simpler programs that can leverage all that existing Java code. Everything runs on the JVM. Not only that, everything links tightly to Java JARs, so you can enjoy your existing code. The Groovy code runs like a dynamically typed scripting language with full access to the data in statically typed Java objects.

Groovy programmers think they have the best of both worlds. There's all of the immense power of the Java code base with all of the fun of using closures, operator overloading, and polymorphic iteration -- not to mention the simplicity of using the question mark to indicate a check for null pointers. It's so much simpler than typing another if-then statement to test nullity. Naturally, all of this flexibility tends to create as much logic with a tiny fraction of the keystrokes. Who can't love that?

Finally, all of the Java programmers who've envied the simplicity of dynamic languages can join the party without leaving the realm of Java.

OCaml: Complex data hierarchy juggler


Some programmers don't want to specify the types of their variables, and for them we've built the dynamic languages. Others enjoy the certainty of specifying whether a variable holds an integer, string, or maybe an object. For them, many of the compiled languages offer all the support they want.

Then there are those who dream of elaborate type hierarchies and even speak of creating "algebras" of types. They imagine lists and tables of heterogeneous types that are brought together to express complex, multileveled data extravaganzas. They speak of polymorphism, pattern-matching primitives, and data encapsulation. This is just the beginning of the complex, highly structured world of types, metatypes, and metametatypes they desire.

For them, there is OCaml, a serious effort by the programming language community to popularize many of the aforementioned ideas. There's object support, automatic memory management, and device portability. There are even OCaml apps available from Apple’s App Store.

An ideal project for OCaml might be building a symbolic math website to teach algebra.

CoffeeScript: JavaScript made clean and simple


Technically, CoffeeScript isn't a language. It's a preprocessor that converts what you write into JavaScript. But it looks different because it's missing plenty of the punctuation. You might think it is Ruby or Python, though the guts behave like JavaScript.

CoffeeScript began when semicolon haters were forced to program in JavaScript because that was what Web browsers spoke. Changing the way the Web works would have been an insurmountable task, so they wrote their own preprocessor instead. The result? Programmers can write cleaner code and let CoffeeScript turn it back into the punctuation-heavy JavaScript Web browsers demand.

Missing semicolons are only the beginning. With CoffeeScript, you can create a variable without typing var. You can define a function without typing function or wrapping it in curly brackets. In fact, curly brackets are pretty much nonexistent in CoffeeScript. The code is so much more concise that it looks like a modernist building compared to a Gothic cathedral. This is why many of the newest JavaScript frameworks are often written in CoffeeScript and compiled.

Scala: Functional programming on the JVM


If you need the code simplicity of object-oriented hierarchies for your project but love the functional paradigm, you have several choices. If Java is your realm, Scala is the choice for you.

Scala runs on the JVM, bringing all the clean design strictures of functional programming to the Java world by delivering code that fits with the Java class specifications and links with other JAR files. If those other JAR files have side effects and other imperative nasty headaches, so be it. Your code will be clean.

The type mechanism is strongly static and the compiler does all the work to infer types. There's no distinction between primitive types and object types because Scala wants everything to descend from one ur-object call Any. The syntax is much simpler and cleaner than Java; Scala folks call it "low ceremony." You can leave your paragraph-long CamelCase variable names back in Java Land.  

Scala offers many of the features expected of functional languages, such as lazy evaluation, tail recursion, and immutable variables, but have been modified to work with the JVM. The basic metatypes or collection variables, like linked lists or hash tables, can be either mutable or immutable. Tail recursion works with simpler examples, but not with elaborate, mutually recursive examples. The ideas are all there, even if the implementation may be limited by the JVM. Then again, it also comes with all the ubiquity of the Java platform and the deep collection of existing Java code written by the open source community. That's not a bad trade-off for many practical problems.

If you must juggle the data in a thousand-processor cluster and have a pile of legacy Java code, Scala is a great solution.

Dart: JavaScript without the JavaScript


Being popular is not all it's cracked up to be. JavaScript may be used in more stacks than ever, but familiarity leads to contempt -- and contempt leads to people looking for replacements. Dart is a new programming language for Web browsers from Google.

Dart isn't much of a departure from the basic idea of JavaScript. It works in the background to animate all the DIVs and Web form objects that we see. The designers simply wanted to clean up the nastier, annoying parts of JavaScript while making it simpler. They couldn't depart too far from the underlying architecture because they wanted to compile Dart down to JavaScript to help speed adoption.

The highlight may be the extra functions that fold in many de facto JavaScript libraries. You don't need JQuery or any of the other common libraries to modify some part of the HTML page. It's all there with a reasonably clean syntax. Also, more sophisticated data types and syntactic shorthand tricks will save a few keystrokes. Google is pushing hard by offering open source development tools for all of the major platforms.

If you are building a dynamic Web app and are tired of JavaScript, Dart offers a clean syntax for creating multiple dancing DIVs filled with data from various Web sources.

Haskell: Functional programming, pure and simple


For more than 20 years, the academics working on functional programming have been actively developing Haskell, a language designed to encapsulate their ideas about the evils of side effects. It is one of the purer expressions of the functional programming ideal, with a careful mechanism for handling I/O channels and other unavoidable side effects. The rest of the code, though, should be perfectly functional.

The community is very active, with more than a dozen variants of Haskell waiting for you to explore. Some are stand-alone, and others are integrated with more mainstream efforts like Java (Jaskell, Frege) or Python (Scotch). Most of the names seem to be references to Scotland, a hotbed of Haskell research, or philosopher/logicians who form the intellectual provenance for many of the ideas expressed in Haskell. If you believe that your data structures will be complex and full of many types, Haskell will help you keep them straight.

Julia: Bringing speed to Python land


The world of scientific programming is filled with Python lovers who enjoy the simple syntax and the freedom to avoid thinking of gnarly details like pointers and bytes. For all its strengths, however, Python is often maddeningly slow, which can be a problem if you're crunching large data sets as is common in the world of scientific computing. To speed up matters, many scientists turn to writing the most important routines at the core in C, which is much faster. But that saddles them with software written in two languages and is thus much harder to revise, fix, or extend.

Julia is a solution to this complexity. Its creators took the clean syntax adored by Python programmers and tweaked it so that the code can be compiled in the background. That way, you can set up a notebook or an interactive session like with Python, but any code you create will be compiled immediately.

The guts of Julia are fascinating. They provide a powerful type inference engine that can help ensure faster code. If you enjoy metaprogramming, the language is flexible enough to be extended. The most valuable additions, however, may be Julia’s simple mechanisms for distributing parallel algorithms across a cluster. A number of serious libraries already tackle many of the most common numerical algorithms for data analysis.

The best news, though, may be the high speeds. Many basic benchmarks run 30 times faster than Python and often run a bit faster than C code. If you have too much data but enjoy Python’s syntax, Julia is the next language to learn.

Executive Order 9066

This event
Pearl-harbor-in-pictures

lead to this event. Seventy years ago one of the darkest chapters in American history began, and one my family was involved in this way:
http://www.newworldencyclopedia.org/entry/Japanese_American_internment

and this way:http://everetsblog.blogspot.com/2011/07/go-for-broke.html
http://everetsblog.blogspot.com/2012/11/442nd-regimental-combat-team-captures.html

Ev
A Heck of A Proud American of Japanese Ancestry





Wednesday, February 4, 2015

Thank Your Mentor

In sales and recruiting you hope to achieve a relationship with your client or candidate that leads to them calling you  a friend, adviser, or anything else more than just another salesperson or recruiter.
Sometimes you find that client that you can learn from. In that case we use a different word...mentor.

When you find that mentor be sure to thank them for their advice and help.

Let them know you appreciate their guidance and wisdom.
I'm glad I took my own advice. 
A little while ago I wrote an article:
best-compliment-ever-you're-professional
Since my mentor was the one that gave me the compliment those many years ago I always joked with him that I would someday write about it. I finally did. I'm glad I sent it to him so he got to see it.
He unexpectedly died yesterday morning.

We had communicated by email since we last saw each other over lunch about six weeks before he died. His final words as we were leaving the restaurant remain with me. I thanked him for all the wisdom he had passed on to me. I asked if he ever thought it was a bit strange that he was helping me with his own knowledge since we competed in the same industry.
He said "I love sharing my guidance, experience, and wisdom with you Everet, because I know you'll appreciate it."
I have Bob Burger.
Thank you!
Rest in peace.
Everet



Bob Burger obituary
Died peacefully, Tuesday, February 3, 2015 at the age of 66. Beloved husband of Cheri. Dear father of Stephanie (Danny) Romero and Jennifer Romero, step-father of Jan Van Dam, Casey Van Dam and Abigale Van Dam. Grandfather to Daniel, Jesse, Caitlin, Joe, Jacob and Laine. Soon to be a Great Grandfather to Cattleya. Brother to Raymond (Lynn) of St. George, Utah.

A time of gathering will be at the Funeral Home, 21600 West Capitol Drive in Brookfield Sunday, February 8, 2015, from 10:00-10:45 AM. A Celebration of Life will begin at 11:00 AM.

Bob served in the Air Force in the 1st Air Commando Wing from 1966-1971, achieving the rank of Staff Sergeant by the age of 22. He saw combat in Vietnam and was a true warrior and patriot. Bob loved his country and was very proud of his service.

Bob worked in the Information Technologies Recruiting and Contracting field for over 25 years, and is respected by many in his industry. He began his own company, RBurger & Associates, LLC this past year. His astute professionalism earned him much respect from his peers, associates and past employees.

Bob loved building at his beloved Camp Tranquility. He took a piece of river front property and turned it into a real vacation oasis. Building a dock, woodshed, porch, screen porch and workbench. He spent his winters planning his next projects to improve his summer get-a-way spot.