Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >独家分享 腾讯大神教你如何学习一门新的编程语言-以Python 为例

独家分享 腾讯大神教你如何学习一门新的编程语言-以Python 为例

作者头像
企鹅号小编
发布于 2018-01-23 02:29:01
发布于 2018-01-23 02:29:01
9710
举报
文章被收录于专栏:应用案例应用案例

学习 Python ,进行 Django 开发也有一年了,小结一下,一年的学习历程。

1. 了解新语言产生的背景

ABC 是专门为非专业程序员设计的一种教学语言,但是由于其封闭,并未取得成功。1989年的圣诞节期间,吉多·范罗苏姆开发了一个新的脚本解释器,并命名为 Python,作为 ABC 语言的一种继承。新的脚本解释器开放,完美结合了 Unix Shell 和 C 的使用习惯。

2. 了解新语言应用的场景

网站后台

有大量成熟的框架,如 Django,Flask,Tornado

网络爬虫

Python 写爬虫有很多库可用,如 Scrapy,Beautiful Soup

科学计算

可以替代 R 语言和 Matlab,如 NumPy, SciPy, Matplotlib, Pandas

数据挖掘机器学习大数据

Scikit-learn,Libsvm,TensorFlow

系统部署,运维脚本

Shell 适合简单的系统管理工作,但涉及复杂的自动化任务还是需要 Python。

由于篇幅有限,今天分享之前先说下这个,,如果大家喜欢的话我会再更新,专注学习Python技术的小伙伴可以进群(五八八零九零九四二)一起交流学习,群里还有大量学习资料可供大家自行下载参看,欢迎大家一起来交流讨论。

3. 了解新语言的特点

Python 的设计哲学是:优雅、明确、简单。Python 的开发哲学是:用一种方法,最好是只有一种方法来做一件事,有些类似 Unix。与其他语言非常不一样的是,Python 以缩进来确定语句块。

Python 是一门面向对象的动态、解释型语言,具有出色的模块化特性。同时,Python 拥有大量的第三方开源包,可以直接使用,极大地提高了开发效率。Python 编写的代码,可读性强,特别适合多人大型项目的开发。但是 Python 的执行效率比不上 C/C++ 这类编译型语言。

4. 学习新语言的数据结构

Python 中内置类型有整型 int,浮点型 float,布尔型 bool,字符串 str,列表 list,元组 tuple,字典 dict,集合 set。与 C 不同的是,Python 并不依赖于关键字定义各种类型。Python 是动态强类型语言,是通过运行时,自动选择合适的数据类型。字符串、列表、元组、集合、字典等复杂数据类型,并不是 C 语言的内置类型。

5. 学习新语言的逻辑结构

if 条件判断结构

for 循环结构

while 循环结构

6. 学习定义一个独立模块

定义函数:

定义类:

定义包:

Python 中定义一个包,只需要在文件夹里面,创建一个 __init__.py文件即可,如:

那么在其他文件中,就可以通过 from mypackage import views 的语法,从 mypackage 这个包里面导入 views 。

7. 做一个小的项目

尝试完成一次领域实践,是对这个领域最佳的入门方式。学习一门新的编程语言,成长最快的阶段在,利用这门编程语言完成项目需求期间。

Django 是一个十分优秀的 Python 写的 Web 程序框架,广泛用于数据驱动类的网站开发。Django 是一个大而全的开发框架,基本不需要额外的第三方配置,就可以快速地进行开发。

笔者的小项目需求是:利用二维码扫码,查看在线简历。

确定项目需求之后,会迎来一个手足无措的时期,不知道从哪里着手开始做项目。如果有一个过来人指导一下,那么很快就能开始编码了。不幸的是,笔者当时身边并没有这样一个人。在网上查阅资料后,最终选定了Jquery 、Foundation、Django 实现这个项目。

实际上,笔者在此之前一直在写 C++ 程序,并没有 Python 的编程基础,仅仅是因为这个小项目,选定的技术栈后台使用的是 Django ,才开始学习 Python。

除了掌握项目使用到的技术栈,在完成项目的过程中,还可以解锁调试技能、通过搜索引擎解决各种程序问题的能力。

为了完成这个小项目,需要走出舒适区,突破原有的技术栈,最终获得快速的技术成长。

