What do the top 1% of software engineers do that the other 99% do not? This question was originally answered on Quora by Michael O.
As mobile apps connect more of the planet, and enable users around the globe to engage in more interesting and innovative ways than ever imagined, the job of the mobile app developer has become ever more enriching, fulfilling, and necessary to the modern global economy. The mobile apps we use every day have changed the way we conduct business, the way we communicate and consume entertainment, the way we learn things about the world. You wouldn’t be wrong if you thought mobile app development sounded like one of the coolest job industries of the moment.
So how do you become a mobile developer? Here’s the bare bones version: you pick a platform—like Android, iOS, or Windows Mobile—learn the technical skills, bone up on your soft skills, and have at it.
But let’s get into a little more detail. Here, we’re going to tackle the prospect of becoming an Android developer specifically.
Why Android?
Android is the indisputable leader of global smartphone market share. Thanks to growth in emerging markets like Mexico, Turkey, and Brazil, that dominance isn’t ebbing any time soon.
Graph via9to5Mac
That market leadership translates to serious job security for Android developers.
Moreover, the Android platform is open source (the entire Android source code is browsable, albeit with some proprietary software such as Google Play), making the developer ecosystem dynamic and collectively enriching. Android developers share tips, tricks, and tutorials across the Android community, and since Google helps developers by building tools like Google Play Services for common app tasks like sign-in, authentication, location, and storage, Android developers can focus on building their apps’ core functionality.
Basically, it’s a particularly exciting time to launch a career in Android development. There’s a healthy supply of jobs, demand for Android apps promises to soar into the future, and the technology—including wearable apps and apps for TV—is intriguingly advancing.
The Hard Skills: What to Learn
First things first: the technical skills. Android development can be done on a Mac, Windows PC, or Linux computer. You’ll also need an Android device (you can use an emulator like Genymotion for development, but eventually you’ll want to test on a real device). Here’s the short list of the must-know tools to become an Android developer.
Java
The most basic building block of Android development is the programming language Java. To be a successful Android developer, you’ll need to be comfortable with Java concepts like loops, lists, variables, and control structures. Java is one of the most popular programming languages used by software developers today, so learning its ins and outs will stand you in good stead for work (back-end development anyone?) even beyond the Android platform.
SQL
You’ll also need to learn the basics of SQL in order to organize the databases within Android apps. SQL is a language for expressing queries to retrieve information from to databases. Once you can write it, there won’t be any questions you can’t ask of your data.
Android Software Development Kit (SDK) and Android Studio
One of the best parts about developing for Android is that the necessary tools are free and easy to obtain. The Android SDK is available via free-of-charge download, as is Android Studio, the official integrated development environment (IDE) for Android app development. Android Studio is the main program with which developers write code and assemble their apps from various packages and libraries. The Android SDK includes sample code, software libraries, handy coding tools, and much more to help you build, test, and debug Android applications.
Another highlight of developing for Android is the ease of the process of submitting apps. Once you’re ready to submit your app to the Google Play store, register for a Google Play publisher account (which includes paying a $25 fee via Google Wallet), follow Android’s launch checklist, submit through the Google Play Developer Console, wait for Google to approve, and see it appear. Simple and satisfying.
XML
Programmers use XML to describe data. The basics of the XML syntax will be helpful in your journey to full-fledged Android developer in doing tasks like designing user interface (UI) layouts and parsing data feeds from the internet. Much of what you’ll need XML for can be done through Android Studio, but it’s constructive to be grounded in the basics of the markup language.
The Hard Skills: How to Learn and Showcase Them
Resources abound for Android developers to sharpen their skills and share tips and best practices. A few industry favorites include Stack Overflow, Android Weekly, the Android Dev subreddit, vogella tutorials, YouTube lessons, and Google’s official Android Developers site—especially the Building Your First App module. If you’re more of a print learner, popular Android books include Head First Java, Android Programming: Pushing the Limits, and Java: A Beginner’s Guide.
As you start to think about attracting job opportunities, and selling yourself as a viable candidate, consider showcasing your Android work on LinkedIn, Xing, through an online personal portfolio, or on sites like Behance and GitHub. Rub elbows, in person and virtually, with other Android developers and hiring managers or recruiters through meetups, conferences such as droidcon, and digital networking hubs like LinkedIn groups, Twitter chats, and Quora feeds. You never know what you’ll learn, or who you’ll meet.
The Soft Skills
As with any job, it’s not enough to have the technical stuff down pat. You’ve got to sharpen your interpersonal skills as much as your coding chops.
Perseverance
Practice really does make perfect when it come to app development. Inevitably, you’re going to hit a roadblock in the development process, especially when you first start out. You’ll need a deep store of perseverance to power you through the frustrating times. Luckily, since Android is open-source, Android developers can take advantage of crowd-created libraries and frameworks posted on sites like GitHub.
Collaborativeness
Collaboration is of vital importance to most developer jobs. Even if you’re working by yourself on a project, you’ll inevitably have to put heads together with others—like designers, marketers, or upper management—in the company or organization. Start getting comfortable with accepting feedback on your work, compromising with coworkers, and teaming up with other players to create exceptional products.
Thirst for Knowledge
All good developers, mobile or otherwise, are committed to lifelong learning. Especially in the rapidly developing landscape of mobile apps: with the advent of wearables, TV apps, auto apps, and more, mobile developers must keep their eyes and ears open to new technology and changing best practices. No matter how advanced you get, don’t stop investigating, exploring, playing around, and asking questions.
The Bottom Line
Mobile apps are in higher demand than ever, which makes right now an incredible time to launch your career as an Android developer. As Android expands beyond the consumer space to work and education, and continues to push the bounds of rich cross-device user experiences with the new Material design language, it’s a particularly exciting time to dive into Android development. So go ahead, feet first. The water’s warm.
Many thanks to Google Developer Experts Enrique López-Mañas (@eenriquelopez) and Etienne Caron, and Udacity developer Eric Gonzalez for their contributions and technical reviews of this article.
Windows 10 is a pretty good desktop operating system. Unfortunately, that OS is very far from perfect. The most glaring issue, of course, is the confusing privacy settings. Plus, let us not forget the arguably shady tactics Microsoft is employing to get users to upgrade to the operating system. While Windows 10 is more focused than its predecessor, there is still a lack of consistency, such as having a Settings Menu and separate Control Panel menu.
Meanwhile, in the land of Linux, Ubuntu hit 15.10; an evolutionary upgrade, which is a joy to use. While not perfect, the totally free Unity desktop-based Ubuntu gives Windows 10 a run for its money. Does this mean I think Linux will soon rule the desktop? Absolutely not. Windows will still be dominant in number of installs for the foreseeable future. With that said, more does not always mean better. Here are 5 ways Ubuntu bests Windows 10.
ALSO READ:How to: Install Google Chrome web browser on Ubuntu Linux (and uninstall Firefox)
1. Live Tiles stink
Live Tiles are an interesting concept -- rather than offer a static image icon for apps, Microsoft gives the option to display app data instead. While this sounds useful, in practice, it kind of stinks.
The human mind recognizes images, which trigger a memory as to what it represents. For instance, when driving, you see a red, octagon-shaped sign that says 'stop' and know to hit the brakes. With Microsoft's design logic, the sign would be a red square or rectangle, and wouldn't say 'stop'. Instead, it would be give you stats about how many cars have stopped there and you'd have to guess that it is a stop sign.
Obviously, Microsoft's design choice is poor, as the sign needs to represent something very specific, and reaction time is important. The same can be said for application icons and productivity. A blue 'e' means Internet Explorer, or Edge. A red, green and yellow circle means Chrome. A parking cone means VLC. This is how it should be; Live Tiles hurt productivity and waste time.
Microsoft's return to a traditional Start Menu makes Live Tiles even more ridiculous. Why would someone click the start button and stare at the tiles to obtain information? It makes more sense to, you know, open the damn application!
Conversely, Ubuntu sticks to traditional icons -- what a concept, right? In other words, with Unity, Canonical has not initiated change for the sake of change. There is also no silly Start Menu, which is arguably an obsolete concept. On Ubuntu, much like OS X, your favorite apps can be locked to the dock, which is on your screen at all times.
Quite frankly, this is what Microsoft should do -- increase the size of the Windows taskbar and kill the start menu altogether. Just pin file explorer, settings and 'all apps' to the bar -- let the user pin other apps they want. No start menu, no live tiles. Apple had it right with OS X all along and Ubuntu is smart to emulate it with Unity.
Many wanted the traditional Start Menu back in Windows. Well, now it's here and it is sort of pointless.
READ MORE: System76 Oryx Pro is the Ubuntu Linux gaming laptop of your dreams [Review]
2. Privacy
This is the biggest Windows 10 blunder by far. Not only does the operating system phone home to Microsoft, but it can be confusing to figure out how to turn the during the initial setup, but that is a bit dim. Not everyone understands these settings and what they mean -- Microsoft can't put the onus on its customers.
Ubuntu is not infallible in this regard either. The Linux-based operating system will send your search queries to Amazon in an attempt to show relative shopping data. The problem? If you were to search for sensitive information -- like an SSN or password in a document -- it too is sent to Amazon.
READ MORE:Did Microsoft choose to appease the Chinese government rather than protect the security of its users?
Luckily, Canonical does not try to deter users from disabling this, although I would prefer it to be opt-in. To disable it, the user only must go to privacy settings and deselect a single option. In other words, Ubuntu is far more privacy-focused than Windows 10.
3. Consistency
Windows 8 had a disaster-level user interface -- a scary mix of old-school and new-school. This terribly inconsistent environment was largely hated by consumers, making the operating systems one of Microsoft's biggest failures.
Windows 10 partly fixes this by making store apps available in a windowed mode. In other words, these apps are no longer full-screen only, and run in the same environment as legacy programs.
Sadly, this only partly fixes the problem. Windows 10 is still extremely inconsistent. The biggest offense is two destinations for settings. There is a new 'Settings' menu, plus the traditional 'Control Panel'. It is never clear which place the user must visit -- very confusing.
Unfortunately, it does not end there. Microsoft offers two web browsers, Edge and Internet Explorer (neither can be uninstalled), and to the average user, it is not clear why. When navigating settings in traditional apps vs. store apps, the experience is very different too. Sometimes there are hamburger menus, sometimes settings are accessed by clicking on something mysterious (the user photo in the store app???) and then in legacy programs, there is the traditional 'File', 'Tools', 'Help' etc.
With Ubuntu, there is a single settings menu, and for the most part, programs follow the design of Unity. Sometimes, like in the case with Google Chrome, you may need to set the program to use the 'system title bars and borders'. That aside, the entire experience of Ubuntu and Unity is cohesive and consistent. Users should rarely find themselves getting confused over jarring design principles.
4. Security
Let's face it -- Windows has been, and likely always will be, the largest malware target. Sure, you can say it is because of its popularity -- that is partly true -- but it is also due to the nature of the operating system. Microsoft has long made poor choices that has negatively impacted its operating system for home users. Internet Explorer and its horrid ActiveX technologies has put many users at risk. Software can largely be installed without a password, or even without the user's permission, leading to a total mess -- we've probably all experienced a Windows machine bogged down with malware and multiple web browser toolbars.
While Linux-based operating systems, such as Ubuntu, are not impervious to malware -- nothing is 100 percent secure -- the nature of the operating system prevents infections. Actually, with the exception of social engineering and tricking the Linux user into doing something foolish, Ubuntu is rock solid. By sticking to downloads from the Software Center, users of the OS should feel quite safe -- no antivirus, anti-spyware or CCleaner-like utilities needed. While Windows 10 is arguably safer than previous versions, it is still not touching Ubuntu in this regard.
While security can be mentioned as a benefit of most Linux-based operating systems (except maybe Android), Ubuntu is particularly safe by having many popular packages available. For the most part, users can get everything they need without hunting for .deb files on websites or adding shady repositories. The fewer times a user finds the need to stray from the Software Center, the safer they arguably are.
With Windows 10, yeah, there is now an app store, but largely, users still have to hunt for programs and driver packages on various websites. While seasoned Windows experts will know safe download sites to target, many others will be fooled into downloading malware. Hopefully Windows Defender catches it, but if not, the users' machines can be put at risk.
5. Non-aggresive updates
This is probably my favorite aspect of Ubuntu over Windows 10; Canonical does not force, nag, or trick you to upgrade your operating system. Comparatively, Microsoft has been unapologetically aggressive with getting users to upgrade to Windows 10. The problem? Many users do not have the need, nor the want, to move from Windows 7. With Ubuntu, you can stick with the operating system for as long as you want without experiencing aggressive tactics. True, Canonical will alert you to updates, but they are always optional.
If you install an LTS version of Ubuntu -- meaning Long Term Support -- you are guaranteed 5 years of support from initial release. During this time, you can be confident that you can stay on the version and receive timely updates. Canonical will release newer versions during that 5 year span, but never will you receive pop-up messages begging you to upgrade. You can upgrade if you want, but it will be optional and no-pressure.
![Which Is Better For A Robotics Engineer Mac Or Windows Quora Which Is Better For A Robotics Engineer Mac Or Windows Quora](/uploads/1/2/5/8/125877406/928004328.webp)
Canonical seems to respect its users, while Microsoft's patronizing tactics make me question their customer focus.
Thoughts?
OK, folks -- am I totally off-base here? Is Windows 10 actually a better operating system than Ubuntu 15.10 with Unity? Is there a Linux distro that you think is better than Ubuntu? Sound off in the comments and tell me what you think.
Photo Credit:nex999 / Shutterstock