聊聊程式員如何學習英語單詞:寫了一個記單詞的小程式

来源:http://www.cnblogs.com/cyq1162/archive/2016/12/06/6138429.html
-Advertisement-
Play Games

關於英文對程式員的重要性,就不多說了!英語的學習,有很多,今天也不聊多,只聊英語單詞!關於單詞的記憶,找過很多方法,下載過很多軟體,後來...... ...


背景:

關於英文對程式員的重要性,就不多說了!

英語的學習,有很多,今天也不聊多,只聊英語單詞!

關於單詞的記憶,找過很多方法,下載過很多軟體。

如圖(其它不好用的都卸載了):

上圖算是我以前用過軟體,註意,是以前哦~~~

意思就是沒有堅持下來~~~~

隨時間的推移,最後它們還是被我遺忘了~~~

為什麼???不能:堅持!堅持!堅持!

學習思考:

一直在找方法:

1:下載過聯想記憶法、背文章記單詞,詞根,各種視頻~~~

2:連單詞的資料庫都網上下載了一份了,期望從資料庫的直接記憶單詞快些~~~

通過各種查詢語句,整理相似度的來記,才1天,就沒後文了~~~

每天都在占用時間的事情:

可能寫框架,可能寫博文,可能其它事,一天一天過的很快~~~

於是,就在反反覆復中~~~忘了背背了忘~~~~~

經過重新的思考之後,我覺方向錯了!

我應該找一個如何堅持的方法,而不是繼續找一個如何更快速學習的方法。

像產品經理一樣思考(做個小程式(網頁版))

我思考著,怎麼利用下載的單詞資料庫來做點什麼讓自己能更好的堅持。

一開始思考,每天抓取CodeProject上的英文文章1篇;

然後分析單詞頻率,把頻率最高的10個單詞做為學習的方向。

後來又被自己否了:

1:出現的頻道高的一定是那些the that this is a apple之類的,沒有意義,要做過濾的話,工作量又大。

2:讀一篇文章,學幾個單詞,估計很難堅持(畢竟從小到大都是這種學習模式,已經無數次驗證了沒用)。

3:純記憶的短期記憶學習,和浪費時間沒差別,又不是應付短期的考試。

於是,光單詞的展示不行,必須要有思考和交互在裡面!

目前的暫時效果是這樣的:

最終思路:

1:One Day Two Words,一天2個單詞(一開始是10個,後來覺的多了,畢竟有互動,要打字,怕10個容易堅持不來)

2:單詞印象:每個人都會對單詞進行評論(人玩多了,就會產生很多有意思有評論,前提是看大伙會不會玩)

3:造句:小時候學中文字的時候,老師都叫我們造句的,為什麼長大後學英文就沒強制這個要求了?

4:我的記錄:可以查學過的詞~~~~

5:單詞庫有3萬多個,我挑了雅思共4034個詞,隨機出!

總體而已,主要是降低學習難度,這樣容易堅持~~~

整體完成後,感覺還不夠,內心隱隱都覺的還缺少什麼,後續看看網友有什麼建議~~~

技術思路(時間,給自己半天時間完成任務):

 1:要支持手機瀏覽:

一開始還想著弄個前端的框架,或者弄個JQ Mobile之類的,搞個html+api請求。

後來光找框架和看Demo就花了不少時間,感覺做個簡單的東西這麼費時間,然後直接給我畢了。

於是,用Table,最好的相容,最容易的佈局!

用WebForm的ASPX,最省時的處理手段。

2:性能與併發的考慮:

網站要部署在原有的VPS上,1共就1G記憶體,已經跑了六七個網站了。

因此站用資源要少,性能要好,要經得起人民的考驗。

資料庫:

一開始是計劃用文本資料庫的;

但原有的單詞數據已經在sql2005上了,順手用sql2000了。

性能和併發:

頁面要簡單,能省多少是多少,於是一個JS都木有了;

對單詞做了緩存,對單詞的評論提交做了隊列寫;

考慮到訪問量並不大,展示是直接讀的資料庫,有自動緩存。

安全:

