资讯专栏INFORMATION COLUMN

如何成为一名优秀的程序员

keelii / 2742人阅读

摘要:前言罗子雄如何成为一名优秀设计师董明伟工程师的入门和进阶董明伟基于自己实践讲的知乎为新人提供了很多实用建议,他推荐的罗子雄如何成为一名优秀设计师的演讲讲的非常好,总结了设计师从入门到提高的优秀实践。

前言

罗子雄:如何成为一名优秀设计师

董明伟:Python 工程师的入门和进阶

董明伟基于自己实践讲的知乎live为Python新人提供了很多实用建议,他推荐的罗子雄:如何成为一名优秀设计师的演讲讲的非常好,总结了设计师从入门到提高的优秀实践。
罗子雄的演讲我看了三遍,再结合自己的程序员生涯,我想我也可以为Python新人提供一些建议,开了如何成为一名优秀的程序员一题,讲讲我的Python工程师之路。

入门

一个非科班出生的程序员入门总是困难的,找到正确的学习方法,才是这一阶段最重要的目标。如罗子雄总结的设计师之路,程序员也需要看,做,想。

看(学习)

书:

《Python核心编程》

《Python Cookbook》

《SQL必知必会》

这是我入门Python选择的书,很厚,硬着头皮读下来,做了很多笔记,有很多东西一时都不会懂,但是没有关系,很多时候我读书不是为了理解书里面所有的东西,而仅仅只要知道书里面有哪些东西,等到用到的时候可以再回来学习,再来查,《Python核心编程》可以作为一本Python语法,基本数据结构用法的参考书。

《Python Cookbook》提供了很多经典的解决现实问题的代码片段,建议把每一个片段都自己写一遍,可以加深对Python的理解,也为下一步做提供很多解决问题的思路。这本书也可以作为参考书,碰到与书中类似的问题都可以参考一下那些代码。

《SQL必知必会》是一本SQL入门书,能快速帮助你掌握基础的SQL语法。作为一名Web开发工程师,掌握SQL是必需的技能。

做(实践)

在学习了一些Python语法,了解了一些解决问题的思路后,下一步就是实践了。

廖雪峰:Python教程 — 实战篇

这里推荐廖雪峰的实战篇教程,实现一个完整的Web APP。虽然教程只有16天,但是我却花了2个月。作为一个新手,我会发现很多章节根本不可能1天搞定。可能某一天我面对的不是一个问题,而是像洪水一样冲向我的一堆问题,这个时候我需要做的是分解问题,把1天的内容分解到1个星期来完成。

HTTP,database,MVC,javascript

以上这些姿势都是我完成教程的过程中学到的。很多时候我会发现即使看过了教程,还是不能按照教程的思路去写自己版本的代码,我需要的是去抄,教程提供了参考代码,我会把代码抄下来,在抄的过程中去想为什么要这么实现,同时学习http协议,db的相关姿势。能读懂代码并且能模仿写出自己的代码这就是我实践的目标。

https://github.com/zhu327/blo...

为了管理我的代码,还需要了解下Github相关姿势,以上就是我入门Python最重要的一个项目,找到一个适合自己的入门项目确实可以事半功倍。

基于教程我实现一个内容发布系统,下一步我想在这个项目的基础上把它改造成我想要的样子,比如一个Blog:https://github.com/zhu327/blog

想(思考)

回过头来看看自己写的代码,需要去思考有没有更好的实现方法,代码如何能写的更简洁,以及一些必备的注释,日志信息。在思考的过程中更重要的是认识自己的不足,只有正确的评估自己,才能准确的定制下一阶段的目标。

提高

现在我已经入门了,可以开始考虑如何找到一份Python Web开发的工作了。

看 v2.0

我需要去了解招聘企业对于Python工程师的要求是什么。

http://107.170.207.236/job_an...

从以上分析我可以看到几个比较重要的关键字:

linux, Django, tornado

所以我需要学习以下姿势:

安装ubuntu学习linux使用

阅读Django教程

阅读tornado教程

这里有我整理的一份Python中文资源存档

做 v2.0

Django是招聘企业需求最多的框架,所以我的第二个实践项目会实现一个Django的论坛。

https://github.com/PaulGuo/F2...

F2E是一个Tornado实现的论坛,在学习了Torando的基础教程后,我就可以开始阅读这份F2E论坛的代码。首先我要列出我需要了解的部分:

数据库的设计,创建需要的表

URL路由的设计,整理一份URL功能清单

现在我已经拿到一个论坛的需求了,下一步就是用Django来实现这个论坛,说得更low一点:用Django翻译一下这个Tornado实现的论坛。

https://github.com/zhu327/forum

以上就是我最终实现的论坛,通过这个论坛,我基本上学到了Django开发的方方面面。对Django有了一个比较深刻认识。然后拿着这份代码我找到了自己的第一份Python开发工作。

想 v2.0

开始了新的工作,需要想的就更多了,考虑到自己的不足,可能需要列出一个成长的书单来弥补自身的短板。这里列出一些关注点:

代码质量

面向对象

设计模式

数据库优化

