By Mark Niemann-Ross | Wednesday, August 20, 2014
What is programming really like?
Code Clinic is a series of courses from lynda.com designed to help you understand the process of programming—something called “computational thinking.”
By Mark Niemann-Ross | Tuesday, July 15, 2014
“Learn to code!” It’s the latest buzzphrase. Everyone from Barack Obama to Will.i.am is talking up the importance of learning a programming language—which is good. But it’s only part of the story.
Successful programmers know more than just a computer language. They also know how to think about solving problems. They use “computational thinking”: breaking a problem down into segments that lend themselves to computer solutions.
Our Developer content at lynda.com already provides a wealth of programming courses geared towards all levels of experience. Starting this month, we’ll also delve into computational thinking—with a unique new set of courses called Code Clinic.
By Mark Niemann-Ross | Wednesday, July 10, 2013
Creating an app for Android, iOS, or Windows means learning two things: a programming language and the SDK. Even if you use one of the cross-platform frameworks, you’ll still need to learn some peculiarities of each system. It requires a significant investment in time and talents—and you’ll have to repeat it to create the same app for a different phone.
lynda.com can help with this learning curve. We’ve created a playlist of three new parallel courses: Building a Note-Taking App for Android, Building a Note-Taking App for iOS, and Building a Note-Taking App for Windows Phone 8 and Windows Store. Together they provide a roadmap for building a cross-platform mobile app.
We’ve built the same app for all three mobile platforms (actually four; Windows Store and Windows Phone are separate), using the same assets and creating the same functionality for each. We enlisted three top-notch authors to show you how they would implement the application on each platform. Our authors shared outlines and met regularly to coordinate their efforts, only making changes when the particular language or SDK demanded it.
To use this set of courses most effectively, start with the platform you know best and review how that author chose to implement the app for your favored SDK and language. Then choose your next device and watch the related course. Feel free to switch back and forth between the two, comparing the platform you know to the platform you’re learning.
Our authors provide you with insights to each platform, pointing out differences that may trip you up if you’re making assumptions based on a different SDK. In the end, you should be able to map your experience from one device to another.
Please be sure to fill out the survey at the end of each course. We’ll read your comments to see how we’re doing and how we can improve.
Interested in more?
• Start a 7-day free trial at lynda.com
• Watch Building a Note-Taking App for Android
• Watch Building a Note-Taking App for iOS
• Watch Building a Note-Taking App for Windows Phone 8 and Windows Store
• All Developer courses at lynda.com
By Mark Niemann-Ross | Friday, October 26, 2012
The user interface for Windows 8 blurs the line between tablet, desktop, and smartphone. That’s a good thing.
The Microsoft Build conference starts October 30. For a week developers will be exposed to the latest Windows technologies, analysts will write megabytes of blogs, pundits will tweet reactions both pro and con, and the way we experience computers will change in dramatic and obvious ways.
For developers and users alike, the Windows 8 interface is an in-your-face change. No longer based around overlapping windows and desktops, information and applications are now presented as colored tiles. It is possible to slip back into the traditional Windows interface where each running application is visually separated with windows that can be dragged on top of each other, hidden, and closed; but most of the time the new Windows looks, and functions, very much like a well-designed webpage.
Opinions are harsh. Windows traditionalists miss familiar icons such as the Start menu, Control Panel, File Explorer, and Close button, and are finding the years they spent deciphering the nuances of utilities to now be irrelevant and useless. Worse, users stumble into the traditional Windows interface, but have no idea how to return to the new tiled interface, and developers find creating applications now requires new ways of programming, use of new interfaces, and new ways of thinking about interacting with users. What was Microsoft thinking?
DOS to Windows, windows to tiles, desktop to phone
In 2011, computer vendors shipped more smartphones than desktop computers further supporting the idea that handheld devices—such as smartphones and tablets—are pushing desktop and laptop computers into obsolescence. Apple and Android are battling for first place, with Microsoft scrambling for a piece of the action. Dell, the king of laptop manufacturers, has lost almost half of its value in eight months. The future is painfully clear, and it looks like a handheld device, or smaller.
Microsoft correctly reasons that making improvements to an interface that depends on a keyboard and mouse is corporate suicide, but what about our former Windows Vista user futilely searching for the Windows Start button? Is there nothing to be done for them?
Short answer: The pain is only temporary.
Long answer: We’ve done this before. New interfaces, like apps or tiles, are simply normal innovation. They’re disruptive, sometimes annoying, and the first iteration is often clumsy, but the process is normal, expected, and necessary.
lynda.com is working on a collection of classes for developers and users of Windows 8. In the early part of 2013, you can expect to see courses that show how to get started with the Windows 8 developer tools, as well as more in-depth training intended to assist with advanced developer questions.
Nobody on Star Trek uses a mouse
Science fiction explores a possible future, and most science fiction computers don’t use keyboards or mice; they use gestures and voice recognition. Our grandchildren will think our computers are quaint.
Personally, I have enough years under my belt to remember the jump from CPM, to DOS, to Windows 3, and the jump from my beloved Apple IIe to Macintosh OS X. Each was a move away from a known paradigm to something better. Everything changed for the traditionalists invested in the existing technology, and boy, did they complain.
But the number of people using the new tools soon outweighed the traditionalists. New users with curiosity about how the system does work, rather than assumptions about how the system should work took over.
Here’s to a lifetime of learning!
Interested in more?
• The full Windows 8 Preview First Lookcourse on lynda.com
• All operating systems courses on lynda.com
Suggested courses to watch next:•Windows 8 Metro App First Look
• Windows 7 Essential Training•Migrating from Windows XP to Windows 7
By Mark Niemann-Ross | Wednesday, September 26, 2012
Is a paperless society really an energy savior?
Manufacturing office paper consumes more energy than producing food, and at nearly 8 percent of US energy going to paper, even more than steel. With these statistics in mind, it’s easy to believe a paperless society would conserve massive amounts of energy. Consider: An electronic memo doesn’t consume paper, doesn’t use ink, doesn’t require a printer spinning motors, and doesn’t require a delivery truck. Some bright folks calculated the savings for sending an electronic memo over paper is about .36 kilowatt-hours (kWh), or an energy-spend equivalent to microwaving three potatoes.
The Internet has a carbon footprint
But hold on a minute—that savings assumes an electronic memo uses no electricity, which is false. According to one estimate, moving one megabyte across the Internet costs .006 kWh, or the energy contained in one very small bite of a chocolate chip cookie.
We move a lot of kilowatts across the Internet. Different groups will provide different estimates, but Cisco estimates[CA3] traffic will pass the zettabyte threshold by 2017. No matter how you run the numbers, all those .006 kWh chocolate chip cookie–sized bytes of data have an impact. Google alone used 2,259,998 megawatt-hours (mWh) in 2010. When you’re consuming this statistic, keep in mind 1 mWh can sustain 1,000 homes for one hour. Another interesting tidbit: Google estimates an Internet search consumes one-third of a watt-hour or .0003 kWh (if you’re keeping track in cookie similes, this is about a cookie crumb).
Moving data isn’t the only thing computers do; they also store data. As an example, services such as Amazon EC2 charge by demand based on processor time, and a majority of that payment goes for electricity. According to the Northwest Power and Conservation Council, at this rate these server farms will account for about 10 percent of northwestern electricity by 2030. Code costs money to run. Inefficient code costs more money to run.
Your code is the solution
So why is the content manager for the Developer segment at lynda.com bringing this up? What does this have to do with programmers? Other than turning off lights and computers, what can we do?
Plenty. Our code drives the microprocessors that use all this power. Our code makes calls to APIs that spin up central processing units (CPUs) that create thermal load that require cooling that devour electricity.
Mobile devices bring this issue into sharp focus. Unnecessary code chews up precious battery life, reducing the time between recharges. Apple banned Adobe Flash from the iPhone because of excessive battery usage. Interestingly, this battery drain seems to be related to code, not hardware. Imagine the difference if Adobe had been able to reduce the power consumed by Flash with more efficient programming.
Tips for writing efficient code
Your office has power-saving features: lights controlled by timers, setback thermostats, and paper recycling. Why not write code with the same intent? Cache data from the server and reduce the number of queries. Optimize SQL calls to produce only the results you need. Once we start looking for ways to reduce load on the Internet, we’ll see many more options.
• Profile your code to reduce unnecessary cycles. In Drew Falkman‘s PHP 5.4 New Features course, profiling is discussed and examples are provided on how to write more efficient code. Take a look at the third movie in chapter one titled Using the High Precision Timer.
• Write closer to the CPU. Instead of writing a mobile web app, consider creating a native app using Objective-C, C#, or Java. Your application will run faster, and require fewer conversations across the Internet. For more guidance, consider checking out Objective-C Essential Training, C# Essential Training, and Java Essential Training.
• Write efficient HTML. Optimizing HTML pages not only improves the performance of your website, but will also reduce the number of hits on the server and the associated load. Look at Google Webmaster Tools, or check out Bill Weinman’s HTML5: Local Storage and Offline Applications in Depth to learn more about ways to store data locally, instead of on servers.
In closing, consider this: Programmers used to fret about available memory when 16 kilobytes of ram was a big deal, and they learned to be efficient. Over time, memory has become cheap and programs have become larger, but now we face an energy shortage. Why not start considering energy conservation to be the next big programming challenge?
By Mark Niemann-Ross | Friday, August 24, 2012
Bruce Rich has watched 25,341 videos from the lynda.com video library. Thought of in a different way, he has consumed 52 full days worth of knowledge. It’s like watching eight hours of educational TV every Friday, Saturday, and Sunday for a complete year. It’s like watching the complete Star Wars saga ninety-five times.
Bruce Rich has completed 508 courses, and has the certificates to prove it.
The amount of time Rich spends watching educational videos may seem outlandish. But if you’ve read Outliers, you are familiar with Malcolm Gladwell’s rule that 10,000 hours of practice leads to mastery of a topic—a competency. Most of us have worked on something for 10,000 hours, so Rich is unique only in that he’s mastered two and one-half competencies. Think of it like a master’s degree.
“I very seldom watch TV,” says Rich. “I get up early and do training instead. My son says I’m off in my own little world.”
During the daylight hours, Rich is the president of Hot Off The Press, Inc., a commercial printer located in Des Plaines, Illinois. He’s worked in the printing industry for 40 years, starting with letterpress, moving to offset, and now supplying brochures, catalogs, and banners. His next goal is supplying web sites and mobile app development for his customers.
“I have a customer with 100,000 products on his web site,” says Rich. “I made some suggestions, and now he wants me to take it over. I need to learn more before I take that on, but lynda.com shows you everything you need.”
Rich uses a couple of tricks to speed up his learning. Because he’s paying close attention while watching, he speeds the playback to double-speed, then slows it down when he needs to practice an example. He uses the exercise files and transcripts to preview and review the material.
“Deke moves fast,” says Rich. “Pausing the playback is crucial. When you’re doing the exercises, your hand is getting trained.”
Bruce Rich enjoys learning, and his customers benefit from his newfound knowledge. Rich used information from Deke McClelland and Chris Orwig to improve a product shot for Stewarts Coffee in Chicago. The company was thrilled with the results: a coffee can without hotspots.
“Customers see the certificates on the wall, and when they realize I’ve taken a course in something, they ask me for help,” says Rich. “I use the videos on lynda.com to preview software before I buy it, and use it to research customer recommendations.”
What’s next? Rich swears he’ll be taking a break after he finishes the series on Adobe Creative Suite 6. But then…
“A friend wants to write iPhone apps,” he says. “I’ll need to learn some Cocoa and Objective-C.”
Perhaps Rich should start clearing another room for the next 500 certificates.
By Mark Niemann-Ross | Wednesday, July 25, 2012
It’s summer! It’s July! Your son or daughter has been decompressing from school for nearly a month, and now they’re bored, feisty, and looking for something new. Resourceful parents dig deep into their bag of tricks for something—anything—to keep the son/daughter from bugging their brother/sister. I, personally, like to think of this boredom as a window of opportunity to convert non-productive screen time into a learning experience, or, more specifically, a window of opportunity to spark an interest that may lead young minds toward wanting to know more about the skill of programming.
Sure, in the big picture, summer is all about getting outside, playing ball at the park, swimming in the pool, and, more or less, finding new and inventive ways of getting into trouble. Don’t get me wrong—I’m not advocating taking up residence on the couch. What I am suggesting is that along with that physical activity, summer is also a great time to stretch minds.
Programming is a real-world tool that provides context for structured problem-solving, math concepts, and improved study habits. That being said, of course no red-blooded kid is going to willingly dive into something as “boring” as programming. Seriously—video games are a much more amusing way to consume screen time than staring at a bunch of cryptic incantations written in some useless programming language. Are you kidding? Learn programming? Learn ANYTHING? I know kids that would rather cut the lawn than get stuck behind a textbook.
If your kid is the “I’d rather mow the lawn” type, here’s a thought—tell your kid they could amuse and amaze their friends by building their own video game. It’s entirely possible that they may end up creating something like Angry Birds or Farmville.
While your son or daughter's first programming initiative may not be as exciting as Angry Birds, practice makes perfect and the creation of basic Facebook games is a great gateway into the world of programming.
Getting your kids started may end up being the hardest part of this initiative. You’ll need to use your parenting super-powers of persuasion to introduce the idea and fire up their enthusiasm. This should be far easier than convincing them to floss their teeth, but there may still be some resistance. Back in my parenting days, I found it easiest to have this sort of conversation over an ice-cream cone.
“Hey,” I would say, using my nonchalant voice. “I was just reading about Facebook games. Have you heard anything about them?”
My kids would respond positively. Possibly launch off into an enthusiastic dissertation about their latest engagement with cows, birds, or jewels.
“I heard it’s not too difficult to create them yourself,” I would say. “If you’re interested, I think I could dig up some instructions and you could build one. What kind of game would you build?”
…and we’re off to the races.
Don’t be fooled, though—the training videos in the lynda.com library are only tools to help you encourage your kids to be life-long learners. In the end, you’re the parent with secret ninja skills of persuasion and encouragement. We’re only here to be your trusty sidekick.
If you have kid programming stories, or tips to share with other parents, we’d love to hear your thoughts! Please leave a comment and let us know your story, and keep us updated as you and your son or daughter progress.
Interested in more?
• All developer courses on lynda.com
• All courses from Ray Villalobos on lynda.com
• Foundations of Programming: Fundamentals
You can change your email preferences at any time. We will never sell your email. More info
Thanks for signing up.
We’ll send you a confirmation email shortly.
Sign up and receive emails about lynda.com and our online training library:
Keep up with news, tips, and latest courses with emails from lynda.com.
We've updated our terms and conditions (now called terms of service).Go Review and accept our updated terms of service.