8. 学习使用库完成任务

通常,发布者会将使用频率高、可以复用的功能,打包成库,提供给大家共同使用。

库可以分为两类:

一种是官方的库,通常质量比较高、会维护更新;

一种是第三方的库,质量参差不齐,需要自己甄别。

例如,Django 中提供了 from django.views.decorators.http import require_POST 装饰器用于确保 view 函数的请求方法是 POST。使用这个装饰器可以简化 view 函数中的条件判断,有利于编写简洁易读的代码。当然 ,Django 还有大量的第三方 App可以下载使用,直接提供一个完整功能。

在项目开发的过程中,合理地使用库会起到锦上添花的效果。

9. 学习组织代码结构

研究怎样更好的组织项目的代码是一门管理科学。笔者之前也写过相关的文章

讨论了 Django 工程的目录组织结构。

好的项目代码结构需要学习一些高关注度的开源项目的经验,也需要注意输出,成为大家共同的标准,共同维护,产生影响力。

10. 学习让代码易维护

代码维护分为两类:

Bug 易修复,需要代码具有良好的命名习惯、注释、日志输出,实现相同的功能编写尽量少的代码

新功能的扩展,通常是在原有逻辑上,创建新的分支。这类分支又可以分为代码级别和常量级别。我们需要的是通过常量的配置扩展新功能,而减少代码级别的修改

11. 提高代码复用率

随着使用新语言年限的增长,参与项目的增多,会出现一个显而易见的问题:在不同的项目中,会有一些非常类似的功能。甚至在开发新项目时,有时还会去以前项目中拷贝代码。

这时,应该思考如何提高代码的复用率,如何提供公共组件。

代码的复用可以分为:

代码片段(Snippets)

维护一个 Snippets List 是个不错的注意

公共组件(Components)

公共组件需要从项目中分离,会有一定的工作量,但收益很大

从项目中分离公共组件的过程,需要关注模块内的高内聚,模块间的低耦合。在模块分离的过程中,我们会更加深入地去理解应用系统。这一过程的完成,又将极大地提高开发效率。

更重要的是,我们不仅仅从项目中分离出一个公共组件,在使用其他人提供的公共组件时,也会变得容易。

下一次项目开发时,需要一个新功能,你首先想到的可能不是编码,而是去公共组件库或 Github 搜索有没有类似的包,然后经过简单的改造就能在项目使用。

12. 关注性能

针对 Web 应用,高并发、高可用、高一致性始终是亘古不变的议题。在对应用系统不断发起挑战时,那些隐藏的曾经被忽略的问题才会逐渐显现。在这个过程中,不断地发现应用系统的瓶颈,解决这些瓶颈,循环往复,不断加深对业务、对应用系统的理解。

性能报告是性能测试输出的结果。性能报告就像质检报告一样,是让用户信任和使用产品的凭证。高并发、高可用、高一致,并不是口号,需要数据的举证,需要不断的优化性能。

13. 源码阅读

阅读源代码有利于提高自己的代码水平。阅读 Python 解释器的源码,有利于编写高性能的代码。阅读 Django 源码有利于编写易维护、易更新的 Django App。从开始学习这门新语言时,就可以开始尝试阅读源代码。

