How to Learn a programming language

Source: Internet
Author: User

With regard to the topic of learning programming, there are various readers who have repeatedly asked to write and write literature, lyrical writing, and writing with socialist characteristics. To do this, the problem looks very complicated, easy to read, easy to learn! Let's see what you get used to. You can continue with Mac.

Let's talk about it.

If you are going to join the IT arena in the future to engage in coding this promising career, it is obviously far from enough to learn a language, just as if you first entered the arena and told others,

「 Bro, I only want to win too much !」
Q: "level and Qiao Feng ?」
Answer the question, just in case 」

It seems that you are the fate of P2, and you will lose it in seconds. Writing this reminds me of a brother called the glacier, which is also a wonderful one. In terms of programming language, I only love lisp (the ancestor of Lisp called programming language). In terms of human language, apart from Chinese and English, I am still studying Italian, French, Spanish, and German languages at the same time, and I am not just learning what I want, and my mind is not confused. This makes me admire the opposite of heaven, I have been suffering from an English language from junior high school to the present. At the human language level, I am often killed in seconds.

Therefore, if programming may become your profession, it is necessary to study and practice for 5-10 years, because you may want to learn programming languages, operating systems, algorithms, databases (SQL nosql), web development, and so on, there are countless engines and architectures, what's really terrible is that after you master a technology, a barefoot fairy will come over to tell you that the technology you have learned is no longer a direction, and then let go in your desperate eyes ...... Feel it when writing Java ......

If your career development has nothing to do with programming and you just want to learn a language to hone your will in your life, it will be easier, such as Python, Shell, applescript, Ruby, etc, you can select one of your preferred operating systems. If you use Mac, you can choose either of these languages, and the Environment is ready-made. If you use another operating system ......, Sorry, mactalk only applies to Mac. These languages not only help you exercise your will and improve your logical thinking ability, but also help you deal with complicated and complex tasks at critical moments, for example, a large number of text, scheduled tasks, automated tasks, and frequently used gadgets can also cause a sensation in cross-border programming. If you do not believe it, search for "Python" on Baidu.
Goddess.

Okay. If you haven't dispelled your enthusiasm for programming, you can continue to read it. The following is the text:

To have light

No matter what you learn, you must have a clear purpose and goal. If you are playing with a ticket, you can "know" rather than "apply what you have learned" at most, which language are you going to learn, how much you want to learn, how long you want to use, etc. These questions have a rough idea and plan in your mind, basically solved the why and what problems. Let's look at how.

In fact, everything you learn is useful. Most of the time, you just don't know when or where to use it.

Classic tutorial

If you select a language, do not worry about searching for various cheats, comments, and downloads of pirated e-books on the Internet. There will be some classical Bible-level books in each technology field. Find them, buy a paper book or e-book, preferably with exercise questions. You can learn and do it.

Douban reader network should be a good choice for finding these books. Although Douban's movie reviews are too small and fresh, its reviews are trustworthy, in addition, it is also a good choice to recommend the old bird that enjoys sharing.

Master the basics and continue to practice

The learning content of each programming language involves: Basic runtime environment, data type (numbers, strings, arrays, sets, dictionaries, etc) expressions, functions, process control, classes, methods, and so on. Different Languages have different features. These features are not complex and can be knocked down through a large number of exercises as soon as possible, then, you can gain an in-depth understanding of object-oriented, concurrency, exceptions, files and directories, networks, standard libraries, and other content, supplemented by continuous exercises, this content allows you to truly enter the programming field and make practical software.

It is required for beginners to spend 1-2 hours a day. They should try to ensure the continuity and duration of reading and exercises. In fact, one to two hours is nothing at all. Think about the time you spent watching TV and refreshing Weibo. If you still don't have time, it will be uncomfortable.

Remember this sentence: I hate vanity while looking for opportunities and vanity. When I should work hard for vanity, I am suffering from procrastination.

Foreign Affairs: Google

