35岁培训python

 

很多人都觉得35岁是个坎。

但是人一辈子总会面临各种选择,人生也会经历起起伏伏。

如何去接受这些变化,去打破僵局,才是我们最应该去思考的。

我们扇贝的编程之星——冯大少,作为黄帮主的学生,跟很多同学一样都是零基础学python的新手小白,毅然选择在39岁这个做什么都有很多顾虑的年纪,跳出了舒适圈,这份破釜沉舟、一往无前的勇气值得我们去敬佩。

让我们一起听一听,冯大少39岁再出发的人生故事。

Python小白从零开始

大家好,我叫冯大少,在船运公司从事了10多年的管理工作,航运工作比较单一,而且经常加班,于是我萌生了转行的想法。

2020年3月,我在微信偶然看到了编程学习的推荐,当时出于兴趣,参加了体验课。在闻闻老师的指引下,我开始初步了解和学习Python,我的工作转机就此开始。

在接触Python前,我觉得无论是Python, C++, 还是Java, 都是比较枯燥的。我毕业于通信工程专业,在大学期间学习过C++语言,但毕业后很少应用,基本都忘记了。

刚接触Python的我,几乎是从零开始学习。

从小我只对计算机硬件感兴趣,而如今要重新学习编程语言,说实话还是很担心学不出成效来。

一开始,我带有比较抗拒的情绪,但通过4节体验的交互课学习,大大改变了我的看法,我不仅学到了Python知识,更重要的是锻炼了我的思维,也就是一种计算机思维。

为了兴趣,也为了我自己未来的的发展,我相信我能学好它。

勤思考多练习,事半功倍

然而这只是跨过Python学习的第一道门槛,经过老师对后续课程的简单介绍,我决定继续学习。

有黄帮主等老师的答疑,也有很多同学讨论、提问,学习氛围很好,甚至有些学得比较快的、基础好的同学参与答疑,但我觉得自己和他们的差距比较大,学习的进度不理想。

所以,我为了强化记忆,天天都死记硬背每一节的知识要点,可越往后越发现这方法行不通。

我的大伯是一名已经退休的某重点大学的计算机专业教授。堂哥高中在多次全国奥数、计算机比赛中获得第一,被保送到国外大学,毕业后一直在微软总公司工作。堂弟在国外某科技公司从事软件开发的工作。堂姐在某500强的外资公司担任网络安全总监。

出生在计算机世家的我,却一直对计算机不感兴趣,导致我毕业之后还是计算机小白。

为了更好更有效率地学习,我在网络上向亲戚们请教学习编程的技巧。

原来学习这门课程,死记硬背是不行的,只有跟随老师的知识要点,先自己理解,再反复练习才可以事半功倍

学习条件语句时,我刚开始有点懵,后来想了想,原来与日常使用的 Excel里的if函数中单向分支和双向分支的思路同理。

通过这个类比,我深刻理解了这节课的知识点,同时我也明白了方法不是唯一的,只要多思考,问题终能解决。

破茧成蝶,重获新生

经过半年的学习,我终于把基础知识、爬虫知识和数据分析这三科学完。

在这个过程中我收获很多,尤其是Selenium 自动化这一板块,非常有趣,课后通过对这一部分内容拓展学习,我掌握了更多知识。

总的来说,在学习过程中,遇到问题时,首先要自己想办法、找原因,不要马上问别人,依赖别人给你答案

可以自己先在网上参考一些资料或者相关的解决方案,遇到报错情况,不要怕,要分析报错提示,最好能想出多种组合的可能性去尝试、去测试。

正如黄帮主所说,具体问题具体分析,就好像我们在构思代码时,也要分清什么时候要用面对过程的思路,什么时候用面对对象的思路,每个人的思维习惯不一样,但总会找到适合自己的学习方法。

经过半年左右的学习和题海战术,我顺利通过了2020年的Python二级考试。

船运公司合并重组后,我也换了工作,目前在一家提供信息服务的公司做爬虫的工作。

从管理岗到普通员工,心理落差是有的。但是既然认定了方向,就勇往直前吧。

