V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangjieren
V2EX  ›  程序员

程序员入行 2 年深感自己不足 想多学点东西望各位前辈指教一些方法( php python 方面)

  •  
  •   zhangjieren · 2015-06-29 15:09:03 +08:00 · 6951 次点击
    这是一个创建于 3433 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟入行程序员2年,年纪也已经不小了,没有经历过正规的计算机教育,都是自己学习自己百度之类来写一些代码,做了差不多2年的PHP开发,看看各位大神,深感自己的渺小和不足。
    因为所在的公司比较小,没有什么所谓的大神,个人现在基本的水平就是用ci写一个可以跑可以满足客户不复杂需求的网站罢了。感觉大部分客户的需求也都很平常。
    但是个人是比较喜欢钻研技术的,现在公司里都是在做一些搬砖的工作,感觉自己没什么提升了,故来此询问各位接下去的路我该如何走。
    主要的方面有以下几点疑问,望各位大神能够比较详细的指点
    1、服务器端开发能力的提升,想学python,但是不知道如何入门,有没有好的教程和学习方法?一般需要学哪些重点?
    2、前端相关知识的加强包括jquery js php方面
    1、php方面我想知道除了ci还有哪些好用的框架?laverl?
    然后我想提高php的编码水平该如何提高 特别是一些安全系性 函数的封装,前后端交互该如何写性能更好?泛用更强
    2、jquery js方便我现在只限于能够做一些简单的取值验证等,我想学习下各种里面的机智比如哪些方法能够用回调,哪些可以传递函数,如果多线程回调等。有没有相关的资料可以讲述里面的机智和写法的?也想在这方面提高一下
    3、整体一个网站系统的设计该是什么样的结构比较好?数据库的设计,结构设计等
    虽然独立做个不少网站,但是感觉不是大神写的那种感觉,最好有什么比较实际可以参考的写法是最好的了,让我知道哪种才是比较好的设计思路和写法

    以上这些应该是我近期比较想提高自己的地方了,如果有相关的视频 书籍资料推荐就更好了。现在感觉自己的水平实在太菜了,只是满足客户的功能上需求不算是一个比较好的程序员。
    写了这么多不知道各位有没有耐心看完,不管怎么样都先感谢各位了

    43 条回复    2015-06-30 19:45:13 +08:00
    Action530
        1
    Action530  
       2015-06-29 15:33:38 +08:00
    现在有很多视频教学的网站吧?什么极客学院啊慕课网啊一堆堆的
    nullcc
        2
    nullcc  
       2015-06-29 15:36:30 +08:00
    看书,写代码,如此循环
    zhangjieren
        3
    zhangjieren  
    OP
       2015-06-29 15:40:36 +08:00
    @nullcc 这些说的我也知道,但是不知道哪些比较好,主要是写代码也写了不少了 感觉都是在一些重复劳动,我想知道优秀的代码该如何写,却不知道从哪里去了解这些优秀的代码。github上面开源程序虽然千千万,但是也不知道哪些合适。。。
    总感觉很迷茫
    vansje
        4
    vansje  
       2015-06-29 15:41:55 +08:00   ❤️ 1
    以30-你现在的年龄 为标准 这个值大于5,别犹豫,自学

    小于3的话,而且经济条件允许,找个靠谱的培训班(速成的那种),因为,

    此时时间就是金钱。

    还有,无论哪一条,英语文档尽量自己无障碍看懂,否则,各种荆棘坎坷在

    等待着你。
    zhangjieren
        5
    zhangjieren  
    OP
       2015-06-29 15:42:03 +08:00
    @Action530 大部分视频教学感觉都比较基础,而且真正能用到实际生产开发上的经验并不多,怎么说呢,都是偏向那种可以应用,但是不够深入的感觉吧。大部分都是讲一些基础,真正感觉要深入了解或者更上一层楼的话 也不知道有什么好的视频可以看。
    zhangjieren
        6
    zhangjieren  
    OP
       2015-06-29 15:46:05 +08:00
    @vansje 现在26吧,写了2年的PHP,对程序基本还有点感觉的,培训班怎么说以前也去接触过,感觉都是很应试的那种,就是会写就行了,而且东西很基础,充其量只是引人入门,无法做到提高,深入的感觉。还不如现在工作的环境。
    英文文档的话 如果是一门我会的东西 去查询一些那是没问题的,全新的东西靠英文文档有可能比较累了,感觉理解不透彻(英语学渣)。
    zhangjieren
        7
    zhangjieren  
    OP
       2015-06-29 15:54:33 +08:00
    总结一下就是撸主觉得现在工作已经没有什么可以学习了,想要提高一下自己,学更多的知识,但是不知道方法。培训班啊之类的都太基础不适合我撸主
    撸主基本功还是会一些,但是想变得更强大,所以就来这里请求各位大腿了。
    Ouyangan
        8
    Ouyangan  
       2015-06-29 16:04:50 +08:00
    入行一个月 , 老大说带我装逼带我飞 ...
    sincc
        9
    sincc  
       2015-06-29 16:07:06 +08:00
    想要提高,还是要去实际项目中去浸淫一两年。楼主要有能力在服务器端有造诣,还是来我们公司试试。。。Linux/Python/Redis
    nullcc
        10
    nullcc  
       2015-06-29 16:07:46 +08:00
    说下我自己的的做法,目前工作4年,前两年半做web安全工程师兼一些代码杂活,虽说这段时间代码量不多但也算跟一个系统从零到一走过一程,慢慢对一个像样的系统该怎么组织有自己的见解吧,我觉得这对我来说非常重要。

    后来因为团队需要做ios一年多,现在做后端。经验教训要自己总结,发现自己的不足,不要满足现状,这可能很痛苦,因为你经常会发现自己离一些东西很远,很多要学,不过过程艰辛但是还是很有收获的。如果能获得和大牛共事甚至给你些许指点,就更好了。快速获取知识和应用的能力必不可少,其实这种能力是可以培养的,怎么做要看你自己了。

    乔布斯说的那句什么来着,保持饥渴,哈哈,说得还是不错的。
    zhangjieren
        11
    zhangjieren  
    OP
       2015-06-29 16:08:35 +08:00
    @Ouyangan 我们老大水平也一般般吧 算不上大神,只能说可以很快的写一个网站来满足需求,开发速度和经验是有的 但是水平么 也就一般般了。。

    外加我现在做的东西都没有什么高并发的需求 也不知道高并发和多线程编程该怎么写,包括python的网络编程也是我想学的。。苦于没人带我飞 只能自己自学
    nullcc
        12
    nullcc  
       2015-06-29 16:11:29 +08:00
    @sincc 说得很对,在实际项目中能够最快速的锻炼自己的能力
    zhangjieren
        13
    zhangjieren  
    OP
       2015-06-29 16:14:58 +08:00
    @sincc 首先感谢大大,我只是想在服务器端有一定经验 比如python的网络编程,这样能够更加的和后端前端的配合,写出性能更优的代码。
    因为公司是小公司 平时做的一些开发并没有什么很大高并发 多线程,多进程的需求,所以只要去注意逻辑就行了,怎么去实现功能。但是我个人觉得这点太井底之蛙了,所以才想要提高。
    snailsir
        14
    snailsir  
       2015-06-29 16:15:20 +08:00
    你看看这个有没有兴趣: http://www.php-internals.com/
    zhangjieren
        15
    zhangjieren  
    OP
       2015-06-29 16:17:52 +08:00
    @snailsir 感谢大大 看到这名字让我想起了think in java这本书哈。。收藏一下
    jquery js 有没有类似的呢?比较系统的可以看下的
    另外python有没有好的入门到精通的教材?
    snailsir
        16
    snailsir  
       2015-06-29 16:40:05 +08:00
    + 这个有没有兴趣:《JavaScript高级程序设计》
    + react 有没有兴趣: http://facebook.github.io/react/docs/getting-started.html
    + sass 有没有兴趣: http://www.ruanyifeng.com/blog/2012/06/sass.html
    + Composer 有没有兴趣: http://www.phpcomposer.com/
    + python 我感兴趣的就是这个了: http://www.wxpython.org/index.php

    ps: 我不是大大,我实际工作还不满1年,搞php也还不到1年,我也26岁了,然后也什么都不会,上面都是我瞎摸索的,买了一本 sicp 连第一章还没看完,哎。。。感觉好多东西啊
    zhangjieren
        17
    zhangjieren  
    OP
       2015-06-29 16:51:23 +08:00
    @snailsir 一起共勉哈哈,我就感觉自己年纪已经不小了 感觉现在24 25的都很厉害,我不学点什么就要被淘汰了哈哈。。。。
    v2这里应该做程序的比较多 还是希望各路大大能够指点一下 给一条努力的方向
    feiyuanqiu
        18
    feiyuanqiu  
       2015-06-29 17:07:08 +08:00   ❤️ 1
    我现在和在你差不多的阶段,我觉得这个时候不要好高骛远,先沉下来,把PHP掌握好掌握精,不要想着做什么全栈程序员,薪水的高低是由你最擅长的技术深度决定的,在主业都不精通的情况下,学js啊这些前端的东西的结果就是变成一个活更多钱不涨的搬砖工

    如何深入学习PHP呢,我这里有一些自己的体会,抛砖引玉,大神轻喷
    1、首先是把代码大全看一遍。
    工作两年了,最大的感想就是写出逻辑清楚、条理分明、结构良好、风格优美的代码是多么难也多么有用处的一件事,这本书我还没看完,但是收获很多

    2、建立一个学习大纲,按照设定的计划来一步步掌握好各个知识点。
    在前一家公司上班的时候,我自己也花了不少时间学东西,但是不够专注,往往今天看几页算法明天翻翻编译原理后天弄弄服务器,最后在跳槽找工作的时候就发现这样做其实相当于没学,什么知识也没掌握到,只知道了几个名词。
    我现在的学习大纲是按照 [PHP核心技术与最佳实践] 这本书的目录来的,按照这本书目录的内容顺序依次去学习相关的技术
    比如 [第1章 面向对象思想的核心概念] ,不仅是看这本书里的内容,还要把相关的 [PHP面向对象:模式与实践] 这本书过一遍,把 github 上的用php实现的设计模式的代码,观察lumen框架实现,以求掌握面向对象、设计模式方面的知识
    [第3章 正则表达式基础与应用] 延伸阅读是 [精通正则表达式]
    [第4章 PHP网络技术及应用] 延伸阅读是 [计算机网络:自顶向下方法]
    [第5章 PHP与数据库基础] 延伸阅读是 [MySQL手册] [Effective MySQL]
    [第6章 PHP模板引擎的原理与实践] 延伸阅读是 [程序设计语言:实践之路]
    [第7章 PHP扩展开发] 延伸阅读是 [C与指针] [csapp] [PHP内核]
    [第8章 缓存详解] 继续读一些计算机基础书籍
    [第11章 高性能网站架构方案] 延伸阅读是 [鸟哥的Linux私房菜(两本)] [Nginx高性能Web服务器详解]
    [第13章 Hash算法与数据库实现] [数据结构与算法分析:c语言版] [数据库概论]

    书不在手边,有些记不清楚了就没写,仅作一个例子,这么做的思路是通过这些学习充实自己的基础,了解与php相关的底层知识。

    当然,如果再给我一次机会,我会选择做ios...[哭]
    zhangjieren
        19
    zhangjieren  
    OP
       2015-06-29 17:17:58 +08:00
    @feiyuanqiu 想学JS之类也是因为现在有一定的工作需要吧,因为基本上是1-2个人写全站的,所以才想学的,倒也不是想做的有多好 只是想写出比较优雅 封装比较好 比较美观的代码,能够更好地满足各种将来的需求?比如高并发等吧
    再次感谢大大的这些推荐的书籍,C和JAVA我也有花过一段时间去研究 面向对象之类也有一些接触,所以大部分程序上的设计概念是懂的 但是就是缺少如何把他们运用到实际中得那条路
    feiyuanqiu
        20
    feiyuanqiu  
       2015-06-29 17:25:50 +08:00 via iPhone
    上班摸鱼划水精神状态真是不好…
    上面漏了几条,补充一下。
    其实自学和以前在学校里学习过程是差不多的,所需要的就是清晰的规划和持之以恒的决心,后一点更重要,相当重要,非常重要。真的是切忌三心二意,要学就要学彻底,看书就要把一本书看完再看另一本,不然几个月后就发现什么都没学到
    工作生活多动脑子,有想法就去实践,不断就有进步,我之前买彩票觉得彩票站的机选很傻逼,就自己去爬彩票数据自己写加权程序生成号码;公司自己的框架没有crud生成器,就自己写了一个,减少了工作量还学到了phar相关的知识;最近是我们跟移动端的接口文档的编辑问题,死活没找到哪个md编辑器可以多人共享编辑,那就自己来做一个咯
    都是些小东西但是能提高工作效率,就有更多的时间干自己的事情了

    破手机太伤士气了,编辑太烦人了不多说了
    scourgen
        21
    scourgen  
       2015-06-29 17:26:21 +08:00
    可以看看这个:
    http://www.imooc.com/learn/244
    loryyang
        22
    loryyang  
       2015-06-29 17:27:59 +08:00
    没有实战的学习总归是雾里看花,建议多换工作环境,到更加好的公司去,<重点>公司的工作会推动你去学习,在工作中你也会遇到许多的实际问题,这个是非常宝贵的</重点>。自己学习容易迷茫怀疑不坚定

    你就努力找一个更好的工作,一级级往上跳
    zhangjieren
        23
    zhangjieren  
    OP
       2015-06-29 17:43:53 +08:00
    @loryyang 这点我也表示赞同,公司的工作环境会推动你的学习,现在就是这个公司感觉没啥学了 现在这个公司前面就提到了 就是一个快速做开发的类似外包类的公司,基本上只要能够实现功能就行了。
    所以想在最后半年多学点东西以后换新环境提高自己。。。毕竟有一点墨水可以更好的去敲门
    zhangjieren
        24
    zhangjieren  
    OP
       2015-06-29 17:45:39 +08:00
    @feiyuanqiu 再次感谢大大码了这么多字,道理我也都懂,感觉现在就是需要一条路?或者一份代码 一本教材?感觉有些东西不系统的好好学一下 水平都是半吊子。。于是才有了这篇求助⬅️,⬅️
    yangmls
        25
    yangmls  
       2015-06-29 18:15:27 +08:00
    @snailsir 大哥,你列的几个东西步子迈得太大了,看 @zhangjieren 自我介绍的,完全还没到那个阶段

    比如 TIPI 虽然写得很好,但已经超纲了。。。
    shuimugan
        26
    shuimugan  
       2015-06-29 18:28:12 +08:00
    真心建议换家公司呆,最好是有自己产品的,而且用户数多的

    按你的描述来看,你现在呆的环境,做久了,也就6个月到1年经验的水平
    那么提升的话,空间还是很大的
    1.看php框架源码,看到lz提了ci,估计是工作中用的,如果对ci的源码看得比较少的话,得好好看一下了.除了ci,其它框架的话推荐yii2,laravel
    2.数据库设计和并发,进个日pv百万以上的互联网公司呆,就ok了,你会看到方案的,自学的话,可以玩一下mysql的锁和事务.
    3.linux一定要多接触,多玩nginx,和redis.
    4.补下缓存方面知识,从客户端到服务端的.
    5.注重代码安全,可以看下<白帽子讲Web安全>这本书

    至于js和python的话,建议优先级调低,如果想用js和python曲线救国的话,短期作用不明显,python的话不推荐web方向...写起来真心没php爽,js的话啃下犀牛书(javascript权威指南)和蝴蝶书(javascript语言精粹)(知乎上不少前端大牛推荐的,不过我看得比较少,一直以来公司有专门前端,被惯坏了...)

    之前我处于lz这个境界,提升过来基本上是这样,当时还看了几本书,不够都没看多少,分别是:<构建高性能WEB站点>,<高性能网站建设进阶指南:WEB开发者性能优化最佳实践>,<高性能MySQL>,<代码整洁之道>,<Redis入门指南>

    多翻php的官方手册,做得很不错的,也可以玩下php的多线程的扩展.

    至于源码的话没啥好推荐,当初看了wordpress...发现到处是坑,后面去看joomla,magento,drupal,prestashop,开源中国上php应用前几都翻了,挑模块看.还去看了cakephp,zend,yii2的源码,thinkphp也看过...被恶心到了,源码不必看完,主要看整体的结构,命名规范,继承关系,以及用到的一些设计模式,还有思想等,挑几个功能来看就可以了,比如路由,表单验证,数据库,钩子/事件/行为(都是差不多的),基本上到这步都能明确自己接下来的路是什么了.
    kobe1941
        27
    kobe1941  
       2015-06-29 18:35:02 +08:00
    把百度换成 Google先
    recall704
        28
    recall704  
       2015-06-29 18:40:44 +08:00
    我也是个小菜,但可以说说我的理解,共勉之。

    我一直深信一句话:但社会上有某种需求时,这种需求比十所大学更能促进生产力。
    说到工作和学习中来,一旦我们的工作需要某中知识,就会促进我们去学习这种知识。
    比如我们的网站需要 ajax来完成某项功能,我们就会去学习它。

    一旦你目前的能力能够满足你当前的工作需求,你就会发现你根本不想去学新东西了,但作为一个程序员,怎么能这么容易满足?

    所以我有两个建议:
    1.换一家公司,这家公司的要求更高,更具有挑战性,即使要求的技术你也不会。
    2.在完成你的代码的同时,有没有考虑过:写的更快?有没有更好的算法?
      多读读别人的代码,我想会收货很多。
    zhangjieren
        29
    zhangjieren  
    OP
       2015-06-29 18:43:33 +08:00
    @shuimugan 感谢大神的耐心 回复
    个人也是准备今年做完这家公司就不做了 我也和大大有差不多的感觉 虽然做了2年 但是差不多第二年就感觉每天在重复搬砖没什么新知识学习了,所以决定重新找一家公司在干,但是因为到年底还有半年时间,也不想把这些时间浪费了,想在这段时间里补一下知识。
    1、CI源码有看过一些 也根据开发的需求 改过一些地方。但是看的不多吧,主要不知道他里面整体的设计思想,只是根据有需要的地方去改或者去查 然后是怎么实现
    2、并发编程有可能只能等到下一个公司去学习了吧 现在的环境应该没有办法学了吧 或者有什么入门的资料可以看下?有推荐么
    3、缓存方面的知识服务端暂时没怎么接触过,基本上都是靠得CI去实现,客户端的话 浏览器不太清楚 安卓端因为自己也开发过一段时间安卓,知道怎么缓存,服务器端该怎么缓存的话大大能否推荐些学习资料
    4、python我主要想学一些Linux上的网络编程 不是web方面的,主要是一些网络通信之类或者说服务器跑批定时处理方面的知识。毕竟感觉这些也是很重要的,但是我这边python一点方向都没 有没有往这方面的python的资料?
    5、个人因为写过安卓和JAVA,有些回调啊,封装之类用惯了,在JS,jquery里面看到也有相关类似的但是不知道哪些方法可以用回调或者一些系统的类window之类的用法啊之类 感觉要深入了解后才能运用起来更加得心应手。

    6、有些东西说起来惭愧,什么钩子啊之类的功能 到现在也不知道是什么,该怎么用,在什么情况下用,毕竟用了CI以后很多开发的确省了很多。但是还是想学习和了解下


    最后再次感谢大大耐心的回复
    zhangjieren
        30
    zhangjieren  
    OP
       2015-06-29 18:46:36 +08:00
    @recall704 大大说的也的确是我心里所想的。
    现在这份工作也决定做到今年年底,拿完年终就不做了,毕竟我感觉这公司对我个人来说 已经没有什么发展潜力了,就是如同行尸走肉般的拿工资干活。
    我也一直觉得我就是喜欢程序员这种一直可以学新知识 新技术的才选择这份工作的
    我现在就是在完成代码完成功能的时候 深感自己的不足,不知道如何才能优化才能让代码更优雅效率更高。
    所以才有了这帖子
    zhangjieren
        31
    zhangjieren  
    OP
       2015-06-29 18:47:32 +08:00
    @kobe1941 google也一直在用哈。作为程序员 google还是必备的(*^__^*)
    hitsmaxft
        32
    hitsmaxft  
       2015-06-29 20:55:12 +08:00
    把 php 中你用到的每个特性的实现了解清楚。 有这个毅力搞清楚, 能力就上去了。
    Jeremy1992
        33
    Jeremy1992  
       2015-06-29 21:19:05 +08:00
    楼主,我做了一年的。net ,打算转php,情况跟你说的差不多,我想换个环境,学习的过程也很迷茫。一直想把php学好,但是总感觉用不上劲,就像以前背单词书,总是从A开始背,效果不好。PS:愿意的话,加个好友交流一下,QQ1204691867
    berry10086
        34
    berry10086  
       2015-06-29 23:08:34 +08:00 via Android
    python 看learning python
    django 看django book 和官方文档
    zhangjieren
        35
    zhangjieren  
    OP
       2015-06-30 09:33:05 +08:00
    @Jeremy1992 是啊 所以详情这里的大大指点一下迷经
    zhangjieren
        36
    zhangjieren  
    OP
       2015-06-30 09:38:28 +08:00
    @berry10086 感谢大大推荐 jquery之类有否推荐,还有就是代码优化上之类 有什么这种讲设计思想的资料么?
    berry10086
        37
    berry10086  
       2015-06-30 09:49:51 +08:00 via Android
    @zhangjieren 也是新手,刚开始学py jquery还不会
    zhangjieren
        38
    zhangjieren  
    OP
       2015-06-30 10:02:21 +08:00
    @berry10086 看完learning python后 如果我想主攻后端发展方向看哪本书呢?就是服务器端上的python编程,比如定时任务的跑批处理和网络编程tcp udp之类的等等
    snailsir
        39
    snailsir  
       2015-06-30 10:17:06 +08:00
    @yangmls 好吧,其实我只是路过。。。。说了一下下我摸索的东西,并一再强调。。。。有没有兴趣。有没有兴趣。有没有兴趣。。。

    其实 @feiyuanqiu 说的书,我也了解过,也曾一度的感觉目录大纲是不错的。 好吧,我工作去了
    romisanic
        40
    romisanic  
       2015-06-30 10:29:33 +08:00
    php之盲人摸象
    dai269619118
        41
    dai269619118  
       2015-06-30 13:42:14 +08:00
    找个项目自己做你会学到很多
    sampeng
        42
    sampeng  
       2015-06-30 14:21:19 +08:00
    就想问。。什么样的水平叫高水平?写出别人看不懂的代码?写书?解决问题?
    都是时间磨出来的,有心思就多学吧。。你说的这些,光纠结啥用,选一个,你能在工作上用的。专下去即可
    cauil
        43
    cauil  
       2015-06-30 19:45:13 +08:00
    如果lz想熟悉jquery的东西,首先可以把javascript权威指南啃完,然后去用熟jQuery,然后啃jQuery的源码,应该就差不多了。
    最快速的方法,其实就是结合工作来做,不然自学效率有点低,而且不好理解。

    看lz是搞php的,何不找php相关的经典书籍来看,然后找个php框架源码来看,结合工作来弄透,不要贪多嚼不烂。

    世间万物都是很有联系的,一法通万法通,弄透了PHP相关的东西,其他的应该都很快可以入手。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1049 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:32 · PVG 06:32 · LAX 14:32 · JFK 17:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.