CHAPTER 2 | IT directions and technologies
I remember when I was a student in my last year of college I asked a wellknown IT specialist with many years of experience for a consultation about the most popular Web technologies in demand on the market because I was more interested in Web programming than, which was the most popular, including that I had several questions about some programming languages, etc.
I studied C# and PHP, so I oscillated more between .NET (C#) and PHP technologies. On the market at that time positions for PHP programmers prevailed, but in tangent with some CMS's like WordPress, Joomla, Drupal, or frameworks like Laravel. I suspect that for some who are reading this book and are at the beginning of the journey, many of these notions are completely foreign to them and far from understanding, but I will try to describe in this chapter existing technologies as much as possible, and clarify things.
So after choosing web programming as a direction, I still had a hard time choosing a more serious specialization path, since universities only taught theoretical subjects and not more concrete practical things. What I want to clarify here from the start, so that everyone should know, is the fact that to become a good IT specialist you must first and foremost be self-taught. College, training centers, meditations are helpful but they do not guarantee success. My opinion is that you have to do more than 50% of the studies on your own. So I picked a few more serious technologies and studied them hard on my own.
My consultant confirmed to me the presence on the market of an increased demand for PHP programmers, but he also communicated to me the fact that the number of PHP programmers is also quite large, which meant serious competition, and he recommended, much to my surprise, to study Java programming language better, as the company he worked for was waiting for several Java projects that year and they were looking for more programmers on Java, so he could recommend me if asked for, and if I managed to gather enough knowledge in the field.
I had started studying some recommended Java books at that time: "Thinking in Java" by Bruce Eckel, "The Java Programming Language" by Ken Arnold, but in the end I chose .NET technologies and the C# programming language. I had built several desktop applications up to that point using .NET Windows Forms technologies, and I was already familiar with the technologies that the Microsoft .NET platform offered in different directions.
The turning point came when I found a book written by Adam Freeman called "ASP.NET MVC 3". I considered it an ideal framework for creating more complex web applications, and my undergraduate thesis focused on this subject: "web applications". I managed to get a job right after graduation due to .NET technologies, and I do not regret for choosing this path.
At the moment, C# is in the top 10 most popular programming languages, used in web, desktop, mobile programming, and also for game development.
So an essential thing that you need to clarify from the very beginning is what direction you want to choose, and what suite of technologies you need to study to specialize in the given direction.
You will find many classifications for software developers on job offer websites, either based on the application profile: web developer, game developer, mobile developer, or based on programming languages: C++ Developer, Java Developer, C# Developer, etc. However, depending on the specifics of the software made, I will define the following directions for better classification of software developers:
- Web development: involves the development of web applications, and programmers are identified as "Web Developers".
- Desktop development: involves the development of desktop applications, and programmers are also called "Desktop Developers".
- Mobile development: involves the development of mobile applications, and programmers are identified as "Mobile Developers".
- Game development: involves developing games, and programmers are also called "Game Developers".
- Database development: involves the development and maintenance of databases, and programmers identify themselves as "Database Developers".
- Full Stack developmnet: involves working on a complete suite of technologies that sometimes includes several platforms, and the programmers are identified as "Full-Stack Developers".
Of course, this list is not complete. We can mention also robotics, artificial intelligence, and many other things programmers can do. Nevertheless, the directions listed above are the most common with the most job descriptions currently defined. We will analyze them separately, considering the variety of existing technologies for each one.
Web programming involves the development of web applications, which are represented in browsers such as Google Chrome, Firefox, Opera, etc. The suite ranges from simple company presentation pages (also called Landing Pages) to complex Web Banking systems, workflow monitoring, trading, etc.
A web developer first of all needs to understand how the global Internet works as well as a local Intranet. To be familiar with and know such basic concepts as domain, hosting, DNS, HTTP and HTTPS protocols, SSL certificates, Browser settings, etc., to then move on to web-oriented programming languages and other technologies.
Requirements for candidates
|
Above we have a job description for a web developer and the requirements list denotes the necessary knowledge a web programmer should possess. The following technologies are mentioned:
- HTML & CSS – these are not programming languages but code for defining the structure and design of web pages represented in a browser.
- JavaScript – a programming language used to perform web browser functionality, such as navigation menus, pop-ups, prompts, notifications, validations, etc.
- Some JavaScript libraries like jQuery, and Ajax - are also used to implement the functionality in the Browser. It is also called the client side, what the user sees and interacts with.
- ReactJs/AngularJs/VueJs – JavaScript libraries used for Web interfaces.
- A programming language like C#/Java/Python/PHP – for serverside functionality. This functionality is hidden from the user. It is also called the back-end logic responsible for managing and storing information to and from databases, and many other complex calculations and operations.
- SQL databases like Microsoft SQL/MySQL/Oracle or NoSQL databases like MongoDB/ Redis/Cassandra – are used to store data and process information.
It is important to note that job descriptions and the technologies required vary from company to company. From the start, I would like to clarify 2 concepts equally relevant to web programming: Back-end development and Front-End development.
Back-end development involves database development and business logic development. Back-end developers write and develop the code that runs on the server. Here we can mention several technologies related to SQL databases like Microsoft SQL Server, Oracle, MySQL, PostgreSQL, and SQLite, as well as NoSQL databases such as MongoDB, Redis, Cassandra, AstraDB, etc. And here we can also refer to API development (Application Programming Interface), which involves the development of certain libraries that can be reused with different client interfaces. As a rule, back-end developers should know at least one of the following programming languages used in API development and back-end functionality: C#, Java, Python, Perl, C++, PHP, Go, Ruby, etc.
Front-end development involves developing the logic of the user interface, the so-called client side. Programmers are also classified as frontend developers. And here for web application development, I can mention the following technologies: HTML and CSS, Bootstrap, JavaScript, jQuery, ReactJS, Angular, VueJS.
However, a good web developer works on both the back-end and frontend sides. Such people are also called "Full Stack Web Developers", and they work on a complete suite of technologies.
Now let's explain briefly some of the current web technologies used in web application development. You will always find under the title of Web Developer a different suite of technologies requested by the employer in his post on a job offer website.
SUBSCRIBE
Get product updates, launch announcements, and more by joining our newsletter.
Many people enjoy learning from books. You can also achieve technical skills and knowledge by trying our featured e-books.
Study Point is a project designed to bring you useful and enjoyable learning material, accessible to everyone.
Follow us by subscribing to our newsletter.
Copyright © 2024