本文来自企鹅号 - 我爱Python媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 我爱Python媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速学好一门编程语言
关于如何学习一门编程语言的问题,新人总是会问,我能学会吗?我适合学编程吗,我的智商够吗?我通常会反问你觉得学英语难吗?我想说的是,其实学一门编程语言和学一门外语并不存在智商门槛的差别。
王炸
2019/07/02
6510
如何快速的学习一门新的编程语言?
工作中,经常有工作两年左右的同事,用手挠挠发量本来就不多的脑袋,问我:“我如何快速上手一门新语言呢?”
架构精进之路
2021/06/01
7960
如何快速的学习一门新的编程语言?
如何学习一门编程语言
前言 这里筑梦师,是一名正在努力学习的iOS开发工程师,目前致力于全栈方向的学习,希望可以和大家一起交流技术,共同进步,用简书记录下自己的学习历程. 个人学习方法分享 本文阅读建议 1.一定要辩证的看待本文. 2.本文主要记录自己如何学习一门编程语言. 3.觉得哪里不妥请在评论留下建议~ 4.觉得还行的话就点个小心心鼓励下我吧~ ---- 目录 1.如何学习一门编程语言 2.如何快速学习编程语言 3.学习编程语言的特点 4.如何进行系统的编程语言学习 5.如何拓展自己 6.其他书籍 ---- 如何学习
筑梦师winston
2018/05/10
2.2K0
12 个学习新的编程语言的方法
程序员是一个需要不断学习更新的职业。如果,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢? 在这篇文章中,老九君给小伙伴们整理了 12 项关于学习技术的建议。记住每个人学习的方式都不一样,其中一些可能对你十分有用,而其他的则可能无法满足你的需求。如果你开始担心一个策略,请尝试另一个策略并看看它哪里适合你。 1 将其与类似的语言进行比较 当你首次观看有关该语言的第一个教程或阅读代码时,请尝试猜测该语言的每个部分将会做什么,并检查你的判断是否正确。 如果记笔记可以帮助你整合信息,请拿起一张纸
老九君
2018/03/06
9160
12 个学习新的编程语言的方法
如何高效学习一门编程语言
首先这篇文章是建立在有一些编程基础之上来展开的,做为一种效率学习编程语言的自我总结输出。把编程语言当做一个工具,而这些不同种类的工具有很多的共通之处,抓住其中的关键之处可以大大提升学习效率,也是一篇自我总结的学习方法论,里面有的方法可能不适合我,但也会讲讲。如果要学习一门编程语言,先要问一下为什么要学?学会了能做什么?要达到什么样的目标?只有把这些问题想清楚了再去做,不然稀里糊涂不知所以,很可能半途而废。想明白了就要坚持去做,不要再东望望西看看,想、做、坚持三位一体是学到的基本三要素。
知一
2021/12/07
5540
如何高效学习一门编程语言
除了Python,为什么机器学习还需要一种新的编程语言?
随着机器学习(ML)的爆发式发展,我们看到开发者为 ML 构建了很多复杂的模型和框架。在这些支持循环和递归的编程结构的先进模型推动之下,ML 领域涌现出大量的程序。同时,在我们构建这些程序的工具中也出现了一些有趣的问题,这里的工具也指的就是 -- 编程语言。 虽然机器学习领域没有一个专门的编程语言,但是有很多框架或库都提供基于 Python 的 API(比如 TensorFlow),又或者将 Python 用作建模语言(比如 PyTorch)。如今 Python 虽然在人工智能领域应用广泛,但是也存在一定的
企鹅号小编
2018/02/01
9080
除了Python,为什么机器学习还需要一种新的编程语言?
如何选择第一门编程语言?
译者:“互联网+”时代,不懂点计算机、不会点编程是不行的。但是编程语言数目众多,近几年还诞生了Rust、Ceylon等新生语言,到底该如何选择?
鲜枣课堂
2019/07/22
1.3K0
如何选择第一门编程语言?
如何学习一门新的语言?
首先要说,这并不是一篇教你如何学习的文章,因为到今天为止我也没有找到一种通用的方法来解决如何学习的问题。但是在探索的道路上,我确实产生过一些思路,我想把这些思考的过程分享出来让大家探讨。如果这对你有帮助的话,那我会非常高兴。
前端教程
2018/08/06
3440
学习你的第一门编程语言
好的,决定好想学什么编程语言了吗,现在就让我们开始学习吧。 所有你需要做的就是打开一本书,然后开始阅读,是这样的吗? 不全是这样的。我的意思是,你可以用那种方式学习——如果你喜欢挫折的话。 还记得我们
用户1289394
2018/02/28
8550
学习你的第一门编程语言
如果编程语言是一门武功绝学
武侠小说中,各路侠客绿林好汉都是从基本功开始一招一式学起,掌握了足够多的招式后,加之勤学苦练,量变引起质变,会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑,成为一代宗师。在编程的学习过程中,我们何尝不是从一招一式的函数、语法、特性等学起,掌握了一门编程语言后,再学习另一门语言就会快很多,如同拥有内功后,习得其他武功也会轻松很多。
C语言与CPP编程
2020/12/02
4750
如果编程语言是一门武功绝学
Django如何开发网页
Django作为一款广泛应用于Web开发的框架,其在实际项目中的表现至关重要。掌握Django的开发技巧和最佳实践,不仅可以提高开发者的编程水平,还可以为企业节省开发成本,提高项目竞争力。此外,Django框架在我国的应用也日益广泛,对我国互联网产业的发展产生了积极推动作用。因此,对Django进行深入研究具有重要的实践意义和理论价值。
七条猫
2024/09/21
2340
Django如何开发网页
如何快速学会一门新的编程语言
这里 ,我将先讲解一下大家学习编程语言的常规做法 , 然后带给大家我的学习方法 。我的方法适合有一定编程基础的人 ,至少需要你知道什么是常量、变量、循环、逻辑控制等,最最基础的概念 。并不适合对编程一无所知的人 !
热心的程序员
2020/03/29
1.8K0
细数自己学习过的编程语言,附学习建议
今天给大家分享一下我从大学自学编程,然后毕业四年多以来,学习过的编程语言,然后也会对这些编程语言做一个简单的比较,最后也会给出我的学习建议。
roseduan
2024/03/20
2730
细数自己学习过的编程语言,附学习建议
我的编程语言学习记录:一段不断探索的旅程
编程语言是软件开发世界的灵魂。作为一名软件开发者,我一直在探索和学习不同的编程语言,以提升我的技术能力,并解决各种复杂问题。以下是我在学习编程语言过程中的一些心得体会和记录。
正在走向自律
2024/12/18
1100
我的编程语言学习记录:一段不断探索的旅程
七十年编程语言发展漫谈
作者:kevinyangli,腾讯 CSIG 客户端开发工程师 客户端开发在多种生态中生存就要熟练使用各种平台的环境和语言。回顾自己的职业生涯,涉及多个平台生态以及对应的原生编程语言。最近又用起了 Dart,经常在写代码的时候要想想自己是在什么平台,用什么 IDE,在写什么语言。这种情况持续了一段时间之后对编程语言有了一些想法和探索的欲望,本文不拘泥于某个语言或者特性,而是从语言的发展和历史的角度聊聊这个话题。 严谨起见,本文提到的“编程语言”指的是“第三代高级编程语言”。 让我们从时间维度入手来聊聊编程语
腾讯技术工程官方号
2023/02/16
9840
七十年编程语言发展漫谈
如何学好一门编程语言?
1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。 1.1 培养兴趣 兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日
我是攻城师
2018/05/11
1.5K0
如何在选择一门编程语言后,进行深入造化?
关于编程,是选择去培训还是自学,这是一个千人千面的问题,小编之前看过一篇文章,感兴趣可以去围观:《想编程,是勤奋自学还是去培训班学习?》,而今天文章主题是 做了选择之后该如何一步步走下去?
逆锋起笔
2020/04/15
6480
如何在选择一门编程语言后,进行深入造化?
思考如何学习一门编程语言?
编程语言是一种用于编写计算机程序的人工语言。通过编程语言,程序员可以向计算机发出指令,控制计算机执行各种任务和操作。编程语言由一组语法规则和语义规则组成,这些规则定义了如何编写代码以及代码的含义。
锅总
2024/07/04
1810
思考如何学习一门编程语言?
什么是Zig? Zig为什么成为最赚钱的语言? 编程语言Zig是什么? 编程语言Zig:简单、安全、高效的系统级编程语言
在计算机编程的世界中,有许多编程语言可供选择。每种语言都有自己的特点和应用领域。在这篇博客中,我们将介绍一种新兴的编程语言,它就是Zig。Zig是一种系统级编程语言,旨在提供简单、安全和高效的编程体验。它融合了现代语言的特性和传统低级语言的控制能力,使得开发者能够更轻松地编写底层的软件。本文将深入探讨Zig的特点、学习方法以及它能够实现的功能。
猫头虎
2024/04/08
1.7K0
什么是Zig? Zig为什么成为最赚钱的语言? 编程语言Zig是什么? 编程语言Zig:简单、安全、高效的系统级编程语言
编程语言:Python与Go的深度比较与推荐
推荐文章:开发实践|SpringBoot集成API新宠GraphQL实践-腾讯云开发者社区-腾讯云
china马斯克
2024/11/20
2510
相关推荐
快速学好一门编程语言
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档