自学编程, 如何找到第一份软件开发工作

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最后附上我之前的回答 非科班出身,如何成为程序员?

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

编程语言的选择

对于一个非科班的理科生来说,可能对二级 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 解析数据的利器。

  • matplotlib

  • pandas

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

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

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

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

[stackoverflow python 问答](github.com/wklken/stack)

[Python最佳实践指南](pythonguidecn.readthedocs.io)

[系统设计入门](github.com/donnemartin/)

[python 数据分析](github.com/donnemartin/)

[500 lines](aosabook.org/en/index.h)

[python cheat sheet](pythonsheets.com/)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值