坚持

从入门到找到第一份开发工作,可能需要3~4个月的时间,考虑到不是脱产学习,需要的时间就更久了。在这个过程中我会遇到各种各样的问题,而每个问题都可能会打击到我想要放弃。

我想这个时候我需要考虑的是为什么要做程序员,为了加薪,为了兴趣,为了更好的生活等等。我是以成为程序员为目标开始学习的,所以我必须坚持,直到达成自己的目标。

解决问题

软件开发的过程实际就是解决问题的过程,一个大的系统经过架构设计被分解成一个个小的部分。而分配给我的需求也会被我再次分解成更多的小问题,在这些问题中有我们能直接解决的,也有我可能解决不了的。对于这些解决不了的问题,我的处理路径:

分析问题

Google

找同事商量(一般在Google找不到的情况下)

Google

正确的Google方式是用英文搜索,不需要正确的语法,只需要几个能清晰表达自己问题的关键字就够了,英语实在不好怎么办?可以先在Google翻译查好单词再搜索。

以下有几个搜索技巧:

Django group by site:stackoverflow.com // 只搜索stackoverflow的问答
Django doc Filetype:pdf // 只搜索pdf格式文档
正确的提问

在向同事提问之前,需要有自己的思考,能详细的描述问题出在哪里,大概引出问题的原因,以及自己分析的问题解决方式(如果有),表达出了这些以后,被问同事才能根据你提供的上下文来分析问题。

一定要避免这么问:

xx问题怎么弄(没有自己的分析,没有Google)

帮我看一下这个异常(没有自己的分析,没有Google)

扩展视野

我做的想的越多就越觉得自己的知道的太少,为了扩展视野,我订阅了一些站点:

Python 伯乐在线

Python日报

Python segmentfault

知乎话题 Python

董明伟的Python订阅列表:https://zhuanlan.zhihu.com/p/...

Awesome Python: https://github.com/vinta/awes...

时间管理

工作的时间久了,摸索出一套适合自己的时间管理方式。由于需求的不确定,我不会定制周计划。基本上每天早上到公司会看一下邮件,列一下当天需要处理的事情,大概分析一下每件事情需要的时间,然后分配一下时间到各个时段,固定每天下午5点分配一个小时的时间用来看收藏的还没来的及看的技术文章。

在项目空窗期,会找一本能迅速提升自己某方面能力的书读读,比如我意识到需要优化MySQL的性能的时候,去看了《高性能MySQL》。

人都是有惰性的,学习也是枯燥的,但是成为一名优秀程序员的目标会驱动我去不断补齐自己的短板。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38314.html

相关文章

  • 如何成为一名优秀web前端工程师(前端攻城师)?

    摘要:我从没有听到有人问如何做一名优秀甚至卓越的前端工程师。作为一个优秀的前端工程师还需要深入了解以及学会处理的这些缺陷。再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。   我所遇到的前端程序员分两种:   第一种一直在问:如何学习前端?   第二种总说:前端很简单,就那么一点东西。   我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师...

    Turbo 评论0 收藏0
  • 如何成为一名优秀web前端工程师(前端攻城师)?

    摘要:我从没有听到有人问如何做一名优秀甚至卓越的前端工程师。作为一个优秀的前端工程师还需要深入了解以及学会处理的这些缺陷。再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。   我所遇到的前端程序员分两种:   第一种一直在问:如何学习前端?   第二种总说:前端很简单,就那么一点东西。   我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师...

    ityouknow 评论0 收藏0
  • 如何成为一名优秀web前端工程师(前端攻城师)?

    摘要:我从没有听到有人问如何做一名优秀甚至卓越的前端工程师。作为一个优秀的前端工程师还需要深入了解以及学会处理的这些缺陷。再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。   我所遇到的前端程序员分两种:   第一种一直在问:如何学习前端?   第二种总说:前端很简单,就那么一点东西。   我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师...

    rubyshen 评论0 收藏0
  • 如何成为一名优秀web前端工程师(前端攻城师)?

    摘要:我从没有听到有人问如何做一名优秀甚至卓越的前端工程师。作为一个优秀的前端工程师还需要深入了解以及学会处理的这些缺陷。再者,优秀的前端工程师需要具备良好的沟通能力,因为前端工程师至少都要满足四类客户的需求。   我所遇到的前端程序员分两种:   第一种一直在问:如何学习前端?   第二种总说:前端很简单,就那么一点东西。   我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师...

    mingzhong 评论0 收藏0
  • 阿里天猫魔盒 TV 资深前端工程师刘丹:兴趣是最好老师

    摘要:程序员客栈王鑫从一名普通的前端工程师成长成为阿里的高级前端工程师,你是如何一步步走来刘丹在学校学习编程的时候,我就对编程很有兴趣,接触前端之后,更是喜欢,这应该是我一路走来的动力。 showImg(https://segmentfault.com/img/bVCWOM); 他是电子科技大学的高材生,通过兴趣和努力脚踏实地的成为了一名优秀的前端工程师。他是一个对新技术充满了无限渴望的优秀...

    DevTalking 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<