As I mentioned in my previous diary, Eva and Fang come to San Francisco to learn programming with me. In this blog, I'll show you how I teach them, the reasons I build the way I teach them, and how this approach works. It's easy to list the things they learn and do in chronological order, but it doesn't help, and you can easily miss the point. It's important to know the details and why it works, so I'll start with the basics. Be prepared, the article is relatively long.
In your entire programming process, the following principles should be firmly in mind:
1) Spreading:
Before Eva and Fang started, I created a blog for them. I told them to write down their programming journey and what they learned. It's hard at first, you can ask them. It took me one weeks to nag them to write a blog. But now, if you don't write about the projects they spend a lot of time doing, it seems wrong.
If you are using APIs (application programming interfaces) in your project, tweet or email the company and tell them what you think of their APIs. When you get a reward in your programming marathon, write a good tweet @ they show thanks, or send a journal. Make this log an all-time good, and then recommend it to the Hacker News section, just as it will be on the home page (though most will not).
The great benefit of giving your programming trip a healthy spread process is that it allows you to be responsible for your project, which introduces me to the next rule.
2) Complete:
Both Fang and Eva know that it is difficult to complete a project, but it is also important. I made it clear that we would not start a new project unless they wrote a journal, on Twitter, at the API company, or when the project was completed on the hacker News page. Although the first project is only a well word chess game, but this is the best they have done the well word chess game. You never want to write a crappy program, so it doesn't matter how simple or irrelevant it is. If you are writing a project, it must be the best program you can write. I've seen too many programmers wasting time on informal projects that don't see Dawn. If you are learning to program, you must learn from the beginning, cherish your time and energy, and complete your project to prove it.
The last 20% takes 80% of the effort. Developers can turn "ideas" into concrete executables in a day or two. And to release a "perfect" product, it takes twice times to complete each test in each case and solve each critical problem. Devote 80% of your energy to the final 20% of your project, which will be legendary in many many interviews. The last 20% takes 80% of the effort. Developers can turn "ideas" into concrete executables in a day or two. And to release a "perfect" product, it takes twice times to complete each test in each case and solve each critical problem. Devote 80% of your energy to the final 20% of your project, which will be legendary in many many interviews.
3) Thinking:
If you are stuck, please do not look directly into your code. Go out for a walk, take a breath of fresh air, and think about it. You are stuck because your logic is in addition to being wrong, and the best way to solve it is to be geographically clear in your mind or on paper. Programmers get high rewards because they are thinking. Problem solving is relying on your thinking, writing code is such a hateful job. A good project manager usually has a rich program background and is well trained in thinking and problem solving.
According to this statement, if you are stuck for more than 20 minutes and you can't break through, ask someone else. If you don't get any clues for 20 minutes, you won't have any more progress for the next one hours. Trust Eva. She wasted 5 hours one day, for a stupid mistake, a lesson. Take a walk and do something else. And then come back and get it. It's a skill to be able to get out of your problems and distract yourself.
4) Think again:
Now you may have figured out that thinking plays a role in the life of a programmer. Make sure you don't-especially if you're learning how to write code-copy and paste the code. If you want to learn how to write code, copy and paste--"You see, it's done!" --it's not going to make you any breakthrough. Instead, when you see the code, you have to understand what it is doing, and then try to debug it. As you become more adept at understanding other people's code, simplify it to fit your needs and write it. If you get used to it from the beginner stage, you can become an extraordinary developer in a few months.
5) Google:
Learn how to solve problems by yourself. Unless you are stuck for at least 20 minutes, don't ask questions about coding. Programmers must be independent. They are great thinkers and great communicators. To become one, you have to think logically and find out why the problem happened. One problem many young developers face is the difficulty of writing what they really need. Many of us have been through this process and you know what the problem is, but you don't know how to find it. You have to learn to develop the program correctly from the beginner stage, which is a skill, and it is a good rebate of the spread of the 1th.
Now, remember these 5 points, to see the timetable of Eva and Fang learning:
第1-3 Day: Learn the basics of programming through Ruby.
I chose Ruby because it was the easiest way to use it to become a hands-on. Ruby has few grammatical restrictions (spaces and tabs, type declarations, etc.), so Eva and Fang can focus on the process of programming, rather than conquer grammatical rules. They learn if statements, loops, data structures, and solve some programming problems, such as Fizzbuzz (Translator Note: Print fizz or buzz or fizzbuzz when certain conditions are met), replace the characters in the string, convert an array, and find the maximum value. It is important to understand the classes and objects.
* Note * I don't teach them the specific syntax of Ruby. I told them to always use parentheses for parameters, and you must remember to return each function at the end. That way, when they learn other languages, they start faster.
Day 4th: HTML
HTML and CSS are not strictly a language, so there's no need to spend too much time on it. Eva and Fang spent a day in the HTML, and played some tags, also studied forms, information pages, and so on. I'm sure they only use HTML tags. This will create the excitement of CSS. The key to learning here is to differentiate between block HTML and inline HTML, distinguishing between identification and categorization.
Day 5th: CSS
After playing HTML, "How do you put this in there, how do you make this ugly HTML page more beautiful?" The problem comes. CSS is a perfect answer. Be happy today to make your page more style (all HTML pages are done the day before). The focus here is on relative/absolute/fixed positioning, HTML floating elements, and how to control normal floats with absolute, fixed positioning.
第6-7 days: Using jquery to do JavaScript
jquery needs a little effort to get used to it, because some programs involve the jquery framework, which takes a bit of time. It took a couple of days to make their HTML pages interactive.
第8-15 Day: The first project--The Well word chess game
At this point, Fang and Eva understand the Html/css/javascript, but have not been well adapted to it. This is the best time to start their first project (The Well Word chess game). Although they completed the project within 2 days, it took several days to optimize it. The last 20% takes 80% of the effort, which is true. As a beginner, it's important to learn to complete your project.
第16-20 Days: Sinatra
After the chess game, which is like never ending, learning something new is not more exciting for Fang and Eva. Learning Service Terminal code is a new experience for what they have been doing. I chose Sinatra because it is the cleanest, simpler web framework language I've ever used, and this simplicity makes it easy to explain the workings of the web.
Paragraphs 20–22 days: PhotoShop
Photoshop is important for a wonderful design. For those who have never used it, it is enough to bluff (at least for a while), but using Photoshop to create a Web site is a notch above the traditional front-end framework. And the fact that you only know the blending option is enough. Any successful developer will need Photoshop, so it's important to learn to use it and use it to serve all your projects.
第20-27 Day: Second Item--"Drag picture"
The project is heavily involved in the use of JavaScript. The project involves using AJAX requests, Facebook's APIs, and cookies. This is a big project that connects all of its web programming basics. The scope of this project is greater than the first project, which I think is a big step towards a more complex project. During this time, they worked through Git (translator Note: An Open-source version control software). This is an open source project!
第28-30 Days: RSpec
At this point, Fang and Eva have adapted to building Web applications. It was also at this juncture that they realized how easily the code was broken and how a change destroyed everything. Now, test-driven development is introduced in due course. We spent several days on RSpec, Eva and Fang used to write test cases as each morning's programming practice. Did I mention that they had to solve a technical problem every morning? From day 28th, they had to write some rspec before they started writing code.
第30-35 Days: Backbonejs
Start with a broader project (such as "drag Pictures"), you can learn a lot and meet some problems that you want to have a better solution. Only in this way can you really appreciate the meaning of the framework that has helped you. I haven't found a good Backbonejs tutorial, and all of the tutorials have provided too much information at once. That's what I teach:
First, understand the model. Create a model and use it for only one database entry. Learn how to modify it and save it.
Second, learn the view. Create a view for the model you've been working on. Add event listeners to understand how the view binds the model so well, and how it fits into each other.
Third, the meaning of the collection can be clearly explained now. You can't manually type each model, especially if you don't know how many models there are.
We have never learned to route courses. I don't think routing is important yet.
第35-40 Day: Android
If you haven't fully noticed, we've covered a lot of things in a very short time. Good programmers need to adapt to change all the time, so our last project is to learn about Android. In programming, you can't ignore mobile terminals, it's too important. I taught them about Android programming. It's not very hard, Android programming and web programming are very similar. You have the XML for the view (Extensible Markup Language), and you have the Java code that can match the network controller. Model-View-control! By using Ruby and JavaScript, Fang and Eva began to look for similarities in programming languages, leaving them disconnected from specific languages. For them, the programming language has different syntax and the same way of working (not true, but we'll make a little bit of difference later to avoid confusion).
Conclusion:
1 girls are incredibly gifted at programming
2 without a degree in computer science is no excuse.
3 Write code is very interesting, everyone can learn. Go ahead!
If you want to know more about their programming mentality, ask them! @eeevahhh, @fongchinxx
Article Source: Translation words
Source of English: http://blog.songz.me