LIFE TANRIKULU
Take a fresh look at your lifestyle.

Software Learning: Learn Programming from Scratch

learning software I have prepared a guiding guide for those who are enthusiastic. I listed the steps to take to learn programming from scratch and creative ideas about where to start. Most of the tutorials I have included here are free. You can learn coding quickly, whether from a computer or phone. To learn software, you must first know what you want.


Those who want to learn software, especially those who want to improve themselves in software, should read this article carefully. Because this article, like my other articles, has been prepared as a very good and comprehensive guide on learning software. As you know, if I write an article on a subject, I like to deal with it in all its lines and I try to offer you very satisfying content.

There are different lanes such as web programming, desktop programming, mobile application development. If you want to learn software, having a good level of English will also help you a lot. But this does not prevent programming learning. Since we are in the age of technology, automation systems, applications and programs are developing very quickly.

As someone who is proficient in HTML, CSS, PHP and JS coding languages, I would like to point out that!

Sleepless nights will be waiting for you to learn this business. If you have passion, hobby and curiosity, this job will be very enjoyable for you. If you do not have such a curiosity and interest, I am sorry to say that your job is very difficult. It is a very nice feeling to see that a program coded by you is running on your computer or to see that a website you made is liked.

So finish what you started. You can earn a lot of money in this business. All you have to do is run your head. Learning software allows you to build your future well. Now let's move on to the software learning stages.

What should I do to learn software from scratch?

1. Select Area

software domains
software domains

Software learning is not a concept that has value on its own. We can consider software as a service or a tool that solves our problems in a certain area. First of all, you have to decide in which field you will develop software.

You can determine in which field you want to learn software in two ways. You can decide based on market needs or your own taste and potential opportunities.

Currently, it can be said that web applications and mobile applications are more popular in the market.


I explain software areas starting from a general framework.

Web Application Development

I'm talking about applications that you connect with the browser. Web applications are one of the most popular areas. Even your local grocery store has a website. To develop a web application, it is necessary to understand several different languages.

HTML: It is a language used when developing html web pages, which stands for English, Hypertext markup language. The browser interprets this language and displays it in a format that people can understand.

CSS: CSS, which stands for cascaded style sheet in English, is used to change the visual properties of the elements on the page.

JavaScript: It is a programming language that allows a web page, which is normally a static flat template, to work interactively. What makes web applications so common today is actually the javascript language.

Html, css, javascript of a web application front end forms the part we can call. Some web applications are just front-end. Such applications are also called static html.

