什么是进阶?
一门编程语言的基础部分,往往非常简单。如果只考虑基本语法、数据类型、基本控制结构的话,大部分人应该一两天就学完 Python 了吧。之后,调用几个常用的库,写一些脚本,或者做爬虫,或者做数据分析,或者做一些其它自动化工作,就可以说已经入门了。
那么,接下来呢?当我们问如何进阶的时候,我们具体问的是什么呢?我们为什么要追求进阶,进阶又是一种怎样的状态呢?
显然,我们已经可以通过一些脚本解决一些简单的问题了。大多数时候,问如何进阶的人,暂时也没有碰到什么无法解决的问题。
但是我们知道自己掌握的还不够,还不足以依靠这些知识进入一个开发团队,并以这门编程语言作为主要开发语言,贡献于整个项目——或者说,与他人协作,共同解决一个比较复杂,比较庞大的问题。
从这个角度说,编程中所谓的进阶,大概是指能够以一门语言为主,参与到一个比较大的项目中,与他人协作,解决一个相对复杂的问题。
从这个目标看,我们对进阶的理解就要具体一些了。如果再分解这个目标,大概就会有以下思路:
我们当然知道,解决一个比较复杂的问题,需要相当多的知识,这些知识不仅包括对计算机技术的了解,还包括对业务逻辑的理解,对商业目标的考虑等。
仅就计算机技术而言,了解一门编程语言的语法也还只是一个开始,最多算是解决了数据处理的问题,另外还考虑考虑数据的存储与传输问题。一般来说,也就是基本的 数据传输协议与数据库知识 等。
大部分时候,我们所要处理的问题都是常见的,前人已经处理过的,并且有优秀的开发者作出梳理和总结,提供了一些方便的框架,常见的比如 web 框架、桌面 UI 框架、数据库操作、爬虫、数据分析框架等。
对这些 现成框架的了解以及基本用法的掌握 ,应该也是很有必要的。
对于日常的编程工作,我们可以简单地认为,大多数时候都是在做数据处理。那么,我们似乎有义务去考虑,如何才能让自己的代码在数据处理时更高效,更简洁——对的,这个问题主要涉及数据结构和算法的设计。
但就一门具体的语言来说,还涉及 这门语言的总体生态,特别是其核心库 。以 Python 来说,了解其基本数据结构当然很重要,但很多其它常用的数据结构和算法也都在核心库,或者第三方库中有实现,对绝大多数用户来说,自己再去实现一遍,既麻烦又低效,也很容易出 Bug,是得不偿失的。
团队协作的问题,当然也不能忽略。如何保证我们的代码在严肃的生产环境中不会出 Bug?如何保证别人能充分地理解,方便地调用我们的代码?如何保证我们写的程序不会随着需求的演变变得越来越臃肿,越来越复杂?如何保证我们离开这个岗位后,接手的人可以很容易地看懂并维护我们留下的代码?
这里涉及的问题,就是 代码的可读性与可维护性,文档与测试,设计模式与版本管理 等各方面的内容。
这里所列的,都只是简单的思考方向,具体的内容,则随我们的目标而定。一般的建议是,直接去看招聘网站上的岗位要求,就能对具体目标有所了解了,这是最贴近实际的。
需要学习的加全906407826***