分享五年码农生涯历程经验及2018总结 | 掘金年度征文

916

生涯回顾

掘金的码友们好,我叫shinn_lancelot(名字不大好,但是用习惯了就不想改了),是一名喜欢ACG的低学历的码农。大学期间虽然学的软件专业,但是除了大一之外都没有认真学习(算是三分钟热度吧),开始觉得枯燥。甚至到13年毕业之后,开始考虑转行。

直到14年的3月份(从毕业到这一直在练车),在我n线城的一家小公司老板打电话让我去面试。最终,在这家公司继续了我的码农生涯。那时流行做微信公众号开发,起初我做的是简单的静态页面,由于在校没好好学,做得页面都不咋地。大概过了半年,由于项目需求,开始学习后端开发,用的是ThinkPHP。哈哈,我连PHP都不会,居然要直接学TP,当初心理还是挺没底的,以为挺难的。在看了几集视频教程之后发现,这玩意确实很适合新手用。如果只是实现简单增删改查,门槛很低。说实话,这个框架让我有了信心,换成别的说不定就受挫放弃了。渐渐地,在学习TP的同时,顺便学习一些PHP的知识。同时,学习了mysql基础以及apache。

大概过了两年吧,那两年学得用得基本都是前端基础和PHP相关技术。虽然有接触到很多新技术(前端工程化开发,其它后端技术),但是并没有投入项目使用。

到了16年,这个时候对软件开发已经很感兴趣了(在校时的失去兴趣完全没有了)。为了多多学习、提高技术水平,我做了以下几个操作。

  • 买云主机和域名

    因此,我也学习到了一些linux、部署、域名相关知识。

  • 科学上网

    这下子,终于可以用谷歌家的好东东了。想看的资料也能找到,码农必备操作。

  • 买书

    一开始买了工作相关技术栈的书籍。但是出于对技术的热爱,看见想买的书就跟想买PS4游戏盘一样难以抑制。到目前大概买了70+本技术书了,全部看完的不超过10本,很多是看了一部分。个人觉得买书喜欢就好,当然买来也不能不看。

就这样,16年至今,个人技术栈的学习以前端和后端为主,包含了各种语言、工具、规范、框架、数据库、web服务器、服务器等等。只可惜公司还是采用传统的开发模式,很多学得没有用上。但是我爱学习,学习使我快乐!

2018总结

刚刚过去的这一年,发生了很多事情,不管是社会上也好,还是个人也好。这一年,开始在github(早就注册了,一直没用呢)等代码托管平台托管代码(好想要Octocat手办啊啊啊啊啊)。不管是私有项目、写的工具、写的库、学习笔记、学习代码,统统放上去。

另外,工作上依旧忙碌。需要做微信开发(公众号和小程序后端),H5开发(H5滑动页,H5单页应用),iOS开发(半吊子),其它独立外包项目,感觉有时候真的时间不够用。

简单总结下来就是忙碌又疲惫,但是踏实又充实。

学习姿势经验分享

