Skip to main content
2 answers
Asked Viewed 822 times Translate

what are the different branches of software? which is the best one?

im confused what to choose teaching teacher professor software

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you


2 answers

Updated Translate

Ollie’s Answer

Software is a vast field, with a very large number of opportunities for excellent careers.

I'll name a few specializations for you to think about. But there are many more.

Web front-end software: the stuff, usually in Javascript, that makes web sites work
Mobile apps.
Web and mobile back-end software. The applications and database software to support a web front end.
Line-of-business applications: software to help particular companies serve their customers.
Information security: preventing cybercriminals from disrupting or stealing.
Big data: statistics, analysis, examination of information to detect trends etc.
Signal processing: audio, video, compression / decompression, data transmission.
Systems software: operating systems, device drivers, file systems, etc.
Embedded systems software: it goes in engine controllers, medical devices, navigation systems, thermostats, traffic lights, robots, and all sorts of gadgets from spacecraft to talking toy dolls.
CAD software, helps people design things, and drives the machines to make them.

I'm sure others can think of many more areas of specialization.

At the beginning of your career, it's smart to learn the basics of software: algorithms, data structures, software-development workflow, and all that stuff. Knowing that stuff is like a musician knowing how to play scales: it's the foundation of your future success. Some of that learning is very interesting. Other parts of it, not so much. Just get good at it.

At the same time you'll be wise to pay attention to how things around you work. How does your food get from the farmer to your kitchen? Why do the public buses in your city belch black smoke sometimes? Do merchants in your city sometimes run out of products to sell? Like many of us in this excellent line of work, you'll probably develop an interest in some area that isn't strictly software. This kind of interest can lead you to a good specialty, as you imagine how you can create software to make a difference in your area of interest.

Be prepared to change specialties at least once per decade during your career, as your interests and the world's needs change.

Updated Translate

rodrigo’s Answer

I think that entering a career in software could take many avenues but if I had to make one recommendation, it would be to learn to code. Microsoft has a program that will teach you programming in 3-6 month and after that time you can get an entry level position with a competitive salary. Investigate that option but don't eliminate other possibilities...

You can also create your career in steps, starting with coding can give you a quick return on your investment for later pursue and expand your carreer. I started my career coding and later move to became a business analyst, the nice thing is that it allowed me to understand how the businesses work. The entry job is always coding, my advice is always see the big picture. If you get in a big company like Accenture etc there is more chances that your role will be to code what you are asked without a lot of content of the picture. You can always ask how does fit in the whole solution. in big companies big solutions are build in small programs that are spread in many team members. Later all this coding is put together but is harder to understand the end to end process. Whereas if you work on a small company you might be exposed to big picture and you might have the chance to understand the business indepth.

In conclusion you should follow you passion be sure you do the best you can in whatever you do and you will be successful. Don't be afraid to do wrong decisions and if you do learn from them. A career is built over the years and you can change. Specially in software dev you need to be prepare to change and continuous learning.