零基础学一门编程语言的建议 - dearYou
面向读者:
这篇文章是写给非软件开发人员、只需在工作中熟练使用一门脚本解决日常问题的人群。
1、不要把太多时间花费在开发环境搭建上。
解释:
通常一个人学入门的时候不会同时学习多种programming language,而是只学一种,一直到熟练掌握为止。开发环境在第一次搭建后,就不需要再做更改(换电脑、重装系统例外)。
另外一个原因是对初学者来说,理解开发环境是一个比较困难的事情(除非有老手耐心教自己)。并且,一旦自己掌握一到两种Programming Language,自己会很自然地理解什么是开发环境。而对于非专业的开发人员(不靠写代码吃饭,只需要掌握一种脚本应对重复工作的人)来说,理解开发环境没有太大的必要。
总结:
找人帮自己配置开发环境,或者自己配置好开发环境后不要经常性换电脑(土豪会有这个习惯吗?)、重装系统,
对于写程序来说,很多时候想法比知识面更重要。编程到最后靠的都是思维方式。
2、如果学一门脚本是,为了简化工作中的例如重复处理Excel这类问题。那么对脚本语言掌握到那种程度?掌握基本语法即可。
解释:
任意复杂的程序都是由基本语法组成的,掌握基本语法就可以解决Excel处理这类问题了。不用去关心性能、代码质量之类的内容,完全用不到。
只掌握基本语法的性价比是最高的。掌握基本语法需要付出的时间和精力是最小的,同时能解决绝大部分问题。要掌握更复杂的知识(算法、设计模式、计算机原理),那就不是一年半年能学会的了。不要相信广告上的速成班,骗人的。写代码要真那么容易,软件行业就不存在高薪了。
如果自己想写的逻辑真的复杂到了写不出来的程度,找一个程序员帮自己写吧,哪怕花点钱。因为学会这些技术需要的时间和精力,自己是花不起的。
3、熟练使用一门编程语言需要掌握什么概念?两个概念:1、数据,2、操作(或者叫计算)
数据不 单纯指数字,计算不单纯指四则运算。
数据是任意有特定含义的信息,计算指任意映射。符合数学上映射的概念:设A,B是两个非空集合,如果按照某一个确定的对应关系f,使对于集合A中的任何一个元素x,在集合B中都有唯一确定的元素y与之对应。那么,就称对应f:A→B为从集合A到集合B的映射,记作:f:A→B。 当然也存在下面的映射 f:(x,y)->z ; f:(a,b,c….e,f,g)->z 。其中自变量有多个,因变量只有一个。程序中的这个概念也称作做函数。
4、以学习Python为例,新手最需要注意的是什么?空格,句尾分号
空格,是Python的一个特色,官网上也特别说明了。其他语言中的空格都是没有含义的,但Python中不同,Python使用空格来表示代码结构。空格本身是不能从屏幕上看到的,它是一个非可见字符,一个看起来是一块空白的数据。
使用Python的时候尽量养成一个特定的习惯,建议句尾不要带分号
5、写Python脚本使用什么IDE
可以先把IDE理解为一个办公软件。推荐使用Sublime。Sublime这个软件对专业人员和业务人员都很友好,视觉效果和编写效果都很好,还可以扩展插件,自定义新功能。强烈不推荐notepad、txt这类软件,效率太低。
6、参考什么资料来学Python?官网的新手引导,菜鸟教程
系统学习很重要。建议英语水平好的人去看官网的新手引导(地址:https://www.python.org/about/gettingstarted/ )。中文好的人可以去看菜鸟教程(地址:https://www.runoob.com/python/python-tutorial.html)。
7、应该抱着“学以致用”的态度学习吗?不应该,最好有一个心理预期:自己学到的几乎都是没用的东西
通常自己跟着一个教程学完之后,发现好像什么都做不了。确实是这样的。几乎所有的教程讲的都是最基础的内容,或者最花哨的内容,都不怎么使用,但是很受用。
8、需要理解什么是面向对象编程吗?不太需要
面向对象是一种编程思想,前面也说了。写代码写到最后考的都是想法。面向对象编程这种思维只对于非常复杂的软件开发才有价值。工作中写简单的脚本,并不需要理解这种思想。相反,刻意模仿面向编程的写法反而会让代码写的更加费劲。
9、需要知道什么是并发、多线程、Web、网络、数据库吗?不需要,花哨不实用
这些是花里胡哨又不实用的东西。这些内容都很难用,很难用好。并且教程中介绍这些内容几乎都是千篇一律、人云亦云,算是照本宣读把,讲不出本质的道理来。但是这些东西太花哨,很好糊弄人,所以还是会有很多教程讲到。不用去特意了解这些东西。
如果真想了解,就得找一个计算机专业或者软件专业的人帮自己讲解。这些内容通常只有当自己去当一个专业的软件开发人员的时候,才有可能用到。