下面分享一些个人觉得不错的程序员的学习姿势。

  • 从取名开始

    首先给自己取一个独一无二的英文名吧,最好是各大网站都没被注册的,以后需要用到名字的地方有不少。

  • 技术岗位方向

    学计算机的就好比学医的,也分岗位科室。推荐选择前端或后端作为主要的学习方向。至于人工智能和区块链,入门不推荐。后端技术语言推荐Java、PHP、Python、Golang。Java和PHP就业岗位相对多(PHP快死我是不信的哈哈哈),但是Java门槛高一些,PHP入门容易。至于Python和Golang,相比前两门语言就业岗位数量要少一些。另外,其实不管是前端还是后端程序员,前后端或多或少都是需要学习的(C语言也是必学的)。

  • 系统和开发工具

    系统推荐mac。windows也可以,入门影响不大,但是使用命令行会比较受限。开发工具,这里我指的是IDE。推荐vscode和jetbrains系列的。

  • 入门教程

    刚开始入门推荐看视频教程,推荐慕课网,免费视频入门足矣。学习前端基础三件套及选择的后端语言基础。看视频助于理解,并编码实践。文字教程推荐菜鸟教程。此阶段先打一些基础啦,写点简单的站点和demo,学习代码和demo代码记得留着。

  • 面向谷歌编程

    从这里开始建议使用科学上网了,搭梯子对于编码还是很需要的。推荐注册谷歌账号(后续需要邮箱的地方可以使用谷歌邮箱,我由于用了qq邮箱就懒得换了)。

    谷歌搜索,百度搜不到时可以用谷歌搜索试试。

    浏览器使用Chrome,平时浏览的文章、文档等等都可以分类收藏好。Chrome的插件也是非常多,功能强大,也是必备的。请记得一定在Chome登录谷歌账号,这样即使换电脑了,只要登录账号即可同步收藏和插件等配置。还有,学习谷歌浏览器开发者工具,这个也很重要。

    谷歌网盘,只有15g,同步功能很方便。就是使用有点麻烦,需要代理软件。我用来放资料、电子书、照片等文件。

    油管,哈哈,英文好的可以看看这上面的视频教程,关注一些技术频道也是很不错的方式。推荐Google Developers频道,最近有一些flutter视频。

  • 面向git和github编程

    从搭梯子及使用github,这时候学好英文就很重要啦,这个我现在发现也很重要(我四级都没过,阅读还好,写英文README和看英文视频就吃力了)。比如阅读英文文档、编写英文文档和README、看英文视频、看Stack Overflow等等,所以应该重视这一点。

    开始在终端使用命令行配合开发工作,在使用命令行之前,建议先学习linux基础,发行版推荐centos或ubuntu。然后,平时开发工作其实用的比较多的都是cli工具自带的命令。比如git命令、npm命令,这些都不难,没什么,打多了就熟悉了。

    git版本控制工具也是必学的啦,网上教程也非常多,不多说了,先入个门用起来就好。github就是代码托管+开发协作+同性交友平台啦,代码全部托管到这上面就好。目前github私有仓库免费啦,不想公开的代码也可以放上去了(真香!)。另外,顺便学习下开源协议以及markdown语法。

    至此技术框架也可以学起来了,前端推荐Vue、React。PHP推荐ThinkPHP和Laravel。两个框架都用过,一个易上手,一个优雅。Python推荐Flask、Django、Scrapy。Python学习建议从基础语法到爬虫到web网站开发这样的路线进行,当然Python应用也很广,按需学习就好啦。Java忘了(都换给老师了,主要是这门语言虽然牛逼,但是我兴趣不是很大,有空看看吧),听说SpringBoot很好用,省去了麻烦的配置。Golang我还在学习中,还是很感兴趣的。

    除了框架以外,前端工程化还有很多东西要学习(大坑啊),比如:nodejs,es6,模块化规范(AMD、CMD、CommonJS、UMD等,一开始被这些搞得云里雾里),包管理器(推荐npm、yarn),代码打包工具(推荐webpack和rollup,parcel也不错啦),任务流工具(grunt、gulp),代码检查工具(eslint、jslint),es6转es5工具(babel)等等。后端的话,学习包管理工具、第三方开发、接口规范、数据库、缓存、负载均衡、web服务器等等。还有HTTP等网络协议也非常重要。

    其它围绕git和github还有一些衍生的内容也推荐学习。

    1. travis CI 持续集成工具。可以帮你自动构建及部署项目。比如用这个部署静态站点到仓库的gh-pages分支上,在这个分支,github会自动开启git pages服务。

    2. gitbook 写书、写文档的工具。推荐使用命令行方式使用gitbook,用来写项目文档比较合适。当然你也可以选择其它文档工具(sphinx、docusaurus等)。

  • 算法练习

    算法非常重要!算法可以看《算法》、《算法导论》书籍,我还推荐上LeetCode做题。

  • 面向博客编程

    在学习过程中,遇到的坑与经验都应该做笔记记下来,推荐写博客的方式。关于博客,可以使用开源的静态站点工具(hexo,hugo,jekyll等等)来搭建个人站点。当然也可以选择自己开发。静态站点推荐部署到github pages或者netlify这些免费静态站点服务上,需要动态环境就必须自己买主机啦。主机和域名我还是建议买的,最低配置就好(贵啊~~~~~),方便学习和做实验。

    除了在博客写文章以外,建议同时在国内各大技术社区发布文章。个人喜欢掘金和segmentfault,知乎和简书也是不错的平台,国外的就算了(除非写英文文章哈哈哈)。

  • 参与开源及造轮子

    至此,应该有能力参与开源和造一些轮子了。很惭愧我还没参与过他人的开源项目,平时时间都花在写自己项目上了。关于造轮子,可以从平时的开发工作中发现。因为平时工作总会遇到各种问题,可以围绕解决这些问题来考虑造轮子,可以从编写简单的库和工具开始。比如开发一款js库,并发布到npm上。比如写一个composer包来服务自己的工作。比如写一个小框架。比如实现一个个人的脚手架工具。造轮子是一个对提升技术水平非常有帮助的方式,墙裂建议。

    做开源项目还有一些必要的知识需要学习,比如git提交规范,可以使用angular的规范。还有README最好认真编写(虽然可能项目没人用)。对于项目内容比较多的可能需要编写文档,比如写了一个库。

  • 简历

    在有个人站点之后,可以将简历放到个人站点上,方便浏览和更新。(惭愧,我这块还没做)

  • 关于qq群和书

    技术群可以加,不过很多都是吹牛斗图,当然也有认真学习的群。很多问题用搜索引擎基本可以解决。技术书籍的话,喜欢可以买,推荐买经典书。收藏的话,推荐买英文原版的。平时学习推荐看电子书,实体书闲暇时可以翻翻。推荐京东618和双11期间买。

  • 其它

    非科班出身的同学还需学习数据结构、计算机原理、计算机网络等知识。

总结:个人觉得不错的姿势就是这样了,比较啰嗦,其实不管哪个方向,要学得都非常多,摆正心态,别急于求成,总能学好的。学习技术的同时顺便打造个人品牌,到最后,github和项目都是面试的加分项。有好的姿势和工具欢迎推荐~

展望

2019希望自己技术可以更上一层楼。以下是一些目标:

  • 计划深入学习前端
  • 深入了解下PHP,尝试开发扩展
  • 熟悉Python,个别工具用Python开发更方便
  • 使用Golang开发一个小项目
  • 继续开发完善个人项目
  • 上线个人站点
  • 尽量多填一些自己挖的坑(我会把想做的项目都写下来,做某某工具、某某站等,发现做得没有写得快哈哈)
  • 学习docker,尝试用docker部署项目
  • 能够在掘金多写点文章
  • 用gitbook写一本围绕git和github的小书
  • 希望工作和感情顺利,最好能够交一些共同喜欢技术的朋友!

水平有限,渣渣文案,有错误请指教。我爱学习,学习使我快乐!

欢迎关注我的 github

掘金年度征文 | 2018 与我的技术之路 征文活动正在进行中......