Welcome to the 3rd installment of our software development series for mockers. In this article, we'll introduce you to some basic technologies and tools.

From the first two parts of the article (1 ve 2We begin by assuming that you are aware of the But forget that you are the owner of the Avicenna application. You are now an intern in the world of software development for the mockers!

You started your internship at the company you applied for, and the company is a software development agency.

On your first day at work, you became aware of the existence of the Avicenna practice. The owner of the app insists that the app be redesigned from the ground up. A 3-month development period is foreseen for the project and this is compatible with your internship period. You will have the chance to observe many things.

Collaboration tools and version tracking

The first issue to be considered before starting software development is how to follow the processes in the software development process, how to control them and most importantly how to follow the version.

Collaboration tools vary from company to company. Jira, Trello, Slack, Rocket.Chat derivative software/web applications are widely used. About version tracking Go has become almost standard. However, it is possible to come across projects using CVS, SVN.

Sites such as GitHub, GitLab, Bitbucket are also used as code repository in version tracking with Git, and they can provide error tracking for projects and much more with the tools they contain. These services and tools are sometimes free and sometimes paid.

GitHub is widely used because it provides free and unlimited hosting services to open source projects. GitLab differs from GitHub in that it can be installed on your own server (on-prem) free of charge. for example Pardus, GNOME, KDE and many other free software projects use GitLab infrastructure by installing it on their own servers.

GitHub, GitLab, Bitbucket (very simple) come with various bug tracking infrastructures. Depending on the structure used by the company, these or a few of them may need to be learned.

Graphic design

With the advantage of being an agency, you can observe that many processes are settled. For example, the graphic-design team first designs a PDF series of images that show how the application should look and which element should be where. These images are sent to the customer and the design is finalized. The finalized design is sent to the implementation team or teams.

mobile application

Each company's approach to application development may be different. Your agency is an agency to reduce software development costs. dart tongue ve FlutterSDK environment may be preferred. For a platform-independent development environment React native can use tools. In fact, the options are not limited to these. These are just two examples of programming languages ​​and frameworks that allow software development for cross-platform (both iOS and Android).

iOS To develop native software for Swift programming language is used. In the past, Objective-C language was used, but it is not preferred much anymore.

Android for native software development Kotlin language is used. In the past, the use of Java language was recommended. for Android C++ , C# and even using the Adobe PhoneGap framework, it is possible to create applications with HTML, CSS and JavaScript. However, this is not a generally preferred method.1


The front end of websites are generally written using HTML, CSS and JavaScript. There are also approaches that use only JavaScript (React Native etc.) instead of these three tools.

Websites are expected to produce simultaneous responses to mobile phones and computers. The user naturally wants to be able to access a feature that he can access via the desktop browser, also via the mobile phone browser. Some of the websites prefer to use two different interfaces for this. The first is the mobile interface, which is usually subdomain-directed, and the desktop interface.

To give a concrete example, let's compare two famous book selling sites. For example, when you enter the website Kitapyurdu.com from your mobile phone, you (https://m.kitapyurdu.com) will redirect to the subdomain. When you enter from the desktop, it will show the desktop interface without redirecting. Not every site uses the same technique. for example https://www.amazon.com.tr No matter what device you enter the site with, the files on the screen will be tried to be shaped according to the screen size of your device or computer, but the site will not be directed to a subdomain name. This method is called Responsive design (also translated as responsive design or adaptive design).

What does CMS/CMS mean? What does the ACP/Administration Panel do?

CMS The word is short for Content Management System. It means Content Management System. It is also abbreviated as IYS. Every website where content is added, edited, deleted or categorized is essentially a content management system. There are many paid or free content management systems.

The administration panel is also the heart of the content management system. All content is registered to the database through the administration panel. Content management panels usually come with various role and authorization definitions. Roles and Authorizations are different in each content system, restricting or allowing access to different functions.

What is API? What does it do?

Designed to facilitate data exchange between applications are structures. It is used to access application resources. There are two common types of APIs, REST and SOAP. for REST JSON, for SOAP XML It is used.

What is a server?

The data is kept on relatively large computers with fast access to the Internet, running in a redundant structure. Let's not go into details by saying that there are two different types of servers, Physical and Virtual. The server can use a limited area provided by service providers, or it can be a dedicated computer (dedicated) to that site or resource.

A server can perform multiple tasks at the same time, or it can be customized for various tasks such as e-mail server, database server, file server.

What is database and SQL?

Every content we enter into content management is actually saved on the database or bases, which are constantly running in the background and serve to store data. There are also many types of databases. For relational databases SQL language is used. MariaDB and PostgreSQL are examples of free and free databases. MSSQL and Oracle Database (sometimes just taken as Oracle) are paid database examples.

What is Cloud/Cloud?

It is generally handled under two headings as Cloud Storage/Cloud Storage and Cloud Computing/Cloud Computing. If we look at the part that interests us, it is that our databases and files work on real servers that do not have a physical fixed counterpart and can expand when necessary, dynamically within the data center, limited to the resources allocated to it.

What is CDN?

CDN is the abbreviation of the word. It was translated into Turkish in the same way. They are computer networks or service providers that allow quick access to static content (images, videos, etc.) Likewise, specialized computers can be found to deliver content. This is entirely up to the IT side's preference.

For example, a picture that we upload to the Facebook site is stored on the cloud. In case of a request, it is pulled from the main server by the CDN network closest to the request and sent to the user. Thus, the user accesses the content faster.

The world of software development for mockers

You are probably ready to step into the software world. We may have intimidated you a little. But to remember the famous Matrix scene, it's up to you to choose the red pill or the blue pill.

The IT world isn't just about the blue and green pill. There are vehicles of every color and variety that will connect you to it.

Software Development for Regiments

Pros and cons of being a developer

Becoming a Graphic Designer

The graphic design part is the most fun part of website or app development. Generally Photoshop knowledge, lots of application and website information. It requires familiarity with the basic capabilities of the technologies used. It generally pays well.

There may be disadvantages such as trying to design every request of the customer and constantly having a discussion with customer representatives. Since it will be difficult to make a living by only designing websites or applications, you will have to do different design works. For example, you can get an offer to design a new character or characters for a game. You should be able to say yes without any hesitation.

Becoming a Mobile Application Developer

In order to develop iOS applications, it is inevitable to enter this ecosystem first. You will need to get an iPhone, a MacBook Pro, always using the most up-to-date OS version.

You will need to open an Apple Developer account to be able to upload apps to the app store for iOS. As of 2022, the annual cost of being an individual developer appears to be $99.

It is possible to develop Android application in Windows or Linux environment. Only the fee that Google charges from the developers appears to be a one-time $25.

The variety, screen sizes and quality of Android devices are very diverse. For this reason, much more fine-tuning, more frequent application updates will be required.

Developing applications for mobile phones usually pays well. However, mobile phone applications are constantly developing, new technologies are coming, old technologies are being abandoned. An application you write will need to be constantly tested and adapted according to the new generation and new models of phones.

Becoming a Frontend Developer

Are you ready to know basically HTML, CSS and JavaScript as well as deal with JavaScript library? Why is the design that looks good in the Chrome browser so messy in Firefox or Safari? You never expected that JavaScript code would make the entire site unusable, but it will. Among all these efforts, you will have to adapt to the constantly developing technologies. https://caniuse.com For example, the site will be of great use to you. You will have a chance to get to know CSS preprocessors. You will write CSS like you write code. You will start to recognize dozens of browsers with almost no users as your name. However, it is useful to be aware that you are stepping into an area where there is constant change.

Becoming a Backend Developer

Are you ready to be the target of hackers all the time? Someone will always look for you. The next day you won't even be able to explain to yourself why you wrote the code you wrote 6 months ago. Still, are you ready to lose yourself among the programming languages ​​and versions that are released every day?

You chose the red pill!

1 This part is a bit of memorization, a bit of this from the article summarized: