前言
本人男,七九年的,今年42岁,程序员。
我来说说我的经历。
我以前做的工作跟程序员一点关系都没有,刚参加工作时我是在一家小公司上班,做销售。
做了大概五年左右,因为个人性格、情商等原因,发现自己并不适合销售这一行,果断辞了职,那时候在家待业无聊,听说程序员工资挺高的,也想做程序员。
但是,想当程序员,必须得会编程,我从来没学过,对硬件软件都是门外汉,根本就摸不到入行的门路。
后来我找了一份新工作,在一家物流公司,我负责市场推广,在这家公司认识了几名程序员,跟他们学了一点编程的皮毛,综合考虑选择了python,因为python对新人更加友好,语法也很简单,后来又买书报课学习了两年,自己可以做出比较像样的网页了。
于是我就拿着自己的作品,去面试。
面试碰壁
刚开始找程序员的工作,面试并不顺利,我那点三脚猫本事,稍微好一点的公司都不要我,而且嫌我年龄大,那时候我已经33岁了。
我当时也有些灰心,想着要不还是算了吧,都已经人都中年了,还是少一些幻想,多一些实际吧。
没想到我那五岁的儿子“拯救”了我,他小小年纪,就表现出对编程的兴趣,而且理解得非常快。
刚好我还会一点,于是就一边教他,一边继续学。
儿子学得很快,我的知识很快就见底了,于是倒逼着我不停地去学习新知识去教他。
又过了一年,我的编程水平有所提高,在儿子的鼓励下,于是我又鼓起勇气去面试了!
我如何自学 Python 的?
关于自学python,个人最大的3点经验:
找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。我同学当时推荐我看的是《简明python教程》,不过这本书不是非常适合零基础初学者。零基础推荐《与孩子一起学编程》,或者看B站的教程 [2021最新Python零基础入门到精通全套教程]。
去找一个实际项目练手。面试实际是需要一些项目实战经验的,我选择购买了一个网课,把网课的项目demo,实操一遍,直接拿来主义。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。当然条件允许可以找几个同学一起做个网站之类。注意,真实项目不一定非要是商业项目,你写一个只是自己会用的博客网站也是真实项目,关键是要核心功能完整。
最好能找到一个已经会python的人。问他一点学习规划的建议(购买一些网课也是个途径),我很庆幸自己遇到了我的同学,当然项目实战的部分,网课老师也给了我很多的帮助,然后在遇到卡壳的地方找他们指点。这样真的让我会事半功倍。同时我们也要学会搜索,学会如何更好地提问。因为没人愿意帮你写作业或是回答“一搜便知”的问题。
然而,别人的经验未必能完全复制。比如我没有说的是,在自学python之前,我在学校选修过其他的编程语言,同时我也遇到给我很多支持和帮助的高中同学!
对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,比如:
从零开始,不知道从何入手,找了本编程教材发现第二章开始就看不懂了
缺少计算机基础知识,被一些教程略过的“常识性”问题卡住
遇到问题不知道怎么寻找解决方案
看懂语法之后不知道拿来做什么,学完一阵子就又忘了
缺少数据结构、设计模式等编程基础知识,只能写出小的程序片段
所以除了前面说的3点经验,给初学编程者的额外建议:
首先要有信心。虽然可能你看了几个小时也没在屏幕上打出一个三角形,或者压根儿就没能把程序运行起来。但相信我,几乎所有程序员一开始都是这么折腾过来的。
选择合适的教程。有些书很经典,但未必适合你,可能你写了上万行代码之后再看它会比较好。
写代码,然后写更多的代码。光看教程,编不出程序。从书上的例程开始写,再写小程序片段,然后写完整的项目。
除了学习编程语言,也兼顾补一点计算机基础,和英语。
不但要学写代码,还要学会看代码,更要会调试代码。读懂你自己程序的报错信息。再去找些github上的程序,读懂别人的代码。
学会查官方文档,用好搜索引擎和开发者社区。
那零基础小白Python要学些哪些入门工具呢?
- 入门工具知识一:解释器
Python是一种面向对象的解释型计算机程序设计语言,因此想要学号Python就必须要了解解释器。
目前常见的Python解释器有CPython、IPython、PyPy、Jython、IronPython等。而这些解释器中使用最广泛的是CPython。
由于Python语言从规范到解释器都是开源的。所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码。
- 入门工具知识二:编译器
Python编译器的用途是帮助用户在使用Python语言开发是提高其效率的工具。
比如,图形页面调试器、语法高亮、Project管理、代码跳转、智能提示、自动完成、集成的单元测试等。
目前存在很多Python编辑器,零基础学Python可以使用pycharm。
PyCharm还提供了一些很好的功能用于Django开发,还只吃Google App引擎,更酷的是,PyCharm支持IronPython。
- 入门工具知识三:包的安装
Python中有很多扩展包,想要安装这些包可以采用两种方法:
1、使用pip或者easy▁install
在网上找到需要的包,下载下来。解压该文件,命令行工具cd切换到所要安装的包的目录,找到setup․py文件,然后输入python setup․py install
2、不使用pip或者easy▁install,直接打开cmd敲pip install rsa
最后,我整理了我自己的学习路线给大家,个人认为很有用,大家可以参考一下:
- Python环境的搭建
- 基础的知识(注重对Python的理解)
- 面向对象编程(注重编程能力)
- 面向对象编程案例课程
- 面向对象设计思想
- Python高级专题(异常、文件、模式与包、迭代器、生成器、装饰器、静态方法与类方法、正则入门)
梦想照进现实
34岁,我终于应聘上了一家很小很小的互联网公司,加上老板一共才11个人。
老板也是中年人,就比我大两岁,可能是被我的经历打动了吧,在我能力也不是很完善的情况下,让我来上班。
后来我个人也比较努力,一想到这份工作,比我以前的工资要高出两倍(5000变成10000),我就很有动力继续学习、加班。
一晃又过了好几年,我靠着程序员的工作,也给家人改善了生活。
我现在想说的是:如果你很想做一件事那就去做吧,别管自己是几岁,先试试再说。
有人可能会说,三十岁转行是不是太晚了。
根据我的经验来说,三十岁的确是挺晚了,但这并不代表你没有希望。
人早晚都要从三十岁成长到四十岁,但如果你三十岁开始转行,到四十岁可能你就有了十年的相关经验。
如果你不提升自己,你还是会来到四十岁,但迎接你的是一个一事无成的四十岁。