This article is from the wechat public account “Business School Graduate Programmer”

I am Lin Ge, a programmer who graduated from business school because of his interest in the industry. I’ve had a lot of people come to me recently, wanting to learn how to program, but they don’t know how to start. Therefore, I would like to share with you without reservation my 10 days of self-learning programming experience that influenced my life 8 years ago.

1. The decision

(Pictured is a white Apple Notebook from 2008)

In early 2009, on one of the desks in a dank, dingy college dormitory backed by bamboo, sat a stark white Apple Macbook at odds with its surroundings. She was Lingo’s best friend in his spare time.

Lin Ge majored in finance in a business school. After spending half a year of free and decadent college life, he always thought that he needed to learn some skills and earn some money.

So, Lingo made a decision that now seems to have had a major impact on his life:

In ten days! Learn website programming systematically!

At that time, He was 19 years old, but with a hubris that now seems ridiculous, he always felt that he would live differently from others in the future.

Now I recall that At that time, Lin Ge was just a student who was better at using the computer than others and had poor grades. I don’t know why he was so confident.

When I was a freshman in college, although personal computers had already entered millions of households, entrepreneurship and the Internet were not as noisy and hot as today, and the concept of mobile Internet had not been formed.

In a world where computer technology seems more technical to the unprofessional, no one will talk to you about financing, products, markets and operations.

His parents helped him buy an Apple computer, which was a rare thing at that time. The price was close to five figures, and he got such a computer. At that time, He was so moved. He said: I will never force to play games any more, and I will study hard.

A stupid computer that can’t play games? Learn to use software or learn to program.

In this way, the initiation of a systematic self-learning programming idea. Before he graduated from business school, without an interview, He entered an old large listed software company (and the company he had been dreaming of when he was a child) and became a programmer.

It all started in 2009 when I systematically taught myself how to program for 10 days.

Basis of 2.

(Picture shows LOGO programming language used for drawing when I was a child)

Before telling the story of the 10 days of self-taught programming experience, it is necessary to explain The computer foundation of Linge.

Kindergarten contact 386 computer, can use MSDOS system to play a game called “Prince of Persia”, chess; When I started using Windows 3.0 (typing commands from Dos to enter Windows, before the Start menu), the software was pitifully sparse.

When I was in the first grade of primary school, I happened to be assigned to the computer experimental class. The school would teach an input method called “cognitive code”. Input method is not how to learn, but learned the pinyin fast typing ability;

The fifth grade of primary school with Dreamweaver, Fireworks, Flash, Photoshop (webpage production three swordsmen, three software) do personal home page, with FTP (file transmission tool) upload to the virtual host to make a website;

After a few years of computer games addiction, playing for many years, has not been deep in technology. After high school, I began to work on three PHP open source programs, Discuz, PHPWind and WordPress. I also ran a PHPWind campus community. However, I don’t know how to develop a Web product through programming, but I only know about how Web products are made.

Therefore, before the formal and systematic self-study of programming in university, Lin Ge had a good foundation of computer application.

However, at that time, Linge did not have a systematic understanding of programming. He only knew that computer software programs were controlled by programming languages. I know that there are many if and for keywords in programming languages, but I don’t know how to use them to make a software program.

3. Small target

To decide to teach yourself programming, first set a small goal.

This is very important!

Many undergraduate computer science graduates, you ask them to do a simple H5 page, they are not able to do it.

Probably a lot of them would say, the teacher didn’t teach.

Yes, the computer courses in domestic universities usually start with C language or Java language foundation, and then start to learn mathematics, data structure, algorithm. It’s true that a lot of people, by the time they graduate, don’t teach them how to make a web page.

So sometimes, programmers are quite a professional career, do back-end do not understand the front end, do front-end do not understand the back end, do Apple do not know Android, do mobile development do not understand computer development. This is normal.

Programming languages, no matter what kind of development you do, play only the most basic role.

How do you understand that? We can think of software development on different platforms as writing in different communicative languages:

Asking you to make an iOS App is like asking you to write an article in English: you not only have to learn English words, but also English grammar, English sentence patterns, idioms;

