首页 » 软件优化 » 自学编程, 如何找到第一份软件开发工作(转行实习编程学习爬虫)

自学编程, 如何找到第一份软件开发工作(转行实习编程学习爬虫)

落叶飘零 2024-07-24 17:22:13 0

扫一扫用手机浏览

文章目录 [+]

先说说我的经历吧,本人是大气科学专业,大三的时候决定转行。
那个时候对软件行业一无所知,学过很多东西,比如我学的第一门语言是 ActionScript,用来做网页 Flash 的,当然现在也随着 Flash 的消亡一起成为回忆了。

后来我知道那段时间是迷茫期,因为不知道以后的路怎么走,就去学各种东西,不管有用没用。
结果折腾了很长时间丝毫没长进。

转行其实很困难,靠自己琢磨,可能要走很多「弯路」。
寻求过来人或网上的一些建议,能够帮你更加清楚自己想要什么,以及如何实现。

自学编程, 如何找到第一份软件开发工作(转行实习编程学习爬虫) 软件优化
(图片来自网络侵删)

由于迟迟找不到方向,就想到了考研,想通过研究生阶段去把计算机的课程都补齐。
于是开始风风火火的准备考研,买的书堆了半人高。
坚持了一个月, 有一次机缘巧合,跟一个工作多年的程序员聊了我的情况后,他指出,研究生两年并不一定能学到多少,但如果直接实习 + 工作 三年去公司历练的话,说不定帮助更大。
仔细琢磨后,觉得有道理,就放弃了考研的念头。

其实选择往往会跟当时遇到的人,遇到的事会有不同。
这里也不是说考研不好,只是在当时我的情况下,它对我不是最佳选择。

但如何才能找到实习呢,基本很少有公司会需要零经验的实习生。
所以还是得让自己有一技之长。
这个时候发现了 Python 这门语言,相比于 C 语言而已,它的简单优雅让我着迷。
于是便开始了学习 Python 的历程。
期间学习 Django 框架,也了解了 Web 开发 ,总之这段学习过程带给我的不再是枯燥,而是成就感。