Modern people's life and learning are so convenient, because we have Google! As the saying goes, Baidu is not always asked about Internal Affairs, and Google is never asked about foreign affairs. If you want to ask du Niang technical questions, don't blame me for being kicked or kicked by other people. I didn't tell you.

In the past, you learned technology only through technical books and word of mouth. Now you can find the answer to your questions from Google, so you can fly around the world with good Google. If you still think that Google is a search box, the figure is broken. Mac recommends the two articles for you today:

「 Google, Google, Google 」 http://wordpress.lixiaolai.com/archives/7572.html
「 How to use Google search engine 」 http://www.zhihu.com/question/20161362

Make your search different.

Good tools

As the saying goes, sorry is not the one who wants to practice and learn how to do things. To learn programming, you must write code first. We do not advocate biting your fingers to write bloody code, therefore, you must find a weapon that can be used. I personally divided the tools into three types. The first is the shell that comes with some programming languages, the second is the text editor, and the third is the integrated development environment (IDE ).

1. Shell. If you are learning python, then Python shell, bpython and ipython are both good choices. If you are learning Ruby, IRB is Ruby's shell; if you are learning shell, terminal is shell. If you are learning Java or objective-C, sorry, these languages do not have shell.

Shell can execute your programming statements in one step and provide real-time feedback. This interactive programming method is very suitable for beginners. What you see is what you get. Therefore, any language that provides the shell tool, we recommend that you use shell for learning.

2. Text Editor: this field has always been "a place for the great family". The word and the voice of sputation have been shining, and it has been a constant of tears since ancient times, such as Emacs and VIM programmers, everyone walks along different roads and goals, but they will always encounter each other at a certain point. When they meet each other, they will throw stones and smelly eggs, blow the other party's nose face, and then wipe the tears and saliva to continue moving forward. Also, ideer says vimer is forced, and emacser says ideer is spam balabala ...... The bloody fact is enough to make a thrilling sci-fi action.

I like text editors myself, but I do not reject ide. This kind of person is commonly known as not to be seen on both sides. But I still say that, instead of setting limits for myself, I should choose the best tool for different environments. We recommend several text editors as follows:

(1) VIM: it is known as the god of editors, full-keyboard operation, full of speed, good plug-in system, and almost meets the writing needs of all programming languages.
(2) Emacs: The God Editor, Which is bundled with the operating system of the text editor. No, let's take a look ......
(3) textmate: The Mac exclusive Editor, known as the ruby programmer's favorite. Version 1.0 sold a copy of 39 euros and sold tens of thousands of copies in total. Now it is 2.0 free open-source, the original developers have disappeared, and it is said that earning enough money to go to the Island of the Pacific Ocean to bask in the sun.
(4) sublime text: the text editor is a rising star, with rapid development. It is comparable to textmate, cross-platform, and easier to use than vim and Emacs. It is called a sexy editor.

The above four self-contained systems have a complete plug-in ecosystem environment, and zuser can choose any one.

We can criticize the bad behavior of textmate developers when they make money. Sometimes we have to admit it with pain, the foreign programmer's chicken thieves are the IT migrant workers in my country's largest country and will never be able to understand the tears 」.

3. integrated development environment (IDE)

IDE is a graphical integrated development tool that provides precise lexical analysis, programming prompts, debugging, and other functions. features are complicated for users to know. If you do industrial-level programming and team collaboration, IDE is recommended.

Several series are recommended here:
(1) eclipse series support almost all common programming languages through plug-ins, free of charge.
(2) jetbrains series, rich product lines, almost all of which are excellent products, Java, Python, Ruby, PHP, objective-C, and Web.
(3) xcode is an excellent integrated development tool on Mac. All Mac apps and iOS apps come from this product and are free of charge.

If Microsoft doesn't understand the technology, it won't be recommended ......

In addition to the code writing tool, you also need to record, read, and query, so we recommend three applications for you: Evernote (Note), pocket (read later), and dash (Code retrieval ). Don't forget the Google King mentioned in the previous article.