Asking you to make a web page is like asking you to write an article in Spanish: not only do you learn Spanish words, but you also learn Spanish culture, Spanish grammar, Spanish phonetics……

For example, the Java language, both can develop Android programs, but also can do website background development, so, let a Java programmer do Android development, immediately to do website background development line?

No, there are a lot of development conditions and tool chains that are different.

Therefore, choose a small goal, top-down to think and learn, it is very important…… My small goal at that time was to make web pages — Linge hoped to beautify the interface of his blog website (using a website software called WordPress to build a blog).

That goal is small enough. I just need to learn HTML, CSS and PHP.

This is also the important reason why Lin Ge systematically learned programming — to achieve this small goal.

Data of 4.

What did Lingo learn during those 10 days?

Linge learned HTML, CSS, PHP, MySQL four technologies, generally speaking, these are the basic skills to develop a website.

If you walk into a library’s computer bookshelf, you will find a lot of computer related books, which are frighteningly thick, a considerable amount of space, prefaces, theories and cases, beginners will be confused, do not know what to do.

Above, take a random picture of 3 books beside you, they are 700 pages, 500 pages, 300 pages respectively! It’s too thick! Who has time to read it!

For a beginner who doesn’t know anything, starting with a bunch of theories will only make people confused.

So, for beginners who want to learn programming, the best way to learn is to watch less and do it now.

What study materials did I use? ? It’s time for my teacher — w3schools.com

(Photo: Screenshot from w3schools.com in 2017, tut. Linge remembers when the page was red.)

Unfortunately, this foreign English teaching website is no longer accessible in China. A good learning website, was actually the wall, really a little helpless.

W3Schools, you can use it.

There is no doubt that what Lin Used at the beginning is the foreign version of pure English. (Dictionary software is busy)

W3schools.com is a dedicated Web development learning website featuring:

Less nonsense, all dry goods.

(Figure: W3School HTML)

W3schools.com tutorials are almost devoid of long-winded theory. For example, in the image above, a simple sentence says that HTML is used to make a website, and then click to start the tutorial. You will see the “sample” and “Try it out” buttons.

(Picture: W3 school, try it, live experience code)

Common introductory programming language books usually spend a lot of space at the beginning of how to set up the environment.

Learning C, for example, requires a lot of work just to get a Hello World running, installing various development environments, compilers, and learning to compile…. on the command line

It may have taken several weeks to finally print a Hello World to the screen…..

But learning to code with W3Schools requires nothing to install, just try it out in a Web browser and experience the results immediately.

(Figure: Formal representation theory of lists)

Inside, theories are usually formulated in the form of lists: in as short a sentence as possible, explaining the problem clearly.

5. Time allocation

How did I allocate my time to this skill learning during those 10 days?

  • Day 1: HTML (Web Markup Language);
  • Day 2-3: CSS (Web Style Language);
  • Days 4-7: JavaScript (Web development language);
  • Day 8-10: PHP/MySQL (database);

Because of the previous foundation, except MySQL database part, other parts are relatively smooth through. CSS, looks like very understand, but is extremely need to practice.

In the process of learning, follow three principles:

  • Read basic concepts quickly, don’t waste time, and get into training
  • Use the training code provided to quickly test, do not start from scratch, just a little modification can also work correctly
  • Read through the tutorial quickly and go back to understand it again

Number one: by the time you’ve read the basic concepts, you may be in a state of half-understanding. The second, code training, is to test basic concepts; And number three, when you go through the whole tutorial, and you go back and look at some of the things that you didn’t understand before, maybe you already understand that there’s a connection between the programming stuff.

In fact, in the process of self-learning, I did not carefully read the simple and clear courses like W3Schools, but quickly read them.

When you encounter the part that you can’t understand, do it once. If you still don’t understand, don’t waste your time too much. First of all, use the fastest time to browse the whole thing.

After the macro understanding and practice, I turned back and found, “Ah, so this is how it is.”

There is one thing that must be overcome deliberately ————

English, can not slag! English, can not slag! English, can not slag! Tell me what’s important three times!

Some people say that learning programming, should not be particularly good science, like mathematics has a particularly good, can learn well?