学以致用,效率神速

Python的应用让我极大地提高了工作效率, 最后简单地分享介绍两个在日常工作中使用Selenium 和 Scrapy的例子。

1、Selenium 的应用——快速查询信息并下载,筛选所需信息

以著名的日本船公司ONE为例,当打开官网后,在 “SCHEDULE” 里,首先对 “Origin” 定位,

origin=browser.find_element_by_id('oriLocNm')

然后在输入框里,通过

origin.send_keys('SHEKOU, GUANGDONG, CHINA')

进行填充。

再对 “Destination” 定位,

destination = browser.find_element_by_id('destLocNm')

然后在输入框里,通过

destination.send_keys('HAMBURG, HH, GERMANY')

进行填充。

在 “Destination” 下,可见还有一个 “Period” 的 date range,网页默认为当天的日期开始计算1个月的时间范围,可以选择这个默认的范围,或者改为自己所需的日期范围。例如,选择从06/20/2021 - 06/28/2021

在 “Period” 包括 开始日期 ( name="srtDt") 和结束日期 (name="endDt"),在填充前,首先要通过clear()方法,把网页自带的日期先清除。

定位 “View

view = browser.find_element_by_id('btnSchedule')

通过view.click() 的方法,执行查询。

浏览器自动打开一个新的分窗口,显示了各种的信息,定位 “Download”,然后执行下载。

下载了 Excel 后,还可以通过在数据分析课里学到的 Pandas 快速查询所需的信息。

读取下载的Excel, 例如我要查询相关的 Doc/VGM Cut off 和 Vessel/Voyage,代码如下:

df = pd.read_excel('Point to Point Schedule.xlsx')print(df[['Doc/VGM Cut off','Vessel/Voyage']])

看看输出是什么样子,下图可以看到,在第一行却显示了 NaN ( Not a Number),而且在 Doc/VGM Cut off 这一列,还多了一个换行符 “\n”。

再打开下载的 Excel 观察,发现第一,二行是合拼了单元格,而且 Doc/VGM Cut off 这一列的每个单元格里,是用了 “Ctrl + Enter” 的换行方式。

在了解原因后,可以通过匿名函数 lambda 把换行符去掉,再把第一行的 NaN 删除。

代码如下:

df['Doc/VGM Cut off'] = df['Doc/VGM Cut off'].apply(lambda x:str(x).replace('\n',''))df.drop(0, inplace=True)

最终的输出结果。

通过 Selenium,我们可以设定所需要的条件,达到自动下载符合条件的文件,减少手动选择的重复动作。

2、 Scrapy的应用: 快速下载多页的信息和相关超链接

同样也是通过ONE的官网,首先打开所有官方发布的消息页面。所有的消息,都是嵌套在 class=” news-list” 的 <div> label 里,而消息的超链接和内容分别是在一个 label和label 里。

然后定位 “Next Page”, 找到所有消息的超链接

response.css('div.news-list a::attr(href)').getall()

以及所有消息标题

response.css('div.news-list h3::text').getall()

编写完整的代码,如下:

最后打开输出的文件,就得到一份包括消息标题和相对应的超链接。这样我们就可以搜索想看的消息,同样,也可以应用Pandas去实现各种方法。

通过应用Scrapy爬取我们所需的信息,大大地提高工作效率,避免用手动逐个点击 “Next Page”去获取每一分页的内容。

通过以上两个在工作中的实例,相信同学们能感到自动化的强大和高效。

在 Selenium这部分,还有其它更加强大的应用,例如 Select库、ActionChains库,以及还可以结合 Java Script的应用等。有兴趣的同学,可以课外拓展学习。

让每个人都能通过学习变得更好

在文章的最后,冯大少再三感谢在学习编程的道路上遇见的每一位老师,也为努力毕业的同学们加油打气。

感谢冯大少的学习分享!黄帮主相信只要各位同学坚持系统性持续学习,加上大量的练习,肯定能开拓出属于自己的发展道路。

C站(CSDN)能力认证中心C站(CSDN)能力认证中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值