Tuesday 25 February 2014

WHICH CODING LANGUAGE IS RIGHT FOR YOU?

If you’re ready to buckle down and learn programming, here’s where you should start.

Coding is all the rage these days. Students of all ages and adults already in the workforce are increasingly encouraged to learn programming. Even President Obama said everyone should learn to code. 
There are countless resources that offer the opportunity to learn different skills. From free online classes through services like Codecademy to multi-thousand dollar programs that promise to turn you into a bona fide software engineer in nine weeks. 
But the question remains: Does everyone really need to learn to code?
The answer is no, at least if you’re not in an industry that relies on technology. But that pool of workers is gradually shrinking.
Gregg Pollack, founder of learn-to-code service Code School, says anyone who has to communicate with a developer at any point in their career should learn the basics of programming.
“If you learn some code, you’ll have a much better appreciation for what they do,” Pollack said. “Take the time to understand what it is and how to effectively communicate with programmers.” 
If your goal is to just understand programming concepts, you can play around with a few coding languages and see which one you prefer to learn. However, if you have a goal in mind—such as building an iOS application or a responsive Web page—you need the right tool for the job. 

I’m Just Getting Started

If you have no experience with coding languages or Web development, you can start by learning basic HTML and CSS. 
HTML isn’t a programming language; it’s a mark-up language used for formatting documents. With HTML, you’re able display your words, pictures, links and video in a format that can be understood by Web browsers. Cascading Style Sheets, or CSS, help you can change the font, size, columns, and other design aspects of a Webpage. 
You may already have experience using HTML and not even realize it. People who use WYSIWYG editors like Adobe Dreamweaver might have noticed you can change your editing style by toggling from “visual” to “HTML.” 
Even minimal knowledge of HTML is helpful for people, whether they want to pursue programming or not. Having a mild understanding of how responsive websites operate, and learning how to fix your personal blog or site on your own, can help in many careers down the road. 

I Want To Make Web Apps That Look Good

JavaScript is the code makes websites look great, and there are a variety of compatible frameworks like Ember, Angular and Backbone to help you organize and structure your Web applications for multiple browsers. 
JavaScript has been around for 20 years, and it isn’t getting any less relevant. In fact, it’s on track to become the dominant enterprise language.
You can run JavaScript on just about any browser, and it is used to program both frontend and backend services. There are numerous resources for students to learn JavaScript, and Pollack told me JavaScript is Code School’s most popular course offering
“If you’re doing anything on the Web, you have to learn JavaScript, no matter what your backend is,” Pollack said. 

I Need Fast Prototyping

If you’re a designer and want to learn backend programming to test applications, Ruby or Python are good options—both are object-oriented, dynamic languages that are fairly easy to learn. And both were among the top five most popular job skills of 2013
Ruby has a large ecosystem and an active, supportive community. Ruby was created in 1995, but rose to popularity after the Rails software framework launched in 2003 and made building websites and Web applications simpler thanks to collections of pre-written code.
Python, while similar to Ruby, has a somewhat larger scientific community, so if you want to progress into machine learning and artificial intelligence, Python is the language you should learn. 
If you’re ready to get started, try Learn Python The Hard Way, or the Ruby trackat Codecademy. 

I Want To Build An Android App

On Android, the open-source operating system, app development is mostly done in Java. 
You can build Android applications on Windows or Mac, and purchase relatively cheap devices to test your apps on. And as Android continues to dominate the market share, more mobile developers are choosing to get started on Android than iOS. 
The free introduction to Java programming course on Udacity is for beginners that want to learn Java concepts. Once you’re comfortable with Java, check out the official Android developer site for a comprehensive breakdown of how to create your first Android project. 

I Want To Build An iOS App

On your Mac, you can create iOS applications that run on the iPhone, iPad, and iPod touch with Objective-C. Objective-C is Apple’s abstraction of C with influences of Smalltalk used primarily for building iOS and Mac applications. 
Because there is less fragmentation on iOS compared to Android, it’s easier to create a one-size-fits-all application for the App Store than Google Play. 
Beyond knowledge of Objective-C there are a few other requirements for creating an iOS app—a Mac running OS X 10.7 or later; Xcode, the free tool needed to build an app; and the iOS software development kit. 
To get started, check out the iOS path on Code School and the Apple Developer tutorial.

My Child Wants To Learn To Code

Students across the U.S. were exposed to coding last year. The push to teach kids to code rose in popularity through academic programs like Code.org, which brought coding concepts into the classroom.
Through gamifying the coding experience with tutorials including Plants vs. Zombies and Angry Birds, kids learned the basics of problem solving and introductory programming skills. Code.org features student and teacher tutorials, but there are other game-based resources as well. 
If your child or young student wants to learn programming, or continue practicing concepts and skills she learned in the classroom, start from—or rather with—Scratch.
Scratch is created specifically for students to create interactive games and stories through easy-to-follow lesson plans and collaborative work environments. Scratch is great for students just starting out, primarily designed for students ages 8 to 16.

Find What Works For You

You don’t need to have a particular project in mind to start learning the concepts of programming, but it definitely makes it more fun if you have an idea that you can turn into reality. 
If you’ve heard “You should learn to code!” one too many times and you’re ready to finally begin, dive into any class that doesn’t require programming experience and get started. Once you find a class you’re comfortable with, an idea for a project will materialize, and from there, you can learn as little or as much as you want.

Lead image courtesy of Kris Krug on Flickr. Rails image courtesy ofhslphotosync on Flickr.

Saturday 22 February 2014

Google’s Project Tango: 5 Things You Need To Know