I pooh!!

In practice, most of the time, you will be dealing with English! English! English!

Write more code, you will find that writing code, in fact, just like writing English composition.

The same people who say they faint when they see code tend to faint when they see English. Here to say English, not necessarily to English scores are good, grammar is great, but, can not be disgusted to see English, there is a certain amount of words.

To learn programming, English, not too bad. Otherwise, it is difficult to go far in the world of programming. If you are good at English, you can open the door to programmers from all over the world who are helping you solve problems.

Until today, He can find the answer to almost 90% of the technical problems in his work through Google. For emerging technologies, go to the official English website for tutorials. There is no need to buy a thick book.

Therefore, it is necessary to develop the ability to read technical documents in English.

When learning to program, don’t memorize it. Develop a feel for it.

Because even today, in the process of work, Linge will constantly search baidu and Google search engine “forget” syntax and code. For example, Linge often makes such search keywords:

Search keywords still in use:

“Python for loops”, “Java interfaces”, “JavaScript classes”, some very basic syntax

Linge has worked on projects in 11 different programming languages and never mind forgetting which functions and syntax to write. Maybe the academician sees this, will feel three view completely destroyed, but our life many things, all is like this.

For example, people who work for a few years forget math in elementary school, middle school and even high school. To really want to use, and really can not remember the time, go up the encyclopedia search, soon fill back.

Programming grammar is the same, it is not rote memorization, as long as the thinking developed, need to use when, and then through the search engine to solve the problem. What we get more from education is not knowledge, but cognition.

Therefore, sometimes, I am quite disgusted with some technical interview questions, which are required to write specific code, because the specific code will be completely forgotten after a period of time, while the programming thinking, or the feeling of programming, is permanently imprinted in my mind.

It’s enough that I know where to find her when I need her.

This is just like, when the tap in our home is broken, the first thought is to find a professional master, rather than immediately learn to repair the tap, is the same reason.

Code is a vast world, and there is no point in memorizing. It is more important to understand the thinking of programming than how to write code. The practice of writing code not only improves skill, but also develops an understanding of programming thinking.

6. The actual combat

After 10 days, if you’ve actually gone through the HTML/CSS/JavaScript tutorial, you’re ready to try it out.

That year, Lin Ge did a very 囧 actual combat ————

At that time was the monitor, often take some class work, as a technical combat test field. There was a need to carry out a questionnaire of the whole class, So Lin Ge decided to make a web page by himself. (There was no online survey tool like Questionstar.)

This page can provide several multiple choice questions and then click OK to submit a choice.

This requires HTML and JavaScript. I open up the code editor, put in the HTML, and then I use JavaScript to save each submission into an array.

(Picture: made a very simple multiple-choice page)

Then, hook it up to a stand-alone web server and head to class with a laptop and iPod Touch. I used the iPod Touch to open the HTML multiple-choice web page.

Then, pass the iPod Touch around the class, one by one, make a choice and submit it.

The downside of using the iPod Touch is that if a student presses the home button in the middle multiple times, the multiple-choice page disappears, and they don’t know where to reopen it. How to do?

So I used thick cellophane and stuck the HOME button so it wouldn’t press……

7. One reason leads to another

What’s next?

Take the example of that year, in these 10 days, Lin Ge began to learn PHP and MySQL, and soon after, began to help the school to make a website to earn some money.

At that time, The purpose of Linge was to acquire the ability to do projects as soon as possible through programming and make money after school.

It’s a top-down learning process, faster learning, hands-on, quick introduction to a skill. Countless computer science students enter the workplace with a confused face at the moment of graduation, but The University of Lingo started to develop his own project in his freshman year. (In my senior year, I also helped several computer majors to do their graduation project.)

In these processes, Lin Ge gradually discovered the principle of “one principle is the same as the other”. In the rest of my college life, I learned Java, C#, Python, Ruby and other common programming languages and their frameworks by myself. In fact, their knowledge of different programming languages is largely related to each other.

As you learn more, when you are familiar with two or three programming languages and can develop various kinds of software, you need to learn a new language. You need to learn more about ideas. After you understand the ideas and the tool chain of learning a new language, you can start work.

