Every few years, the "fact" that desktop is officially dying hits the headlines again, and successful desktop developers around the world briefly look up from their screens to scratch their heads. The truth is that technology has not yet reached the point at which professional-level applications like PhotoShop, AutoCAD, or Ozone will work on the cloud, at least not for professional users. Perhaps desktop is becoming more specialized, but for the time being, it is still very much alive.
Now, it's true that a majority of software distributed these days is for mobile. It's also true that people are increasingly relying on the cloud for their computing power. Even so, computers and desktop applications are still where professionals code, do CAD work, and edit images and audio. It's also where the most serious gamers around the world play. People who think desktop development is obsolete because tools like PhotoShop can be replaced by an online version are not the people using those tools day in and day out. Desktop still rules in the creative workplace and in the gaming sphere.
Tens of thousands of desktop applications are written each year. We don't hear about most of them because they're geared toward specific users (e.g., graphic designers, musicians, or engineers) or specific applications (e.g., RFID warehouse inventory control or banking) and because a lot of them are written for companies by staff programmers for in-house use.
For many high-end tasks, only desktop applications are powerful enough to meet a specific need. For others, a desktop application is required because the software needs to be isolated from the internet. The point is: desktop development is still relevant. And it won't disappear any time soon.
If you think you might like to join the ranks of systems software developers programming for desktop (a category that actually includes not just desktop computers, but laptops and some tablets), read on. In this article about how to become a desktop developer, we'll cover:
A desktop developer is a programmer who writes code for software applications that (1) run natively on operating systems like macOS, Windows, and Linux, and (2) don't need to be connected to the internet. When you become a desktop developer, your responsibilities will depend on the type of applications you create, the expectations of your employer, and how much experience you have. In general, it will be your job to prototype, build, implement, and maintain the source code behind the programs you develop. As part of that, you will:
Desktop developers typically work for large software companies, enterprise companies that develop their own internal applications, or gaming companies.
There's still a ton of software development happening for desktop for two principal reasons. First, desktop apps perform better than web apps. Second, they don't need an internet connection to work (an asset for professionals who still have to meet deadlines when there are network latency issues).
There's also a third reason: in most cases, web apps and mobile apps are just not powerful enough for professional-level content creation, scientific computing, or hardcore gaming. It may come about in the future that cloud-based software (and the networks they run on) will be robust enough to handle professional applications, but for now, there are no alternatives to desktop for tasks like:
Simply put, web-based applications are great for content consumption. For serious content creation, however, you need a desktop app. If it looks like front-end web development, back-end development, and mobile development are winning the software wars, that's only because there are more content consumers than there are content creators in the world. Aa a result, more software is developed for them.
To become a desktop developer, you need to be able to code. Your programming chops won't be the most important skills you bring to the table at job interviews, however. Most employers are looking for applications software developers who are logical thinkers and capable problem solvers. That's because so much of programming revolves around figuring out how to make software do what it needs to do or make it do it better (puzzle-solving) and why the software is not doing what it's supposed to be doing (problem-solving). It can be frustrating, but successful developers enjoy the process.
Employers also look for detail-oriented and patient programmers. Both of these traits are necessary for software development because the smallest mistake can cause challenging problems. Finding and fixing glitches (which are, to some degree, inevitable in large projects) can be a fiddly, time-consuming process.
Finally, desktop developers need to be curious. Curiosity is what drives programmers to find the kinds of innovative solutions that make software more powerful, faster, and easier to use.
There's no specific degree path for desktop developers. Plenty of software engineers don't even have degrees. Many job listings in the field ask only for a four-year degree or that vague qualification: "equivalent experience."
That doesn't mean, however, that you can safely decide not to pursue higher education in favor of completing a coding boot camp or two. It's true that two-thirds of working developers are self-taught and that there are lots of free resources for aspiring developers online. Even so, learning to code is no guarantee that you'll find someone willing to take you on. One of the windfalls of college is that you'll build a network of peers and mentors who can help you find work.
The best way to get a feel for what level of education is needed to become a desktop developer (along with other qualifications and certifications) is to read lots of job listings. Most employers are looking for candidates with a bachelor’s degree in computer science or master’s degree in computer science, engineering, mathematics, or a related discipline.
A computer science program that emphasizes programming is probably your best bet. You'll need the degree to get hired, and you'll need the ability to code to do your job. A formal education that includes a solid foundation in how computers function and programming principles—along with coursework related to project management, design, databases, and marketing—can help you launch your career on solid footing.
According to US News & World Report, the top computer science programs for programmers are found at:__
You don't have to earn a master's degree in computer science, software development, or software engineering to become a desktop developer. Those degrees are worthwhile if you think you might like to eventually transition into management or be promoted to a senior software engineer position. As you research master's degree programs for programmers, look for schools that offer core courses and electives that support your long-term career goals and format options that work for your circumstances. For instance, if you have to, or want to, continue working while earning your master's degree, consider online Master of Science in Software Engineering programs.
These schools offer an online Master of Science in Software Engineering:
That depends on what platforms they're developing for. If you write software for Macs, you need to be familiar with the various OS X frameworks. Microsoft has its own desktop frameworks for Windows app development. Each of its four main application platforms is suited to different types of apps.
Of course, these days, the expectation is that most software will be accessible across platforms. If you use device-specific platforms, you could end up having to write multiple versions of the same app. Cross-platform desktop frameworks let you develop flexible programs that can be easily modified to work on another desktop platform or transformed into a web app or mobile app. Working with cross-platform frameworks is especially smart if you're developing your own software because it means you can expand your customer base more quickly.
There is no one best programming language for desktop developers. Different languages are better for different target desktops and application requirements.
Some common languages desktop developers use are:
The quick answer is yes. Desktop application developers make up 21.3 percent of working software developers. There will be jobs available for desktop developers for as long as cloud-based software can't compete with products like Final Cut Pro or InDesign in terms of power, speed, reliability, and user experience. There will probably come a day when SaaS (software as a service) takes over the software development landscape, but it's going to be years before that happens. For now, you can make good money developing custom desktop apps for businesses, working for a desktop app development company as an engineer, or even working for the government.
According to Glassdoor, the average desktop developer salary is $76,195, which isn't too shabby. You may want to hedge your bets when you become a desktop developer, however. It can't hurt to learn a little front-end programming or database management while earning your bachelor's degree, or in your spare time. And keep in mind that this is a career best-suited to lifelong learners. The languages in use now won't necessarily be the languages people are using a few years from now.
The bottom line is that even though desktop development is still very much alive, the evolution of technology is happening faster than ever before. There are no guarantees that your skills will still remain in demand in a decade. For the time being, however, there's still plenty of opportunity in desktop development.
Questions or feedback? Email firstname.lastname@example.org