In this article, I will share my experience of self-learning programming, the pits I encounter, how to solve problems and other aspects to beginner friends, hoping to help you who are learning programming by yourself. If where to say wrong, also hope to get your criticism to correct!

1. Why learn programming?

(1) Because of hobbies:

If you are passionate and interested in information technology and like to study computers and smart phones, you want to master more knowledge of computers and learn to develop your own desktop software, websites and apps. (2) Want to get a high-paying job:

IT industry wages compared with the traditional industry is relatively high wages, IT shall be applicable to the industry field is very broad, catering, transport, logistics, medical, financial, education and so on each big industry cannot leave the support of the IT industry, if to master a foreign technology, the industry that have a meal is not a problem, can you eat a good meal is to see himself.

Of course, you’d better like the industry yourself, like it, and stick to it. If you just want to make money, maybe programming isn’t for you. It’s best if you can apply your love of information technology to your career. In the following article, I assume that the goal is to find a job, to share with you the experience of self-taught programming.

2. How to understand software development in an easy way

Simple understanding is through some programming language, write specific code instructions, execute code, let the computer help us do some calculations, perform some tasks, and so on. (2) What is the ultimate purpose of programming?

More popular writing code for most of the final purpose is to develop a complete set of software system, we know that the software can help us do many things, such as we use QQ software to chat with my friends, use baidu site search information, ask questions on BBS website, using the WPS software documentation, use PS processing images, and so on. These are software, through the developer to write code, packaging, online and other steps, finally formed a complete set of programs for users to use. (3) B/S architecture and C/S architecture

Software on the market can be divided into two types according to a specific classification method: B(Browser)/S(Server) architecture (Browser/Server) and C(Client)/S(Server) architecture (Client/Server). Of course, there are stand-alone software, and now there are some software that can provide services for people without networking, such as many calculator apps on hand phones. To put it simply, using the browser to open the website is B/S architecture software, and directly open the client using C/S architecture software. (4) What programming language?

Programming languages are formal languages used to define computer programs. People communicate in Chinese, English, Arabic, etc., while people communicate with computers in computer programming languages, writing specific pieces of code so that computers understand our intentions. Then there are many computer programming languages, such as C++, C#, Java, JavaScript, PHP, Kotlin, assembly language and so on.

3. Know the job title of programmer (software developer)

As a software developer, we should at least know a programming language, and be able to use software development to use this programming language to complete the corresponding work in the actual work, at least this is a qualified software developer. Nowadays, many software development projects are completed by more than one person, so one developer must be responsible for specific tasks in the development process, such as Java back-end engineer writing code logic for data interaction, Android engineer writing Android APP, IOS engineer writing iPhone APP, and so on. (2) What capabilities should software developers have in the long term?

First: keep learning. In the field of software development, the development technology is constantly updated and changed, if you want to have the ability to compete, it must continue to learn, rather than with the original technology for a long time to eat, if it is true, will eventually be eliminated. This business is not for those who want to make it all work. In this industry, you have to constantly learn and innovate, and you have to have the entrepreneurial spirit to be neither afraid of hardship nor afraid of fatigue. Secondly: be a planner: you should always have a sense of crisis, so make a plan for yourself, whether it is a short-term plan or a long-term plan, work towards that goal, you will be better and better. You’re a junior programmer, you should be working towards being a senior programmer; As a senior programmer, you should strive towards the goal of being an architect; When you become an architect, you should work towards the goal of being a manager. Only by planning and changing over time and working towards your goals can you continue to achieve your value.

4. How can I get started without programming?

I believe this is the problem that most beginners struggle with, and the problem that hinders the progress of many beginners. If you don’t know where to start, or don’t know where to start, I’m going to give you some advice based on my own learning experience. I hope it will help you.

(1) What foundation should you have:

You need to have at least one computer of your own, which doesn’t have to be tall, unless you’re learning to develop large 3D games. Traditional development study, ordinary notebooks, desktops can be, but must have the Internet, because you need to get this kind of learning materials from the Internet, and we are in the study of information technology, how could have no network, think about how terrible, the most important thing is that you will like it to learn it again, if you don’t like it, to learn what’s the point. (2) Not good at math and English, can you learn programming well?

Let’s just say, if you feel like you’re not good at math, but you like it, you can do it, you can do it. My math and English are really bad because I don’t like them. Programming logic is very strong, but do not represent your bad at math programming in school, they have not a thing, although programming a lot of the time used in scientific computing, but if we are learning to program is to develop application software, in order to find work, programming is not that others say so difficult.

What about poor English? That can be learned. The technology of computer development came from the West, and the West has done more in this area than we have, of course, these computer languages are almost all English alphabet. I think if we had developed it before the West did, foreigners would be programming in Chinese by now. But my English is not good, the sentence can not read smoothly, how to do? That’s okay, reading code is completely different from reading English text, although most code is written in English letters, and understanding code is more about understanding its logic. However, if your English is not good, you’d better improve your English because many development documents, tutorials, are written in English. That doesn’t mean you can’t write code if you don’t have good English, but you can’t learn to program without knowing simple English words like “hello” and “how are you”. (3) Choose your favorite aspects:

According to different needs, the software development process includes multiple work tasks and various work processes, so different jobs are also created. Front-end engineers: Android engineers, IOS engineers, Web front-end engineers, and back-end engineers: Java backend engineer, Python backend engineer, PHP engineer, Linux operation and maintenance engineer, now also popular big data engineer, AI (artificial intelligence) engineer, and so on. Of course, some people can perform several roles when people are scarce, but in large companies, the division of labor is usually clear.

