📚️️ Software Development Categories In a Nutshell

📚️️ Software Development Categories In a Nutshell

Brief explanation of the most demanding software development categories

During this time since I published my last article, How I chose my first programming language, I had the fantastic opportunity to meet a lot of new people. And every one of them had something in common, the passion and love of programming.

Some of them are college students pursuing computer science and related careers, in which they are some steps ahead. I get inspired every time I’ve had conversations with them, I can visualize their goals and I’m glad they are taking the paths to make those dreams come true.

And also I met a lot of students that are new in this field. They never touched a code editor. And that’s totally fine! We all started at some point.

Some of the questions they asked me were “What things can I do with programming?”, “Are there any specific fields where can I use my knowledge?”. If you also have had one of these questions or similar ones, I’m here to bring you my answer.

In this article, I’m going to explain four of the most demanding programming fields you can find in the real market, but these are not the only ones, there are plenty of categories you can work on and apply your knowledge!

Also, I’m going to bring you what tools you can use in each category, as well as the necessary skills you need to know. So, let’s begin!

Web development 💻

I wanted to start my article with this field of programming just because it’s something I’m studying professionally, and this field is been one of the most popular ones during these years.

Web development consists of creating web pages. I know, sounds too basic, but it’s actually so much more complex than that.

Developing a web page is taking care of what and how the user (also referred to as the client) is going to interact visually through an interface (This part is called Front-end development) as well as how to application or service is going to do the processes “behind the scene” (Back-end development).

Some of the tools you can use in this field, at least to start with a few, are JavaScript, HTML, and CSS, and then you may use other complementary tools too like React, Sass, NodeJS, Webpack, and others…

And I not only want to mention the tools that you can use, but I also want to emphasize the skills that you need to apply, since, at least for interface design, you need to have at least the fundamentals of graphic design and creative thinking, since you will see a lot about colors, user experience, among others. For the logic side of the page, you need programming logic, and how to structure a good application with your languages.

I recommend this category of software development to start with for the simple fact of the ease of access to resources to learn because there are thousands and thousands of courses, books, tutorials, and communities that can help you on your path.

Mobile development 📱

This is another category that I want to mention because it is another that has “some similarities” with web development.

Mobile development consists of creating applications for mobile devices. Its uses can be very varied, from useful tools, such as service platforms, and also encompasses games (but it is something I will mention later).

For this type of development, other languages are used that vary depending on the type of mobile operating system that you want to make the applications, such as Kotlin, which is native for iOS, but there are also other multiplatform (that is, it works for either Android or iOS) such as C#, Java, among others.

Additionally, with JavaScript you can use frameworks like React Native to create cross-platform applications, therefore, if you want to learn web development and know enough about this language, you can also create mobile applications!

Some of the skills, and this is where I also go with the “similarities” is that you also have to have creative thinking for user interaction, as well as thinking about the logical structure of the program.

This type of web development is also very good to start with since it also has a large amount of resources on the internet, it is just that sometimes it tends to be difficult to position yourself in the market, but with enthusiasm and motivation, nothing stops you from devoting yourself to this web development branch!

Game Development 🎮

Personally, this category is one of my favorites, and, as a hobby, I am a game developer for the love of creating worlds and telling stories!

Game development, as its name says, consists of creating games, and this process is very complicated (more than it appears to be)

The entire game in which it is going to be created, the logic, multimedia aspects, and multiplayer services, are united by the same software, and this is the game engine, and these can be created by the same game development company, as well as some available to the general public, such as Unity, Unreal Engine, GameMaker, Godot, among others.

The programming languages to use vary depending on the game engine you use, such as Unity works only with C#, Unreal Engine with C++, GameMaker uses its language called GameMaker Language (better known by its abbreviation: GML), and like this with each engine.

But since game development is not only about making code, it is also your option if you want to further expand your roles as a Game Developer, either on the art side, as well as in gameplay planning and design, among other elements.

Currently, being a game developer is achievable, but with the detail that the resources needed to specialize are not as accessible as the previous cases, as well as achieving a professional position tends to be more scarce. But there is also the case of learning how to create games publish them on your own and become an independent developer! (culturally this is referred to as “Indie”)

AI Development 🤖

This one is currently gaining a lot of popularity and attention. I cannot deny it because the market and the public are already seeing all the potential that can be done with artificial intelligence.

This category consists of being able to create tools that can assist us in complex tasks, and this can have a wide range of uses... And well, during these months we have already seen many examples in which they have been applied (My favorites are voices generated by artificial intelligence)

The number of programming languages needed to create artificial intelligence is somewhat limited if we compare them with the previous categories, but some that can help us are Python, Java, Prolog, C++, and well, JavaScript again (wow)

Learning to create artificial intelligence is, as I had mentioned before, something relatively recent, but despite that, I can say that we have an immense amount of resources with which we can start learning. And this surprises me because a few years ago I would have been saying the opposite.

So this branch may interest you, the only thing is that more computer fundamentals are needed, and therefore more time of dedication to enter the professional market... But you can also use it to make a bot in Discord... You can have fun in various ways with these technologies! 😂

Conclusion 🤔

Choosing a programming path can be very overwhelming, because you can't know if something is really of interest to you until you try it. That's why I invite you to do a lot of research and choose one that is seriously of interest to you.

Likewise, if they choose to be professional developers in one branch, it does not limit them to continue learning from another in their hobby. In any case, programming is not just a job, it is a lifestyle, and if it is your passion to continue learning, the experience will be much better.

As you may have noticed, these are not all the categories of software development that exist out there, there are many more but I have not mentioned them due to their depth and complexity (and also this article would become longer than I expected ). So I invite you if you would like to share one that I have not mentioned, you can do so in the comments.

With nothing more to say, we have reached the end of this article, programming is so broad and complex that dedicating yourself to it is an endless path of learning, so I encourage new programmers to have a great adventure!

I mention that my networks are always open to connect with you! I am available to resolve any questions, or just receive a greeting.

Thank you very much for reading, hope to see you again! 👋️

- Erick 👓