Google's latest ambitious project aims to help mobile devices understand their environments.

Google wants to build a new kind of smartphone—one that can see your environment just like you can, or help blind customers navigate the visible world. This isn’t a new version of Android, at least not yet; it’s a new experimental beast entirely. Google calls it “Project Tango.”
“The goal of Project Tango is to give mobile devices a human-scale understanding of space and motion,” Johnny Lee, who leads Google’s Project Tango team, said in a video on the project site.
Here are five things you need to know about Project Tango:
1. Google's Project Tango prototype is a 5-inch smartphone. Project Tango aims to merge the physical and digital worlds. Humans use visual cues to interact with their environments, Google is building a prototype smartphone that can do pretty much the same thing.
“Our current prototype is a 5” phone containing customized hardware and software designed to track the full 3D motion of the device, while simultaneously creating a map of the environment,” Lee said. “These sensors allow the phone to make over a quarter million 3D measurements every second, updating it’s position and orientation in real-time, combining that data into a single 3D model of the space around you.”
2. Project Tango isn't Android, but it runs on it. Google’s Project Tango prototype runs on Android and offers development APIs to help Android apps built on Java, C/C++ and the Unity Game Engine to learn data about the phone’s position, orientation and depth. We reached out to Google to learn more about the prototype’s specs, especially its processors, and we’ll update this story as soon as we learn more.
3. Project Tango could revolutionize navigation and augmented reality apps. A phone that can create 3D models of its immediate environment could have a wide range of applications. For instance, Google could provide more granular directions for navigating indoor spaces like buildings or malls (although the company has already started to do that without 3D phones).
It could also spur along the development of “augmented reality” apps that overlay digital information or graphics atop photos and live video of the real world. Augmented reality could also be used to include real-world objects in digital games.
4. Project Tango dev kits are limited. Google is currently offering 200 prototype kits to developers, but due to "FCC restrictions," developers who want an early glimpse at Project Tango must work for an incorporated institution or entity. (It's not clear why.) You can apply for one by filling out this form.
But not all dev kits are built the same. According to Google, some of the devices are optimized for projects in indoor mapping,  processing sensor data, single and multiplayer games, and the company also plans to "set aside units for applications we haven’t thought of yet.” Google expects to distribute all its available units by March 14.
5. Google has 16 Project Tango partners and counting. These include Movidius, a Silicon Valley startup dedicated to developing chips that can interpret data from sensors and cameras; Bosch; OmniVision and the Open Source Robotics Foundation.
Images courtesy of Google....

Friday 21 February 2014

Keep Learning Linux—It's The Future

Linux may be 20 years old, but it's as hot as ever in terms of job creation, a new survey finds.

Everyone’s a tech company these days. From new-school video streaming services like Netflix to old-school grocery businesses and government agencies, technology increasingly drives business productivity. At the heart of this movement is Linux, resulting in exceptional, highly paid job opportunities for Linux professionals.


Software Developers’ Increased Currency

Software developers are the new kingmakers, according to Redmonk analyst Stephen O’Grady. Small wonder, then, that the most recent US News & World Report list of the top 100 jobs now ranks software developer at #1, with system administrator positions in the top 20.
Clearly, the economy is rebuilding around tech as every company seeks competitive advantage by making more intelligent use of their data and seeks to improve agility with cloud and open-source technologies, among other means.
What’s perhaps less clear is just how much this new tech economy depends on Linux.

The New World Of Tech Is Built On Linux

This Linux dependence becomes evident in a survey of 5,000-plus Linux professionals and hiring managers the Linux Foundation recently released in partnership with Dice.com. Among other findings in the report:
  • 77% of hiring managers have “hiring Linux talent” on their list of priorities for 2014, up from 70% in 2013. With these strategic priorities set, 93% of hiring managers plan to hire a Linux professional in the next six months.
  • 46% of hiring managers are beefing up their plans for recruiting Linux talent over the next six months, a three-point increase over last year.
  • 86% of Linux professionals report that knowing Linux has given them more career opportunities, and 64% say they chose to work with Linux because of its pervasiveness in modern-day technology infrastructure.
All of which means demand for Linux professionals is heating up. Considerably.

Linux: Lots Of Demand, Not Enough Supply

In fact, 90% of hiring managers said it’s “somewhat” or “very difficult” to find experienced Linux pros—and those who have the right skills and expertise are being aggressively recruited. In fact, 75% of Linux professionals surveyed said they received at least one call from a recruiter in the last six months. Nearly 50% of those received six or more calls.
It’s a good time to be a Linux pro.
This translates into higher pay and better benefits. Because 55% of Linux pros believe it would be “very easy” or “fairly easy” to find a new, better job, 20% of them said they received incentives such as higher pay, a more flexible work schedule or additional training as part of a counteroffer from their employer after they tested the job market.
To keep them from testing the market, Linux pros enjoyed salary increases over the past year that exceeded the average for technology professionals by more than two percentage points. These professionals also received an average bonus of $10,336, up 12% from the previous year.

The Past, Present And Future Of Linux

Ten years ago, the smart way to earn more money was to learn Linux. Today, that’s still true. Back in 2004 Linux was still new and was largely being deployed by early adopters seeking a competitive edge in their respective markets, and often financial services. Today Linux is the default operating system for cloud, Big Data and mobile, the big trends that are reshaping industries. Not confined to early adopters, Linux is simply the platform on which much of our innovation happens.
As such, I’ll give the same career advice I gave back in 2004, and which I’ll likely still be repeating in 2024: learn Linux. it’s the future.

Be The Part Of Innovation