I don’t have a CS background (I graduated in Neuroscience) but now I decided I want to attempt a carrer in software development. When I looked at the possible different types of software developer I felt that the one I was most attracted to was desktop developer or system developer. In general, I like creating programs than run offline on a local machine, or even dealing with the low level operating system stuff.
I altready know how to program in Python so I decided to start learning C++ as well since it feels like exactly the language that can be used for developing desktop apps or working with kernels. In general, I like the level of abstraction at which C++ works and I would like to keep working at that level.
However, when looking around for some jobs or in general talking with people who work in the IT field, I feel like most of the work of a developer is polarised between two extremes: either creating web apps using tons of different front-end and back-end frameworks, or working with embedded systems for different kind of electronic devices. C++ specifically seems to be used nothing more than for gaming and embedded systems nowadays (according to my very subjective impression ofc).
So my question is: is it still possible to find a job were the main task is to develop and/or maintain desktop apps? And if so, is C++ (or other languages that work at the same abstraction level like Rust) the right language to do this? Or maybe, given my lack of a CS education, it’s easier to start as a webdev and maybe change later?
Sorry if I said some nonsense or trivial stuff but I just started to enter the IT world and I still don’t have a clear idea on how the job market for SWD works.
I hate making web sites, I would kill JS if I could, and most of the programs I worked on were in compiled languages like C++ or C#.
C# is a good language and an alternative to Java, you should learn this if you’re starting.
But be careful, a lot of desktop applications still make calls to remote servers (with REST or something), and are not really offline. It’s still a lot of fun though.
polarized between web and embedded
I haven’t seen this. I’ve seen a split between web and “desktop,” and a small percentage of embedded code. It depends on what you’re looking for (on LinkedIn for example). Desktop applications are far from dead and can still do way more than Electron apps and are way faster when run.
It’s possible, but rare, for me at least it looks like everyone is targeting web development, since you can do pretty much everything in the web now. I can see productivity tools being developed for desktop but when this happens the company is too small or too big (adobe, microsoft).
Even when people develop desktop applications it’s usually electron (web for desktop).
My recommendation is, if you really like desktop, learn something else to work (web) while you find the perfect job, it’s rare but not impossible.
You can look for mobile development also, it feels a little bit like desktop.
A lot of performance intensive software is still written using C/C++. Beyond gaming, you’d be looking at other GPU/CPU heavy stuff like CAD, video processing, music production, cryptography. Those fields tend to be math heavy and might not be a good starting point.
That being said, there are a lot of applications that are simpler. Those tend to be written with languages that are arguably easier to work with: Swift, C#, Java, Rust, etc. Electron/React Native also made it possible to use TS/JS in desktop/mobile apps, which makes a background in web development a lot more marketable.
Web development is definitely the easiest way to enter industry. Data science is also very popular and your Python experience would definitely help there, along with a good handle of statistics.