由于php入门很简单, 很多没任何编程背景的同学, 想学学怎么做网页的人基本一开始都会找php.
php里不是菜鸟就是牛人.
菜鸟: 做做个人网页, 改改页面, 就学些php的基本东西就够用了. win环境下搭个php环境又是很轻松的事, 什么一键包的. 部署有廉价的虚拟主机, 也不需要具备什么操作系统知识就可跑. 大堆的开源项目, 拿来就可用. 这些人基本不会再关心深层的东西.
php里的牛人, 某些本身就有C的基础, 想试试做网站开发. 但是少. 另一些是, 要部署到linux下面, 于是会发现, 和win真是天差地别. 会发现没有shell, c, make, 网络协议, 数据库, 操作系统的这些知识, 会非常痛苦. 于是就会去学这方面的知识. 越学越会发现, php网页的东西太肤浅, 重点不在p这上面. 于是越发去学linux相关知识. 于是就基本成高手了. 但是, 这部分人少.
ruby程序员
首先可以确定的是, 这部分程序员, 大多数至少会使用过其他语言3年以上(参考ruby走火的时间).
rails早期在win下的环境不成熟悉, 要想搞rails. 逼着这帮人跑到linux下. 早期就算在linux下搭个rails开发环境, 也是很麻烦的事. 如果对linux相关环境不熟悉, 包括大堆的linux下的c库, 也很痛苦.一帮人因为这样骂ruby,rails垃圾, 于是再也不碰, 走人. 少数的一些人, 本身有linux c/c++ 基础,或是不到黄河心不死, 非要搞定, 逼着去着linux下的相关东西. 于是这帮人留了下来, 基本都成为高手.
java程序员, java在win下的环境搭建很轻松. 跟装个游戏没区别. 不需要折腾, 也没有非到linux下开发的必要. java做企业应用居多, 看看spring,struts,hibernate这些东西. 基本不会求多少java基础, swing不用碰, 多线程看一眼, java集合包只是看看, io/nio这些东西不碰也不影响你开发. 最多花心思看看jdbc,jsp,servlet就好. 到哪天发现自己要系统去学了, 就会去碰 io, 多线程之类的东西. java的io,多线程这一块还算好掌握. 没有特殊需求, 根本不需要你去了解更底层的东西, 如它们在各操作系统下的底层是什么样的. 但java的这一块跟linux下的io,线程比, 就是玩具. 需要深入底层,就要求去学linux c. No, java的线程, io/nio还算够用了, 我干嘛还要去折腾c. 于是大多数java程序员, 整天围绕的是业务与jvm, jvm的一套字节码, jvm汇编, 愿意的话, 永远不需要折腾linux,c这些东西, java都有对应的还算凑合的实现, 与操作系统绝交. 当然, 还是有主动向更深层学习的人.
结论:
找个靠谱的php程序员, 千里挑一.
找个ruby程序员, 更容易招到, 而且, 很可能同时招到了一个linux c或使用其它语言3年以上的人.
招个java程序员, 如果只是做做企业应用开发, 您就凑合着用吧.
莫非有Linux C基础,会在Linux下配置环境的都是高手?
那我也是高手了,哈哈。。。
引用来自“张子游”的答案