Because the basic syntax of any programming language is made up of conditions, functions, loops and data structures.

Compared with the bottom-up process of the academic style, this top-down learning process can improve small goals, stimulate interest and sense of achievement more quickly.

As for some basic knowledge, Lin Ge was not reliable in data structure, algorithm and basic knowledge of computer in orthodox computer courses, but with enough curiosity, he gradually learned it by himself in the following working hours.

(Photo: Steve Jobs interview)

Jobs once said:

I think everyone should learn a programming language. Learning programming teaches you how to think.

No matter you come out to work, whether it is a career, have certain programming skills, will use programming thinking to think about problems, will be useful for life.

8. A mentor

To summarize The above self-taught programming mind of Lin Ge:

  • Set it a small goal first!
  • Go through the tutorial quickly!
  • Try a little practice!

In fact, bearing in mind Linge’s mind, I don’t think it needs 10 days at all.

Until 2016, Mr Lingo prided himself on one of his life’s mottos:

“I have two teachers, one is Google, the other is Baidu.”

However, now I don’t think so!!

At that time, Linge had no one to coach him. In his spare time in college, he learned by himself and spent 10 days systematically learning about “web programming”. Later, he began to spend a lot of time to get familiar with various development frameworks one by one.

Now, Mr Lingo suggests, the process of “going through the tutorial quickly” could be shortened. If have certain computer foundation, allocate more time in a day, 5 days, had passed basic theory and experiment is no problem.

In his opinion, due to the lack of mentors, Lin Ge also took many detours and wasted a lot of time in his personal technical cognitive growth.

The development of the Internet has brought about an explosion of information. A large amount of information has flattened our world, and the asymmetry of information is gradually being reduced.

For example, when we buy a product, we will first search online and compare prices to prevent ourselves from being cheated.

However, different people will have different results in their thinking and processing of information, which leads to different cognition of the same information, namely cognitive gap. This kind of cognition needs a mentor to guide.

For example, today’s people, watching a movie, will first run on Douban to see the score. How can a movie score high when it doesn’t make sense and makes you sleep? Although do not understand, but because it is very high score, so still follow, give it a high score.

The way to address this cognitive gap is to find a cognitive mentor, rather than reading a zillion pieces of information in an information jungle.

You should know that In his whole programming career, Linge never met even a tutor. All the knowledge was dug up from the information on the Internet, and he generated his own cognition of them.

Of course, this also has one advantage. For many things, Linge has a different perspective to think about technical issues. Although I do not know whether this is good or not, at least in retrospect, some of Linge’s opinions are original and useful.

9. Learning

Practice early

When it comes to starting a business, we see stories like:

I have an idea worth one billion yuan. As long as I develop such an APP, it will be used by 10 million people in half a year and listed on NASDAQ in one year. I had planned the project very clearly and had sufficient start-up capital. “All we need is one programmer!”

You don’t want to spend 10 days studying on your own.

Don’t forget, countless successful entrepreneurs, they are programmers, like Bill Gates, Ma Huateng, Li Yanhong.

If not code, then at least technical thinking. Jobs’ deep understanding of “object orientation” (which Mr Linker reckons exceeds 80% of professional programmers) and Jack Ma’s China Pages in 1996 (which saw the commercial value of an emerging technology invisible to others) are examples of these business giants’ deep understanding of technology.

Programming is an art, not a technology.

What you learn in school is only technology. To turn it into art, you need rich experience, strong curiosity and a different vision. All of these are hard to learn by relying on online materials.

This is also the reason why Lin Ge wrote this article. By conveying His self-learning experience and thinking dimension, more people can improve their cognitive and technical thinking in the era of big bang of science and technology.

Lin Ge is not smarter than others, but Lin Ge also learned that everyone can believe.

It’s no exaggeration to say that those 10 short days changed my life and put me on the road to technology.

If you find it helpful and you want to learn to code or get involved in the tech industry, but you don’t know where to start, feel free to leave a comment and share your small goals and stories.

Get more learning materials, find your life coach, and answer your programming questions for free!