Let's talk about how programmers learn English words: a small program for memorizing words, a small program for programmers
Background:
I will not talk much about the importance of English to programmers!
There are many ways to learn English. Today, we don't talk much about English words!
Many methods have been found for word memory and many software have been downloaded.
(All other undesirable operations are uninstalled ):
I have used software before. Note that it was before ~~~
This means you have not persisted ~~~~
Over time, they were forgotten by me ~~~
Why ??? No: stick to it! Stick to it! Stick to it!
Learning and thinking:
You have been searching for methods:
1: I have downloaded Lenovo memory, memorized words, word roots, and various videos ~~~
2: I downloaded a copy of the word database online. I hope that words can be directly remembered from the database ~~~
It takes only one day to sort similarity records through various query statements ~~~
Time used every day:
It is possible to write a framework, maybe a blog post, maybe other things, and soon after a day ~~~
So, it's in the reverse repeat process ~~~ Forgot to back up and forgot ~~~~~
After thinking again, I felt wrong!
I should find a way to stick to it, instead of continuing to find a way to learn more quickly.Think like a product manager (make a small program (Web Version ))
I think about how to use the downloaded Word Database to do something to better stick to it.
At the beginning, I captured one English article on CodeProject every day;
Then, analyze the word frequency and take the top 10 words with the highest frequency as the learning direction.
Later I was rejected by myself:
1: the channels that appear must be those that this is a apple, which is meaningless. If you want to filter the channels, the workload is heavy.
2: reading an article, learning a few words, it is difficult to stick to it (after all, it is a learning mode from small to large, and it has been verified for countless times ).
3: Short-term Memory Learning with pure memory is no different from a waste of time. It is not a short-term test.
Therefore, the word display is not good. You must have thoughts and interactions!
The current temporary effect is as follows:
Final idea:
1: One Day Two Words, Two Words a Day (10 at the beginning, later I felt more, after all, there was interaction, I had to type, I was afraid that 10 Words would easily survive)
2: Word impressions: Everyone will comment on words (when there are too many people, there will be a lot of interesting comments, provided that they will not play)
3: When I was a child, when I was a student, all the teachers asked us to make sentences. Why didn't I force this requirement to learn English when I grew up?
4: My records: You can query the learned words ~~~~
5: there are more than 30 thousand word libraries. I have selected a total of 4034 IELTS words!
Overall, it is mainly to reduce the learning difficulty, so it is easy to stick ~~~
After the whole process is completed, I feel that it is not enough, and I feel that there is nothing left to hide in my heart. In the future, I will look at some suggestions from my friends ~~~
Technical Thinking (time, give yourself half a day to complete the task): 1: Support for mobile browsing:
At the beginning, I still want to get a front-end framework, or get a JQ Mobile and other requests for html + api requests.
Later, it took a lot of time to look for the framework and view the Demo. I felt that it was so time-consuming to make a simple thing and then I completed it directly.
Therefore, Table is the best compatible and easy to layout!
The most time-saving processing method is to use ASPX of WebForm.
2: Performance and concurrency considerations:
The website should be deployed on the original VPS, with 1 GB of memory in total, and six or seven websites have been run.
Therefore, fewer resources are used for the website, and the performance is good. Therefore, the website must be able to withstand the tests of the people.
Database:
Text Databases are planned to be used at the beginning;
However, the original word data has already been stored in sql2005, and sql2000 can be used easily.
Performance and concurrency:
The page needs to be simple and can save as much as possible, so a JS is available;
The words are cached and the comments are submitted in a queue;
Considering that the traffic is not large, the database is directly read and has automatic cache.
Security:
Considering that not everyone is friendly, will someone intentionally submit a large volume of junk data?
Therefore, simple security verification is performed on the backend.
The front-end verification also easily verifies the length.
3: phonetic alphabet collection:
The built-in dictionary may lack the phonetic symbols of some words, so a collection process is required.
So I want to find a collection point and locate it in Baidu at the beginning:
After writing the code, I found that all words are mixed in js and output.
I want to use Baidu API and find that I Need Money ~~~~
Time is very short, because only one afternoon time is provided to you ~~~~
Later I found a few more, and finally found that they were still friendly to Microsoft:
Images are framed, but they cannot be captured, because they are also obfuscated in JS. However:
The title description contains the phonetic alphabet ~~~ I have discovered this, and you can write a code like this:
private string GetWordPronunciation(string word)
{
string pronunciation = string.Empty;
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
string result = wc.DownloadString("http://cn.bing.com/dict/search?q=" + word);
string key = "英[";
int index = result.IndexOf(key, StringComparison.Ordinal);
if (index == -1)
{
key = "美[";
index = result.IndexOf(key, StringComparison.Ordinal);
}
if (index > -1)
{
int end = result.IndexOf(']', index);
pronunciation = result.Substring(index + key.Length, end - index - 2);
}
return pronunciation;
}
Extended knowledge point IndexOf:
When I use the DownString of WebClient to get the result variable in html (UTF8 encoding ).
Result = [......";
I used: result. IndexOf ("English [") to return-1. I wondered.
Use SubString to cut the front and convert it to: result = "English [...";
So: result. StartWith ("English [") returns false. I am entangled in one.
However, result [0] = 'ying' & result [1] = '[' is true.
Then I searched for it to find out:
html.IndexOf(key, StringComparison.Ordinal)
This is normal. The solution is the StringComparison parameter.
Although you understand the meaning of parameters, what you cannot understand is:
Is there any special third-party character here?
There are more than 1000 words that have been collected. There is no solution at present. You can only pay attention to it !!!
Final Result: Learning word address:
Http://word.cyqdata.com/
Word Database:
If you need a word database, click here:
Http://download.csdn.net/detail/cyq1162/9445894
Summary:
In this way, it took me one afternoon, half a night, and half an afternoon to complete the small program.
Hope to stick to it ~~~ A group of people stick to it, which is easier to stick to than a person!