对于新手来说,Python 肯定是容易上手的。
另外其实很多人学习容易放弃也是因为没有成就感,只是学习,可是学完用来干嘛,他们是不清楚的。
所以设定目标,在解决问题的过程中学习会更高效。
这个可参考我这篇回答:非科班出身,如何成为程序员 (https://www.zhihu.com/question/22426146/answer/221010029)?

学了一段时间后,想尝试找找实习公司。
这个时候遇到难题了,答主在南京上学,南京的互联网公司本来就不多,更别说 Python 相关的实习了。

幸运的是,扇贝在招 Python 实习,投完简历后,没想到还真回应了,出了个题,让我用 Django 实现一个简单的 cms 系统。
我花了一个星期,写前端,写后台,学 git,传到 github 。
虽然项目实现的真不怎么样,但居然很快得到了回复,拿到了实习的机会。

虽然后来在扇贝的实习时间不长,但那段时间,技能有了很大的进步,对程序开发有了个更好的认识。

很感谢扇贝的老板以及带我的 Mentor,没有这个实习的机会,估计转行会难很多。
很多人会纠结选 Java 还是 Python。
我的回答是选自己喜欢的,市场有它自己的调节机制,Java 工作机会多,但是竞争的人也多。
当时科班学 Python 的人少,所以我才能捡到这个实习机会。

有了一定的经验后,学东西也会更加有目标。
相比科班出身的,缺的是基础,工作当中用到的就会优先去学。

之后找工作又去了几家互联网公司,工作岗位都是程序开发,算是成功完成了转行。

其实从 2013 年开始转行至今,算是正好赶上了一波互联网的浪潮。
在浪潮中有很多机会,争取到了就很可能改变以后的路,包括工作和生活。
当然这只是个人的选择而已,没有好坏之分,一种选择,一种风景而已。

最后附上我之前在知乎的回答 非科班出身,如何成为程序员?https://www.zhihu.com/question/22426146/answer/221010029

我大学专业是大气科学,观云测天气的那种,大三决定转行,开始学习编程,到今天一直在写代码,目前在知乎做后台开发,算是在程序员的道路上一条道走到黑了。
工作这几年来也算是有点心得,分享下,希望对大家有用。

编程语言的选择

对于一个非科班的理科生来说,可能对二级 c 语言考试记忆犹新,为了应付个考试,花了好大的精力去学 c 语言,实在搞不懂就把答案直接记住,考试完了就忘得一干二净,所以对编程一直有种恐惧。
其实技术一直在发展,编程语言也有好多,可以选择封装更加友好的语言,比如 Python。
用简单的编程语言可以让你更容易达到自己选定的目标,这样也会更有动力去进一步学习。
另外编程也不只是计算个数学题这么无聊,它其实有很多有趣的事情可以做。

项目的选择

我相信很多人都问过身边的程序员如何入门,得到的答案可能是去看数据结构,操作系统。
其实这些东西都太基础,虽然说打基础很必要,但是很可能基础还没打完就烂尾了。
所以我建议选择容易出成果的项目去学习,比如 爬虫,web 开发,数据分析。
github 有这么多优秀的项目可以去学习,不利用实在太浪费。

自己折腾还是选择实习

对大学生来说,有足够的时间去学习,自己折腾可以更随意的选感兴趣的方面,实习的话有人带,更早的去接触实战项目,成长也会更快。
对于上班族想转行的话,其实可以想想平时工作有哪些是重复劳动,可以用程序替代,写个小工具也是很有成就感的。

下面我举个具体的路线说明下

1. 首先,我们可以选择 Python 语言入门,语法肯定是要看一下的,推荐教程

廖雪峰 Python 教程 Learn python the hard way

2. 学完 Python 语法后,找个项目练手,比如把某个网站的壁纸都下载下来。
这就用到了 web 相关的知识,如 http 协议。
我们可以采用 python requests 库来请求网页并下载图片。
但是发现下载下来的是 html,所以需要 html 解析库来解析网页,如 Beautifulsoup。
终于图片能下载了,但是如何批量的下载呢,这个时候,当然可以自己循环调用,也可以选择成熟的 scrapy 爬虫框架。
当然写爬虫也会遇到各种问题,这个我们暂时可以不关心,可以拿一个 知道创宇的爬虫面试题 来测试下自己的爬虫水平。

图解HTTP (豆瓣)快速上手 - Requests 2.18.1 文档Beautiful Soup 4.2.0 文档Scrapy入门教程

3. 硬盘塞满壁纸后,我们想做个网站把它展示出来,发现 Python 写 web 也很方便,于是直接上手,目前写 web 后台的主流框架有 flask, django 等。
flask 小巧,django 功能完善。
折腾了一段时间后,网站终于能跑起来,但是界面很丑,也没用效果。
看来得学下前端 ,目前前端技术已经有翻天覆地的变化, react, vue , angular 看的让人头疼。
作为新手,老三样 html, css 和 javascript 三种技术还是够用的。

flask 中文文档django 中文教程html 系列教程

4. 网站目前只有图片,它还需要展示图片的描述信息。
描述信息可以再去网站爬,但是如何把信息存储起来并且和图片对应呢,这个就用到了数据库。
数据库有很多,如 mysql 关系型数据库,mongo 非关系型数据库。
其实 web 后台的增删改查操作很多时候都对应了数据库的增删改查

mysql 教程MongoDB 教程

5. 学了这么多,发现网站还是只能在自己的电脑上运行,于是开始折腾 linux 部署网站,python web 框架的话需要安装 gunicorn 或者 uwsgi 动态服务器,配合 nginx 做反向代理。

鸟哥的Linux私房菜

6. 写爬虫的时候拿到了很多的数据,比如想分析下微博关注的人的社交网络,发现 Python 其实在数据分析方面也很有优势,比如 matplotlib 能做各种图表,pandas 解析数据的利器。

matplotlibpandas

7. 到了这个阶段,你就可以进阶的学习某个领域了,当然也得拾起各种计算机基础,出来混总是要还的 /(ㄒoㄒ)/~~

上面只是一个例子,不过基本涉及到了入门的几个方面。

转行做程序员,没必要一蹴而就。
可以给自己定一个个小目标,花一些时间慢慢完成他们。
遇到问题先搜索,大部分的问题网上都有解决方案。
还有一点是多看优秀的项目,多练习,程序员也是一个普通的工种,和搬砖差不多,唯手熟尔。

最后推荐一些 Python 相关的优秀资源

[stackoverflow python 问答](https://github.com/wklken/stackoverflow-py-top-qa)

[Python最佳实践指南](http://pythonguidecn.readthedocs.io/zh/latest/)

[系统设计入门](https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md)

[python 数据分析](https://github.com/donnemartin/data-science-ipython-notebooks)

[500 lines](http://www.aosabook.org/en/index.html)

[python cheat sheet](https://www.pythonsheets.com/)

欢迎关注 微信公众号「程序化思维」,科普程序那点事

标签:

相关文章