So how do you get started? First of all, choose your favorite language, choose your direction, and study toward that goal. How do I know which programming language is right for me? This requires some research, and since you’re going to teach yourself programming, you should check out some information about what languages are good for what, and what languages you should learn. Of course, our long-term goal is to be proficient in one technical direction, but it’s better to be proficient in everything else.

So, I suggest you choose the direction you like, easy to get started on the direction of learning. But some people say that big data and artificial intelligence are hot right now. A monthly salary of 20,000, 30,000, 40,000. But you know, no basis for a common beginner, need to spend much time to reach the level of the large data engineer, AI engineer, so it is important to learn basic, at least make sure you have the same skills, able to keep yourself qualified for a job, after again toward higher levels of efforts, maybe it will be better.

I chose Android as my starting point because I liked it. When I started learning Android in 2015, a lot of people said that Android is now saturated, learning Android will not find a job. But I didn’t give up learning Android, I think, if you have time to worry about later can’t find a job, why don’t you calm down and go for it, as long as learn why afraid of couldn’t find a job, why you can not serve as the study of Android, you can be stupid than others, but you can also efforts than others, besides, How many people really admit that they are more stupid than others? When I was learning Android, I watched videos every night, took notes, and learned Java basics first, then Android basics, for several months. Pretty hard, but later harvest is happy.

Of course, you have plenty to choose from. If you like APP development, then it’s Android and IOS, and the cost of learning Android is lower than the cost of learning IOS, and the reason is that if you want to do IOS development you need a MAC, Android development uses ordinary Windows, For further learning, you can install a Linux operating system, plus a few hundred yuan Android phone can learn, and you can learn IOS after you master Android development. If you like back-end development, I recommend Java, Python, PHP, etc. If you’ve never done programming before, these languages are pretty easy to get started with as long as you study them, especially if you have some C background. And if you like the Web front end, then you have a good study of H5+CSS3+JavaScript, a qualified Web front end engineer in addition to the website to make beautiful special effects, but also understand the back-end knowledge, then you can learn node.js. Although there are many categories of development technology, but these technologies are interlinked, with the foundation of one technology, it is easy to learn other technologies. In the beginner stage, you need to choose one technology to systematically learn, and don’t forget to learn more about others.

Here is the ranking of programming languages at some point in time:

(4) How to obtain learning resources?

You can buy a book. There are good books and bad books, some books for beginners, and some books not for beginners; Some books are easy to read, while others are full of nonsense or even a lot of mistakes, which requires you to identify. Some books are suitable for you, but some books are good, but not suitable for you, you should go to the bookstore, to the library inside a good look, choose their own system of teaching books. For technical books, try to choose books that are relatively new, and avoid books that are several years old for the same technology, because unlike literary books, technology changes every day.

You can also watch a video tutorial of the system. There are a lot of free tutorial resources on the Internet. If you make good use of them, you can learn them well. There are videos where the teacher teaches in a way that doesn’t suit you, and there are videos where the teacher teaches in a way that suits you, and I believe the latter is more helpful for your progress. At present, there are many teaching websites, which also provide a lot of free resources, such as Geek Academy, MOOC, Baidu Chuanxue, Tencent Classroom, etc. There are a lot of free resources. It is recommended that you spend some time to listen to the first lesson of multiple sets of videos, and finally choose the most suitable one for yourself. (5) To use the Internet to solve problems:

You must encounter many problems in the process of learning programming, and even sometimes the bugs make you feel broken and helpless. Don’t panic at this time, this is a process that many beginners must experience. As long as you solve one problem by one and accumulate experience, you can solve the problems in the actual development. When you encounter a mistake, put your error baidu, others must have also encountered, and have a bunch of solutions. You can also go to various forums for help, such as CSDN in China or stackOverflow.com for global developers if you can read English well. (6) Read others’ code and learn from others’ strengths:

Reading other people’s code is a way to improve your coding ability. You can see the distance between yourself and the god and then work hard towards your goal. A qualified developer can not only write code by himself, but also have the ability to read other people’s code. (7) Practice makes perfect: in the process of learning programming, understanding and doing are completely different things. Don’t think you can read videos or read books and never code exercises. A lot of people get it, but they make a lot of mistakes. This is a stage where you need to practice. Online said “7 days to master PHP”, “5 classes to master Java”, and so on, to an ordinary beginner’s point of view is absolutely impossible, as a beginner, should be down to earth, insist on every day, accumulated tens of thousands of lines of code, or even hundreds of thousands of lines of code, maybe that is the real entry. There is no gain in this world, all the harvest, must experience pay, knowledge is the same, come on!

5. Conclusion:

The predecessors in the last century when learning, they do not have the network, not so much learning materials, and they can create a lot of valuable things for future generations, they are so persistent, we have no reason not to work hard. Anyway, learning programming is not easy, you must really like it to learn, down to earth, perseverance, to the established goal. Entry-level learning is hard, even boring, but the hard work, hard work, compared to the end, is worth it. Come on!

I will spare time to share some development of video technology, welcome to subscribe to our bi li bi li video sharing channel geek developers: space.bilibili.com/172353353/,

You can also subscribe to our wechat official account (jkdev_cn) to exchange and ask questions and receive the latest shared content.