English link : What is the best ways-a complete beginner to learn programming
Answering this question is my only concern in the last two years. I think many of the resources mentioned here are good, but I have noticed that successful students, regardless of the resources they use, tend to perform better in the following three ways than others.
- Focus on habits rather than goals
- It's very painful to study alone
- Project Practice
Focus on habits rather than goals
Focusing on habits rather than goals sounds counterintuitive, but listen to me-it's a matter of balance. Everyone who has worked with me knows that I am sometimes like a fool, and within a day, quote "Batman: The Enigma of the Blur" in the words of Ra's Al Ghul as many as 3-4 times.
Bloc's investors have been fed up with my frequent use of fragments from Batman: The Mystery of the blur on the board.
R ' as tells Bruce:
"(When your arms are freezing,) massage your chest, your arms will naturally warm up." ”
If you focus on the habit of programming more than 20-30 hours a week, the goal of becoming a WEB developer will soon be achieved. If you set your goal to be a WEB developer in a few months, when you can achieve your goals and the uncertainty of how far away your goals are, you may get nothing. Focus on habits rather than goals. Massage your chest, your arms will naturally warm up.
So what you should do now is: spend 15 minutes a day programming on your schedule. Not more than 15 minutes, just 15 minutes a day is enough. If you can keep doing it for a week without any excuses, try extending the time to 20 minutes a day. Instead of trying to over-scale your abilities by programming one hour a day, programming is a 10,000-hour marathon, so we should focus on nurturing habits. Instead of spending a lot of time in the day learning to program, spend a small amount of time every day, but be able to adhere to it every day, because it is more effective.
It's very painful to study alone
When I was learning Web development, in my learning process, having a mentor and joining a community was the top two components.
During my college years, I worked in a small start-up company called Merge.fm. During the summer vacation, I worked with a co-founder of the company, and I learned more during this period than I did in college a year ago. Working with an experienced professional can really speed up the pace of your studies, and you'll learn how they think about problems and find their weaknesses. That's why mentoring is often a reason to learn the default standard for a new skill, because it works very well.
I joined two communities, one is Illini entrepreneurship Network (one student organization in our school) and the other is Hacker News, a large online community for hackers and entrepreneurs.
I didn't learn anything about objects and classes from Hacker News, but I learned something else. I know, no one likes JavaScript. I know Ruby programmers are the people of the field of programming. I also know that Bret Taylor, Rich Hickey and John Carmack are both leaders in the world of programming, and there are software companies that really care about employees, whose kitchens look like doping labs.
In a word, I learned how to speak jargon. This is important when you work with other programmers, and that's why you feel like a programmer.
Project Practice
In my first year of learning Web development, I implemented the following projects:
- A Digg clone (from the Rails example from the SitePoint book, I think it's out of date now)
- An online shopping app (from Agile Web development with Rails 4)
- One Geeksquad-esque application (personal project)
- A real-time online classroom application (personal project)
- A Foreign language Learning application (course program)
I think there are many reasons why building a real project is very important, and the most important reason for me is that it is full of fun. This is precisely in the traditional education seriously missing, and because of this, it has become the most important of many reasons. http://ruby.railstutorial.org/is a good choice to look for reference resources for how to develop project practices.
To have the spirit of "Xiao Qiang"
For those readers who can keep reading this, I secretly added the fourth item. Paul Graham once said to Airbnb's founders:
"You guys are not going to fail, because you're like the undead ' cockroach."
For a period of time, you may have the idea of abandoning learning programming. Just like anything with the same value, learning to program is really hard, and sometimes you feel really stupid. That's why the first strategy is so important-don't worry too much about whether you've made progress, or how long it will take to reach your goals. All you have to do is stick to 10-30 hours of programming a week. Just like a persistent ' cockroach ', you won't fail.
Many years ago I said a word-"success in your insistence (note: also translated as ' 80% of the success of life stems from the insistence ')", this sentence is often cited by other people. People often mention to me that they want to write a script, they want to make a movie, they want to write a novel. 80% of those who are ultimately successful in achieving their goals are to act first. Those who fail at the end, they can't even do that. That's why they can't do one thing, they don't do it. Once you have done it, if you really write a screenplay, or write a novel, in fact, your path to success has gone through half. This is the biggest successful experience I can tell you about my life. The others are the lessons of failure.
--Woody Allen (famous film director in Hollywood, USA)
Roshan Choxi, Bloc co-founder, American online programming Learning company/ceo
What is the best way for beginners to learn to program?