In many web applications, a service is running in the background along with the frontend. Asp.net (C#), php, Spring Boot (Java), Express Js (on Javascript, NodeJs) or django (python) may be running in the background.


Such applications are hosted on a web server. For example, asp.net runs on IIS, php runs on apache, and java apps run on tomcat.

#You may be interested in: Open Front Departments (4 and 2 Years)

Both backend and frontend (frontend & backend) There is no doubt that developing web applications consisting of segments is more difficult and requires more knowledge.

When searching for a web developer in job postings, you may sometimes see the phrase frontend developer or backend developer. But for beginners, having an intermediate level of knowledge on both the backend and frontend will be more helpful to see the big picture.

As you gain experience in this business, you can choose to specialize in either the front-end or the back-end. It is one of the software learning areas.

Desktop (Desktop) Applications

Desktop applications refer to applications running locally on our computer.

Notepad, word, excel etc. I can show applications such as desktop applications as examples.

Desktop applications are generally applications with user interfaces. If developing for Windows, it will be easier to develop applications running on the dotnet framework. In particular, Visual Studio is a very successful ide, that is, a code development environment.


For such an application on Linux, it may be necessary to use different frameworks and languages. Although there are cross-linked applications, that is, desktop application development libraries that run on both windows and linux with the same code (xamarin), they are not sufficient in terms of productivity and stability. It is one of the software learning areas.

Mobile Apps

We have to say that with the spread of smartphones, mobile applications have also become widespread, and even more used and widespread as a platform than the web.

Considering the millions of applications and games available on Google Play and App Store, you can feel the size of this market.

To develop applications on Android, you will need to write code in Java language. One of the languages ​​that has been popular recently is the Kotlin language. Kotlin is a language that can be used as an alternative to java and is easier and more practical as syntax, developed by jetbrain, one of the most robust software companies in the market.

There are also a few alternatives for developing applications on iOS. These are objective c and a simpler language swift. It is one of the software learning areas.

Embedded Software & Low Level Software

It is software developed to communicate between hardware and devices and computers. They are generally written in c, c++ or even assembly language. Assembly language is considered a low-level language. Linux kernel and driver software are also developed using such programming languages. It is necessary to know the CPU architecture, memory structure and interrupt concepts very well.

It is one of the most difficult areas. It requires a lot of experience and attention to detail. It is one of the software learning areas.

Recommended location : Money making games

Security Software

Security software is one of the areas that has attracted attention recently and will continue to attract attention in the future. We receive news from systems that are constantly crashed, data leaking out, and security vulnerabilities.

Security vulnerabilities have grown to such dimensions as to threaten people's privacy. Loss of money, loss of time, loss of workforce are the prices we have to pay in cases where we have weakness in security.

Specializing in this field requires a lot of work and experience. But it is not necessary to be a prophet to predict that those who are successful in this business will be very sought after and making money in the market. Cyber ​​security is an area that will gain even more importance in the future.

For penetration tests, you can develop using python and some libraries. Thanks to the reverse engineering discipline, you can have information on an exe without the source code, and even change the logic of its operation.

Working on exploiting or blocking will likewise require specialization in machine language. Those who have C knowledge will be in an advantageous position at this point. Because although C language is a higher level language than assembly language, it can be used as a very powerful weapon thanks to its ability to access hardware and memory directly.

#You may be interested in: Top Paying Professions (+20 Career Ideas)

The C language is a language suitable for use for both good and bad purposes. It is one of the software learning areas.

Artificial Intelligence, Machine Learning Applications

What we call artificial intelligence, which is the subject of movies and news, is actually a service created from very advanced mathematical models. Artificial intelligence and machine learning is a structure that emerges by training the system with a large amount of data.

Artificial intelligence applications, for example, have become able to beat the great masters in chess matches. With its capacity to process millions of transactions per second and its integrated artificial intelligence, it is thought-provoking about the future of humanity.

In this regard, apart from software knowledge, statistics and intensively mathematical science are also involved. It is one of the software learning areas.

2. Select Scripting Language

It is one of the most important aspects of learning software. You can see that some languages ​​are used heavily in the market. Examples include C, C++, C#, Java, Python and Javascript.

There is no requirement that you must develop in these languages. But there is no denying the fact that these languages ​​are heavily used in the software learning market and it is to your advantage to know at least one of them.

The language I would suggest as a starter is C It will be.

Tiobe Index You can take a look at the ranking on the site:

Meitheamh 2021Meitheamh 2020Changeprogramming languageRatingsChange
11c-pageC12.54%-4.65%
23changepython pagePython11.84%+ 3.48 %
32changejava pageJava11.54%-4.56%
44C++ pageC++7.36%+ 1.41 %
55c# pageC#4.33%-0.40%
66Visual Basic pageVisual Basic4.01%-0.68%
77javascript pageJavaScript2.33%+ 0.06 %
88PHP pagePHP2.21%-0.05%
914changeAssembly language pageassembly language2.05%+ 1.09 %
1010sql pageSQL1.88%+ 0.15 %
1119changeclassic visual basic pageClassicVisual Basic1.72%+ 1.07 %
1231changegroovy pageGroovy1.29%+ 0.87 %
1313Ruby pageRuby1.23%+ 0.25 %
149changeR pageR1.20%-0.99%
1516changePerl pagePerl1.18%+ 0.36 %
1611changeSwift pageSwift1.10%-0.35%
1737changeFortran pageFortran1.07%+ 0.80 %
1822changeDelphi/Object Pascal pageDelphi/Object Pascal1.06%+ 0.47 %
1915changeMATLAB pageMATLAB1.05%+ 0.15 %
2012changeGo pageGo0.95%-0.06%
software languages

3. Master That Language

programmer
programmer

Go: Version Control System is one of the basic tools used by software teams. They are systems that store information such as the history of the code, who made the change and when, so that it is possible to return to the desired version in the past, whenever desired.

Another important benefit is that when software teams make changes to a common piece of code, it allows to do things such as merging these codes, resolving or managing conflicts.

The only tool I can recommend from the vcs tools would be git. Git is a distributed version control tool. There are different vcs systems used in the market. Examples of these are svn, mercurial. But git is much more used than other tools. We can see this in the 2018 survey of the Stackoverflow site.

Git was developed by Linus Torvalds, who wrote the linux operating system. When Torvalds was writing the linux kernel, he needed a tool to properly manage the code and development written by all linux developers around the world. Since he did not like the existing tools, he rolled up his sleeves and developed his own vcs tool. This is how Git came about.

Development Environment: Whatever language you are developing software in, you will need a development environment suitable for that language.

You will definitely feel the need to debug. So you will have to get used to using the debugger. If you're going to code with C#, learn visual studio or visual studio code tools.    

If you are going to use java, you can use intellij idea or eclipse development environment.    

For Python users, I recommend the Pycharm ide. Community version is free.

4. Use Software Learning Sites

If you want to learn software starting from scratch, you should set aside time for training on certain days of the week.

Thanks to the developing technologies and training opportunities, you can become a member of quality training sites from your home and receive software & coding training. It is available in very high quality free sites as well as paid ones among online education sites.

I will enumerate the most important of these sites. Free resources available on the Internet will be of great help to you. Be sure to check them out to learn software.

1. BTK Academy

BTK Academy

Information Technologies and Communications Authority (BTK) In order to create a leading, well-known, reliable and respected education center that will contribute to our Institution, the sector and our country with its scientific, technological and constantly renewing education approach, Deputy Minister of Transport and Infrastructure, Dr. It was established in 2017 under the leadership of Ömer Fatih Sayan.

BTK Academy aims to transfer its experience gained in the field of electronic communication industry since 1983 and its regulatory and supervisory role since 2000 to all its stakeholders, and to contribute to the increase of the competent human resources required by the sector through its certification trainings.

The programs realized within the body of BTK Academy are prepared with the cooperation and contributions of our national institutions and institutions, universities and other national and international stakeholders, as well as our expert internal trainers.

BTK ACADEMY located in the top menu of the home page "Login" on the screen after clicking the Login with E-Government or a Entry with 1 Million Employment You can access our trainings by logging in with one of the options.

You can log in to the system without your e-government password with 1 Million Employment Login option. Detailed information 1 million jobs You can access it at. Because of these issues, software is among the learning tools.

2.freeCodeCamp

freeCodeCamp is the world's most loved and used software training site. I can say that it is a very useful site, especially for developers who want to develop web. There are tutorials on html, css, react.js and git and they are completely free.

As the training progresses, it is given the opportunity to make projects for non-profit associations. Thus, you can gain real-life coding and project development experience.

A nice feature of freeCodeCamp is that it teaches you the basics of using git and provides guidance on this. You use github service together with git. Github is a web-based version control service that can be used for open source or custom code. You can commit your codes there.

freecodecamp software learning site
freecodecamp software learning site

As you can see in the course curriculum above, you can get a certificate by completing hundreds of hours of training. To complete any certificate, you need to complete 5 projects. Thus, you will gain practical experience. Because of these issues, software is among the learning tools.

3. Codecademy

Again, I'm talking about a site with very high quality content. Basically, they organized a curriculum for three areas. First, they have a program on Web Development, just like freecodecamp. The second is a program that teaches the basics of programming. The last program is the Data Science program prepared for data scientists.

You can progress in two ways on the Codecademy site. You can either go on a career-based basis (Web development, Programming, Data Science) as I mentioned above, or you can take courses related to the areas you feel lacking.

In which languages ​​can you study?

  • Python
  • HTML & CSS
  • Sql
  • Ruby
  • javascript
  • Ruby
  • C++
  • Java
  • C#
  • R
  • Php

In other words, there are courses on almost every subject you can think of on software. Some courses are in the pro version, but free courses will more than meet your needs. Because of these issues, software is among the learning tools.

4. Udacity

There are tutorials for developers of different levels. There are free lessons as well as paid lessons. There are more introductory courses in the free section.

Paid lessons can be expensive for you. for example Become a C++ Engineer The cost of the course is $999. You will take classes on the internet as if you were studying at a university. You will need to successfully complete project assignments to complete the course. In the meantime, the projects will be reviewed by real people. Because of these issues, software is among the learning tools.

5. Khan Academy

Another online education site that I love is khan academy. A site that defines itself as a forever free online education site for everyone. Khan academy, an educational site prepared by a non-profit organization, has courses not only on software, but also on other branches, especially basic sciences.

Apart from basic sciences such as mathematics and physics, there are also courses on economics, finance and even art history.

Another good thing about the Khan academy site is that it supports Turkish language. Because of these issues, software is among the learning tools.

6. Udemy

Udemy, which usually has paid courses, is one of the resources you can use for software development. You can choose from over 100.000 online courses according to your wishes. Free lessons are also available.

Udemy occasionally offers significant discounts and promotions. Courses that cost 200 liras and 300 liras are reduced to 30 liras in this way.

Of course, not all courses are of the highest quality. You can choose according to the score, the number of students and the comments written. Because of these issues, software is among the learning tools.

7. LinkedIn Learning (Lynda)

The education site, better known as lynda, has now joined LinkedIn and all of its courses have been moved there. If you have a LinkedIn membership, you may have been aware of the learning site.

The site is paid, but you can try the LinkedIn premium membership for free. LinkedIn sometimes makes offers on this subject. If you do not want to pay money, then you can buy the free trial premium package and cancel it after a while. You can use the linkedin learning site until the trial period ends.

You can train yourself in software by making maximum use of the sites I mentioned. As you can see, the internet offers us great opportunities. You can improve yourself in software without any excuses. Because of these issues, software is among the learning tools.

5. Create Project

Education will take you to a certain point. But real learning comes from practice. For this reason, you should develop a project according to your own needs or according to your own taste. You can develop these projects as open source on github. So you can interact with other people and benefit from their knowledge.

Open source projects have revolutionized the software world. Linux is one of the most used operating systems today and is an open source project. It is a powerful and stable operating system that can run the world's most powerful software services. It competes with other paid operating systems (windows, macos).

So by supporting open source code projects, you would be doing yourself and other developers a huge favor.

You may think that it would be difficult for me to support open source projects at the beginner level. But there are projects waiting for contribution at every level.

On the following site, you can find github projects suitable for beginners according to programming languages.

Github

I mentioned sharing. The world's largest software question and answer site stackoverflow.com Subscribe to the site. Ask new questions, answer questions that interest you.

Quora Another question and answer site. There, you can search for answers to questions and answer questions you know.

You can write a blog, share what you know. We hear the phrase "information increases as we share" as a cliché. But it is real. The hand is above the hand. You increase your knowledge and skills by interacting with other people.

Job Search Sites in Turkey

Foreign Job Search Sites

  • Stackoverflow: Although it is the most used question and answer site in the world, it also publishes job postings.
  • LinkedIn: Job postings can also be posted on LinkedIn, a platform for professional employees.
  • Github: Although it is a web-based version control service, job postings are also given.
  • Dice
  • crunchboard

If you cannot find a job in a software company due to lack of experience or other reasons, you can work as a freelancer. You can find jobs according to your skills on both domestic and foreign freelance job search sites.

Domestic Freelance Job Search Sites

Foreign Freelance Job Search Sites

On the sites I have mentioned, he finds a job suitable for his ability and does a good job as best he can. Reputation is very important in this business.

Conclusion

As a beginner developer, if you really want to do this, you will have to invest time and effort. But all the tools you need to learn are actually at your fingertips. You can reach your goal by using the available opportunities without any excuse.

Getting the most enjoyable job in the world will definitely be worth all your effort and effort.

Source: eleven codes

International
You may also like these
Show Comments (2)