Find your master

When I was a child, I saw my Journey to the West and found that the master was originally used for human flesh. Later I saw that the master did not need to be a master, and even some were to be captured by others. Later I came to see the legend of the hero, A dull person must first have a master, followed by many masters. Once again, the skill of every new master increases exponentially, with 2, 4, 8, 16 ......

Therefore, if someone tells you that none of the three students has a teacher, you should at least question this point of view, and consider whether you will be able to beat the cloud, whether your talent is one hundred yuan, and so on. If not, go to the master.

There are several advantages for Teachers:
(1) The teacher can see what you cannot see. In this life, few people can give themselves a clear comments and cognition, either overestimating themselves or underestimating themselves, while the onlookers, especially teachers can often see your weaknesses, strengths, threats, and changes, and give you timely reminders and instructions to avoid detours.
(2) The knowledge in all fields is systematic. If you have experts in this field to guide or even design practice skills in your early learning stages, the effect is not the same as that of your own. It is estimated that everyone will have such an experience. If you think of your heart and wake up, there is no result. If someone else comes here to explain it clearly, not only do you understand it, even your friends can understand it. This is why I have heard your speech better than reading ten years of books.
(3) There are many benefits, but there are no more than one.

However, it is very difficult to find a traditional master after going out of school. It is even more impossible to live and die together with the master as a Jedi Warrior, in this case, you need to treat your friends and colleagues as teachers and resources. You are not ashamed to ask questions. You have the wisdom and desire to answer questions. How can you ask questions, please refer to my previous article "how to ask questions 」.

Participate in community and technical meetings

After learning and communicating with colleagues, you can participate in communication in some online communities. recommended:

Technical Q & A community: http://stackoverflow.com, almost included in the technical field Vientiane, all-Unknown. GitHub: https://github.com, almost all the excellent open source software works in the world.

In addition, you can also participate in some groups and subscribe to some excellent personal blogs. In this era, some people are still willing to contribute high-quality content.

Participate in technical meetings, such as qcon. You don't expect to learn anything at the venue, but you can understand the technology trends and see what others are doing.

Deliberate exercise

I have written two articles "deliberate exercises" before. Self-awareness is helpful for learning programming. You can read this article.

Escape from comfort zone

This part is suitable for children who already have a certain programming Foundation

What is a comfort zone? If you are a newbie, you will have no comfort zone. If you don't know anything about comfort, you will be confused when you are learning, during this period, it may be accompanied by the ridicule of the old birds and the pressure on the progress. One day, you finally learned how to make the best effort, there are new people or old people who come to you to solve the problem. You smile to meet the challenge and send away the problem with a faint degree. What is the realm of this? This is your comfort zone. It is not the same as watching TV on the sofa. It usually takes a lot of time and effort to enter the comfort zone and you need to continue to practice, once you enter, you will enjoy it!

At this time, if someone dares to let you out of the comfort zone, you may be angry, quarrel, and resign again. There are too many such things. If you write a front-end, you will let him learn some back-end technologies. If you write Java, you will let him learn C. The answer may be, Sorry, I feel very uncomfortable!

It is very comfortable when you don't learn new things. Once you experience the process from new people to old birds, and then let you enter a new field, the pain will make you resist. However, it is impossible for a person to hide in a comfort zone forever. escaping from a comfort zone will help you to look at problems from different perspectives and broaden your horizons. People always go forward.

A lot of people will be very slack when they stay in a certain place for a long time. If they don't retire, they will be like waiting for the elderly. At this time, you will know that they have been in the comfort zone for a long time and have nothing to do with where they are.

The last trick is "jian long zaitian 」

Practice is always important. We recommend an online learning programming Website:

Http://www.codecademy.com

In time, you will surely make great contributions. At that time, you will immediately jump to the sword and say, "Who is the hero!

----------------------------------------------

Original address: mactalk-pool build strong want to record http://macshuo.com /? P = 703

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.