考慮到並不是人人都很友善,會不會有人故意提交大量的一堆垃圾數據過來呢?

於是在後端做了簡單的安全的驗證。

前端的驗證也很簡單驗證了一下長度。

3:音標採集:

自帶的詞庫,有些單詞的音標可能缺少,因此需要有一個採集的過程。

於是要找一個可以採集的點,一開始定位去百度里找:

寫了代碼採了一下,發現單詞都在js里混淆輸出。

想用百度API,發現要Money~~~~

時間很緊張,因為只給自己一個下午的時間~~~~

後來又找了幾個,最後發現還是微軟家的親切:

圖片框起來的,但是,是採不到的,因為也是JS里混淆的,然而:

標題描述里竟然有音標~~~這都被我發現了,寫一段這樣的代碼就可以拿到了:

 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;
        }

擴展的知識點IndexOf:

當我簡單用WebClient的DownString拿到html存在result變數時(UTF8編碼)。

result=".....英[......";

我用:result.IndexOf("英["),竟然返回-1,我納悶了一下。

通過SubString截掉前面變成:result="英[...";

於是:result.StartWith("英["),竟然返回false,我糾結了一個。

可是:result[0]==‘英' && result[1]=='[' 即是true的。

後來搜了一下,才發現:

html.IndexOf(key, StringComparison.Ordinal)

這樣就正常了,解決在於:StringComparison這個參數了。

雖然理解參數的意義,但是不解的是:

這裡並木有特殊的第三方字元?

而且採集的幾千個詞,有1000多個出現這種情況,目前無解,只能註意!!!

最終成果:學單詞地址:

http://word.cyqdata.com/

單詞資料庫下載地址:

如果你需要單詞的資料庫,就在這裡:

http://download.csdn.net/detail/cyq1162/9445894

總結:

就這樣,昨天花了一個下午,半個晚上,今天又半個下午,把這個小程式給完成了。

希望能堅持~~~大伙也一起來,一群人堅持,比一個人更容易堅持!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 官方文檔以及常用參考: https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html https://www.server-w ...
  • Linux運行級別: 單人模式:提供系統維護、找回root密碼; 純文字的多人網路模式; 圖形界面模式; 系統服務:提供某些常駐性功能的運行程式。這些程式運行時常駐在記憶體。服務名稱後都有一個d字母。 獨立服務和非獨立服務? 獨立服務:服務是獨立啟動的,並常駐於記憶體,運行速度快。 非獨立服務:xint... ...
  • 本文出處:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,處理一批文件,本想寫C#來處理的,後來想想這個是PowerShell的天職,索性就網上各種搜,各種Demo,各種修改,花了半天時間,最後還是拼湊出來能達到效果了。本身對PowerShell並 ...
  • Kconfig是我們進行內核配置的關鍵文件,用於生成menuconfig的界面並生成最終確定編譯選項的 文件。關於Kconfig文件的編寫規則,在 有詳盡的敘述。這裡主要用實例進行語法分析。 config 確定了條目前面是否有選項,menuconfig界面中的條目中一共有3種主動選項,分別是 ,`` ...
  • 今天想安裝一個博客客戶端,結果安裝一直報錯“OnCatalogResult:0x80190194”,百度查到瞭解決發放再此記錄下來,以備後用。 到官網下載了一個線上安裝程式,可是一運行就提示無法安裝,顯式錯誤“OnCatalogResult:0x80190194”,如下圖所示 找到windows l ...
  • 不看廢話,直接跳到操作說明 前幾日心血來潮想把家中的舊筆記本換成Linux操作系統,算是在業餘生活中正式投入Linux的懷抱。說乾就乾,發行版選擇了Ubuntu,下載了Ubuntu16.04的ISO,下載軟碟通,製作成U盤啟動。恩,重啟電腦,U盤引導,進入安裝界面。 恩,安裝界面挺炫酷啊,還檢測到硬 ...
  • yum install pcre* yum install openssl* yum install zlib yum install zlib-devel yum install wget 查看是否已經安裝好 rpm -qa | grep "查看的內容" 2.開始安裝nginx wget http ...
  • ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...