编程是一门实践的学科,不实践永远学不会,所以关键是要想办法开发一个功能完整的项目,这样就很快学会一门新的语言。
程序员由于工作特点,经常要学习新东西,学习新的编程语言是经常事。一名有经验的程序员快速掌握一门新语言的方法就是开发一个东西出来,如在2000年初,c语言开发人员要学习delphi,vb等快速开发语言,他们的学习语言的方法是实现一个写字板程序,因为写字板程序里面涉及到win32消息机制,多线程处理,语言特性等。
小王子学习python,第一个实现的程序是”下载电影“ ,为了满足自己喜欢看电影的爱好,因为每次上豆瓣看评分,然后到电影下载网站下载,太繁琐了,就想做个程序傻瓜执行整个过程:第一步实现:用python爬豆瓣上的高分电影数据(豆瓣有排行榜),这里面涉及到urllib, http等第三方库下载网页技术;正则表达式re;BeautifulSoup(bs4)、Xpath(lxml)等网页解析技术;反爬机制,header,robot,时间间隔,代理ip,隐含字段等技术细节;等等
第二步实现:调用第三方应用下载,如迅雷,或者基于bt(BT协议Bit Torrent(BT)是一种通信协议,又是一种应用程序,广泛用于对等网络通信P2P)协议实现下载文件等,涉及到com的调用,多线程技术等等
第三步实现:下载电影完毕,调用微信发送给我消息等
第四步实现:扩展功能,自定义下载电影类型
例如学习人工智能(深度学习),因为小王子体重可观,所以想做一个计算卡路里的程序,控制饮食:第一步实现:下载大量食物图片,以及各种蔬菜,肉的图片,利用python实现爬虫,针对文件进行裁剪
第二步实现:搭建神经系统,喂入第一步实现的数据训练模型,保存模型
第三步实现:开发一个小程序,照食物的照片,然后自动计算出(利用神经系统识别出的)食物的卡路里
第四步实现:输入本人或者其他人的身体体重计算当前摄入的卡路里的饮食建议
可能题主喜欢打游戏,完全可以用python实现一个游戏外挂,当去实现就会遇到每一个技术问题,一个个问题突破了,你就成了一个大神。
要记住学习编程是为了解决实际问题,编程的乐趣也在于探索解决问题的过程。