So you wanna become a software engineer?
What’s up everybody and welcome back to my blog. In this post I wanna share something valuable with you and you should know it before you enter the world of software engineering. I have realised that a lot of people who want to start with programming will stress themselves with these kind of questions: “which programming language should I start with”, “what is the best programming language?”, “Which one is the easiest?”, That is the exact mistake I did when I started.
You don’t have to think about the tools first but think about what you are going to build. When learning something you should have a clear direction of where you are going. If you have a clear direction, you will not waste your time jumping in and out of different fields.
So you have to choose an area of specialty. In software engineering, there is a number of fields which you can choose from. These fields include: Web application development, Mobile application development, Desktop application development, Game development, Embedded systems development. I’m going to describe each field below so that you will have a clear understanding of what each means.
Web application development
Web application development is the creation of application programs that reside on remote servers and are delivered to the user’s device over the Internet. A web application (web app) does not need to be downloaded and is instead accessed through a network. An end user can access a web application through a web browser such as Google Chrome, Safari, or Mozilla Firefox. A majority of web applications can be written in JavaScript, Cascading Style Sheets (CSS), and HTML5.
Web application development will typically have a short development life-cycle lead by a small development team. Front-end development for web applications is accomplished through client-side programming. Client refers to a computer application such as a web browser. Client-side programming will typically utilize HTML, CSS and JavaScript. HTML programming will instruct a browser how to display the on-screen content of web pages, while CSS keeps displayed information in the correct format. JavaScript will run JavaScript code on a web page, making some of the content
interactive.
Server-side programming powers the client-side programming and is used to create the scripts that web applications use. Scripts can be written in multiple scripting languages such as Ruby, Java, Python. Server-side scripting will create a custom interface for the end-user and will hide the source code that makes up the interface.
Popular tools used:
Frontend: React, Vue, Angular, Blazor, Svelt, Tailwind CSS, Material UI, etc
Backend: Django, Nodejs, ASP.NET Core, Ruby on Rails, SpringBoot, etc
DB: MySQL, SQLLite, PostgresSql, MongoDB, etc
Mobile application development
Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These software applications are designed to run on mobile devices, such as a smartphone or tablet computer. These applications can be pre-installed on phones during manufacturing platforms.
As part of the development process, mobile user interface (UI) design is also essential in the creation of mobile apps. Mobile UI considers constraints, contexts, screen, input, and mobility as outlines for design. The user is often the focus of interaction with their device, and the interface entails components of both hardware and software. User input allows for the users to manipulate a system,
and device's output allows the system to indicate the effects of the users'manipulation. Mobile UI design constraints include limited attention and form factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts signal cues from user activity, such as location and scheduling that can be shown from user interactions within a mobile app. Overall, mobile UI design's goal is mainly for an understandable, user-friendly interface. Functionality is supported by mobile enterprise application platforms or integrated development environments (IDEs).
Mobile UIs, or front-ends, rely on mobile back-ends to support access to enterprise systems. The mobile back-end facilitates data routing, security, authentication, authorization, working off-line, and service orchestration. This functionality is supported by a mix of middleware components including mobile app server, mobile backend as a service (MBaaS), and service-oriented architecture (SOA) infrastructure.
Popular tools used:
Android Studio(Java/Kotlin), Xamarin(C#), ReactNative(Javascript), Flutter(Dart), Swift, etc
Desktop application development
Desktop application development is a process where developers build applications that can be used on desktops and laptops. These apps are usually built for Windows, macOS, Linux, or other desktop operating systems. The list of software categories includes personal productivity software (e.g., word processors), media creation and editing (e.g., video editors), and entertainment.
Desktop applications don’t require any internet connection to run, and users have to download and install them on their computers. The desktop applications can be developed in different languages, including C/C++, Java, Python, Ruby on Rails (ROR), PHP, Perl, etc., typically using libraries like Qt or GTK+.
Game development
Game Development is the art of creating games and describes the design, development and release of a game. It may involve concept generation, design, build, test and release. While you create a game, it is important to think about the game mechanics, rewards, player engagement and level design.
Game Development can be undertaken by a large Game Development Studio or by a single individual. It can be as small or large as you like. As long as it lets the player interact with content and is able to manipulate the game’s elements, you can call it a ‘game’.
To resolve problems that game frameworks had, tools like libGDX and OpenGL were developed. They helped game development to be a lot faster and easier, providing lots of pre-made functions and features. However, it was still hard to enter the industry or understand a framework for someone coming from a non-programmer background, a common case in the game development scene.
There are a lot of fields that you can choose from, I just explained a few above. Now that you have a little it understanding of how these different fields work, its time to choose one. After choosing a field you will have to choose a tool which works in that particular field for example if you choose mobile development you can then choose Java or Dart as your programming language. The next step is to start learning. Learn the fundamentals of that language first before diving into your field. After learning the fundamentals then dive deeper into your field. That’s the easiest way of learning (have a clear direction). For any additionals, corrections, queries comment below. Don’t forget to follow and share so that this post reaches to as many developers as it can. Happy Coding…………………….




Comments
Post a Comment